File indexing completed on 2024-04-28 04:37:33

0001 /*
0002     SPDX-FileCopyrightText: 2012-2013 Dominik Haumann <dhaumann@kde.org>
0003     SPDX-FileCopyrightText: 2020 Friedrich W. H. Kossebau <kossebau@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "message.h"
0009 
0010 namespace Sublime {
0011 
0012 class MessagePrivate
0013 {
0014 public:
0015     QVector<QAction*> actions;
0016     QString text;
0017     QIcon icon;
0018     int autoHideDelay = -1;
0019     int priority = 0;
0020     Message::MessageType messageType;
0021     bool wordWrap = true;
0022 };
0023 
0024 
0025 Message::Message(const QString& richtext, MessageType type)
0026     : d(new MessagePrivate())
0027 {
0028     d->messageType = type;
0029     d->text = richtext;
0030 }
0031 
0032 Message::~Message()
0033 {
0034     emit closed(this);
0035 }
0036 
0037 QString Message::text() const
0038 {
0039     return d->text;
0040 }
0041 
0042 void Message::setText(const QString& text)
0043 {
0044     if (d->text == text) {
0045         return;
0046     }
0047 
0048     d->text = text;
0049     emit textChanged(text);
0050 }
0051 
0052 void Message::setIcon(const QIcon& icon)
0053 {
0054     d->icon = icon;
0055     emit iconChanged(d->icon);
0056 }
0057 
0058 QIcon Message::icon() const
0059 {
0060     return d->icon;
0061 }
0062 
0063 Message::MessageType Message::messageType() const
0064 {
0065     return d->messageType;
0066 }
0067 
0068 void Message::addAction(QAction* action, bool closeOnTrigger)
0069 {
0070     // make sure this is the parent, so all actions are deleted in the destructor
0071     action->setParent(this);
0072     d->actions.append(action);
0073 
0074     // call close if wanted
0075     if (closeOnTrigger) {
0076         connect(action, &QAction::triggered,
0077                 this, &QObject::deleteLater);
0078     }
0079 }
0080 
0081 QVector<QAction*> Message::actions() const
0082 {
0083     return d->actions;
0084 }
0085 
0086 void Message::setAutoHide(int delay)
0087 {
0088     d->autoHideDelay = delay;
0089 }
0090 
0091 int Message::autoHide() const
0092 {
0093     return d->autoHideDelay;
0094 }
0095 
0096 void Message::setWordWrap(bool wordWrap)
0097 {
0098     d->wordWrap = wordWrap;
0099 }
0100 
0101 bool Message::wordWrap() const
0102 {
0103     return d->wordWrap;
0104 }
0105 
0106 void Message::setPriority(int priority)
0107 {
0108     d->priority = priority;
0109 }
0110 
0111 int Message::priority() const
0112 {
0113     return d->priority;
0114 }
0115 
0116 }
0117 
0118 #include "moc_message.cpp"