From d9aa870e5d509cc7309ab82dd102a937ab58613a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Thu, 9 Feb 2017 04:36:04 -0500 Subject: Imported Upstream version 3.1.1+dfsg1 --- .../guiSQLiteStudio/dialogs/configdialog.cpp | 2 +- .../guiSQLiteStudio/dialogs/configdialog.ui | 90 +++++++++++++-------- SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp | 93 +++++++++++----------- SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h | 4 +- SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui | 21 +---- .../guiSQLiteStudio/dialogs/quitconfirmdialog.ui | 2 +- .../dialogs/triggercolumnsdialog.cpp | 24 +++++- .../guiSQLiteStudio/dialogs/triggercolumnsdialog.h | 8 +- .../dialogs/triggercolumnsdialog.ui | 56 ++++++++++++- .../guiSQLiteStudio/dialogs/triggerdialog.cpp | 4 +- 10 files changed, 196 insertions(+), 108 deletions(-) (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs') diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp index 42c7099..85ae12d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp @@ -199,7 +199,7 @@ void ConfigDialog::init() << CFG_UI.General.ShowVirtualTableLabels; for (CfgEntry* cfg : entries) - connect(cfg, &CfgEntry::changed, this, &ConfigDialog::markRequiresSchemasRefresh); + connect(cfg, SIGNAL(changed(QVariant)), this, SLOT(markRequiresSchemasRefresh())); ui->activeStyleCombo->addItems(QStyleFactory::keys()); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui index c69ad20..6bedd25 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui @@ -229,7 +229,7 @@ - 5 + 1 @@ -408,7 +408,7 @@ 0 0 564 - 504 + 580 @@ -418,10 +418,13 @@ Data browsing and editing - - + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + - Number of data rows per page: + Limit initial data column width to (in pixels): @@ -444,16 +447,6 @@ - - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - - - Limit initial data column width to (in pixels): - - - @@ -473,7 +466,7 @@ - + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> @@ -486,6 +479,39 @@ + + + + Number of data rows per page: + + + + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + Keep NULL value when entering empty value + + + General.KeepNullWhenEmptyValue + + + + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + Use DEFAULT value (if defined), when committing NULL value + + + General.UseDefaultValueForNull + + + @@ -766,7 +792,7 @@ - Don't show DDL preview dialog when commiting schema changes + Don't show DDL preview dialog when committing schema changes General.DontShowDdlPreview @@ -1001,8 +1027,8 @@ 0 0 - 596 - 487 + 447 + 307 @@ -1422,7 +1448,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:11pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Abcdefgh</span></p></body></html> @@ -1513,8 +1539,8 @@ p, li { white-space: pre-wrap; } 0 0 - 290 - 323 + 268 + 328 @@ -1635,8 +1661,8 @@ p, li { white-space: pre-wrap; } 0 0 - 352 - 806 + 331 + 829 @@ -1921,17 +1947,17 @@ p, li { white-space: pre-wrap; } - + - <p>Any data changes will be outlined with this color, until they're commited to the database.</p> + <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - Uncommited data outline color + Uncommitted data outline color - + 50 @@ -1942,14 +1968,14 @@ p, li { white-space: pre-wrap; } - Colors.DataUncommited + Colors.DataUncommitted - <p>In case of error while commiting data changes, the problematic cell will be outlined with this color.</p> + <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> Commit error outline color @@ -1968,7 +1994,7 @@ p, li { white-space: pre-wrap; } - Colors.DataUncommitedError + Colors.DataUncommittedError @@ -2238,7 +2264,7 @@ p, li { white-space: pre-wrap; } sqlEditorNumberFgButton sqlEditorBindParamFgButton sqlEditorValidObjectsButton - dataViewUncommitedButton + dataViewUncommittedButton dataViewErrorButton dataViewNullFgButton dataViewDeletedRowBgButton diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp index 6bdf41f..781e25e 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp @@ -81,7 +81,6 @@ void DbDialog::showEvent(QShowEvent *e) int idx = ui->typeCombo->findText(db->getTypeLabel()); ui->typeCombo->setCurrentIndex(idx); - ui->generateCheckBox->setChecked(false); ui->fileEdit->setText(db->getPath()); ui->nameEdit->setText(db->getName()); disableTypeAutodetection = false; @@ -126,19 +125,18 @@ void DbDialog::init() ui->testConnIcon->setVisible(false); connect(ui->fileEdit, SIGNAL(textChanged(QString)), this, SLOT(fileChanged(QString))); - connect(ui->nameEdit, SIGNAL(textChanged(QString)), this, SLOT(nameModified(QString))); - connect(ui->generateCheckBox, SIGNAL(toggled(bool)), this, SLOT(generateNameSwitched(bool))); + connect(ui->nameEdit, SIGNAL(textEdited(QString)), this, SLOT(nameModified(QString))); connect(ui->browseCreateButton, SIGNAL(clicked()), this, SLOT(browseClicked())); connect(ui->browseOpenButton, SIGNAL(clicked()), this, SLOT(browseClicked())); connect(ui->testConnButton, SIGNAL(clicked()), this, SLOT(testConnectionClicked())); connect(ui->typeCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(dbTypeChanged(int))); - generateNameSwitched(true); - layout()->setSizeConstraint(QLayout::SetFixedSize); if (mode == Mode::ADD && CFG_UI.General.NewDbNotPermanentByDefault.get()) ui->permamentCheckBox->setChecked(false); + + validate(); } void DbDialog::updateOptions() @@ -462,55 +460,76 @@ bool DbDialog::testDatabase() bool DbDialog::validate() { // Name - if (!ui->generateCheckBox->isChecked()) + bool nameState = true; + if (ui->nameEdit->text().isEmpty()) + { + nameState = false; + setValidState(ui->nameEdit, false, tr("Enter an unique database name.")); + } + + Db* registeredDb = nullptr; + if (nameState) { - if (ui->nameEdit->text().isEmpty()) + registeredDb = DBLIST->getByName(ui->nameEdit->text(), Qt::CaseInsensitive); + if (registeredDb && (mode == Mode::ADD || registeredDb != db)) { - setValidState(ui->nameEdit, false, tr("Enter an unique database name.")); - return false; + nameState = false; + setValidState(ui->nameEdit, false, tr("This name is already in use. Please enter unique name.")); } } - Db* registeredDb = DBLIST->getByName(ui->nameEdit->text(), Qt::CaseInsensitive); - if (registeredDb && (mode == Mode::ADD || registeredDb != db)) + if (nameState) { - setValidState(ui->nameEdit, false, tr("This name is already in use. Please enter unique name.")); - return false; + if (nameManuallyEdited) + setValidStateInfo(ui->nameEdit, tr("

Automatic name generation was disabled, becuase the name was edited manually. To restore automatic generation please erase contents of the name field.

")); + else + setValidState(ui->nameEdit, true); } - setValidState(ui->nameEdit, true); // File + bool fileState = true; if (ui->fileEdit->text().isEmpty()) { setValidState(ui->fileEdit, false, tr("Enter a database file path.")); - return false; + fileState = false; } - registeredDb = DBLIST->getByPath(ui->fileEdit->text()); - if (registeredDb && (mode == Mode::ADD || registeredDb != db)) + if (fileState) { - setValidState(ui->fileEdit, false, tr("This database is already on the list under name: %1").arg(registeredDb->getName())); - return false; + registeredDb = DBLIST->getByPath(ui->fileEdit->text()); + if (registeredDb && (mode == Mode::ADD || registeredDb != db)) + { + setValidState(ui->fileEdit, false, tr("This database is already on the list under name: %1").arg(registeredDb->getName())); + fileState = false; + } } - setValidState(ui->fileEdit, true); + + if (fileState) + setValidState(ui->fileEdit, true); // Type + bool typeState = true; if (ui->typeCombo->count() == 0) { // No need to set validation message here. SQLite3 plugin is built in, // so if this happens, something is really, really wrong. qCritical() << "No db plugins loaded in db dialog!"; - return false; + typeState = false; } - if (ui->typeCombo->currentIndex() < 0) + if (typeState) { - setValidState(ui->typeCombo, false, tr("Select a database type.")); - return false; + if (ui->typeCombo->currentIndex() < 0) + { + setValidState(ui->typeCombo, false, tr("Select a database type.")); + typeState = false; + } } - setValidState(ui->typeCombo, true); - return true; + if (typeState) + setValidState(ui->typeCombo, true); + + return nameState && fileState && typeState; } void DbDialog::updateState() @@ -532,13 +551,12 @@ void DbDialog::typeChanged(int index) { UNUSED(index); updateOptions(); - valueForNameGenerationChanged(); } void DbDialog::valueForNameGenerationChanged() { updateState(); - if (!ui->generateCheckBox->isChecked()) + if (nameManuallyEdited) return; QString generatedName; @@ -566,21 +584,6 @@ void DbDialog::browseForFile() setFileDialogInitPathByFile(path); } -void DbDialog::generateNameSwitched(bool checked) -{ - if (checked) - { - ui->nameEdit->setPlaceholderText(tr("Auto-generated")); - valueForNameGenerationChanged(); - } - else - { - ui->nameEdit->setPlaceholderText(tr("Type the name")); - } - - ui->nameEdit->setReadOnly(checked); -} - void DbDialog::fileChanged(const QString &arg1) { UNUSED(arg1); @@ -637,9 +640,9 @@ void DbDialog::dbTypeChanged(int index) propertyChanged(); } -void DbDialog::nameModified(const QString &arg1) +void DbDialog::nameModified(const QString &value) { - UNUSED(arg1); + nameManuallyEdited = !value.isEmpty(); updateState(); } diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h index 2beea3e..3d1a9da 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h @@ -70,6 +70,7 @@ class GUI_API_EXPORT DbDialog : public QDialog DbPluginOption::CustomBrowseHandler customBrowseHandler = nullptr; bool disableTypeAutodetection = false; bool doAutoTest = false; + bool nameManuallyEdited = false; static const constexpr int ADDITIONAL_ROWS_BEGIN_INDEX = 1; @@ -77,13 +78,12 @@ class GUI_API_EXPORT DbDialog : public QDialog void typeChanged(int index); void valueForNameGenerationChanged(); void browseForFile(); - void generateNameSwitched(bool checked); void fileChanged(const QString &arg1); void browseClicked(); void testConnectionClicked(); void propertyChanged(); void dbTypeChanged(int index); - void nameModified(const QString &arg1); + void nameModified(const QString &value); public slots: void accept(); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui index 6f35079..9878bec 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui @@ -7,7 +7,7 @@ 0 0 455 - 365 + 366 @@ -80,24 +80,7 @@ - - - true - - - - - - - Generate name basing on file path - - - Generate automatically - - - true - - + diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/quitconfirmdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/quitconfirmdialog.ui index 6f97934..20d4f21 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/quitconfirmdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/quitconfirmdialog.ui @@ -11,7 +11,7 @@ - Uncommited changes + Uncommitted changes diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.cpp index 462e57f..7890b3c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.cpp @@ -1,13 +1,18 @@ #include "triggercolumnsdialog.h" #include "ui_triggercolumnsdialog.h" - +#include "uiutils.h" #include -TriggerColumnsDialog::TriggerColumnsDialog(QWidget *parent) : +TriggerColumnsDialog::TriggerColumnsDialog(QWidget *parent, int globalX, int globalY) : QDialog(parent, Qt::Popup), + globalX(globalX), + globalY(globalY), ui(new Ui::TriggerColumnsDialog) { ui->setupUi(this); + + connect(ui->selectAllBtn, SIGNAL(clicked(bool)), this, SLOT(selectAll())); + connect(ui->deselectAllBtn, SIGNAL(clicked(bool)), this, SLOT(deselectAll())); } TriggerColumnsDialog::~TriggerColumnsDialog() @@ -26,7 +31,7 @@ void TriggerColumnsDialog::addColumn(const QString& name, bool checked) QStringList TriggerColumnsDialog::getCheckedColumns() const { QStringList columns; - foreach (QCheckBox* cb, checkBoxList) + for (QCheckBox* cb : checkBoxList) { if (cb->isChecked()) columns << cb->text(); @@ -49,4 +54,17 @@ void TriggerColumnsDialog::changeEvent(QEvent *e) void TriggerColumnsDialog::showEvent(QShowEvent*) { adjustSize(); + move(globalX, globalY); +} + +void TriggerColumnsDialog::selectAll() +{ + for (QCheckBox* cb : checkBoxList) + cb->setChecked(true); +} + +void TriggerColumnsDialog::deselectAll() +{ + for (QCheckBox* cb : checkBoxList) + cb->setChecked(false); } diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.h index 1ba0d69..d7e719c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.h @@ -15,7 +15,7 @@ class GUI_API_EXPORT TriggerColumnsDialog : public QDialog Q_OBJECT public: - explicit TriggerColumnsDialog(QWidget *parent = 0); + explicit TriggerColumnsDialog(QWidget *parent, int globalX, int globalY); ~TriggerColumnsDialog(); void addColumn(const QString& name, bool checked); @@ -27,7 +27,13 @@ class GUI_API_EXPORT TriggerColumnsDialog : public QDialog private: QList checkBoxList; + int globalX; + int globalY; Ui::TriggerColumnsDialog *ui = nullptr; + + private slots: + void selectAll(); + void deselectAll(); }; #endif // TRIGGERCOLUMNSDIALOG_H diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.ui index 861e17b..b01e01d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.ui @@ -6,7 +6,7 @@ 0 0 - 334 + 232 300 @@ -61,8 +61,8 @@ 0 0 - 316 - 237 + 212 + 205 @@ -82,6 +82,56 @@ + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Select all + + + + + + + + 0 + 0 + + + + Deselect all + + + + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.cpp index 12baafd..3254f26 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.cpp @@ -360,7 +360,9 @@ void TriggerDialog::updateValidation() void TriggerDialog::showColumnsDialog() { - TriggerColumnsDialog dialog(this); + QPoint topRight = ui->actionColumns->mapToGlobal(ui->actionColumns->rect().topRight()); + + TriggerColumnsDialog dialog(this, topRight.x(), topRight.y()); foreach (const QString& colName, targetColumns) dialog.addColumn(colName, selectedColumns.contains(colName, Qt::CaseInsensitive)); -- cgit v1.2.3