globalinfo.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #ifndef GLOBALINFO_H
  2. #define GLOBALINFO_H
  3. #include <QObject>
  4. #include "configinfo.h"
  5. #include "struct_/projectinfo.h"
  6. #include <QMap>
  7. #include "handle/projectinfomanger.h"
  8. #include "handle/packinfomanger.h"
  9. #include "handle/printerthreadhandle.h"
  10. #include "handle/serialthreadhandle.h"
  11. #include "handle/remotepackconfig.h"
  12. #include "handle/projectinfomanger.h"
  13. class GlobalInfo : public QObject
  14. {
  15. Q_OBJECT
  16. private:
  17. explicit GlobalInfo(QObject *parent = nullptr);
  18. public:
  19. static GlobalInfo * this_();
  20. // 所有配置都从这儿加载和写入,不允许在新建ConfigInfo
  21. inline ConfigInfo * config() {return &_config;}
  22. inline const UserInfo & user() const {return _users;}
  23. inline QMap<QString,QSharedPointer<ProjectInfo>> project() {return _project;}
  24. inline QList<QSharedPointer<ProjectInfo>> serverInfo() {return _serverInfo;}
  25. inline QList<QSharedPointer<ProjectInfo>> cacheInfo() {return _cacheInfo;}
  26. QList<QSharedPointer<ProjectInfo>> searchProject(const QString & name);
  27. bool addCacheInfo(QSharedPointer<ProjectInfo> & info);
  28. inline PackInfoManger * packInfoManger() {return packmanger;}
  29. QString packNum();
  30. double currentWidght;
  31. inline bool isNoLine() {return _isNoLine;}
  32. inline PackInfoManger * packLocalManger(){return packmanger;}
  33. inline QSharedPointer<ProjectInfo> project(const QString & name){return _project.value(name);}
  34. //打包配置
  35. inline const DaBaoConfig & dbConfig() const {return _dbConfig;}
  36. // 等级配置
  37. inline const QList<DengJiConfigItem> & dengJiList() {return _dengJiList;}
  38. void printerBox(QSharedPointer<BoxInfo> info);
  39. void printerPack(QSharedPointer<PackInfo> info);
  40. signals:
  41. void dbConfigUpdated();
  42. void dengJiUped();
  43. void doInited();
  44. public slots:
  45. void start(UserInfo & user,bool online);
  46. private slots:
  47. void syncProject(ProjectInfoManger * manger, bool inited);
  48. void configUpdate(const DaBaoConfig & config);
  49. void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
  50. private:
  51. QMap<QString,QSharedPointer<ProjectInfo>> _project;
  52. QList<QSharedPointer<ProjectInfo>> _serverInfo;
  53. QList<QSharedPointer<ProjectInfo>> _cacheInfo;
  54. friend class ProjectInfoManger;
  55. DaBaoConfig _dbConfig;
  56. QList<DengJiConfigItem> _dengJiList;
  57. void initInfo();
  58. private:
  59. ConfigInfo _config;
  60. QString pack_num;
  61. UserInfo _users;
  62. bool _isNoLine;
  63. private:
  64. PackInfoManger * packmanger;
  65. PrinterThreadHandle * _printer;
  66. SerialThreadHandle * _serial;
  67. RemotePackConfig * _remoteConfig;
  68. ProjectInfoManger * _projectmanger;
  69. };
  70. #endif // GLOBALINFO_H