diff options
| author | 2014-12-06 17:33:25 -0500 | |
|---|---|---|
| committer | 2014-12-06 17:33:25 -0500 | |
| commit | 7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch) | |
| tree | a35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.h | |
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.h')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.h | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.h new file mode 100644 index 0000000..c567e1a --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.h @@ -0,0 +1,113 @@ +#ifndef COLUMNDIALOG_H +#define COLUMNDIALOG_H + +#include "parser/ast/sqlitecreatetable.h" +#include "common/extactioncontainer.h" +#include "constraintdialog.h" +#include "guiSQLiteStudio_global.h" +#include <QDialog> +#include <QPointer> + +class ColumnDialogConstraintsModel; +class QCheckBox; +class QToolButton; + +namespace Ui { + class ColumnDialog; +} + +class GUI_API_EXPORT ColumnDialog : public QDialog, public ExtActionContainer +{ + Q_OBJECT + + public: + enum Action + { + ADD_CONSTRAINT, + EDIT_CONSTRAINT, + DEL_CONSTRAINT, + MOVE_CONSTRAINT_UP, + MOVE_CONSTRAINT_DOWN, + ADD_PK, + ADD_FK, + ADD_UNIQUE, + ADD_CHECK, + ADD_DEFAULT, + ADD_NOT_NULL, + ADD_COLLATE + }; + + enum ToolBar + { + }; + + explicit ColumnDialog(Db* db, QWidget *parent = 0); + ~ColumnDialog(); + + void init(); + void setColumn(SqliteCreateTable::Column* value); + SqliteCreateTable::Column* getModifiedColumn(); + QToolBar* getToolBar(int toolbar) const; + + protected: + void changeEvent(QEvent *e); + void createActions(); + void setupDefShortcuts(); + + private: + void addConstraint(ConstraintDialog::Constraint mode); + void setupConstraintCheckBoxes(); + void editConstraint(SqliteCreateTable::Column::Constraint* constraint); + void delConstraint(const QModelIndex& idx); + void configureConstraint(SqliteCreateTable::Column::Constraint::Type type); + void addEmptyConstraint(SqliteCreateTable::Column::Constraint::Type type); + void delAllConstraint(SqliteCreateTable::Column::Constraint::Type type); + void constraintToggled(SqliteCreateTable::Column::Constraint::Type type, bool enabled); + void updateConstraintState(SqliteCreateTable::Column::Constraint* constraint); + QCheckBox* getCheckBoxForConstraint(SqliteCreateTable::Column::Constraint* constraint); + QToolButton* getToolButtonForConstraint(SqliteCreateTable::Column::Constraint* constraint); + bool isUnofficialSqlite2Constraint(SqliteCreateTable::Column::Constraint* constraint); + + Ui::ColumnDialog *ui = nullptr; + SqliteCreateTable::ColumnPtr column; + ColumnDialogConstraintsModel* constraintsModel = nullptr; + QCheckBox* modeCheckBox = nullptr; + Db* db = nullptr; + + private slots: + void updateConstraintsToolbarState(); + void updateState(); + void addConstraint(); + void editConstraint(); + void editConstraint(const QModelIndex& idx); + void delConstraint(); + void moveConstraintUp(); + void moveConstraintDown(); + void addPk(); + void addFk(); + void addUnique(); + void addCheck(); + void addCollate(); + void addNotNull(); + void addDefault(); + void configurePk(); + void configureFk(); + void configureUnique(); + void configureCheck(); + void configureCollate(); + void configureNotNull(); + void configureDefault(); + void pkToggled(bool enabled); + void fkToggled(bool enabled); + void uniqueToggled(bool enabled); + void checkToggled(bool enabled); + void collateToggled(bool enabled); + void notNullToggled(bool enabled); + void defaultToggled(bool enabled); + void switchMode(bool advanced); + void updateConstraints(); + void updateConstraint(SqliteCreateTable::Column::Constraint* constraint); + void updateDataType(); +}; + +#endif // COLUMNDIALOG_H |
