#pragma once #include "LoginWnd.h" #include "WaitWnd.h" #include "QueryThread.h" #include class QListWidgetItem; class Query; namespace Ui { class BrowserWnd; } class BrowserWnd: public QWidget { Q_OBJECT public: BrowserWnd(); ~BrowserWnd(); /** Must be called *after* the event loop was started, i.e. use QTimer::singleShot(). */ void startConnect(); private: bool test(); void endThread(); void refreshTableList(); void selectQuery(QString queryString, Query *query, QString tableName); void addNewQuery(const QString &tableName = QString()); LoginWnd *m_loginWnd{nullptr}; WaitWnd *m_waitWnd{nullptr}; Ui::BrowserWnd *m_ui{nullptr}; QueryWorker *m_queryWorker{nullptr}; QThread *m_queryThread{nullptr}; Query *m_waitingQueryWidget{nullptr}; int m_newQueryCounter{0}; private slots: void slotFilterTableList(const QString &filter); void slotFilterTableItemChanged(QListWidgetItem *item); void slotConnectResult(const QString &); void slotNewTableList(QStringList); void slotHeart(); /*void slotSelectQueryResult(QString errorMsg, DataModel* dataModel); void slotSelectQueryStatus(int percent); void slotQueryQuery(QString); // when the query widget starts a query....*/ void slotTabCloseRequested(int); /*void slotExecute(QString, QVariant, QModelIndex); void slotExecuteQueryResult(bool success, QString msg, QVariant val, QModelIndex onThisPosition);*/ void slotAddNewQuery(); void slotShowWait(const QString &msg); void slotHideWait(); signals: void signalConnect(const LoginData &data); void signalGetTableList(); };