#ifndef COMNTOOLS_H #define COMNTOOLS_H #include #include #include namespace Tools { class Run { public: Run(bool manual_flag, std::function judge, std::function execution); void exec(); private: bool manual; std::function judgement; std::function execution; }; class StatusSyncCore : public QObject { public: explicit StatusSyncCore(QObject *p = nullptr); virtual ~StatusSyncCore() = default; void widgetEnableSync(QWidget *tar, std::function proc); void actionEnableSync(QAction *tar, std::function proc); void actionCheckSync(QAction *tar, std::function proc); void registerTrigger(std::function judge, std::function exec); Run *registerManualRun(std::function judge, std::function exec); void sync(); private: QHash> widget_trigger_map; QHash> action_trigger_map; QList alltriggers; }; } // namespace Tools #endif // COMNTOOLS_H