From a5eae8651b0a328c1db3a6c2380eda5dc8773398 Mon Sep 17 00:00:00 2001 From: Mike Skec Date: Tue, 5 Jan 2021 20:12:44 +1100 Subject: Apply favourites button workaround https://bugreports.qt.io/browse/QTBUG-2036 --- src/widgets/favouritebutton.cpp | 17 +++++++++++++++++ src/widgets/favouritebutton.hpp | 25 +++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/widgets/favouritebutton.cpp create mode 100644 src/widgets/favouritebutton.hpp (limited to 'src/widgets') 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 +#include + +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 +#include + +class FavouriteButton : public QToolButton +{ + Q_OBJECT; +public: + explicit FavouriteButton(QWidget * parent = 0); + +protected: + virtual void paintEvent(QPaintEvent * event); + +}; + + +#endif -- cgit v1.2.3