aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2023-04-30 18:30:36 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2023-04-30 18:30:36 -0400
commit3565aad630864ecdbe53fdaa501ea708555b3c7c (patch)
treec743e4ad0bad39ebdb2f514c7cc52d34a257ebbe /SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp
parent1fdc150116cad39aae5c5da407c3312b47a59e3a (diff)
New upstream version 3.4.4+dfsg.upstream/3.4.4+dfsg
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp27
1 files changed, 19 insertions, 8 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp
index 4351312..f8dd621 100644
--- a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp
@@ -9,13 +9,14 @@
#include "uiconfig.h"
#include "db/db.h"
#include "services/dbmanager.h"
-#include "services/notifymanager.h"
#include "common/lazytrigger.h"
#include "common/compatibility.h"
#include <QDesktopServices>
#include <QFileDialog>
#include <QSortFilterProxyModel>
+CFG_KEYS_DEFINE(SqliteExtensionEditor)
+
SqliteExtensionEditor::SqliteExtensionEditor(QWidget *parent) :
MdiChild(parent),
ui(new Ui::SqliteExtensionEditor)
@@ -36,7 +37,7 @@ bool SqliteExtensionEditor::restoreSessionNextTime()
bool SqliteExtensionEditor::isUncommitted() const
{
- return model->isModified();
+ return model->isModified() || currentModified;
}
QString SqliteExtensionEditor::getQuitUncommittedConfirmMessage() const
@@ -67,17 +68,20 @@ QString SqliteExtensionEditor::getTitleForMdiWindow()
void SqliteExtensionEditor::createActions()
{
- createAction(COMMIT, ICONS.COMMIT, tr("Commit all extension changes"), this, SLOT(commit()), ui->toolbar);
- createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all extension changes"), this, SLOT(rollback()), ui->toolbar);
+ createAction(COMMIT, ICONS.COMMIT, tr("Commit all extension changes"), this, SLOT(commit()), ui->toolbar, this);
+ createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all extension changes"), this, SLOT(rollback()), ui->toolbar, this);
ui->toolbar->addSeparator();
- createAction(ADD, ICONS.EXTENSION_ADD, tr("Add new extension"), this, SLOT(newExtension()), ui->toolbar);
- createAction(DELETE, ICONS.EXTENSION_DELETE, tr("Remove selected extension"), this, SLOT(deleteExtension()), ui->toolbar);
+ createAction(ADD, ICONS.EXTENSION_ADD, tr("Add new extension"), this, SLOT(newExtension()), ui->toolbar, this);
+ createAction(DELETE, ICONS.EXTENSION_DELETE, tr("Remove selected extension"), this, SLOT(deleteExtension()), ui->toolbar, this);
ui->toolbar->addSeparator();
- createAction(HELP, ICONS.HELP, tr("Editing extensions manual"), this, SLOT(help()), ui->toolbar);
+ createAction(HELP, ICONS.HELP, tr("Editing extensions manual"), this, SLOT(help()), ui->toolbar, this);
}
void SqliteExtensionEditor::setupDefShortcuts()
{
+ // Widget context
+ setShortcutContext({COMMIT, ROLLBACK}, Qt::WidgetWithChildrenShortcut);
+ BIND_SHORTCUTS(SqliteExtensionEditor, Action);
}
QToolBar* SqliteExtensionEditor::getToolBar(int toolbar) const
@@ -224,6 +228,13 @@ bool SqliteExtensionEditor::validateExtension(int row)
return validateExtension(filePath, initFunc, nullptr, nullptr, new QString);
}
+bool SqliteExtensionEditor::validateCurrentExtension()
+{
+ QString filePath = ui->fileEdit->text();
+ QString initFunc = ui->initEdit->text();
+ return validateExtension(filePath, initFunc, nullptr, nullptr, new QString);
+}
+
bool SqliteExtensionEditor::validateExtension(const QString& filePath, const QString& initFunc, bool* fileOk, bool* initOk, QString* fileError)
{
bool localFileOk = true;
@@ -326,7 +337,7 @@ void SqliteExtensionEditor::deleteExtension()
void SqliteExtensionEditor::updateState()
{
bool modified = model->isModified() || currentModified;
- bool valid = model->isValid();
+ bool valid = model->isValid() && validateCurrentExtension();
actionMap[COMMIT]->setEnabled(modified && valid);
actionMap[ROLLBACK]->setEnabled(modified);