Simplify connecting QItemSelection::currentRowChanged to PropertyProxyModel::activeRow

This commit is contained in:
eelke 2018-09-02 12:28:56 +02:00
parent 0cef509771
commit e8f81557bb
3 changed files with 10 additions and 11 deletions

View file

@ -97,8 +97,8 @@ QVariant PropertyProxyModel::data(const QModelIndex &proxyIndex, int role) const
return QVariant();
}
void PropertyProxyModel::setActiveRow(int row)
void PropertyProxyModel::setActiveRow(const QModelIndex &row)
{
activeRow = row;
activeRow = row.isValid() ? row.row() : -1;
emit dataChanged(index(0, valueColumn), index(rowCount(QModelIndex()), valueColumn), QVector<int>() << Qt::DisplayRole);
}

View file

@ -17,7 +17,12 @@ public:
QVariant data(const QModelIndex &proxyIndex, int role) const;
public Q_SLOTS:
void setActiveRow(int row);
/** Updates the model (and view) to show the values for row
*
* The column part of the index is not used QModelIndex is used to make is eacy to connect to
* QItemSelectionModel::currentRowChanged
*/
void setActiveRow(const QModelIndex &row);
private:
enum Columns {

View file

@ -62,14 +62,8 @@ TablesPage::TablesPage(MainWindow *parent)
ui->tablePropertiesTable->setModel(property_model);
ui->tablePropertiesTable->setItemDelegate(pglab_delegate);
connect(ui->tableListTable->selectionModel(), &QItemSelectionModel::currentChanged,
[property_model](const QModelIndex &current, const QModelIndex &) {
int row = -1;
if (current.isValid())
row = current.row();
property_model->setActiveRow(row);
});
connect(ui->tableListTable->selectionModel(), &QItemSelectionModel::currentRowChanged,
property_model, &PropertyProxyModel::setActiveRow);
//m_namespaceFilterWidget = new NamespaceFilterWidget(this);