#ifndef CONNECTIONDIALOG_H #define CONNECTIONDIALOG_H #include "global.h" #include QT_BEGIN_NAMESPACE namespace Ui { class ConnectionDialog; } QT_END_NAMESPACE class MainWindow; class MaskLayer; class CustomBorderContainer; class ConnectionDialog : public QDialog { Q_OBJECT public: ConnectionDialog(QWidget *parent = nullptr); ~ConnectionDialog(); void setMainWindow(MainWindow*); void setErrorInfo(const QString&); void clearErrorInfo(); Q_INVOKABLE void showMask(); Q_INVOKABLE void hideMask(); protected: virtual void showEvent(QShowEvent*); virtual void closeEvent(QCloseEvent*); private: void initialize(); void appendConnListItem(const QString&, const QString&, const QString&); void addNewConnListItem(); void removeConnListItem(int); void loadConnInfo(const QString&); Ui::ConnectionDialog *ui; MaskLayer* m_pMaskLayer; MainWindow* m_pMainWindow; bool m_isNewStatus;//是否是新建链接编辑状态 int m_curConnListRow; CustomBorderContainer* m_customBorderContainer; signals: void addConnection(const DatabaseConfig&); void updateConnectionInfo(const DatabaseConfig&); public slots: void onBtnClicked_open(); void onBtnClicked_cancle(); void onBtnClicked_save(); void onBtnClicked_add(); void onBtnClicked_remove(); void onComboxChanged_dbType(const QString&); void onTableCellClicked_connList(int, int); void onTableCellDbClicked_connList(int, int); }; #endif // CONNECTIONDIALOG_H