File indexing completed on 2024-05-19 05:35:23

0001 //////////////////////////////////////////////////////////////////////////////
0002 // oxygenframedemowidget.cpp
0003 // oxygen frames demo widget
0004 // -------------------
0005 //
0006 // SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0007 //
0008 // SPDX-License-Identifier: MIT
0009 //////////////////////////////////////////////////////////////////////////////
0010 
0011 #include "oxygenframedemowidget.h"
0012 #include "config-liboxygen.h"
0013 
0014 #include <QButtonGroup>
0015 
0016 #include <KComboBox>
0017 #include <KMessageWidget>
0018 #include <kwidgetsaddons_version.h>
0019 
0020 namespace Oxygen
0021 {
0022 //_____________________________________________________________
0023 FrameDemoWidget::FrameDemoWidget(QWidget *parent)
0024     : DemoWidget(parent)
0025     , posMsg(nullptr)
0026     , infoMsg(nullptr)
0027     , warnMsg(nullptr)
0028     , errMsg(nullptr)
0029 {
0030     ui.setupUi(this);
0031     QButtonGroup *group = new QButtonGroup(this);
0032     group->addButton(ui.raisedFrameRadioButton);
0033     group->addButton(ui.plainFrameRadioButton);
0034     group->addButton(ui.sunkenFrameRadioButton);
0035 
0036     connect(ui.raisedFrameRadioButton, SIGNAL(toggled(bool)), SLOT(toggleRaisedFrame(bool)));
0037     connect(ui.plainFrameRadioButton, SIGNAL(toggled(bool)), SLOT(togglePlainFrame(bool)));
0038     connect(ui.sunkenFrameRadioButton, SIGNAL(toggled(bool)), SLOT(toggleSunkenFrame(bool)));
0039 
0040     connect(ui.directionComboBox, SIGNAL(currentIndexChanged(int)), SLOT(updateLayoutDirection(int)));
0041     connect(ui.flatGroupBoxCheckBox, SIGNAL(toggled(bool)), SLOT(toggleFlatGroupBox(bool)));
0042 
0043     addMessages();
0044 }
0045 
0046 void FrameDemoWidget::addMessages()
0047 {
0048     delete posMsg;
0049     delete infoMsg;
0050     delete warnMsg;
0051     delete errMsg;
0052 
0053     posMsg = new KMessageWidget(QStringLiteral("A positive message"), ui.msgFrame);
0054     posMsg->setMessageType(KMessageWidget::Positive);
0055     posMsg->setWordWrap(true);
0056     posMsg->setIcon(QIcon::fromTheme(QStringLiteral("dialog-positive")));
0057     ui.verticalLayout_5->addWidget(posMsg);
0058 
0059     infoMsg = new KMessageWidget(QStringLiteral("An information message"), ui.msgFrame);
0060     infoMsg->setMessageType(KMessageWidget::Information);
0061     infoMsg->setWordWrap(true);
0062     infoMsg->setIcon(QIcon::fromTheme(QStringLiteral("dialog-information")));
0063     ui.verticalLayout_5->addWidget(infoMsg);
0064 
0065     warnMsg = new KMessageWidget(QStringLiteral("A warning message"), ui.msgFrame);
0066     warnMsg->setMessageType(KMessageWidget::Warning);
0067     warnMsg->setWordWrap(true);
0068     warnMsg->setIcon(QIcon::fromTheme(QStringLiteral("dialog-warning")));
0069     ui.verticalLayout_5->addWidget(warnMsg);
0070 
0071     errMsg = new KMessageWidget(QStringLiteral("An error message"), ui.msgFrame);
0072     errMsg->setMessageType(KMessageWidget::Error);
0073     errMsg->setWordWrap(true);
0074     errMsg->setIcon(QIcon::fromTheme(QStringLiteral("dialog-error")));
0075     ui.verticalLayout_5->addWidget(errMsg);
0076 
0077     ui.verticalLayout_5->addStretch();
0078 }
0079 
0080 bool FrameDemoWidget::eventFilter(QObject *obj, QEvent *event)
0081 {
0082     Q_UNUSED(obj);
0083     Q_UNUSED(event);
0084     return false;
0085 }
0086 
0087 //_____________________________________________________________
0088 void FrameDemoWidget::updateLayoutDirection(int value)
0089 {
0090     QBoxLayout::Direction direction;
0091     switch (value) {
0092     default:
0093     case 0:
0094         direction = QBoxLayout::LeftToRight;
0095         break;
0096     case 1:
0097         direction = QBoxLayout::RightToLeft;
0098         break;
0099     case 2:
0100         direction = QBoxLayout::TopToBottom;
0101         break;
0102     case 3:
0103         direction = QBoxLayout::BottomToTop;
0104         break;
0105     }
0106 
0107     if (direction != ui.frameLayout->direction()) {
0108         ui.frameLayout->setDirection(direction);
0109         ui.frameLayout->update();
0110     }
0111 }
0112 
0113 //_____________________________________________________________
0114 void FrameDemoWidget::benchmark(void)
0115 {
0116     if (!isVisible())
0117         return;
0118 
0119     if (true) {
0120         simulator().selectComboBoxItem(ui.directionComboBox, 1);
0121         simulator().selectComboBoxItem(ui.directionComboBox, 2);
0122         simulator().selectComboBoxItem(ui.directionComboBox, 3);
0123         simulator().selectComboBoxItem(ui.directionComboBox, 0);
0124     }
0125 
0126     if (true) {
0127         simulator().click(ui.flatGroupBoxCheckBox);
0128         simulator().click(ui.flatGroupBoxCheckBox);
0129     }
0130 
0131     if (true) {
0132         simulator().click(ui.plainFrameRadioButton);
0133         simulator().click(ui.sunkenFrameRadioButton);
0134         simulator().click(ui.raisedFrameRadioButton);
0135     }
0136 
0137     simulator().run();
0138 }
0139 }