diff options
| author | 2015-02-22 14:06:29 -0500 | |
|---|---|---|
| committer | 2015-02-22 14:06:29 -0500 | |
| commit | 306d6d3ca9c9ad774d19135681a7f9805f77035f (patch) | |
| tree | a3e36ac2cc769162c30a1bcc33e126f7a4f4ccea /SQLiteStudio3/guiSQLiteStudio/dialogs | |
| parent | 016003905ca0e8e459e3dc33e786beda8ec92f45 (diff) | |
Imported Upstream version 3.0.3upstream/3.0.3
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs')
7 files changed, 144 insertions, 22 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp index 0d291e5..82d5e14 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp @@ -9,6 +9,8 @@ #include "iconmanager.h" #include <QDebug> #include <QFile> +#include <QApplication> +#include <QClipboard> AboutDialog::AboutDialog(InitialMode initialMode, QWidget *parent) : QDialog(parent), @@ -73,16 +75,21 @@ void AboutDialog::init(InitialMode initialMode) licenseContents.clear(); // Environment - copyAct = new QAction(tr("Copy"), this); ui->appDirEdit->setText(qApp->applicationDirPath()); ui->cfgDirEdit->setText(CFG->getConfigDir()); ui->pluginDirList->addItems(filterResourcePaths(PLUGINS->getPluginDirs())); ui->iconDirList->addItems(filterResourcePaths(ICONMANAGER->getIconDirs())); ui->formDirList->addItems(filterResourcePaths(FORMS->getFormDirs())); ui->qtVerEdit->setText(QT_VERSION_STR); - ui->pluginDirList->addAction(copyAct); - ui->iconDirList->addAction(copyAct); - ui->formDirList->addAction(copyAct); + ui->sqlite3Edit->setText(CFG->getSqlite3Version()); + + QAction* copyAct; + for (QListWidget* w : {ui->pluginDirList, ui->iconDirList, ui->formDirList}) + { + copyAct = new QAction(tr("Copy"), w); + w->addAction(copyAct); + connect(copyAct, SIGNAL(triggered()), this, SLOT(copy())); + } } void AboutDialog::buildIndex() @@ -132,3 +139,20 @@ QStringList AboutDialog::filterResourcePaths(const QStringList& paths) } return output; } + +void AboutDialog::copy() +{ + QListWidget* list = dynamic_cast<QListWidget*>(sender()->parent()); + if (!list) + return; + + QList<QListWidgetItem*> items = list->selectedItems(); + if (items.size() == 0) + return; + + QStringList lines; + for (QListWidgetItem* item : items) + lines << item->text(); + + QApplication::clipboard()->setText(lines.join("\n")); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.h index 4d49145..a43daec 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.h @@ -34,7 +34,9 @@ class GUI_API_EXPORT AboutDialog : public QDialog Ui::AboutDialog *ui = nullptr; QStringList indexContents; QString licenseContents; - QAction* copyAct = nullptr; + + private slots: + void copy(); }; #endif // ABOUTDIALOG_H diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.ui index 1239cf5..179ee3b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.ui @@ -60,6 +60,9 @@ <property name="text"> <string>Icon directories</string> </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> </widget> </item> <item row="2" column="2"> @@ -67,6 +70,9 @@ <property name="contextMenuPolicy"> <enum>Qt::ActionsContextMenu</enum> </property> + <property name="selectionMode"> + <enum>QAbstractItemView::ExtendedSelection</enum> + </property> </widget> </item> <item row="4" column="0"> @@ -74,6 +80,9 @@ <property name="text"> <string>Form directories</string> </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> </widget> </item> <item row="3" column="2"> @@ -81,6 +90,9 @@ <property name="contextMenuPolicy"> <enum>Qt::ActionsContextMenu</enum> </property> + <property name="selectionMode"> + <enum>QAbstractItemView::ExtendedSelection</enum> + </property> </widget> </item> <item row="2" column="0"> @@ -88,6 +100,19 @@ <property name="text"> <string>Plugin directories</string> </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="cfgDirLabel"> + <property name="text"> + <string>Configuration directory</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> </widget> </item> <item row="0" column="0"> @@ -95,6 +120,19 @@ <property name="text"> <string>Application directory</string> </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="4" column="2"> + <widget class="QListWidget" name="formDirList"> + <property name="contextMenuPolicy"> + <enum>Qt::ActionsContextMenu</enum> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::ExtendedSelection</enum> + </property> </widget> </item> <item row="0" column="2"> @@ -104,17 +142,20 @@ </property> </widget> </item> - <item row="1" column="0"> - <widget class="QLabel" name="cfgDirLabel"> + <item row="5" column="0"> + <widget class="QLabel" name="qtVerLabel"> <property name="text"> - <string>Configuration directory</string> + <string>Qt version:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> </widget> </item> - <item row="4" column="2"> - <widget class="QListWidget" name="formDirList"> - <property name="contextMenuPolicy"> - <enum>Qt::ActionsContextMenu</enum> + <item row="5" column="2"> + <widget class="QLabel" name="qtVerEdit"> + <property name="text"> + <string/> </property> </widget> </item> @@ -125,15 +166,18 @@ </property> </widget> </item> - <item row="5" column="0"> - <widget class="QLabel" name="qtVerLabel"> + <item row="6" column="0"> + <widget class="QLabel" name="sqlite3Label"> <property name="text"> - <string>Qt version:</string> + <string>SQLite 3 version:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> </widget> </item> - <item row="5" column="2"> - <widget class="QLabel" name="qtVerEdit"> + <item row="6" column="2"> + <widget class="QLabel" name="sqlite3Edit"> <property name="text"> <string/> </property> diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp index c9a7f28..a2a9c36 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp @@ -446,17 +446,55 @@ bool DbDialog::testDatabase() bool DbDialog::validate() { + // Name + if (!ui->generateCheckBox->isChecked()) + { + if (ui->nameEdit->text().isEmpty()) + { + setValidState(ui->nameEdit, false, tr("Enter an unique database name.")); + return false; + } + } + + Db* registeredDb = DBLIST->getByName(ui->nameEdit->text()); + if (registeredDb && (mode == Mode::ADD || registeredDb != db)) + { + qDebug() << ui->generateCheckBox->isChecked(); + setValidState(ui->nameEdit, false, tr("This name is already in use. Please enter unique name.")); + return false; + } + setValidState(ui->nameEdit, true); + + // File if (ui->fileEdit->text().isEmpty()) + { + setValidState(ui->fileEdit, false, tr("Enter a database file path.")); return false; + } - if (ui->nameEdit->text().isEmpty()) + 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())); return false; + } + setValidState(ui->fileEdit, true); + // Type 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; + } if (ui->typeCombo->currentIndex() < 0) + { + setValidState(ui->typeCombo, false, tr("Select a database type.")); return false; + } + setValidState(ui->typeCombo, true); return true; } @@ -480,11 +518,9 @@ void DbDialog::typeChanged(int index) void DbDialog::valueForNameGenerationChanged() { + updateState(); if (!ui->generateCheckBox->isChecked()) - { - updateState(); return; - } DbPlugin* plugin = nullptr; if (dbPlugins.count() > 0) diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp index d835dd1..efb2e6c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp @@ -309,6 +309,7 @@ void IndexDialog::applyIndex() { applyColumnValues(); + ui->uniqueCheck->setChecked(createIndex->uniqueKw); ui->partialIndexCheck->setChecked(createIndex->where != nullptr); if (createIndex->where) ui->partialIndexEdit->setPlainText(createIndex->where->detokenize()); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.cpp index 38f6fe0..d9f05ff 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.cpp @@ -1,5 +1,6 @@ #include "languagedialog.h" #include "ui_languagedialog.h" +#include "uiconfig.h" LanguageDialog::LanguageDialog(QWidget *parent) : QDialog(parent), @@ -32,3 +33,13 @@ void LanguageDialog::setSelectedLang(const QString& lang) ui->comboBox->setCurrentIndex(idx); } + +bool LanguageDialog::didAskForDefaultLanguage() +{ + return CFG_UI.General.LanguageAsked.get(); +} + +void LanguageDialog::askedForDefaultLanguage() +{ + CFG_UI.General.LanguageAsked.set(true); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.h index 7fc0607..d5fbed4 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.h @@ -1,6 +1,7 @@ #ifndef LANGUAGEDIALOG_H #define LANGUAGEDIALOG_H +#include "guiSQLiteStudio_global.h" #include <QMap> #include <QDialog> @@ -8,7 +9,7 @@ namespace Ui { class LanguageDialog; } -class LanguageDialog : public QDialog +class GUI_API_EXPORT LanguageDialog : public QDialog { Q_OBJECT @@ -20,6 +21,9 @@ class LanguageDialog : public QDialog QString getSelectedLang() const; void setSelectedLang(const QString& lang); + static bool didAskForDefaultLanguage(); + static void askedForDefaultLanguage(); + private: Ui::LanguageDialog *ui; }; |
