globalinfo.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. bool addCacheInfo(QSharedPointer<ProjectInfo> & info);
  27. inline PackInfoManger * packInfoManger() {return packmanger;}
  28. QString packNum();
  29. double currentWidght;
  30. inline bool isNoLine() {return _isNoLine;}
  31. inline PackInfoManger * packLocalManger(){return packmanger;}
  32. inline QSharedPointer<ProjectInfo> project(const QString & name){return _project.value(name);}
  33. //打包配置
  34. inline const DaBaoConfig & dbConfig() const {return _dbConfig;}
  35. // 等级配置
  36. inline const QList<DengJiConfigItem> & dengJiList() {return _dengJiList;}
  37. void printerBox(QSharedPointer<BoxInfo> info);
  38. void printerPack(QSharedPointer<PackInfo> info);
  39. signals:
  40. void dbConfigUpdated();
  41. void dengJiUped();
  42. void doInited();
  43. public slots:
  44. void start(UserInfo & user,bool online);
  45. private slots:
  46. void syncProject(ProjectInfoManger * manger, bool inited);
  47. void configUpdate(const DaBaoConfig & config);
  48. void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
  49. private:
  50. QMap<QString,QSharedPointer<ProjectInfo>> _project;
  51. QList<QSharedPointer<ProjectInfo>> _serverInfo;
  52. QList<QSharedPointer<ProjectInfo>> _cacheInfo;
  53. friend class ProjectInfoManger;
  54. DaBaoConfig _dbConfig;
  55. QList<DengJiConfigItem> _dengJiList;
  56. void initInfo();
  57. private:
  58. ConfigInfo _config;
  59. QString pack_num;
  60. UserInfo _users;
  61. bool _isNoLine;
  62. private:
  63. PackInfoManger * packmanger;
  64. PrinterThreadHandle * _printer;
  65. SerialThreadHandle * _serial;//t
  66. RemotePackConfig * _remoteConfig;
  67. ProjectInfoManger * _projectmanger;
  68. };
  69. #endif // GLOBALINFO_H