summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2021-01-01 12:24:57 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2021-01-02 15:38:18 +0100
commite02ba3b26d30ffb5010394992c69e94b287eacd7 (patch)
tree7b24f7a0654cf19246bf4e2f0e1afaedc86042de /src
parent73b4a590ca4403b0c07590f426f9b962c4c0ec6a (diff)
Some cleaning. Avoid using Qt::UserRole.
Diffstat (limited to 'src')
-rw-r--r--src/modconflicticondelegate.cpp7
-rw-r--r--src/modflagicondelegate.cpp7
-rw-r--r--src/modlist.cpp64
-rw-r--r--src/modlist.h32
-rw-r--r--src/modlistcontextmenu.cpp15
-rw-r--r--src/modlistsortproxy.cpp13
-rw-r--r--src/modlistview.cpp24
-rw-r--r--src/pluginlist.cpp2
-rw-r--r--src/pluginlistview.cpp4
-rw-r--r--src/viewmarkingscrollbar.cpp14
-rw-r--r--src/viewmarkingscrollbar.h14
11 files changed, 121 insertions, 75 deletions
diff --git a/src/modconflicticondelegate.cpp b/src/modconflicticondelegate.cpp
index 2ccf3363..9680aca3 100644
--- a/src/modconflicticondelegate.cpp
+++ b/src/modconflicticondelegate.cpp
@@ -1,4 +1,5 @@
#include "modconflicticondelegate.h"
+#include "modlist.h"
#include <log.h>
#include <QList>
@@ -96,7 +97,7 @@ QList<QString> ModConflictIconDelegate::getIconsForFlags(
QList<QString> ModConflictIconDelegate::getIcons(const QModelIndex &index) const
{
- QVariant modid = index.data(Qt::UserRole + 1);
+ QVariant modid = index.data(ModList::IndexRole);
if (modid.isValid()) {
ModInfo::Ptr info = ModInfo::getByIndex(modid.toInt());
@@ -127,7 +128,7 @@ QString ModConflictIconDelegate::getFlagIcon(ModInfo::EConflictFlag flag)
size_t ModConflictIconDelegate::getNumIcons(const QModelIndex &index) const
{
- unsigned int modIdx = index.data(Qt::UserRole + 1).toInt();
+ unsigned int modIdx = index.data(ModList::IndexRole).toInt();
if (modIdx < ModInfo::getNumMods()) {
ModInfo::Ptr info = ModInfo::getByIndex(modIdx);
std::vector<ModInfo::EConflictFlag> flags = info->getConflictFlags();
@@ -145,7 +146,7 @@ size_t ModConflictIconDelegate::getNumIcons(const QModelIndex &index) const
QSize ModConflictIconDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &modelIndex) const
{
size_t count = getNumIcons(modelIndex);
- unsigned int index = modelIndex.data(Qt::UserRole + 1).toInt();
+ unsigned int index = modelIndex.data(ModList::IndexRole).toInt();
QSize result;
if (index < ModInfo::getNumMods()) {
result = QSize(static_cast<int>(count) * 40, 20);
diff --git a/src/modflagicondelegate.cpp b/src/modflagicondelegate.cpp
index bec3c97d..3ac1085e 100644
--- a/src/modflagicondelegate.cpp
+++ b/src/modflagicondelegate.cpp
@@ -1,4 +1,5 @@
#include "modflagicondelegate.h"
+#include "modlist.h"
#include <log.h>
#include <QList>
@@ -39,7 +40,7 @@ QList<QString> ModFlagIconDelegate::getIconsForFlags(
QList<QString> ModFlagIconDelegate::getIcons(const QModelIndex &index) const
{
- QVariant modid = index.data(Qt::UserRole + 1);
+ QVariant modid = index.data(ModList::IndexRole);
if (modid.isValid()) {
ModInfo::Ptr info = ModInfo::getByIndex(modid.toInt());
@@ -71,7 +72,7 @@ QString ModFlagIconDelegate::getFlagIcon(ModInfo::EFlag flag)
size_t ModFlagIconDelegate::getNumIcons(const QModelIndex &index) const
{
- unsigned int modIdx = index.data(Qt::UserRole + 1).toInt();
+ unsigned int modIdx = index.data(ModList::IndexRole).toInt();
if (modIdx < ModInfo::getNumMods()) {
ModInfo::Ptr info = ModInfo::getByIndex(modIdx);
std::vector<ModInfo::EFlag> flags = info->getFlags();
@@ -85,7 +86,7 @@ size_t ModFlagIconDelegate::getNumIcons(const QModelIndex &index) const
QSize ModFlagIconDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &modelIndex) const
{
size_t count = getNumIcons(modelIndex);
- unsigned int index = modelIndex.data(Qt::UserRole + 1).toInt();
+ unsigned int index = modelIndex.data(ModList::IndexRole).toInt();
QSize result;
if (index < ModInfo::getNumMods()) {
result = QSize(static_cast<int>(count) * 40, 20);
diff --git a/src/modlist.cpp b/src/modlist.cpp
index 077f4af3..26581ba5 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -61,6 +61,8 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
using namespace MOBase;
+const int ModList::ModUserRole = Qt::UserRole + QMetaEnum::fromType<ModListRole>().keyCount();
+
ModList::ModList(PluginContainer *pluginContainer, OrganizerCore *organizer)
: QAbstractItemModel(organizer)
, m_Organizer(organizer)
@@ -130,7 +132,7 @@ QVariant ModList::getOverwriteData(int column, int role) const
}
} break;
case Qt::TextAlignmentRole: return QVariant(Qt::AlignCenter | Qt::AlignVCenter);
- case Qt::UserRole: return -1;
+ case GroupingRole: return -1;
case Qt::ForegroundRole: return QBrush(Qt::red);
case Qt::ToolTipRole: return tr("This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit)");
default: return QVariant();
@@ -298,7 +300,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else {
return QVariant();
}
- } else if (role == Qt::TextAlignmentRole) {
+ }
+ else if (role == Qt::TextAlignmentRole) {
auto flags = modInfo->getFlags();
if (column == COL_NAME) {
if (modInfo->getHighlight() & ModInfo::HIGHLIGHT_CENTER) {
@@ -313,7 +316,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else {
return QVariant(Qt::AlignCenter | Qt::AlignVCenter);
}
- } else if (role == Qt::UserRole) {
+ }
+ else if (role == GroupingRole) {
if (column == COL_CATEGORY) {
QVariantList categoryNames;
std::set<int> categories = modInfo->getCategories();
@@ -326,7 +330,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else {
return QVariant();
}
- } else if (column == COL_PRIORITY) {
+ }
+ else if (column == COL_PRIORITY) {
int priority = modInfo->getFixedPriority();
if (priority != INT_MIN) {
return priority;
@@ -336,9 +341,11 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else {
return modInfo->nexusId();
}
- } else if (role == IndexRole) {
+ }
+ else if (role == IndexRole) {
return modIndex;
- } else if (role == Qt::UserRole + 2) {
+ }
+ else if (role == AggrRole) {
switch (column) {
case COL_MODID: return QtGroupingProxy::AGGR_FIRST;
case COL_VERSION: return QtGroupingProxy::AGGR_MAX;
@@ -346,11 +353,23 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
case COL_PRIORITY: return QtGroupingProxy::AGGR_MIN;
default: return QtGroupingProxy::AGGR_NONE;
}
- } else if (role == Qt::UserRole + 3) {
+ }
+ else if (role == ContentsRole) {
return contentsToIcons(modInfo->getContents());
- } else if (role == Qt::UserRole + 4) {
+ }
+ else if (role == NameRole) {
return modInfo->gameName();
- } else if (role == Qt::FontRole) {
+ }
+ else if (role == PriorityRole) {
+ int priority = modInfo->getFixedPriority();
+ if (priority != std::numeric_limits<int>::min()) {
+ return priority;
+ }
+ else {
+ return m_Profile->getModPriority(modIndex);
+ }
+ }
+ else if (role == Qt::FontRole) {
QFont result;
auto flags = modInfo->getFlags();
if (column == COL_NAME) {
@@ -374,7 +393,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
}
}
return result;
- } else if (role == Qt::DecorationRole) {
+ }
+ else if (role == Qt::DecorationRole) {
if (column == COL_VERSION) {
if (modInfo->updateAvailable()) {
return QIcon(":/MO/gui/update_available");
@@ -385,7 +405,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
}
}
return QVariant();
- } else if (role == Qt::ForegroundRole) {
+ }
+ else if (role == Qt::ForegroundRole) {
if ((modInfo->hasFlag(ModInfo::FLAG_SEPARATOR) || (column == COL_NOTES)) && modInfo->color().isValid()) {
return ColorSettings::idealTextColor(modInfo->color());
} else if (column == COL_NAME) {
@@ -404,8 +425,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
}
}
return QVariant();
- } else if ((role == Qt::BackgroundRole)
- || (role == ViewMarkingScrollBar::DEFAULT_ROLE)) {
+ }
+ else if (role == Qt::BackgroundRole || role == ScrollMarkRole) {
bool overwrite = m_Overwrite.find(modIndex) != m_Overwrite.end();
bool archiveOverwrite = m_ArchiveOverwrite.find(modIndex) != m_ArchiveOverwrite.end();
bool archiveLooseOverwrite = m_ArchiveLooseOverwrite.find(modIndex) != m_ArchiveLooseOverwrite.end();
@@ -424,15 +445,15 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
return Settings::instance().colors().modlistOverwritingArchive();
} else if (archiveOverwrite) {
return Settings::instance().colors().modlistOverwrittenArchive();
- } else if (modInfo->hasFlag(ModInfo::FLAG_SEPARATOR)
- && modInfo->color().isValid()
- && ((role != ViewMarkingScrollBar::DEFAULT_ROLE)
- || Settings::instance().colors().colorSeparatorScrollbar())) {
+ } else if (modInfo->isSeparator() && modInfo->color().isValid()
+ && (role != ScrollMarkRole
+ || Settings::instance().colors().colorSeparatorScrollbar())) {
return modInfo->color();
} else {
return QVariant();
}
- } else if (role == Qt::ToolTipRole) {
+ }
+ else if (role == Qt::ToolTipRole) {
if (column == COL_FLAGS) {
QString result;
@@ -507,7 +528,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else {
return QVariant();
}
- } else {
+ }
+ else {
return QVariant();
}
}
@@ -1366,7 +1388,9 @@ QModelIndex ModList::parent(const QModelIndex&) const
QMap<int, QVariant> ModList::itemData(const QModelIndex &index) const
{
QMap<int, QVariant> result = QAbstractItemModel::itemData(index);
- result[Qt::UserRole] = data(index, Qt::UserRole);
+ for (int role = Qt::UserRole; role < ModUserRole; ++role) {
+ result[role] = data(index, role);
+ }
return result;
}
diff --git a/src/modlist.h b/src/modlist.h
index 4b0e0157..e77ceb1f 100644
--- a/src/modlist.h
+++ b/src/modlist.h
@@ -31,6 +31,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include <QFile>
#include <QListWidget>
#include <QNetworkReply>
+#include <QMetaEnum>
#include <QNetworkAccessManager>
#ifndef Q_MOC_RUN
#include <boost/signals2.hpp>
@@ -56,9 +57,34 @@ class ModList : public QAbstractItemModel
public:
- // role of the index of the mod
- //
- constexpr static int IndexRole = Qt::UserRole + 1;
+ enum ModListRole {
+
+ // data(GroupingRole) contains the "group" role - This is used by the
+ // category and Nexus ID grouping proxy (but not the ByPriority proxy)
+ GroupingRole = Qt::UserRole,
+
+ IndexRole = Qt::UserRole + 1,
+
+ // data(AggrRole) contains aggregation information (for
+ // grouping I assume?)
+ AggrRole = Qt::UserRole + 2,
+
+ // data(ContentsRole) contains mod data contents as a QVariantList
+ // containing icon paths
+ ContentsRole = Qt::UserRole + 3,
+
+ NameRole = Qt::UserRole + 4,
+
+ PriorityRole = Qt::UserRole + 5,
+
+ // marking role for the scrollbar
+ ScrollMarkRole = Qt::UserRole + 6
+ };
+
+ Q_ENUM(ModListRole)
+
+ // this is the first available role
+ static const int ModUserRole;
enum EColumn {
COL_NAME,
diff --git a/src/modlistcontextmenu.cpp b/src/modlistcontextmenu.cpp
index 303362ba..01c4b471 100644
--- a/src/modlistcontextmenu.cpp
+++ b/src/modlistcontextmenu.cpp
@@ -159,23 +159,26 @@ ModListContextMenu::ModListContextMenu(
m_selected = { index };
}
+ ModInfo::Ptr info = ModInfo::getByIndex(index.data(ModList::IndexRole).toInt());
+
QMenu* allMods = new ModListGlobalContextMenu(core, view, view);
allMods->setTitle(tr("All Mods"));
addMenu(allMods);
- if (view->hasCollapsibleSeparators()) {
+ auto viewIndex = view->indexModelToView(m_index);
+ if (view->model()->hasChildren(viewIndex)) {
+ bool expanded = view->isExpanded(viewIndex);
addAction(tr("Collapse all"), view, &QTreeView::collapseAll);
+ addAction(tr("Collapse others"), [=]() {
+ m_view->collapseAll();
+ m_view->setExpanded(viewIndex, expanded);
+ });
addAction(tr("Expand all"), view, &QTreeView::expandAll);
}
addSeparator();
// Add type-specific items
- ModInfo::Ptr info = ModInfo::getByIndex(index.data(ModList::IndexRole).toInt());
-
- // TODO:
- // - Don't forget to check for the sort priority for "Send To... "
-
if (info->isOverwrite()) {
addOverwriteActions(info);
}
diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp
index 455daa76..054b980c 100644
--- a/src/modlistsortproxy.cpp
+++ b/src/modlistsortproxy.cpp
@@ -120,18 +120,7 @@ bool ModListSortProxy::lessThan(const QModelIndex &left,
ModInfo::Ptr leftMod = ModInfo::getByIndex(leftIndex);
ModInfo::Ptr rightMod = ModInfo::getByIndex(rightIndex);
- bool lt = false;
-
- {
- QModelIndex leftPrioIdx = left.sibling(left.row(), ModList::COL_PRIORITY);
- QVariant leftPrio = leftPrioIdx.data();
- if (!leftPrio.isValid()) leftPrio = left.data(Qt::UserRole);
- QModelIndex rightPrioIdx = right.sibling(right.row(), ModList::COL_PRIORITY);
- QVariant rightPrio = rightPrioIdx.data();
- if (!rightPrio.isValid()) rightPrio = right.data(Qt::UserRole);
-
- lt = leftPrio.toInt() < rightPrio.toInt();
- }
+ bool lt = left.data(ModList::PriorityRole).toInt() < right.data(ModList::PriorityRole).toInt();
switch (left.column()) {
case ModList::COL_FLAGS: {
diff --git a/src/modlistview.cpp b/src/modlistview.cpp
index f62089b5..80aa6495 100644
--- a/src/modlistview.cpp
+++ b/src/modlistview.cpp
@@ -67,7 +67,7 @@ ModListView::ModListView(QWidget* parent)
, m_byPriorityProxy(nullptr)
, m_byCategoryProxy(nullptr)
, m_byNexusIdProxy(nullptr)
- , m_scrollbar(new ViewMarkingScrollBar(this->model(), this))
+ , m_scrollbar(new ViewMarkingScrollBar(this->model(), ModList::ScrollMarkRole, this))
{
setVerticalScrollBar(m_scrollbar);
MOBase::setCustomizableColumns(this);
@@ -79,6 +79,13 @@ ModListView::ModListView(QWidget* parent)
connect(this, &ModListView::customContextMenuRequested, this, &ModListView::onCustomContextMenuRequested);
}
+void ModListView::setModel(QAbstractItemModel* model)
+{
+ QTreeView::setModel(model);
+ setVerticalScrollBar(new ViewMarkingScrollBar(model, ModList::ScrollMarkRole, this));
+}
+
+
void ModListView::refresh()
{
updateGroupByProxy(-1);
@@ -593,12 +600,13 @@ void ModListView::setup(OrganizerCore& core, CategoryFactory& factory, MainWindo
connect(m_byPriorityProxy, &ModListByPriorityProxy::expandItem, this, &ModListView::expandItem);
m_byCategoryProxy = new QtGroupingProxy(core.modList(), QModelIndex(), ModList::COL_CATEGORY,
- Qt::UserRole, 0, Qt::UserRole + 2);
+ ModList::GroupingRole, 0, ModList::AggrRole);
connect(this, &QTreeView::expanded, m_byCategoryProxy, &QtGroupingProxy::expanded);
connect(this, &QTreeView::collapsed, m_byCategoryProxy, &QtGroupingProxy::collapsed);
connect(m_byCategoryProxy, &QtGroupingProxy::expandItem, this, &ModListView::expandItem);
- m_byNexusIdProxy = new QtGroupingProxy(core.modList(), QModelIndex(), ModList::COL_MODID, Qt::DisplayRole,
- QtGroupingProxy::FLAG_NOGROUPNAME | QtGroupingProxy::FLAG_NOSINGLE, Qt::UserRole + 2);
+ m_byNexusIdProxy = new QtGroupingProxy(core.modList(), QModelIndex(), ModList::COL_MODID,
+ ModList::GroupingRole, QtGroupingProxy::FLAG_NOGROUPNAME | QtGroupingProxy::FLAG_NOSINGLE,
+ ModList::AggrRole);
connect(this, &QTreeView::expanded, m_byNexusIdProxy, &QtGroupingProxy::expanded);
connect(this, &QTreeView::collapsed, m_byNexusIdProxy, &QtGroupingProxy::collapsed);
connect(m_byNexusIdProxy, &QtGroupingProxy::expandItem, this, &ModListView::expandItem);
@@ -627,7 +635,7 @@ void ModListView::setup(OrganizerCore& core, CategoryFactory& factory, MainWindo
connect(header(), &QHeaderView::sectionResized, [=](int logicalIndex, int oldSize, int newSize) {
m_sortProxy->setColumnVisible(logicalIndex, newSize != 0); });
- GenericIconDelegate* contentDelegate = new GenericIconDelegate(this, Qt::UserRole + 3, ModList::COL_CONTENT, 150);
+ GenericIconDelegate* contentDelegate = new GenericIconDelegate(this, ModList::ContentsRole, ModList::COL_CONTENT, 150);
ModFlagIconDelegate* flagDelegate = new ModFlagIconDelegate(this, ModList::COL_FLAGS, 120);
ModConflictIconDelegate* conflictFlagDelegate = new ModConflictIconDelegate(this, ModList::COL_CONFLICTFLAGS, 80);
@@ -722,12 +730,6 @@ void ModListView::saveState(Settings& s) const
m_filters->saveState(s);
}
-void ModListView::setModel(QAbstractItemModel* model)
-{
- QTreeView::setModel(model);
- setVerticalScrollBar(new ViewMarkingScrollBar(model, this));
-}
-
QRect ModListView::visualRect(const QModelIndex& index) const
{
// this shift the visualRect() from QTreeView to match the new actual
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index 4d648a46..9e101f84 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -990,7 +990,7 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const
return checkstateData(modelIndex);
} else if (role == Qt::ForegroundRole) {
return foregroundData(modelIndex);
- } else if (role == Qt::BackgroundRole || (role == ViewMarkingScrollBar::DEFAULT_ROLE)) {
+ } else if (role == Qt::BackgroundRole) {
return backgroundData(modelIndex);
} else if (role == Qt::FontRole) {
return fontData(modelIndex);
diff --git a/src/pluginlistview.cpp b/src/pluginlistview.cpp
index f95226fc..589c5737 100644
--- a/src/pluginlistview.cpp
+++ b/src/pluginlistview.cpp
@@ -21,7 +21,7 @@ using namespace MOBase;
PluginListView::PluginListView(QWidget *parent)
: QTreeView(parent)
, m_sortProxy(nullptr)
- , m_Scrollbar(new ViewMarkingScrollBar(this->model(), this))
+ , m_Scrollbar(new ViewMarkingScrollBar(this->model(), Qt::BackgroundRole, this))
, m_didUpdateMasterList(false)
{
setVerticalScrollBar(m_Scrollbar);
@@ -31,7 +31,7 @@ PluginListView::PluginListView(QWidget *parent)
void PluginListView::setModel(QAbstractItemModel *model)
{
QTreeView::setModel(model);
- setVerticalScrollBar(new ViewMarkingScrollBar(model, this));
+ setVerticalScrollBar(new ViewMarkingScrollBar(model, Qt::BackgroundRole, this));
}
int PluginListView::sortColumn() const
diff --git a/src/viewmarkingscrollbar.cpp b/src/viewmarkingscrollbar.cpp
index ed17120b..0991f171 100644
--- a/src/viewmarkingscrollbar.cpp
+++ b/src/viewmarkingscrollbar.cpp
@@ -4,18 +4,18 @@
#include <QStyleOptionSlider>
#include <QPainter>
-ViewMarkingScrollBar::ViewMarkingScrollBar(QAbstractItemModel *model, QWidget *parent, int role)
+ViewMarkingScrollBar::ViewMarkingScrollBar(QAbstractItemModel* model, int role, QWidget *parent)
: QScrollBar(parent)
- , m_Model(model)
- , m_Role(role)
+ , m_model(model)
+ , m_role(role)
{
// not implemented for horizontal sliders
Q_ASSERT(this->orientation() == Qt::Vertical);
}
-void ViewMarkingScrollBar::paintEvent(QPaintEvent *event)
+void ViewMarkingScrollBar::paintEvent(QPaintEvent* event)
{
- if (m_Model == nullptr) {
+ if (m_model == nullptr) {
return;
}
QScrollBar::paintEvent(event);
@@ -28,13 +28,13 @@ void ViewMarkingScrollBar::paintEvent(QPaintEvent *event)
QRect handleRect = style()->subControlRect(QStyle::CC_ScrollBar, &styleOption, QStyle::SC_ScrollBarSlider, this);
QRect innerRect = style()->subControlRect(QStyle::CC_ScrollBar, &styleOption, QStyle::SC_ScrollBarGroove, this);
- auto indices = flatIndex(m_Model, 0, QModelIndex());
+ auto indices = flatIndex(m_model, 0, QModelIndex());
painter.translate(innerRect.topLeft() + QPoint(0, 3));
qreal scale = static_cast<qreal>(innerRect.height() - 3) / static_cast<qreal>(indices.size());
for (int i = 0; i < indices.size(); ++i) {
- QVariant data = indices[i].data(m_Role);
+ QVariant data = indices[i].data(m_role);
if (data.isValid()) {
QColor col = data.value<QColor>();
painter.setPen(col);
diff --git a/src/viewmarkingscrollbar.h b/src/viewmarkingscrollbar.h
index 12a297d1..88d77039 100644
--- a/src/viewmarkingscrollbar.h
+++ b/src/viewmarkingscrollbar.h
@@ -1,21 +1,21 @@
#ifndef VIEWMARKINGSCROLLBAR_H
#define VIEWMARKINGSCROLLBAR_H
-#include <QScrollBar>
#include <QAbstractItemModel>
+#include <QScrollBar>
class ViewMarkingScrollBar : public QScrollBar
{
public:
- static const int DEFAULT_ROLE = Qt::UserRole + 42;
-public:
- ViewMarkingScrollBar(QAbstractItemModel *model, QWidget *parent = 0, int role = DEFAULT_ROLE);
+ ViewMarkingScrollBar(QAbstractItemModel *model, int role, QWidget* parent = nullptr);
+
protected:
- virtual void paintEvent(QPaintEvent *event);
+ void paintEvent(QPaintEvent *event) override;
+
private:
- QAbstractItemModel *m_Model;
- int m_Role;
+ QAbstractItemModel* m_model;
+ int m_role;
};