aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/constraints/constraintcheckpanel.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/constraints/constraintcheckpanel.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/constraints/constraintcheckpanel.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/constraints/constraintcheckpanel.h b/SQLiteStudio3/guiSQLiteStudio/constraints/constraintcheckpanel.h
new file mode 100644
index 0000000..5098880
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/constraints/constraintcheckpanel.h
@@ -0,0 +1,49 @@
+#ifndef CONSTRAINTCHECKPANEL_H
+#define CONSTRAINTCHECKPANEL_H
+
+#include "constraintpanel.h"
+#include "parser/ast/sqliteconflictalgo.h"
+#include "guiSQLiteStudio_global.h"
+#include <QWidget>
+
+namespace Ui {
+ class ConstraintCheckPanel;
+}
+
+class GUI_API_EXPORT ConstraintCheckPanel : public ConstraintPanel
+{
+ Q_OBJECT
+
+ public:
+ explicit ConstraintCheckPanel(QWidget *parent = 0);
+ ~ConstraintCheckPanel();
+
+ bool validate();
+ bool validateOnly();
+
+ protected:
+ void changeEvent(QEvent *e);
+ void constraintAvailable();
+ void storeConfiguration();
+ virtual SqliteExpr* readExpr() = 0;
+ virtual QString readName() = 0;
+ virtual void storeType() = 0;
+ virtual SqliteConflictAlgo readConflictAlgo() = 0;
+ virtual void storeExpr(SqliteExpr* expr) = 0;
+ virtual void storeName(const QString& name) = 0;
+ virtual void storeConflictAlgo(SqliteConflictAlgo algo) = 0;
+ virtual SqliteCreateTable* getCreateTable() = 0;
+
+ private:
+ void init();
+ void readConstraint();
+ void updateVirtualSql();
+ SqliteExprPtr parseExpression(const QString& sql);
+
+ Ui::ConstraintCheckPanel *ui = nullptr;
+
+ private slots:
+ void updateState();
+};
+
+#endif // CONSTRAINTCHECKPANEL_H