importantmessageswidget.h
1 //------------------------------------------------------------------------------
2 // importantmessageswidget.h
3 //------------------------------------------------------------------------------
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 // 02110-1301 USA
19 //
20 //------------------------------------------------------------------------------
21 // Copyright (C) 2011 "Zalewa" <zalewapl@gmail.com>
22 //------------------------------------------------------------------------------
23 #ifndef __IMPORTANTMESSAGESWIDGET_H__
24 #define __IMPORTANTMESSAGESWIDGET_H__
25 
26 #include "dptr.h"
27 
28 #include <QWidget>
29 
30 class QDateTime;
31 class QLabel;
32 class QVBoxLayout;
33 
44 class ImportantMessagesWidget : public QWidget
45 {
46  Q_OBJECT
47 
48 public:
49  ImportantMessagesWidget(QWidget *pParent = nullptr);
50  ~ImportantMessagesWidget() override;
51 
56  unsigned maxMessages() const;
57  void setMaxMessages(unsigned num);
58 
59 public slots:
63  void addMessage(const QString &message);
64 
73  void addMessage(const QString &message, const QDateTime &dateTime);
74 
83  void addMessage(const QString &message, unsigned timestamp);
84 
90  void clear();
91 
101  void removeOldest(int num);
102 
106  void removeOneOldest();
107 
108 private:
110 
111 private slots:
118  void dropOldWidgetsIfBeyondLimit();
119 };
120 
121 #endif
void addMessage(const QString &message)
Adds a new message without a timestamp.
void removeOneOldest()
Will remove one oldest message.
A self-scaling widget that displays messages as separate instances of QLabel.
unsigned maxMessages() const
Amount of messages that can be displayed in the widget at the same time.
void clear()
Clears all messages from the widghet.
void removeOldest(int num)
Removes a number of oldest messages from the widget.