diff --git a/src/UI/DocumentViews/AssLinesModel.cc b/src/UI/DocumentViews/AssLinesModel.cc index d9a84a4378362d9effdf90946cd2f89602b8299d..18a8d2498050572e0d4e554c8bc401d3a3e1615f 100644 --- a/src/UI/DocumentViews/AssLinesModel.cc +++ b/src/UI/DocumentViews/AssLinesModel.cc @@ -2,6 +2,11 @@ using namespace Vivy; +AssLinesModel::Item::Item(Ass::LineWeakPtr linePtr) noexcept + : line(linePtr) +{ +} + quint64 AssLinesModel::Item::getLineNumber() const noexcept { @@ -33,8 +38,12 @@ AssLinesModel::Item::getLineStyle() const noexcept return ""; } -AssLinesModel::AssLinesModel(const QVector<Ass::LinePtr> &) noexcept +AssLinesModel::AssLinesModel(const QVector<Ass::LinePtr> &lines) noexcept + : lineRealData(lines) { + childs.reserve(lines.count()); + for (const Ass::LinePtr &line : lines) + childs.append(new Item(Ass::LineWeakPtr{ line })); } AssLinesModel::~AssLinesModel() noexcept @@ -52,9 +61,6 @@ AssLinesModel::data(const QModelIndex &index, int role) const noexcept if (Qt::DisplayRole == role) { switch (static_cast<Item::Field>(index.column())) { - case Item::Field::Line: - return QString("%1").arg(line->getLineNumber()); - case Item::Field::Style: return line->getLineStyle(); @@ -132,7 +138,8 @@ AssLinesModel::columnCount(const QModelIndex & /* parent */) const noexcept } Qt::ItemFlags -AssLinesModel::flags(const QModelIndex &) const noexcept +AssLinesModel::flags(const QModelIndex &index) const noexcept { - return Qt::ItemIsSelectable; + [[maybe_unused]] const Item *item = static_cast<const Item *>(index.internalPointer()); + return Qt::ItemIsSelectable | QAbstractItemModel::flags(index); } diff --git a/src/UI/DocumentViews/AssLinesModel.hh b/src/UI/DocumentViews/AssLinesModel.hh index 1852aef1b53efe8d0cefe3aad2c55db138a36d1a..62848968d141b05383622262d6c91738273a8086 100644 --- a/src/UI/DocumentViews/AssLinesModel.hh +++ b/src/UI/DocumentViews/AssLinesModel.hh @@ -20,9 +20,8 @@ private: ~Item() noexcept = default; enum class Field : int { - Line = 0, - Style = 1, - Text = 2, + Style, + Text, // Last, the count TotalFieldCount, @@ -36,6 +35,8 @@ private: Ass::LineWeakPtr line; }; + static inline const QStringList headers{ "Actor", "Text" }; + public: explicit AssLinesModel(const QVector<Ass::LinePtr> &) noexcept; ~AssLinesModel() noexcept; @@ -53,7 +54,7 @@ public: Qt::ItemFlags flags(const QModelIndex &) const noexcept override; private: - QStringList headers{ "N°", "Actor", "Text" }; QVector<Item *> childs; + const QVector<Ass::LinePtr> &lineRealData; }; }