#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include "conversations.h" #include "chatwindow.h" #include "settings.h" #include "wsclient.h" #include "lib/config.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(Conversations *ctx, QWidget *parent = nullptr); static MainWindow *getInstance(); static Conversations *getContext(); ~MainWindow() override; Ui::MainWindow *ui; qreal screenDpiRef; QRect screenGeo; QRect screenRect; qreal screenDpi; qreal screenDpiPhysical; qreal screenRatio; signals: void requestChatWindow(QString uid); private slots: void openChatWindow(const QString &uid); void openSettingsWindow(); void onChatWindowClosed(); void rowClicked(QString uid) { emit requestChatWindow(uid); } private: Conversations *m_ctx; static MainWindow *pMainWindow; void closeEvent(QCloseEvent *event) override; void showDebugInfo(); ChatWindow *m_chatWindow = nullptr; Settings *m_settings = nullptr; }; #endif