QBinaryTranslate/TranslateUI/WrapConfigs.h

119 lines
3.0 KiB
C
Raw Permalink Normal View History

2025-08-10 09:02:18 +00:00
#pragma once
#include <QWidget>
#include <QStandardItemModel>
#include <QTableView>
#include <QStackedWidget>
2025-08-11 14:11:20 +00:00
#include <QDialog>
2025-08-10 09:02:18 +00:00
#include <QStyledItemDelegate>
#include "TranslateBasic.h"
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0BCAD><EFBFBD><EFBFBD>
/// </summary>
class RuleSelectDelegate : public QStyledItemDelegate {
private:
std::shared_ptr<TranslateBasic> _kernel;
public:
RuleSelectDelegate(std::shared_ptr<TranslateBasic> ins);
virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
virtual void setEditorData(QWidget* editor, const QModelIndex& index) const override;
virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
virtual void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
};
2025-08-11 14:11:20 +00:00
class WrapConfigs : public QDialog {
2025-08-10 09:02:18 +00:00
private:
std::shared_ptr<TranslateBasic> _bind_base;
QTableView *const _alias_view;
QStandardItemModel *const _alias_model;
QStackedWidget *const _configurations;
public:
WrapConfigs(std::shared_ptr<TranslateBasic> _base, QWidget *p=nullptr);
void aliasReload();
void aliasAppend();
void aliasRemove();
void dataChanged(QStandardItem *cell);
};
2025-08-10 09:46:08 +00:00
#include <QSpinBox>
#include <QComboBox>
namespace configurations {
/// <summary>
/// <20>հ<EFBFBD><D5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
class EmptyConfiguration : public QWidget {
public:
EmptyConfiguration(QWidget* p = nullptr);
};
/// <summary>
/// <20>ֶγ<D6B6><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
class CountWithinConfiguration : public QWidget {
Q_OBJECT
private:
2025-08-10 10:03:02 +00:00
std::shared_ptr<ExtractDelegate> _bind_u;
2025-08-10 09:46:08 +00:00
QModelIndex _bind_index;
QSpinBox* const _count_input;
public:
CountWithinConfiguration(QWidget* p = nullptr);
2025-08-10 10:03:02 +00:00
void currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i);
2025-08-10 09:46:08 +00:00
signals:
void currentRuleChanged(const QModelIndex& idx);
};
/// <summary>
/// <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
class EncodingConfiguration : public QWidget {
Q_OBJECT
private:
2025-08-10 10:03:02 +00:00
std::shared_ptr<ExtractDelegate> _bind_u;
2025-08-10 09:46:08 +00:00
QModelIndex _bind_index;
QSpinBox* const _count_input;
QComboBox* const _encoding_set;
public:
EncodingConfiguration(QWidget* p = nullptr);
2025-08-10 10:03:02 +00:00
void currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i);
2025-08-10 09:46:08 +00:00
signals:
void currentRuleChanged(const QModelIndex& idx);
};
/// <summary>
/// λ<><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
class BitCombineConfiguration : public QWidget {
Q_OBJECT
private:
std::shared_ptr<extract::AsBitCombine> _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);
2025-08-10 10:03:02 +00:00
void currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i);
2025-08-10 09:46:08 +00:00
void reloadContent(std::shared_ptr<extract::AsBitCombine> u);
signals:
void currentRuleChanged(const QModelIndex& idx);
};
}