MainPanel.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include <QStringList>
  3. #include <QWidget>
  4. #include "qobjectdefs.h"
  5. #include <QMutex>
  6. #include <QWaitCondition>
  7. class QSplitter;
  8. class QListWidget;
  9. class UserProfileWidget;
  10. class ChatWindow;
  11. class QListWidgetItem;
  12. class WebSocketClient;
  13. class MainPanel : public QWidget
  14. {
  15. Q_OBJECT
  16. public:
  17. explicit MainPanel(QWidget *parent = nullptr);
  18. ~MainPanel();
  19. void setRole(const QStringList &roleList);
  20. void setPushRoomId(const QString &room);
  21. QListWidget *roomListWidget() { return m_roomListWidget; }
  22. signals:
  23. void logoutClicked();
  24. private:
  25. void setPlayerWidget(QWidget *newPlayer);
  26. void roomItemChanged(QListWidgetItem *item);
  27. private:
  28. QSplitter *splitter = nullptr;
  29. QWidget *playerContainer = nullptr;
  30. QWidget *playerWidget = nullptr;
  31. UserProfileWidget *userProfile = nullptr;
  32. ChatWindow *chatView = nullptr;
  33. QListWidget *m_roomListWidget = nullptr;
  34. WebSocketClient *webSocketClient = nullptr;
  35. bool m_isStartingPlay = false;
  36. QMutex m_playMutex;
  37. QWaitCondition m_playCond;
  38. };