QBinaryTranslate/TranslateUI/StructuralRuleView.h

87 lines
1.9 KiB
C++

#pragma once
#include <QWidget>
#include <QTableView>
#include <QStandardItemModel>
#include <QTreeView>
#include <QLineEdit>
#include <QStackedWidget>
#include <QSpinBox>
#include <QCheckBox>
#include "SequenceView.h"
/// <summary>
/// ¿Õ°×ÅäÖÃÃæ°å
/// </summary>
class EmptyConfiguration : public QWidget {
public:
EmptyConfiguration(QWidget* p = nullptr);
};
class CountWithinConfiguration : public QWidget {
Q_OBJECT
private:
std::shared_ptr<ExtractUnit> _bind_u;
QModelIndex _bind_index;
QSpinBox *const _count_input;
public:
CountWithinConfiguration(QWidget* p = nullptr);
void currentRuleAccept(std::shared_ptr<ExtractUnit> u, const QModelIndex& i);
signals:
void currentRuleChanged(const QModelIndex& idx);
};
class EncodingConfiguration : public QWidget {
Q_OBJECT
private:
std::shared_ptr<ExtractUnit> _bind_u;
QModelIndex _bind_index;
QSpinBox* const _count_input;
QComboBox* const _encoding_set;
public:
EncodingConfiguration(QWidget* p = nullptr);
void currentRuleAccept(std::shared_ptr<ExtractUnit> u, const QModelIndex& i);
signals:
void currentRuleChanged(const QModelIndex& idx);
};
#include "extract_basic.h"
class BitCombineConfiguration : public QWidget {
Q_OBJECT
private:
std::shared_ptr<extract::BytesAsBitCombine> _bind_u;
QModelIndex _bind_index;
QSpinBox* const _count_input;
QTableView *const _bit_items;
QStandardItemModel *const _bit_model;
QSpinBox *const _index_appoint;
QLineEdit *const _bit_means;
public:
BitCombineConfiguration(QWidget* p = nullptr);
void currentRuleAccept(std::shared_ptr<ExtractUnit> u, const QModelIndex& i);
void reloadContent(std::shared_ptr<extract::BytesAsBitCombine> u);
signals:
void currentRuleChanged(const QModelIndex& idx);
};
class StructuralRuleView : public QWidget
{
private:
SequenceRulesView* const _sequence_view;
QStackedWidget* const _configs_stack;
public:
StructuralRuleView(QWidget* p = nullptr);
};