QBinaryTranslate/TranslateUI/ExtractRuleView.h

61 lines
1.5 KiB
C++

#pragma once
#include <QWidget>
#include <QTableView>
#include <QStandardItemModel>
#include <QTreeView>
#include <QLineEdit>
#include <QStackedWidget>
#include <QSpinBox>
#include <QCheckBox>
#include "extract_basic.h"
#include "TranslateBasic.h"
namespace unit_configurations {
class SingleBasedConfiguration : public QWidget {
public:
SingleBasedConfiguration(std::shared_ptr<TranslateBasic> core, QWidget* p = nullptr);
};
/// <summary>
/// Áбí×Ö¶ÎÅäÖÃÃæ°å
/// </summary>
class ListBasedConfiguration : public QWidget {
Q_OBJECT
private:
std::shared_ptr<TranslateBasic> _bind_core;
std::shared_ptr<extract::ListBasedUnit> _bind_u;
QModelIndex _bind_index;
QComboBox* const _rule_select;
QComboBox* const _size_layout_select;
QStackedWidget* const _configs_stack;
QSpinBox* const _const_number_input;
QComboBox* const _prev_field_refer;
public:
ListBasedConfiguration(std::shared_ptr<TranslateBasic> core, QWidget* p = nullptr);
};
class UnionBasedConfiguration : public QWidget {
public:
UnionBasedConfiguration(std::shared_ptr<TranslateBasic> core, QWidget* p = nullptr);
};
}
class ExtractRuleView : public QWidget
{
private:
QTableView *const _member_units;
QStandardItemModel *const _member_model;
QStackedWidget* const _configs_stack;
std::shared_ptr<extract::AsRuleSet> _rule_base;
std::shared_ptr<FieldManagerLayer> _current_fields_cache = nullptr;
public:
ExtractRuleView(std::shared_ptr<TranslateBasic> base,
std::shared_ptr<extract::AsRuleSet> inst_r, QWidget* p = nullptr);
};