1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-03-13 07:33:02 +00:00

Some look-and-feel improvements for Mac and GTK+ styles (Qt client)

This commit is contained in:
Mike Gelfand 2015-06-28 14:18:06 +00:00
parent ba7ea94c7d
commit 1a885dcb17
5 changed files with 39 additions and 3 deletions

View file

@ -7,6 +7,7 @@
* $Id$
*/
#include <QStyle>
#include <QStyleOption>
#include <QStyleOptionToolButton>
#include <QStylePainter>
@ -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);
}

View file

@ -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);

View file

@ -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));

View file

@ -67,6 +67,12 @@
<iconset resource="application.qrc">
<normaloff>:/icons/utilities.png</normaloff>:/icons/utilities.png</iconset>
</property>
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="popupMode">
<enum>QToolButton::InstantPopup</enum>
</property>
@ -79,12 +85,18 @@
</widget>
</item>
<item>
<widget class="QToolButton" name="altSpeedButton">
<widget class="IconToolButton" name="altSpeedButton">
<property name="icon">
<iconset resource="application.qrc">
<normaloff>:/icons/alt-limit-off.png</normaloff>
<normalon>:/icons/alt-limit-on.png</normalon>:/icons/alt-limit-off.png</iconset>
</property>
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
@ -135,6 +147,12 @@
<iconset resource="application.qrc">
<normaloff>:/icons/ratio.png</normaloff>:/icons/ratio.png</iconset>
</property>
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="popupMode">
<enum>QToolButton::InstantPopup</enum>
</property>

View file

@ -32,7 +32,7 @@ enum
{
GUI_PAD = 6,
BAR_WIDTH = 50,
BAR_HEIGHT = 12,
BAR_HEIGHT = 16,
LINE_SPACING = 4
};