From 540b12a57a7860c94eae183fa6f12caf04f7194b Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Mon, 21 Dec 2015 11:22:43 +0100 Subject: [PATCH] EditDialog: Allow opening dialog/updating dock in read-only mode for views See #441. --- src/EditDialog.cpp | 7 +++++++ src/EditDialog.h | 1 + src/MainWindow.cpp | 8 ++++---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/EditDialog.cpp b/src/EditDialog.cpp index 23c0b4fe..b8a1c4f6 100644 --- a/src/EditDialog.cpp +++ b/src/EditDialog.cpp @@ -250,3 +250,10 @@ void EditDialog::setFocus() ui->editorText->selectAll(); } } + +void EditDialog::allowEditing(bool on) +{ + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(on); + ui->buttonClear->setEnabled(on); + ui->buttomImport->setEnabled(on); +} diff --git a/src/EditDialog.h b/src/EditDialog.h index f55ca316..38daedd4 100644 --- a/src/EditDialog.h +++ b/src/EditDialog.h @@ -25,6 +25,7 @@ public slots: virtual void loadText(const QByteArray& data, int row, int col); virtual void setFocus(); virtual void reject(); + virtual void allowEditing(bool on); protected: virtual void closeEvent(QCloseEvent* ev); diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 3bcd0a44..fd3f9123 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -762,8 +762,9 @@ void MainWindow::doubleClickTable(const QModelIndex& index) return; // Don't allow editing of other objects than tables - if(db.getObjectByName(ui->comboBrowseTable->currentText()).gettype() != "table") - return; + bool allowEditing = db.getObjectByName(ui->comboBrowseTable->currentText()).gettype() == "table"; + editDock->allowEditing(allowEditing); + editWin->allowEditing(allowEditing); // Load the current value into both, edit window and edit dock editWin->loadText(index.data(Qt::EditRole).toByteArray(), index.row(), index.column()); @@ -784,8 +785,7 @@ void MainWindow::dataTableSelectionChanged(const QModelIndex& index) return; // Don't allow editing of other objects than tables - if(db.getObjectByName(ui->comboBrowseTable->currentText()).gettype() != "table") - return; + editDock->allowEditing(db.getObjectByName(ui->comboBrowseTable->currentText()).gettype() == "table"); // Load the current value into the edit dock only editDock->loadText(index.data(Qt::EditRole).toByteArray(), index.row(), index.column());