From 1a885dcb17e4967a543670cf397a7fca9ca4e566 Mon Sep 17 00:00:00 2001 From: Mike Gelfand Date: Sun, 28 Jun 2015 14:18:06 +0000 Subject: [PATCH] Some look-and-feel improvements for Mac and GTK+ styles (Qt client) --- qt/IconToolButton.cc | 16 +++++++++++++++- qt/IconToolButton.h | 3 +++ qt/MainWindow.cc | 1 + qt/MainWindow.ui | 20 +++++++++++++++++++- qt/TorrentDelegateMin.cc | 2 +- 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/qt/IconToolButton.cc b/qt/IconToolButton.cc index 8c977253a..80a597609 100644 --- a/qt/IconToolButton.cc +++ b/qt/IconToolButton.cc @@ -7,6 +7,7 @@ * $Id$ */ +#include #include #include #include @@ -18,11 +19,24 @@ IconToolButton::IconToolButton (QWidget * parent): { } +QSize +IconToolButton::sizeHint () const +{ + QStyleOptionToolButton option; + initStyleOption (&option); + option.features = QStyleOptionToolButton::None; + option.toolButtonStyle = Qt::ToolButtonIconOnly; + const QSize size = style ()->sizeFromContents (QStyle::CT_ToolButton, &option, iconSize (), this); + + return size.expandedTo (iconSize () + QSize (8, 8)); +} + void IconToolButton::paintEvent (QPaintEvent * /*event*/) { QStylePainter painter(this); QStyleOptionToolButton option; initStyleOption (&option); - option.features &= ~QStyleOptionToolButton::HasMenu; + option.features = QStyleOptionToolButton::None; + option.toolButtonStyle = Qt::ToolButtonIconOnly; painter.drawComplexControl(QStyle::CC_ToolButton, option); } diff --git a/qt/IconToolButton.h b/qt/IconToolButton.h index 91906ffbe..9bbe80ed5 100644 --- a/qt/IconToolButton.h +++ b/qt/IconToolButton.h @@ -19,6 +19,9 @@ class IconToolButton: public QToolButton public: IconToolButton (QWidget * parent = nullptr); + // QWidget + virtual QSize sizeHint () const; + protected: // QWidget virtual void paintEvent (QPaintEvent * event); diff --git a/qt/MainWindow.cc b/qt/MainWindow.cc index 614ec59e1..2a2dea655 100644 --- a/qt/MainWindow.cc +++ b/qt/MainWindow.cc @@ -111,6 +111,7 @@ MainWindow::MainWindow (Session& session, Prefs& prefs, TorrentModel& model, boo const QSize smallIconSize (i, i); ui.listView->setStyle (new ListViewProxyStyle); + ui.listView->setAttribute (Qt::WA_MacShowFocusRect, false); // icons ui.action_OpenFile->setIcon (getStockIcon (QLatin1String ("document-open"), QStyle::SP_DialogOpenButton)); diff --git a/qt/MainWindow.ui b/qt/MainWindow.ui index fa7b75e8c..94fde720f 100644 --- a/qt/MainWindow.ui +++ b/qt/MainWindow.ui @@ -67,6 +67,12 @@ :/icons/utilities.png:/icons/utilities.png + + + 16 + 16 + + QToolButton::InstantPopup @@ -79,12 +85,18 @@ - + :/icons/alt-limit-off.png :/icons/alt-limit-on.png:/icons/alt-limit-off.png + + + 16 + 16 + + true @@ -135,6 +147,12 @@ :/icons/ratio.png:/icons/ratio.png + + + 16 + 16 + + QToolButton::InstantPopup diff --git a/qt/TorrentDelegateMin.cc b/qt/TorrentDelegateMin.cc index 1e9426c1f..b69ad79e0 100644 --- a/qt/TorrentDelegateMin.cc +++ b/qt/TorrentDelegateMin.cc @@ -32,7 +32,7 @@ enum { GUI_PAD = 6, BAR_WIDTH = 50, - BAR_HEIGHT = 12, + BAR_HEIGHT = 16, LINE_SPACING = 4 }; -- 2.50.0