From 7c4422fe1d7c401249974a22a715599c5ca12acd Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Wed, 14 Jul 2021 19:38:18 +0200 Subject: [PATCH] UI: Small tweaks on the ASS line display --- src/UI/DocumentViews/AssLinesModel.cc | 18 +----------- src/UI/DocumentViews/AssLinesModel.hh | 4 +-- src/UI/DocumentViews/AssLinesView.cc | 42 ++++++++++++++++++++++----- src/VivyApplication.cc | 3 ++ 4 files changed, 39 insertions(+), 28 deletions(-) diff --git a/src/UI/DocumentViews/AssLinesModel.cc b/src/UI/DocumentViews/AssLinesModel.cc index bf44811c..99cbc42e 100644 --- a/src/UI/DocumentViews/AssLinesModel.cc +++ b/src/UI/DocumentViews/AssLinesModel.cc @@ -68,25 +68,9 @@ AssLinesModel::data(const QModelIndex &index, int role) const noexcept const Item *line = static_cast<const Item *>(index.internalPointer()); const Item::Field column = static_cast<Item::Field>(index.column()); - // Check state only for the IsComment - if (role == Qt::CheckStateRole && column == Item::Field::IsComment) { - return line->getIsComment() ? Qt::Checked : Qt::Unchecked; - } - - // Is comment is centered - else if (role == Qt::TextAlignmentRole && column == Item::Field::IsComment) { - return Qt::AlignCenter; - } - // Display role - else if (Qt::DisplayRole == role) { + if (Qt::DisplayRole == role) { switch (column) { - case Item::Field::Style: - return line->getLineStyle(); - - case Item::Field::IsComment: - return QVariant(); - case Item::Field::Text: return line->getLineText(); diff --git a/src/UI/DocumentViews/AssLinesModel.hh b/src/UI/DocumentViews/AssLinesModel.hh index 8f7f0a8e..2dfdbcd1 100644 --- a/src/UI/DocumentViews/AssLinesModel.hh +++ b/src/UI/DocumentViews/AssLinesModel.hh @@ -20,8 +20,6 @@ private: ~Item() noexcept = default; enum class Field : int { - IsComment, - Style, Text, // Last, the count @@ -37,7 +35,7 @@ private: Ass::LineWeakPtr line; }; - static inline const QStringList headers{ "", "Actor", "Text" }; + static inline const QStringList headers{ "", "Style", "Text" }; public: explicit AssLinesModel(const QVector<Ass::LinePtr> &) noexcept; diff --git a/src/UI/DocumentViews/AssLinesView.cc b/src/UI/DocumentViews/AssLinesView.cc index 2872b4de..a29245be 100644 --- a/src/UI/DocumentViews/AssLinesView.cc +++ b/src/UI/DocumentViews/AssLinesView.cc @@ -9,9 +9,12 @@ AssLinesView::AssLinesView(QAbstractItemModel *model, QWidget *parent) noexcept : QTableView(parent) , delegate(new Delegate(this)) { - QFont f = font(); - f.setPointSize(9); // Force the 9pt for now - setFont(f); + // Force the 9pt font size for now + { + QFont f = font(); + f.setPointSize(9); + setFont(f); + } setMouseTracking(true); setItemDelegate(delegate); @@ -21,10 +24,38 @@ AssLinesView::AssLinesView(QAbstractItemModel *model, QWidget *parent) noexcept horizontalHeader()->setHighlightSections(false); horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); horizontalHeader()->setStretchLastSection(true); + horizontalHeader()->hide(); verticalHeader()->setVisible(true); setSelectionMode(QAbstractItemView::ExtendedSelection); setSelectionBehavior(QAbstractItemView::SelectRows); + setShowGrid(false); + + // Also set the 9pt font size for the headers + { + QFont f = horizontalHeader()->font(); + f.setPointSize(9); + horizontalHeader()->setFont(f); + verticalHeader()->setFont(f); + } + static const QString style = "QTableView::item:selected {" + " border-top:1px solid #1394B4;" + " border-bottom:1px solid #1394B4;" + " border-right:1px solid #1394B4;" + " border-left:1px solid #1394B4;" + " background-color: #002B36;" + "}" + "QTableView::item {" + " border: 1px solid #474747;" + "};" + "QTableView::item:last:selected {" + " border-top:1px solid #1394B4;" + " border-bottom:1px solid #1394B4;" + " border-right:1px solid #1394B4;" + " border-left:1px solid #1394B4;" + " background-color: #002B36;" + "}"; + setStyleSheet(style); setModel(model); } @@ -92,9 +123,4 @@ AssLinesView::Delegate::initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const noexcept { QStyledItemDelegate::initStyleOption(option, index); - - // The first column is the IsComment column - // XXX This is hardcoded - if (index.column() == 0) - option->displayAlignment = Qt::AlignCenter; } diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc index 5b231213..0b08c801 100644 --- a/src/VivyApplication.cc +++ b/src/VivyApplication.cc @@ -11,7 +11,10 @@ VivyApplication::VivyApplication(int argc, char **argv) int VivyApplication::exec() noexcept { + // Show the main window MainWindow mainWindow; mainWindow.show(); + + // Main loop return QApplication::exec(); } -- GitLab