aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dialogs/indexexprcolumndialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/indexexprcolumndialog.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/indexexprcolumndialog.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexexprcolumndialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexexprcolumndialog.h
new file mode 100644
index 0000000..5e4fde5
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexexprcolumndialog.h
@@ -0,0 +1,47 @@
+#ifndef INDEXEXPRCOLUMNDIALOG_H
+#define INDEXEXPRCOLUMNDIALOG_H
+
+#include <QDialog>
+
+class SqliteExpr;
+class Db;
+
+namespace Ui {
+ class IndexExprColumnDialog;
+}
+
+class IndexExprColumnDialog : public QDialog
+{
+ Q_OBJECT
+
+ public:
+ explicit IndexExprColumnDialog(Db* db, QWidget *parent = 0);
+ IndexExprColumnDialog(Db* db, SqliteExpr* col, QWidget *parent = 0);
+ ~IndexExprColumnDialog();
+
+ SqliteExpr* getColumn() const;
+ void setTableColumns(const QStringList& value);
+ void setExistingExprColumnKeys(const QStringList& value);
+
+ private:
+ void readColumn(SqliteExpr* col);
+ void setOkEnabled(bool enabled);
+ SqliteExpr* parseExpr();
+ bool checkRestrictions(QString& errorMsg);
+
+ Ui::IndexExprColumnDialog *ui;
+ SqliteExpr* theColumn = nullptr;
+ QString lastValidatedText;
+ Db* db = nullptr;
+ QStringList tableColumns;
+ QStringList existingExprColumnKeys;
+
+ public slots:
+ void accept();
+ int exec();
+
+ private slots:
+ void validate();
+};
+
+#endif // INDEXEXPRCOLUMNDIALOG_H