Updating of detail tabs besides list of tables works correctly again.

Had stopped working because the catalog now behaves a little different,
returning nullptr instead of an invalid element.
This commit is contained in:
eelke 2018-11-18 20:24:27 +01:00
parent fcb191f2cc
commit 52011a9842
12 changed files with 114 additions and 92 deletions

View file

@ -139,8 +139,12 @@ void TablesPage::setCatalog(std::shared_ptr<PgDatabaseCatalog> cat)
void TablesPage::tableListTable_currentRowChanged(const QModelIndex &current, const QModelIndex &previous)
{
if (current.row() != previous.row()) {
PgClass table = m_tablesModel->getTable(current.row());
selectedTableChanged(table);
if (current.isValid()) {
PgClass table = m_tablesModel->getTable(current.row());
selectedTableChanged(table);
}
else
selectedTableChanged({});
}
}
@ -148,12 +152,16 @@ void TablesPage::tableListTable_currentRowChanged(const QModelIndex &current, co
void TablesPage::tableListTable_layoutChanged(const QList<QPersistentModelIndex> &, QAbstractItemModel::LayoutChangeHint )
{
auto&& index = ui->tableListTable->selectionModel()->currentIndex();
PgClass table = m_tablesModel->getTable(index.row());
selectedTableChanged(table);
if (index.isValid()) {
PgClass table = m_tablesModel->getTable(index.row());
selectedTableChanged(table);
}
else
selectedTableChanged({});
}
void TablesPage::selectedTableChanged(const PgClass & table)
void TablesPage::selectedTableChanged(const std::optional<PgClass> &table)
{
m_columnsModel->setData(m_catalog, table);
ui->columnsTable->resizeColumnsToContents();