File indexing completed on 2024-04-28 03:59:18
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 0042 QWidget *mainWindow = new QWidget(); 0043 0044 QVBoxLayout *l = new QVBoxLayout(mainWindow); 0045 0046 KMessageWidget *mw = new KMessageWidget(mainWindow); 0047 mw->setMessageType(KMessageWidget::Positive); 0048 mw->setWordWrap(true); 0049 mw->setText(QStringLiteral("Test KMessageWidget is properly sized when <a href=\"this is the contents\">word-wrap</a> is enabled by default.")); 0050 mw->setIcon(QIcon::fromTheme(QStringLiteral("kde"))); 0051 KMessageWidget *mw1 = new KMessageWidget(mainWindow); 0052 mw1->setMessageType(KMessageWidget::Positive); 0053 mw1->setWordWrap(true); 0054 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.")); 0055 mw1->setIcon(QIcon::fromTheme(QStringLiteral("kde"))); 0056 KMessageWidget *mw2 = new KMessageWidget(mainWindow); 0057 mw2->setWordWrap(true); 0058 mw2->setText(QStringLiteral("A KMessageWidget with an icon and two additional buttons")); 0059 mw2->setIcon(QIcon::fromTheme(QStringLiteral("kde"))); 0060 mw2->addAction(new QAction(QStringLiteral("Foo"), mw2)); 0061 mw2->addAction(new QAction(QStringLiteral("Bar"), mw2)); 0062 KMessageWidget *mw3 = new KMessageWidget(mainWindow); 0063 mw3->setMessageType(KMessageWidget::Warning); 0064 mw3->setWordWrap(true); 0065 mw3->setText(QStringLiteral("A KMessageWidget of Warning type.")); 0066 KMessageWidget *mw4 = new KMessageWidget(mainWindow); 0067 mw4->setMessageType(KMessageWidget::Error); 0068 mw4->setWordWrap(true); 0069 mw4->setText(QStringLiteral("A KMessageWidget of Error type.")); 0070 0071 // A frame to materialize the end of the KMessageWidget 0072 QFrame *frame = new QFrame(mainWindow); 0073 frame->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); 0074 frame->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); 0075 0076 QCheckBox *wordWrapCb = new QCheckBox(QStringLiteral("wordWrap"), mainWindow); 0077 wordWrapCb->setChecked(true); 0078 QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw, &KMessageWidget::setWordWrap); 0079 QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw1, &KMessageWidget::setWordWrap); 0080 QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw2, &KMessageWidget::setWordWrap); 0081 QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw3, &KMessageWidget::setWordWrap); 0082 QObject::connect(wordWrapCb, &QAbstractButton::toggled, mw4, &KMessageWidget::setWordWrap); 0083 0084 QCheckBox *closeButtonCb = new QCheckBox(QStringLiteral("closeButton"), mainWindow); 0085 closeButtonCb->setChecked(true); 0086 QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw, &KMessageWidget::setCloseButtonVisible); 0087 QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw1, &KMessageWidget::setCloseButtonVisible); 0088 QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw2, &KMessageWidget::setCloseButtonVisible); 0089 QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw3, &KMessageWidget::setCloseButtonVisible); 0090 QObject::connect(closeButtonCb, &QAbstractButton::toggled, mw4, &KMessageWidget::setCloseButtonVisible); 0091 0092 l->addWidget(wordWrapCb); 0093 l->addWidget(closeButtonCb); 0094 l->addWidget(mw); 0095 l->addWidget(mw1); 0096 l->addWidget(mw2); 0097 l->addWidget(mw3); 0098 l->addWidget(mw4); 0099 l->addWidget(frame); 0100 0101 mainWindow->resize(400, 300); 0102 mainWindow->show(); 0103 0104 // demonstrate linkActivated 0105 Receiver *info = new Receiver(mw); 0106 QObject::connect(mw, &KMessageWidget::linkActivated, info, &Receiver::showWhatsThis); 0107 0108 return app.exec(); 0109 delete mainWindow; 0110 } 0111 0112 #include "kmessagewidgettest.moc" 0113 0114 // kate: replace-tabs on;