Commit 3b1e1231 authored by Thorbjørn Lindeijer's avatar Thorbjørn Lindeijer
Browse files

Fixed position of folding markers with QGtkStyle

Not a brilliant solution, but it works. Changing the style itself would
cause problems in other places where the PE_IndicatorBranch is drawn.

Reviewed-by: Jens Bache-Wiig
parent cbd6259d
...@@ -134,6 +134,11 @@ ManhattanStyle::~ManhattanStyle() ...@@ -134,6 +134,11 @@ ManhattanStyle::~ManhattanStyle()
d = 0; d = 0;
} }
QStyle *ManhattanStyle::systemStyle() const
{
return d->style;
}
// Draws a CSS-like border image where the defined borders are not stretched // Draws a CSS-like border image where the defined borders are not stretched
void drawCornerImage(const QImage &img, QPainter *painter, QRect rect, void drawCornerImage(const QImage &img, QPainter *painter, QRect rect,
int left = 0, int top = 0, int right = 0, int left = 0, int top = 0, int right = 0,
......
...@@ -30,6 +30,8 @@ ...@@ -30,6 +30,8 @@
#ifndef MANHATTANSTYLE_H #ifndef MANHATTANSTYLE_H
#define MANHATTANSTYLE_H #define MANHATTANSTYLE_H
#include "core_global.h"
#include <QStyle> #include <QStyle>
#include <QWindowsStyle> #include <QWindowsStyle>
...@@ -40,15 +42,17 @@ QT_END_NAMESPACE ...@@ -40,15 +42,17 @@ QT_END_NAMESPACE
class ManhattanStylePrivate; class ManhattanStylePrivate;
class ManhattanStyle : public QWindowsStyle class CORE_EXPORT ManhattanStyle : public QWindowsStyle
{ {
Q_OBJECT; Q_OBJECT
public: public:
ManhattanStyle(const QString &); ManhattanStyle(const QString &);
~ManhattanStyle(); ~ManhattanStyle();
QStyle *systemStyle() const;
void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const; void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const;
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#ifndef TEXTEDITOR_STANDALONE #ifndef TEXTEDITOR_STANDALONE
#include <coreplugin/coreconstants.h> #include <coreplugin/coreconstants.h>
#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/manhattanstyle.h>
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
#include <find/basetextfind.h> #include <find/basetextfind.h>
#include <texteditor/fontsettings.h> #include <texteditor/fontsettings.h>
...@@ -2415,7 +2416,16 @@ void BaseTextEditor::drawFoldingMarker(QPainter *painter, const QPalette &pal, ...@@ -2415,7 +2416,16 @@ void BaseTextEditor::drawFoldingMarker(QPainter *painter, const QPalette &pal,
if (hovered) if (hovered)
opt.palette.setBrush(QPalette::Window, pal.highlight()); opt.palette.setBrush(QPalette::Window, pal.highlight());
style()->drawPrimitive(QStyle::PE_IndicatorBranch, &opt, painter, this); QStyle *s = style();
if (ManhattanStyle *ms = qobject_cast<ManhattanStyle*>(s))
s = ms->systemStyle();
// QGtkStyle needs a small correction to draw the marker in the right place
if (qstrcmp(s->metaObject()->className(), "QGtkStyle") == 0)
opt.rect.translate(-2, 0);
s->drawPrimitive(QStyle::PE_IndicatorBranch, &opt, painter, this);
} }
void BaseTextEditor::slotModificationChanged(bool m) void BaseTextEditor::slotModificationChanged(bool m)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment