Index: kstyle/demo/oxygenframedemowidget.h =================================================================== --- kstyle/demo/oxygenframedemowidget.h +++ kstyle/demo/oxygenframedemowidget.h @@ -34,6 +34,8 @@ #include "oxygendemowidget.h" #include "ui_oxygenframedemowidget.h" +class KMessageWidget; + namespace Oxygen { class FrameDemoWidget: public DemoWidget @@ -69,14 +71,19 @@ //! layout direction void updateLayoutDirection( int ); + void addMessages(); + + bool eventFilter( QObject *obj, QEvent *event ); + public Q_SLOTS: // benchmarking void benchmark( void ); private: Ui_FrameDemoWidget ui; + KMessageWidget *posMsg, *infoMsg, *warnMsg, *errMsg; }; Index: kstyle/demo/oxygenframedemowidget.cpp =================================================================== --- kstyle/demo/oxygenframedemowidget.cpp +++ kstyle/demo/oxygenframedemowidget.cpp @@ -29,13 +29,19 @@ #include #include +#include +#include namespace Oxygen { //_____________________________________________________________ FrameDemoWidget::FrameDemoWidget( QWidget* parent ): - DemoWidget( parent ) + DemoWidget( parent ), + posMsg(nullptr), + infoMsg(nullptr), + warnMsg(nullptr), + errMsg(nullptr) { ui.setupUi( this ); @@ -51,6 +57,60 @@ connect( ui.directionComboBox, SIGNAL(currentIndexChanged(int)), SLOT(updateLayoutDirection(int)) ); connect( ui.flatGroupBoxCheckBox, SIGNAL(toggled(bool)), SLOT(toggleFlatGroupBox(bool)) ); + addMessages(); +#if KWIDGETSADDONS_VERSION < QT_VERSION_CHECK(5, 48, 0) + qApp->installEventFilter(this); +#endif + } + + void FrameDemoWidget::addMessages() + { + delete posMsg; + delete infoMsg; + delete warnMsg; + delete errMsg; + + posMsg = new KMessageWidget(QStringLiteral("A positive message"), ui.msgFrame); + posMsg->setMessageType(KMessageWidget::Positive); + posMsg->setWordWrap(true); + posMsg->setIcon(QIcon::fromTheme("dialog-positive")); + ui.verticalLayout_5->addWidget(posMsg); + + infoMsg = new KMessageWidget(QStringLiteral("An information message"), ui.msgFrame); + infoMsg->setMessageType(KMessageWidget::Information); + infoMsg->setWordWrap(true); + infoMsg->setIcon(QIcon::fromTheme("dialog-information")); + ui.verticalLayout_5->addWidget(infoMsg); + + warnMsg = new KMessageWidget(QStringLiteral("A warning message"), ui.msgFrame); + warnMsg->setMessageType(KMessageWidget::Warning); + warnMsg->setWordWrap(true); + warnMsg->setIcon(QIcon::fromTheme("dialog-warning")); + ui.verticalLayout_5->addWidget(warnMsg); + + errMsg = new KMessageWidget(QStringLiteral("An error message"), ui.msgFrame); + errMsg->setMessageType(KMessageWidget::Error); + errMsg->setWordWrap(true); + errMsg->setIcon(QIcon::fromTheme("dialog-error")); + ui.verticalLayout_5->addWidget(errMsg); + + ui.verticalLayout_5->addStretch(); + } + + bool FrameDemoWidget::eventFilter( QObject *obj, QEvent *event ) + { +#if KWIDGETSADDONS_VERSION < QT_VERSION_CHECK(5, 48, 0) + if (event->type() == QEvent::DynamicPropertyChange && obj == qApp) { + QDynamicPropertyChangeEvent *e = dynamic_cast(event); + if (e->propertyName() == QByteArrayLiteral("KDE_COLOR_SCHEME_PATH")) { + addMessages(); + } + } +#else + Q_UNUSED(obj); + Q_UNUSED(event); +#endif + return false; } //_____________________________________________________________ Index: kstyle/demo/ui/oxygenframedemowidget.ui =================================================================== --- kstyle/demo/ui/oxygenframedemowidget.ui +++ kstyle/demo/ui/oxygenframedemowidget.ui @@ -101,7 +101,7 @@ - Raised + &Raised true @@ -114,7 +114,7 @@ true - Flat + &Flat @@ -185,6 +185,19 @@ + + + + + + QFrame::Panel + + + + + + +