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"