1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#ifndef TRIGGERDIALOG_H
#define TRIGGERDIALOG_H
#include "db/db.h"
#include "parser/ast/sqlitecreatetrigger.h"
#include "guiSQLiteStudio_global.h"
#include <QDialog>
namespace Ui {
class TriggerDialog;
}
class GUI_API_EXPORT TriggerDialog : public QDialog
{
Q_OBJECT
public:
explicit TriggerDialog(Db* db, QWidget *parent = 0);
~TriggerDialog();
void setParentTable(const QString& name);
void setParentView(const QString& name);
void setTrigger(const QString& name);
static void staticInit();
protected:
void changeEvent(QEvent *e);
private:
void init();
void initTrigger();
void parseDdl();
void readTrigger();
void setupVirtualSqls();
void readColumns();
QString getTargetObjectName() const;
void rebuildTrigger();
static QStringList tableEventNames;
static QStringList viewEventNames;
QString originalTriggerName;
QString trigger;
QString table;
QString view;
Db* db = nullptr;
bool forTable = true;
bool existingTrigger = false;
QStringList targetColumns;
QStringList selectedColumns;
QString ddl;
QString originalDdl;
SqliteCreateTriggerPtr createTrigger;
Ui::TriggerDialog *ui = nullptr;
private slots:
void updateState();
void updateValidation();
void showColumnsDialog();
void updateDdlTab(int tabIdx);
void tableChanged(const QString& newValue);
public slots:
void accept();
};
#endif // TRIGGERDIALOG_H
|