#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "asyncdbconnection.h" #include "connectionconfig.h" #include "tsqueue.h" #include #include #include #include #include #include "PgsqlConn.h" #include #include #include //class ExplainRoot; //class QueryResultModel; //class QueryExplainModel; namespace Ui { class MainWindow; } namespace Pgsql { class Connection; } class QueryTab; class QCloseEvent; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void setConfig(const ConnectionConfig &config); /* Meant to be called from other threads to pass a code block * that has to be executed in the context of the thread of the window. */ void QueueTask(TSQueue::t_Callable c); private: Ui::MainWindow *ui; TSQueue m_taskQueue; ConnectionConfig m_config; QueryTab *GetActiveQueryTab(); void closeEvent(QCloseEvent *event); void showEvent(QShowEvent *event); QueryTab *newSqlPage(); private slots: void processCallableQueue(); void on_actionLoad_SQL_triggered(); void on_actionSave_SQL_triggered(); void on_actionExport_data_triggered(); void on_actionClose_triggered(); void on_actionAbout_triggered(); void on_actionExecute_SQL_triggered(); void on_actionExplain_Analyze_triggered(); void on_actionCancel_triggered(); void on_actionSave_SQL_as_triggered(); void on_actionSave_copy_of_SQL_as_triggered(); void on_actionNew_SQL_triggered(); void on_tabWidget_tabCloseRequested(int index); }; #endif // MAINWINDOW_H