globalinfo.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. #include "handle/autosyncpackinfo.h"
  14. class GlobalInfo : public QObject
  15. {
  16. Q_OBJECT
  17. private:
  18. explicit GlobalInfo(QObject *parent = nullptr);
  19. public:
  20. static GlobalInfo * this_();
  21. // 所有配置都从这儿加载和写入,不允许在新建ConfigInfo
  22. inline ConfigInfo * config() {return &_config;}
  23. inline const UserInfo & user() const {return _users;}
  24. inline QMap<QString,QSharedPointer<ProjectInfo>> project() {return _project;}
  25. inline QList<QSharedPointer<ProjectInfo>> serverInfo() {return _serverInfo;}
  26. inline QList<QSharedPointer<ProjectInfo>> cacheInfo() {return _cacheInfo;}
  27. QList<QSharedPointer<ProjectInfo>> searchProject(const QString & name);
  28. bool addCacheInfo(QSharedPointer<ProjectInfo> & info);
  29. inline PackInfoManger * packInfoManger() {return packmanger;}
  30. QString packNum();
  31. double currentWidght;
  32. inline bool isNoLine() {return _isNoLine;}
  33. inline PackInfoManger * packLocalManger(){return packmanger;}
  34. inline QSharedPointer<ProjectInfo> project(const QString & name){return _project.value(name);}
  35. //打包配置
  36. inline const DaBaoConfig & dbConfig() const {return _dbConfig;}
  37. // 等级配置
  38. inline const QList<DengJiConfigItem> & dengJiList() {return _dengJiList;}
  39. void printerBox(QSharedPointer<BoxInfo> info);
  40. void printerPack(QSharedPointer<PackInfo> info);
  41. // 同步调用
  42. void doSync(QDate & tm);
  43. //推出帐号别忘调用
  44. void logOut();
  45. signals:
  46. void dbConfigUpdated();
  47. void dengJiUped();
  48. void doInited();
  49. void logOuted();
  50. public slots:
  51. void start(UserInfo & user,bool online);
  52. private slots:
  53. void syncProject(ProjectInfoManger * manger, bool inited);
  54. void configUpdate(const DaBaoConfig & config);
  55. void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
  56. private:
  57. QMap<QString,QSharedPointer<ProjectInfo>> _project;
  58. QList<QSharedPointer<ProjectInfo>> _serverInfo;
  59. QList<QSharedPointer<ProjectInfo>> _cacheInfo;
  60. friend class ProjectInfoManger;
  61. DaBaoConfig _dbConfig;
  62. QList<DengJiConfigItem> _dengJiList;
  63. void initInfo();
  64. private:
  65. ConfigInfo _config;
  66. QString pack_num;
  67. UserInfo _users;
  68. bool _isNoLine;
  69. private:
  70. PackInfoManger * packmanger;
  71. PrinterThreadHandle * _printer;
  72. SerialThreadHandle * _serial;
  73. RemotePackConfig * _remoteConfig;
  74. ProjectInfoManger * _projectmanger;
  75. AutoSyncPackInfo * _syncPack;
  76. };
  77. #endif // GLOBALINFO_H