17#include "moc_qgsproxystyle.cpp"
20#include <QStyleFactory>
22#include <QStyleOption>
23#include <QApplication>
27 : QProxyStyle( nullptr )
30 const QString appStyle = QApplication::style()->objectName();
31 if ( appStyle == QLatin1String(
"QgsAppStyle" ) )
33 setBaseStyle(
static_cast<QgsAppStyle *
>( QApplication::style() )->clone() );
35 else if ( !appStyle.isEmpty() )
37 if ( QStyle *style = QStyleFactory::create( appStyle ) )
38 setBaseStyle( style );
51QgsAppStyle::QgsAppStyle(
const QString &base )
52 : QProxyStyle( nullptr )
55 if ( !mBaseStyle.isEmpty() )
57 if ( QStyle *style = QStyleFactory::create( mBaseStyle ) )
58 setBaseStyle( style );
61 setObjectName( QStringLiteral(
"QgsAppStyle" ) );
64QPixmap QgsAppStyle::generatedIconPixmap( QIcon::Mode iconMode,
const QPixmap &pixmap,
const QStyleOption *opt )
const
70 if ( !pixmap.isNull() )
74 QImage im = pixmap.toImage().convertToFormat( QImage::Format_ARGB32 );
77 return QPixmap::fromImage( im );
88 return QProxyStyle::generatedIconPixmap( iconMode, pixmap, opt );
91void QgsAppStyle::polish( QWidget *widget )
93 QProxyStyle::polish( widget );
94#if defined( Q_OS_UNIX ) && !defined( Q_OS_ANDROID )
95 if ( mBaseStyle.contains( QLatin1String(
"fusion" ), Qt::CaseInsensitive )
96 || mBaseStyle.contains( QLatin1String(
"adwaita" ), Qt::CaseInsensitive ) )
104 QPalette
pal = widget->palette();
105 pal.setColor( QPalette::Inactive, QPalette::Text,
pal.color( QPalette::Active, QPalette::Text ) );
106 pal.setColor( QPalette::Inactive, QPalette::Window,
pal.color( QPalette::Active, QPalette::Window ) );
107 pal.setColor( QPalette::Inactive, QPalette::WindowText,
pal.color( QPalette::Active, QPalette::WindowText ) );
108 pal.setColor( QPalette::Inactive, QPalette::Button,
pal.color( QPalette::Active, QPalette::Button ) );
109 pal.setColor( QPalette::Inactive, QPalette::ButtonText,
pal.color( QPalette::Active, QPalette::ButtonText ) );
110 widget->setPalette(
pal );
115QProxyStyle *QgsAppStyle::clone()
117 return new QgsAppStyle( mBaseStyle );
static void adjustHueSaturation(QImage &image, double saturation, const QColor &colorizeColor=QColor(), double colorizeStrength=1.0, QgsFeedback *feedback=nullptr)
Alter the hue or saturation of a QImage.
static void multiplyOpacity(QImage &image, double factor, QgsFeedback *feedback=nullptr)
Multiplies opacity of image pixel values by a factor.
QgsProxyStyle(QWidget *parent)
Constructor for QgsProxyStyle.