diff --git a/TranslateUI/SequenceView.cpp b/TranslateUI/SequenceView.cpp index bf91ab9..4767da4 100644 --- a/TranslateUI/SequenceView.cpp +++ b/TranslateUI/SequenceView.cpp @@ -59,8 +59,11 @@ void SequenceView::tidyRuleAt(const QModelIndex& idx) rule_insv->saveTo(obj); auto bytes = QJsonDocument(obj).toJson(QJsonDocument::Compact); _seqs_model->setData(param_index, QString::fromUtf8(bytes)); + + this->resizeColumnsToContents(); } +#include SequenceView::SequenceView(QWidget* p /*= nullptr*/) :QTableView(p), _seqs_model(new QStandardItemModel), @@ -81,10 +84,14 @@ SequenceView::SequenceView(QWidget* p /*= nullptr*/) connect(this, &QTableView::customContextMenuRequested, this, &SequenceView::customTranslateRuleEdit); connect(rule_delegate, &RuleSelectDelegate::dataChanged, this, &SequenceView::tidyRuleAt); connect(int_delegate, &IntDelegate::valueChanged, this, &SequenceView::tidyRuleAt); + + auto select_model = this->selectionModel(); + connect(select_model, &QItemSelectionModel::currentRowChanged, [=](const QModelIndex &curr){ + emit this->currentRuleChanged(_rule_list[curr.row()]); + }); } #include -#include void SequenceView::customTranslateRuleEdit(const QPoint& pos) { QMenu immediate; @@ -123,7 +130,6 @@ void SequenceView::removeTranslateUnit() } -#include "TranslateBasic.h" TranslateBasic::TranslateBasic() { std::shared_ptr u_ptr = std::make_shared(); diff --git a/TranslateUI/SequenceView.h b/TranslateUI/SequenceView.h index 6bf4674..25b180f 100644 --- a/TranslateUI/SequenceView.h +++ b/TranslateUI/SequenceView.h @@ -59,11 +59,15 @@ public: }; class SequenceView : public QTableView { + Q_OBJECT private: QStandardItemModel* const _seqs_model; std::shared_ptr base = nullptr; QList> _rule_list; +signals: + void currentRuleChanged(std::shared_ptr u) const; + public: void tidyRuleAt(const QModelIndex& idx_rule);