summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2021-01-03 01:44:39 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2021-01-03 01:44:39 +0100
commite96a1f3ced974b5d1b02907bf9feabca97d2baa9 (patch)
treecce4230f65796a2a19656021b06072f096328ffc /src
parentc8eb3f6e052852fc8440efe2f8257119a714789e (diff)
Fix indentation of indicators branches when using collapsible separators.
Diffstat (limited to 'src')
-rw-r--r--src/moapplication.cpp17
-rw-r--r--src/modlist.cpp2
-rw-r--r--src/modlist.h10
-rw-r--r--src/modlistview.cpp9
-rw-r--r--src/modlistview.h2
5 files changed, 25 insertions, 15 deletions
diff --git a/src/moapplication.cpp b/src/moapplication.cpp
index 15fbdb3c..709bcbda 100644
--- a/src/moapplication.cpp
+++ b/src/moapplication.cpp
@@ -60,13 +60,13 @@ using namespace MOShared;
//
class ProxyStyle : public QProxyStyle {
public:
- ProxyStyle(QStyle *baseStyle = 0)
+ ProxyStyle(QStyle* baseStyle = 0)
: QProxyStyle(baseStyle)
{
}
- void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const {
- if(element == QStyle::PE_IndicatorItemViewItemDrop) {
+ void drawPrimitive(PrimitiveElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const {
+ if (element == QStyle::PE_IndicatorItemViewItemDrop) {
// 1. full-width drop indicator
QRect rect(option->rect);
@@ -85,7 +85,7 @@ public:
painter->setPen(pen);
painter->setBrush(QBrush(col));
- if(rect.height() == 0) {
+ if (rect.height() == 0) {
QPoint tri[3] = {
rect.topLeft(),
rect.topLeft() + QPoint(-5, 5),
@@ -93,13 +93,16 @@ public:
};
painter->drawPolygon(tri, 3);
painter->drawLine(QPoint(rect.topLeft().x(), rect.topLeft().y()), rect.topRight());
- } else {
+ }
+ else {
painter->drawRoundedRect(rect, 5, 5);
}
- } else {
+ }
+ else {
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
}
+
};
@@ -535,8 +538,8 @@ bool MOApplication::notify(QObject* receiver, QEvent* event)
void MOApplication::updateStyle(const QString& fileName)
{
if (QStyleFactory::keys().contains(fileName)) {
- setStyle(QStyleFactory::create(fileName));
setStyleSheet("");
+ setStyle(new ProxyStyle(QStyleFactory::create(fileName)));
} else {
setStyle(new ProxyStyle(QStyleFactory::create(m_DefaultStyle)));
if (QFile::exists(fileName)) {
diff --git a/src/modlist.cpp b/src/modlist.cpp
index c89e53d5..e541ff71 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -61,8 +61,6 @@ 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)
diff --git a/src/modlist.h b/src/modlist.h
index 9c963119..279ef71a 100644
--- a/src/modlist.h
+++ b/src/modlist.h
@@ -78,13 +78,11 @@ public:
PriorityRole = Qt::UserRole + 5,
// marking role for the scrollbar
- ScrollMarkRole = Qt::UserRole + 6
- };
-
- Q_ENUM(ModListRole)
+ ScrollMarkRole = Qt::UserRole + 6,
- // this is the first available role
- static const int ModUserRole;
+ // this is the first available role
+ ModUserRole = Qt::UserRole + 7
+ };
enum EColumn {
COL_NAME,
diff --git a/src/modlistview.cpp b/src/modlistview.cpp
index 778b228d..c2942717 100644
--- a/src/modlistview.cpp
+++ b/src/modlistview.cpp
@@ -853,6 +853,15 @@ QRect ModListView::visualRect(const QModelIndex& index) const
return rect;
}
+void ModListView::drawBranches(QPainter* painter, const QRect& rect, const QModelIndex& index) const
+{
+ QRect r(rect);
+ if (hasCollapsibleSeparators() && index.parent().isValid()) {
+ r.adjust(-indentation(), 0, 0 -indentation(), 0);
+ }
+ QTreeView::drawBranches(painter, r, index);
+}
+
QModelIndexList ModListView::selectedIndexes() const
{
// during drag&drop events, we fake the return value of selectedIndexes()
diff --git a/src/modlistview.h b/src/modlistview.h
index c11c4fbf..b7d641ea 100644
--- a/src/modlistview.h
+++ b/src/modlistview.h
@@ -155,6 +155,8 @@ protected:
bool toggleSelectionState();
bool copySelection();
+ void drawBranches(QPainter* painter, const QRect& rect, const QModelIndex& index) const override;
+
void timerEvent(QTimerEvent* event) override;
void dragEnterEvent(QDragEnterEvent* event) override;
void dragMoveEvent(QDragMoveEvent* event) override;