summaryrefslogtreecommitdiff
path: root/src/modlistview.cpp
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-12-29 16:06:15 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2021-01-02 15:38:16 +0100
commit68c9ae8592a51b87dc3228b8ebd13737bf2dc7f5 (patch)
treec6d39779ea3405065b7e34799a99591b57cb5eeb /src/modlistview.cpp
parenta67fca47600d9e3e6e43a93511182396c2f292d9 (diff)
Fix controls without indentation.
Diffstat (limited to 'src/modlistview.cpp')
-rw-r--r--src/modlistview.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/src/modlistview.cpp b/src/modlistview.cpp
index be7471aa..9192c01a 100644
--- a/src/modlistview.cpp
+++ b/src/modlistview.cpp
@@ -29,19 +29,6 @@ public:
}
}
- QRect subElementRect(QStyle::SubElement element, const QStyleOption* option, const QWidget* widget) const override
- {
- QRect rect = QProxyStyle::subElementRect(element, option, widget);
- switch (element) {
- case SE_ItemViewItemCheckIndicator:
- case SE_ItemViewItemDecoration:
- case SE_ItemViewItemText:
- case SE_ItemViewItemFocusRect:
- rect.adjust(-20, 0, 0, 0);
- break;
- }
- return rect;
- }
};
class ModListStyledItemDelegated : public QStyledItemDelegate
@@ -80,6 +67,17 @@ ModListView::ModListView(QWidget* parent)
setItemDelegate(new ModListStyledItemDelegated(this));
}
+QRect ModListView::visualRect(const QModelIndex& index) const
+{
+ QRect rect = QTreeView::visualRect(index);
+ if (index.isValid() && !index.model()->hasChildren(index) && index.parent().isValid()) {
+ auto parentIndex = index.parent().data(ModList::IndexRole).toInt();
+ if (ModInfo::getByIndex(parentIndex)->isSeparator()) {
+ rect.adjust(-indentation(), 0, 0, 0);
+ }
+ }
+ return rect;
+}
void ModListView::setModel(QAbstractItemModel* model)
{