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

View File

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

View File

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