From 306d6d3ca9c9ad774d19135681a7f9805f77035f Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sun, 22 Feb 2015 14:06:29 -0500 Subject: Imported Upstream version 3.0.3 --- .../guiSQLiteStudio/dialogs/aboutdialog.cpp | 32 ++++++++-- .../guiSQLiteStudio/dialogs/aboutdialog.h | 4 +- .../guiSQLiteStudio/dialogs/aboutdialog.ui | 68 ++++++++++++++++++---- SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp | 44 ++++++++++++-- .../guiSQLiteStudio/dialogs/indexdialog.cpp | 1 + .../guiSQLiteStudio/dialogs/languagedialog.cpp | 11 ++++ .../guiSQLiteStudio/dialogs/languagedialog.h | 6 +- 7 files changed, 144 insertions(+), 22 deletions(-) (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs') 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 #include +#include +#include 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(sender()->parent()); + if (!list) + return; + + QList 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 @@ Icon directories + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -67,6 +70,9 @@ Qt::ActionsContextMenu + + QAbstractItemView::ExtendedSelection + @@ -74,6 +80,9 @@ Form directories + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -81,6 +90,9 @@ Qt::ActionsContextMenu + + QAbstractItemView::ExtendedSelection + @@ -88,6 +100,19 @@ Plugin directories + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Configuration directory + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -95,6 +120,19 @@ Application directory + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::ActionsContextMenu + + + QAbstractItemView::ExtendedSelection + @@ -104,17 +142,20 @@ - - + + - Configuration directory + Qt version: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - Qt::ActionsContextMenu + + + + @@ -125,15 +166,18 @@ - - + + - Qt version: + SQLite 3 version: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + 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 #include @@ -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; }; -- cgit v1.2.3