#pragma once #include #include #include class ChannelList; class MessageList; class AccountList; class DbManager; class MsgClient; class ChatPropagator; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr, DbManager* db = nullptr); ~MainWindow() override = default; protected: void closeEvent(QCloseEvent *event) override; private slots: void onTrayActivated(QSystemTrayIcon::ActivationReason reason); void showInviteDialog(const QString& channelId); private: void setupUi(); void setupTray(); ChannelList *m_channelList; MessageList *m_messageList; AccountList *m_accountList; QSystemTrayIcon *m_trayIcon; QMenu *m_trayMenu; DbManager *m_db; MsgClient *m_client; ChatPropagator *m_propagator; };