From 54866e18278b200ea06b8ce70e66a1625a5993b7 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Thu, 16 Jan 2020 17:20:19 +0100 Subject: [PATCH] Disable editing of cells in views in Browse Data tab when not enabled See issue #2091. --- src/TableBrowser.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/TableBrowser.cpp b/src/TableBrowser.cpp index 6e225d8e..02f4d9ff 100644 --- a/src/TableBrowser.cpp +++ b/src/TableBrowser.cpp @@ -744,7 +744,12 @@ void TableBrowser::updateRecordsetLabel() } ui->labelRecordset->setText(txt); - enableEditing(m_model->rowCountAvailable() != SqliteTableModel::RowCount::Unknown); + // Enable editing only for tables or views with editing unlocked for which the row count is already available + sqlb::ObjectIdentifier current_table = currentlyBrowsedTableName(); + bool is_table_or_unlocked_view = !m_model->query().empty() && db->getObjectByName(current_table) && ( + (db->getObjectByName(current_table)->type() == sqlb::Object::View && m_model->hasPseudoPk()) || + (db->getObjectByName(current_table)->type() == sqlb::Object::Table)); + enableEditing(m_model->rowCountAvailable() != SqliteTableModel::RowCount::Unknown && is_table_or_unlocked_view); } void TableBrowser::applySettings(const BrowseDataTableSettings& storedData, bool skipFilters)