Warning, file /frameworks/kwidgetsaddons/tests/kmessagewidgettest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2012 Aurélien Gâteau <agateau@kde.org>
0004     Based on test program by Dominik Haumann <dhaumann@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-or-later
0007 */
0008 
0009 #include <QAction>
0010 #include <QApplication>
0011 #include <QCheckBox>
0012 #include <QFrame>
0013 #include <QVBoxLayout>
0014 #include <QWhatsThis>
0015 #include <QWidget>
0016 
0017 #include <kmessagewidget.h>
0018 
0019 class Receiver : public QObject
0020 {
0021     Q_OBJECT
0022 public:
0023     Receiver(QObject *parent)
0024         : QObject(parent)
0025     {
0026     }
0027     ~Receiver() override
0028     {
0029     }
0030 
0031 public Q_SLOTS:
0032     void showWhatsThis(const QString &text)
0033     {
0034         QWhatsThis::showText(QCursor::pos(), text);
0035     }
0036 };
0037 
0038 int main(int argc, char *argv[])
0039 {
0040     QApplication app(argc, argv);
0041     app.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
0042 
0043     QWidget *mainWindow = new QWidget();
0044 
0045     QVBoxLayout *l = new QVBoxLayout(mainWindow);
0046 
0047     KMessageWidget *mw = new KMessageWidget(mainWindow);
0048     mw->setMessageType(KMessageWidget::Positive);
0049     mw->setWordWrap(true);
0050     mw->setText(QStringLiteral("Test KMessageWidget is properly sized when <a href=\"this is the contents\">word-wrap</a> is enabled by default."));
0051     mw->setIcon(QIcon::fromTheme(QStringLiteral("kde")));
0052     KMessageWidget *mw1 = new KMessageWidget(mainWindow);
0053     mw1->setMessageType(KMessageWidget::Positive);
0054     mw1->setWordWrap(true);
0055     mw1->setText(QStringLiteral("Test KMessageWidget icon alignemnt<br />with pre-wrapped<br />content<br />like<br />this.<br />Please test with word wrap enabled and disabled."));
0056     mw1->setIcon(QIcon::fromTheme(QStringLiteral("kde")));
0057     KMessageWidget *mw2 = new KMessageWidget(mainWindow);
0058     mw2->setWordWrap(true);
0059     mw2->setText(QStringLiteral("A KMessageWidget with an icon and two additional buttons"));
0060     mw2->setIcon(QIcon::fromTheme(QStringLiteral("kde")));
0061     mw2->addAction(new QAction(QStringLiteral("Foo"), mw2));
0062     mw2->addAction(new QAction(QStringLiteral("Bar"), mw2));
0063     KMessageWidget *mw3 = new KMessageWidget(mainWindow);
0064     mw3->setMessageType(KMessageWidget::Warning);
0065     mw3->setWordWrap(true);
0066     mw3->setText(QStringLiteral("A KMessageWidget of Warning type."));
0067     KMessageWidget *mw4 = new KMessageWidget(mainWindow);
0068     mw4->setMessageType(KMessageWidget::Error);
0069     mw4->setWordWrap(true);
0070     mw4->setText(QStringLiteral("A KMessageWidget of Error type."));
0071 
0072     // A frame to materialize the end of the KMessageWidget
0073     QFrame *frame = new QFrame(mainWindow);
0074     frame->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
0075     frame->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
0076 
0077     QCheckBox *wordWrapCb = new QCheckBox(QStringLiteral("wordWrap"), mainWindow);
0078     wordWrapCb->setChecked(true);
0079     QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw, &KMessageWidget::setWordWrap);
0080     QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw1, &KMessageWidget::setWordWrap);
0081     QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw2, &KMessageWidget::setWordWrap);
0082     QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw3, &KMessageWidget::setWordWrap);
0083     QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw4, &KMessageWidget::setWordWrap);
0084 
0085     QCheckBox *closeButtonCb = new QCheckBox(QStringLiteral("closeButton"), mainWindow);
0086     closeButtonCb->setChecked(true);
0087     QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw, &KMessageWidget::setCloseButtonVisible);
0088     QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw1, &KMessageWidget::setCloseButtonVisible);
0089     QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw2, &KMessageWidget::setCloseButtonVisible);
0090     QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw3, &KMessageWidget::setCloseButtonVisible);
0091     QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw4, &KMessageWidget::setCloseButtonVisible);
0092 
0093     l->addWidget(wordWrapCb);
0094     l->addWidget(closeButtonCb);
0095     l->addWidget(mw);
0096     l->addWidget(mw1);
0097     l->addWidget(mw2);
0098     l->addWidget(mw3);
0099     l->addWidget(mw4);
0100     l->addWidget(frame);
0101 
0102     mainWindow->resize(400, 300);
0103     mainWindow->show();
0104 
0105     // demonstrate linkActivated
0106     Receiver *info = new Receiver(mw);
0107     QObject::connect(mw, &KMessageWidget::linkActivated, info, &Receiver::showWhatsThis);
0108 
0109     return app.exec();
0110     delete mainWindow;
0111 }
0112 
0113 #include "kmessagewidgettest.moc"
0114 
0115 // kate: replace-tabs on;