aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dialogs/constraintdialog.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/constraintdialog.h
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/constraintdialog.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/constraintdialog.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/constraintdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/constraintdialog.h
new file mode 100644
index 0000000..fe24c0f
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/constraintdialog.h
@@ -0,0 +1,79 @@
+#ifndef CONSTRAINTDIALOG_H
+#define CONSTRAINTDIALOG_H
+
+#include "parser/ast/sqlitecreatetable.h"
+#include "db/db.h"
+#include "guiSQLiteStudio_global.h"
+#include <QDialog>
+#include <QPointer>
+
+namespace Ui {
+ class ConstraintDialog;
+}
+
+class ConstraintPanel;
+
+class GUI_API_EXPORT ConstraintDialog : public QDialog
+{
+ Q_OBJECT
+
+ public:
+ enum Mode
+ {
+ NEW,
+ EDIT
+ };
+
+ enum Constraint
+ {
+ PK,
+ FK,
+ UNIQUE,
+ NOTNULL,
+ CHECK,
+ COLLATE,
+ DEFAULT,
+ UNKNOWN
+ };
+
+ enum Type
+ {
+ TABLE,
+ COLUMN
+ };
+
+ explicit ConstraintDialog(Mode mode, SqliteCreateTable::Constraint* constraint, SqliteCreateTable* createTable, Db* db,
+ QWidget *parent = 0);
+ explicit ConstraintDialog(Mode mode, SqliteCreateTable::Column::Constraint* constraint, SqliteCreateTable::Column* column, Db* db,
+ QWidget *parent = 0);
+ ~ConstraintDialog();
+
+ SqliteStatement* getConstraint();
+
+ protected:
+ void changeEvent(QEvent *e);
+
+ private:
+ void init();
+ Constraint getSelectedConstraint();
+ Constraint getSelectedConstraint(SqliteCreateTable::Constraint* constraint);
+ Constraint getSelectedConstraint(SqliteCreateTable::Column::Constraint* constraint);
+ ConstraintPanel* createConstraintPanel();
+ void updateDefinitionHeader();
+
+ Ui::ConstraintDialog *ui = nullptr;
+ Type type;
+ Mode mode;
+ Db* db = nullptr;
+ SqliteStatement* constrStatement = nullptr;
+ QPointer<SqliteCreateTable> createTable;
+ QPointer<SqliteCreateTable::Column> columnStmt;
+ QHash<int,QWidget> panels;
+ ConstraintPanel* currentPanel = nullptr;
+
+ private slots:
+ void validate();
+ void storeConfiguration();
+};
+
+#endif // CONSTRAINTDIALOG_H