aboutsummaryrefslogtreecommitdiff
path: root/src/widgets
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-01-05 20:12:44 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-01-05 11:14:34 +0100
commita5eae8651b0a328c1db3a6c2380eda5dc8773398 (patch)
treed78c668cc3c7e4850065cd7a07fd5a138a4ee58d /src/widgets
parent552327296c64003d4f5b5fedcb123e2ceea7aee5 (diff)
downloadkristall-a5eae8651b0a328c1db3a6c2380eda5dc8773398.tar.gz
Apply favourites button workaround
https://bugreports.qt.io/browse/QTBUG-2036
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/favouritebutton.cpp17
-rw-r--r--src/widgets/favouritebutton.hpp25
2 files changed, 42 insertions, 0 deletions
diff --git a/src/widgets/favouritebutton.cpp b/src/widgets/favouritebutton.cpp
new file mode 100644
index 0000000..a1f3b50
--- /dev/null
+++ b/src/widgets/favouritebutton.cpp
@@ -0,0 +1,17 @@
+#include "favouritebutton.hpp"
+
+#include <QStylePainter>
+#include <QStyleOptionToolButton>
+
+FavouriteButton::FavouriteButton(QWidget *parent)
+ : QToolButton(parent)
+{}
+
+void FavouriteButton::paintEvent(QPaintEvent *event)
+{
+ QStylePainter p(this);
+ QStyleOptionToolButton opt;
+ initStyleOption(&opt);
+ opt.features &= (~QStyleOptionToolButton::HasMenu);
+ p.drawComplexControl(QStyle::CC_ToolButton, opt);
+}
diff --git a/src/widgets/favouritebutton.hpp b/src/widgets/favouritebutton.hpp
new file mode 100644
index 0000000..a29763c
--- /dev/null
+++ b/src/widgets/favouritebutton.hpp
@@ -0,0 +1,25 @@
+#ifndef FAVOURITE_BUTTON_HPP
+#define FAVOURITE_BUTTON_HPP
+
+//! This class is used to implement a workaround
+//! to get rid of the "little arrow" that Qt
+//! forces onto toolbuttons that have menus.
+//!
+//! https://bugreports.qt.io/browse/QTBUG-2036
+
+#include <QToolButton>
+#include <QtGui>
+
+class FavouriteButton : public QToolButton
+{
+ Q_OBJECT;
+public:
+ explicit FavouriteButton(QWidget * parent = 0);
+
+protected:
+ virtual void paintEvent(QPaintEvent * event);
+
+};
+
+
+#endif