diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/constraints/constraintcheckpanel.h')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/constraints/constraintcheckpanel.h | 49 |
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 |
