#pragma once #include #include #include "TranslateBasic.h" enum class ViewType { /// /// ÌáÈ¡ÅäÖà /// ExtractConfiguration, /// /// УÑéÅäÖà /// ValidateConfiguration, }; class ViewManager : public QObject { Q_OBJECT private: std::shared_ptr _translate_core = nullptr; QList, QWidget*, ViewType>> content_pages; public: ViewManager(std::shared_ptr base, QObject* p = nullptr); public slots: void open(const QString& rule_name, ViewType v_type, QWidget* p = nullptr); void closeAt(int index); void active(const QString& rule_name, ViewType v_type); void purge(const QString& rule_name); signals: void appendRequest(QWidget* view, const QString& title); void removeRequest(int index); void activeRequest(int index, const QString& new_title); }; #include class TranslateUI : public QMainWindow { Q_OBJECT private: QTabWidget *const _tab_widget; QTreeView* const _ruleset_navi; QStandardItemModel* _solution_model = nullptr; public: struct __Private { std::shared_ptr _translate_core = nullptr; ViewManager* _view_mgr = nullptr; } _core; public: TranslateUI(QWidget* parent = nullptr); ~TranslateUI(); void addCustomRule(); void openExtractView(); void removeCustomRule(const QString &typeAlias); void present_solution_customs(std::shared_ptr ins, QStandardItemModel* model) const; };