appevent.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef APPEVENT_H
  2. #define APPEVENT_H
  3. #include <QElapsedTimer>
  4. #include <QObject>
  5. #include "qdebug.h"
  6. class OpTime
  7. {
  8. public:
  9. OpTime(const QString &_name)
  10. : name(_name)
  11. {
  12. elapsedTimer.restart();
  13. }
  14. ~OpTime() { qDebug() << name << elapsedTimer.elapsed(); }
  15. private:
  16. QString name;
  17. QElapsedTimer elapsedTimer;
  18. };
  19. class AppEvent : public QObject
  20. {
  21. Q_OBJECT
  22. explicit AppEvent(QObject *parent = nullptr);
  23. ~AppEvent();
  24. public:
  25. static AppEvent *instance(); // 静态方法返回单例实例
  26. static qint64 time();
  27. // 教室判断是否登录
  28. bool isLogin();
  29. void setJwtToken(const QString &token);
  30. QString jwtToken() const;
  31. bool isRefreshToken() const;
  32. void setRefreshTime(qint64 time) const;
  33. // 考试配置
  34. void setExam(const QString &examRoom, const QString &examNumber);
  35. QString examRoom() const;
  36. QString examNumber() const;
  37. // 配置
  38. bool setConfigValue(const QString &key, const QVariant &value);
  39. QVariant configValue(const QString &key);
  40. bool configLoadJson(const QJsonObject &object);
  41. bool configLoad();
  42. bool configSave();
  43. QJsonObject config() const;
  44. // 自己得配置不导出到客户端的
  45. QStringList configFilter() const;
  46. ;
  47. // 更新数据
  48. void loginUser(qint64 id);
  49. void loginOutUser(qint64 id);
  50. //更新考试信息
  51. void examsTestUpdate();
  52. void webSocketUpdata();
  53. void examQuestionChenge() { emit examQuestionChengeSignal(); }
  54. signals:
  55. void loginUserSignal(qint64 id);
  56. void loginOutUserSignal(qint64 id);
  57. void examsTestUpdateSignal();
  58. void webSocketUpdataSignal();
  59. void examQuestionChengeSignal();
  60. private:
  61. class AppEventPrivate *d;
  62. };
  63. #endif // APPEVENT_H