summary refs log tree commit diff
path: root/src/ui
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-09-24 15:25:57 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-09-24 15:25:57 +0300
commitf351b00075f8f8b5ef5b355b55b9572eb0cc525c (patch)
treeeca6362d2e6564b87cdd464116f7480201fc0eda /src/ui
parentCtrl-Q from the main window quits the application (#69) (diff)
downloadnheko-f351b00075f8f8b5ef5b355b55b9572eb0cc525c.tar.xz
Manually remove KDE accelerators
fixes #14
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/FlatButton.cc23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/ui/FlatButton.cc b/src/ui/FlatButton.cc

index 4ba92a38..f2314078 100644 --- a/src/ui/FlatButton.cc +++ b/src/ui/FlatButton.cc
@@ -11,6 +11,21 @@ #include "RippleOverlay.h" #include "ThemeManager.h" +// The ampersand is automatically set in QPushButton or QCheckbx +// by KDEPlatformTheme plugin in Qt5. [https://bugs.kde.org/show_bug.cgi?id=337491] +// +// A workaroud is to add +// +// [Development] +// AutoCheckAccelerators=false +// +// to ~/.config/kdeglobals +static QString +removeKDEAccelerators(QString text) +{ + return text.remove(QChar('&')); +} + void FlatButton::init() { @@ -327,7 +342,7 @@ FlatButton::sizeHint() const { ensurePolished(); - QSize label(fontMetrics().size(Qt::TextSingleLine, text())); + QSize label(fontMetrics().size(Qt::TextSingleLine, removeKDEAccelerators(text()))); int w = 20 + label.width(); int h = label.height(); @@ -500,11 +515,11 @@ FlatButton::paintForeground(QPainter *painter) } if (icon().isNull()) { - painter->drawText(rect(), Qt::AlignCenter, text()); + painter->drawText(rect(), Qt::AlignCenter, removeKDEAccelerators(text())); return; } - QSize textSize(fontMetrics().size(Qt::TextSingleLine, text())); + QSize textSize(fontMetrics().size(Qt::TextSingleLine, removeKDEAccelerators(text()))); QSize base(size() - textSize); const int iw = iconSize().width() + IconPadding; @@ -519,7 +534,7 @@ FlatButton::paintForeground(QPainter *painter) /* iconGeometry.translate(textSize.width() + IconPadding, 0); */ /* } */ - painter->drawText(textGeometry, Qt::AlignCenter, text()); + painter->drawText(textGeometry, Qt::AlignCenter, removeKDEAccelerators(text())); QPixmap pixmap = icon().pixmap(iconSize()); QPainter icon(&pixmap);