aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
commit7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch)
treea35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h
new file mode 100644
index 0000000..b2c0d68
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h
@@ -0,0 +1,89 @@
+#ifndef DBDIALOG_H
+#define DBDIALOG_H
+
+#include "db/db.h"
+#include "db/dbpluginoption.h"
+#include "guiSQLiteStudio_global.h"
+#include <QDialog>
+#include <QList>
+#include <QHash>
+#include <QStringList>
+
+class DbPlugin;
+class QGridLayout;
+struct DbPluginOption;
+
+namespace Ui {
+ class DbDialog;
+}
+
+class GUI_API_EXPORT DbDialog : public QDialog
+{
+ Q_OBJECT
+
+ public:
+ enum Mode
+ {
+ ADD,
+ EDIT
+ };
+
+ DbDialog(Mode mode, QWidget *parent = 0);
+ ~DbDialog();
+
+ void setDb(Db* db);
+ void setPermanent(bool perm);
+
+ QString getPath();
+ void setPath(const QString& path);
+ QString getName();
+ QHash<QString,QVariant> collectOptions();
+ bool isPermanent();
+
+ protected:
+ void changeEvent(QEvent *e);
+ void showEvent(QShowEvent* e);
+
+ private:
+ void init();
+ void updateOptions();
+ void addOption(const DbPluginOption& option, int row);
+ QWidget* getEditor(const DbPluginOption& opt, QWidget *&editorHelper);
+ QVariant getValueFrom(DbPluginOption::Type type, QWidget* editor);
+ void setValueFor(DbPluginOption::Type type, QWidget* editor, const QVariant& value);
+ void updateType();
+ Db* getDb();
+ bool testDatabase();
+ bool validate();
+ void updateState();
+
+ Ui::DbDialog *ui = nullptr;
+ Mode mode;
+ QStringList existingDatabaseNames;
+ Db* db = nullptr;
+ QList<DbPlugin*> dbPlugins;
+ QList<QWidget*> optionWidgets;
+ QHash<QString,QWidget*> optionKeyToWidget;
+ QHash<QString,DbPluginOption::Type> optionKeyToType;
+ QHash<QWidget*,QString> helperToKey;
+ QWidget* lastWidgetInTabOrder = nullptr;
+
+ static const constexpr int ADDITIONAL_ROWS_BEGIN_INDEX = 4;
+
+ private slots:
+ 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);
+
+ public slots:
+ void accept();
+};
+
+#endif // DBDIALOG_H