This commit is contained in:
codeboss 2025-07-18 23:39:28 +08:00
parent cf9af911b8
commit 26821f9543
3 changed files with 16 additions and 15 deletions

View File

@ -33,7 +33,7 @@ void IntDelegate::updateEditorGeometry(QWidget* editor, const QStyleOptionViewIt
} }
#include "TranslateBasic.h" #include "TranslateBasic.h"
void SequenceView::currentRuleRefresh(const QModelIndex& idx) void SequenceRulesView::currentRuleRefresh(const QModelIndex& idx)
{ {
auto new_inst = _rule_sequence.at(idx.row()); auto new_inst = _rule_sequence.at(idx.row());
auto rule_insv = std::dynamic_pointer_cast<AbstractExtractor>(new_inst); auto rule_insv = std::dynamic_pointer_cast<AbstractExtractor>(new_inst);
@ -59,7 +59,7 @@ void SequenceView::currentRuleRefresh(const QModelIndex& idx)
this->resizeColumnsToContents(); this->resizeColumnsToContents();
} }
void SequenceView::peersRuleChanged(const QModelIndex& idx) void SequenceRulesView::peersRuleChanged(const QModelIndex& idx)
{ {
auto rule_idx = idx.sibling(idx.row(), 3); auto rule_idx = idx.sibling(idx.row(), 3);
auto rule_nm = base->extactors()[rule_idx.data(Qt::DisplayRole).toString()]; auto rule_nm = base->extactors()[rule_idx.data(Qt::DisplayRole).toString()];
@ -70,7 +70,7 @@ void SequenceView::peersRuleChanged(const QModelIndex& idx)
} }
#include <QItemSelectionModel> #include <QItemSelectionModel>
SequenceView::SequenceView(QWidget* p /*= nullptr*/) SequenceRulesView::SequenceRulesView(QWidget* p /*= nullptr*/)
:QTableView(p), :QTableView(p),
_sequence_model(new QStandardItemModel), _sequence_model(new QStandardItemModel),
base(std::make_shared<TranslateBasic>()) base(std::make_shared<TranslateBasic>())
@ -87,28 +87,29 @@ SequenceView::SequenceView(QWidget* p /*= nullptr*/)
this->setItemDelegateForColumn(3, rule_delegate); this->setItemDelegateForColumn(3, rule_delegate);
this->setContextMenuPolicy(Qt::CustomContextMenu); this->setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, &QTableView::customContextMenuRequested, this, &SequenceView::customTranslateRuleEdit); connect(this, &QTableView::customContextMenuRequested, this, &SequenceRulesView::customTranslateRuleEdit);
connect(rule_delegate, &RuleSelectDelegate::dataChanged, this, &SequenceView::peersRuleChanged); connect(rule_delegate, &RuleSelectDelegate::dataChanged, this, &SequenceRulesView::peersRuleChanged);
connect(int_delegate, &IntDelegate::valueChanged, this, &SequenceView::currentRuleRefresh); connect(int_delegate, &IntDelegate::valueChanged, this, &SequenceRulesView::currentRuleRefresh);
auto select_model = this->selectionModel(); auto select_model = this->selectionModel();
connect(select_model, &QItemSelectionModel::currentRowChanged, [=](const QModelIndex& curr) { connect(select_model, &QItemSelectionModel::currentRowChanged, [=](const QModelIndex& curr) {
if (!curr.isValid()) if (!curr.isValid())
return; return;
emit this->currentRuleChanged(_rule_sequence[curr.row()]); }); emit this->currentRuleChanged(_rule_sequence[curr.row()]);
});
} }
#include <QMenu> #include <QMenu>
void SequenceView::customTranslateRuleEdit(const QPoint& pos) void SequenceRulesView::customTranslateRuleEdit(const QPoint& pos)
{ {
QMenu immediate; QMenu immediate;
immediate.addAction(u8"Add Unit", this, &SequenceView::addTranslateUnit); immediate.addAction(u8"Add Unit", this, &SequenceRulesView::addTranslateUnit);
immediate.addAction(u8"Remove Unit", this, &SequenceView::removeTranslateUnit); immediate.addAction(u8"Remove Unit", this, &SequenceRulesView::removeTranslateUnit);
immediate.exec(this->mapToGlobal(pos)); immediate.exec(this->mapToGlobal(pos));
} }
void SequenceView::addTranslateUnit() void SequenceRulesView::addTranslateUnit()
{ {
auto row_cnt = this->_sequence_model->rowCount(); auto row_cnt = this->_sequence_model->rowCount();
@ -134,7 +135,7 @@ void SequenceView::addTranslateUnit()
this->resizeColumnsToContents(); this->resizeColumnsToContents();
} }
void SequenceView::removeTranslateUnit() void SequenceRulesView::removeTranslateUnit()
{ {
auto idx_curr = this->currentIndex(); auto idx_curr = this->currentIndex();
if (!idx_curr.isValid()) if (!idx_curr.isValid())

View File

@ -69,7 +69,7 @@ public:
/// <summary> /// <summary>
/// ÐòÁл¯¹æÔòÊÓͼ /// ÐòÁл¯¹æÔòÊÓͼ
/// </summary> /// </summary>
class SequenceView : public QTableView { class SequenceRulesView : public QTableView {
Q_OBJECT Q_OBJECT
private: private:
QStandardItemModel* const _sequence_model; QStandardItemModel* const _sequence_model;
@ -84,7 +84,7 @@ public:
void peersRuleChanged(const QModelIndex &idx_rule); void peersRuleChanged(const QModelIndex &idx_rule);
public: public:
SequenceView(QWidget* p = nullptr); SequenceRulesView(QWidget* p = nullptr);
void customTranslateRuleEdit(const QPoint& pos); void customTranslateRuleEdit(const QPoint& pos);
void addTranslateUnit(); void addTranslateUnit();

View File

@ -10,7 +10,7 @@ int main(int argc, char *argv[])
{ {
QApplication app(argc, argv); QApplication app(argc, argv);
SequenceView v; SequenceRulesView v;
v.show(); v.show();
return app.exec(); return app.exec();