21#include <QApplication>
23#include <QStyleFactory>
24#include <QStyleOption>
27#include "moc_qgsproxystyle.cpp"
30 : QProxyStyle( nullptr )
33 const QString appStyle = QApplication::style()->objectName();
34 if ( appStyle == QLatin1String(
"QgsAppStyle" ) )
36 setBaseStyle(
static_cast<QgsAppStyle *
>( QApplication::style() )->clone() );
38 else if ( !appStyle.isEmpty() )
40 if ( QStyle *style = QStyleFactory::create( appStyle ) )
41 setBaseStyle( style );
54QgsAppStyle::QgsAppStyle(
const QString &base )
55 : QProxyStyle( nullptr )
58 if ( !mBaseStyle.isEmpty() )
60 if ( QStyle *style = QStyleFactory::create( mBaseStyle ) )
61 setBaseStyle( style );
64 setObjectName( QStringLiteral(
"QgsAppStyle" ) );
67QPixmap QgsAppStyle::generatedIconPixmap( QIcon::Mode iconMode,
const QPixmap &pixmap,
const QStyleOption *opt )
const
73 if ( !pixmap.isNull() )
77 QImage im = pixmap.toImage().convertToFormat( QImage::Format_ARGB32 );
80 return QPixmap::fromImage( im );
91 return QProxyStyle::generatedIconPixmap( iconMode, pixmap, opt );
94void QgsAppStyle::polish( QWidget *widget )
96 QProxyStyle::polish( widget );
97#if defined( Q_OS_UNIX ) && !defined( Q_OS_ANDROID )
98 if ( mBaseStyle.contains( QLatin1String(
"fusion" ), Qt::CaseInsensitive )
99 || mBaseStyle.contains( QLatin1String(
"adwaita" ), Qt::CaseInsensitive ) )
107 QPalette
pal = widget->palette();
108 pal.setColor( QPalette::Inactive, QPalette::Text,
pal.color( QPalette::Active, QPalette::Text ) );
109 pal.setColor( QPalette::Inactive, QPalette::Window,
pal.color( QPalette::Active, QPalette::Window ) );
110 pal.setColor( QPalette::Inactive, QPalette::WindowText,
pal.color( QPalette::Active, QPalette::WindowText ) );
111 pal.setColor( QPalette::Inactive, QPalette::Button,
pal.color( QPalette::Active, QPalette::Button ) );
112 pal.setColor( QPalette::Inactive, QPalette::ButtonText,
pal.color( QPalette::Active, QPalette::ButtonText ) );
113 widget->setPalette(
pal );
118QProxyStyle *QgsAppStyle::clone()
120 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.