mirror of
https://github.com/YACReader/yacreader
synced 2025-07-18 21:14:33 -04:00
fixed retina-OSX icons in the side bar
This commit is contained in:
@ -16,16 +16,32 @@ YACReaderLibraryItemWidget::YACReaderLibraryItemWidget(QString n/*ame*/, QString
|
||||
|
||||
QPixmap iconPixmap(":/images/sidebar/libraryIcon.png");
|
||||
icon = new QLabel(this);
|
||||
icon->setPixmap(iconPixmap);
|
||||
icon->setPixmap(iconPixmap);
|
||||
|
||||
nameLabel = new QLabel(name,this);
|
||||
|
||||
options = new QToolButton(this);
|
||||
options = new QToolButton(this);
|
||||
#ifdef Q_OS_MAC
|
||||
//TODO fix this crazy hack for having a propper retina icon for the options
|
||||
//this hack has been perpetrated using Qt 5.5.0
|
||||
QString sourceOptionsImage;
|
||||
if(devicePixelRatio()>1)
|
||||
sourceOptionsImage = ":/images/sidebar/libraryOptions@2x.png";
|
||||
else
|
||||
sourceOptionsImage = ":/images/sidebar/libraryOptions.png";
|
||||
QPixmap iconOptionsPixmap(sourceOptionsImage);
|
||||
iconOptionsPixmap.setDevicePixelRatio(devicePixelRatio());
|
||||
QLabel * helperLabel = new QLabel(options);
|
||||
helperLabel->move(4,2);
|
||||
helperLabel->setFixedSize(14,14);
|
||||
helperLabel->setPixmap(iconOptionsPixmap);
|
||||
#else
|
||||
options->setIcon(QIcon(":/images/sidebar/libraryOptions.png"));
|
||||
#endif
|
||||
options->setHidden(true);
|
||||
options->setFixedWidth(18);
|
||||
options->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Minimum);
|
||||
options->setStyleSheet("QToolButton {border:none;}");
|
||||
options->setFixedWidth(18);
|
||||
options->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Minimum);
|
||||
options->setStyleSheet("QToolButton {border:none;}");
|
||||
connect(options,SIGNAL(clicked()),this,SIGNAL(showOptions()));
|
||||
/*up = new QToolButton(this);
|
||||
up->setIcon(QIcon(":/images/libraryUp.png"));
|
||||
|
@ -1,12 +1,12 @@
|
||||
#include "yacreader_titled_toolbar.h"
|
||||
|
||||
#include <QAction>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QPixmap>
|
||||
#include <QToolButton>
|
||||
#include <QGraphicsDropShadowEffect>
|
||||
#include <QPainter>
|
||||
|
||||
#include <QPixmap>
|
||||
#include <QPushButton>
|
||||
#include <QToolButton>
|
||||
|
||||
|
||||
DropShadowLabel::DropShadowLabel(QWidget* parent) :
|
||||
@ -95,14 +95,26 @@ void YACReaderTitledToolBar::addAction(QAction * action)
|
||||
{
|
||||
QHBoxLayout * mainLayout = dynamic_cast<QHBoxLayout *>(layout());
|
||||
|
||||
QToolButton * tb = new QToolButton(this);
|
||||
//fix for QToolButton and retina support in OSX
|
||||
#ifdef Q_OS_MAC
|
||||
QPushButton * pb = new QPushButton(this);
|
||||
pb->setCursor(QCursor(Qt::ArrowCursor));
|
||||
pb->setIcon(action->icon());
|
||||
pb->addAction(action);
|
||||
|
||||
connect(pb, SIGNAL(clicked(bool)), action, SIGNAL(triggered(bool)));
|
||||
|
||||
mainLayout->addWidget(pb);
|
||||
#else
|
||||
QToolButton * tb = new QToolButton(this);
|
||||
tb->setCursor(QCursor(Qt::ArrowCursor));
|
||||
tb->setDefaultAction(action);
|
||||
tb->setIconSize(QSize(16,16));
|
||||
tb->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
|
||||
//tb->setStyleSheet("QToolButton:hover {background-color:#C5C5C5;}");
|
||||
|
||||
mainLayout->addWidget(tb);
|
||||
mainLayout->addWidget(tb);
|
||||
#endif
|
||||
}
|
||||
|
||||
void YACReaderTitledToolBar::addSpacing(int spacing)
|
||||
|
Reference in New Issue
Block a user