#pragma once #include #include #include class ChannelList; class MessageList; class AccountList; class DbManager; class UtunNode; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent, DbManager* db, const QString& cfgPath, const QString& dbPath = QString(), const QString& debugFile = QString(), const QString& debugLevel = QString(), const QString& debugCategories = QString()); ~MainWindow() override; protected: void closeEvent(QCloseEvent *event) override; private slots: void onTrayActivated(QSystemTrayIcon::ActivationReason reason); void showInviteDialog(const QString& channelId); void showJoinDialog(); void onCreateGroupRequested(); void showSettings(); public: void onMessageReceived(const char* ch_id); void reloadChannels(); private: void setupUi(); void setupTray(); void setupNode(); void setupMessaging(); ChannelList *m_channelList; MessageList *m_messageList; AccountList *m_accountList; QSystemTrayIcon *m_trayIcon; QMenu *m_trayMenu; DbManager *m_db; UtunNode *m_node = nullptr; QString m_cfgPath; QString m_cfgDbPath; QString m_cfgDebugFile; QString m_cfgDebugLevel; QString m_cfgDebugCategories; };