/[svn]/qsampler/trunk/src/qsamplerMessages.h
ViewVC logotype

Contents of /qsampler/trunk/src/qsamplerMessages.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3555 - (show annotations) (download) (as text)
Tue Aug 13 10:19:32 2019 UTC (4 years, 7 months ago) by capela
File MIME type: text/x-c++hdr
File size: 2930 byte(s)
- In late compliance to C++11, all NULL constants replaced for nullptr.
1 // qsamplerMessages.h
2 //
3 /****************************************************************************
4 Copyright (C) 2004-2019, rncbc aka Rui Nuno Capela. All rights reserved.
5 Copyright (C) 2007, Christian Schoenebeck
6
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License along
18 with this program; if not, write to the Free Software Foundation, Inc.,
19 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
21 *****************************************************************************/
22
23 #ifndef __qsamplerMessages_h
24 #define __qsamplerMessages_h
25
26 #include <QDockWidget>
27
28 class QSocketNotifier;
29 class QTextEdit;
30 class QFile;
31
32 namespace QSampler {
33
34 //-------------------------------------------------------------------------
35 // QSampler::Messages - Messages log dockable window.
36 //
37
38 class Messages : public QDockWidget
39 {
40 Q_OBJECT
41
42 public:
43
44 // Constructor.
45 Messages(QWidget *pParent);
46 // Destructor.
47 ~Messages();
48
49 // Stdout/stderr capture accessors.
50 bool isCaptureEnabled();
51 void setCaptureEnabled(bool bCapture);
52
53 // Message font accessors.
54 QFont messagesFont();
55 void setMessagesFont(const QFont & font);
56
57 // Maximum number of message lines accessors.
58 int messagesLimit();
59 void setMessagesLimit(int iMessagesLimit);
60
61 // Logging settings.
62 bool isLogging() const;
63 void setLogging(bool bEnabled, const QString& sFilename = QString());
64
65 // The main utility methods.
66 void appendMessages(const QString& s);
67 void appendMessagesColor(const QString& s, const QString &c);
68 void appendMessagesText(const QString& s);
69
70 // Stdout capture functions.
71 void appendStdoutBuffer(const QString& s);
72 void flushStdoutBuffer();
73
74 // History reset.
75 void clear();
76
77 protected:
78
79 // Message executives.
80 void appendMessagesLine(const QString& s);
81 void appendMessagesLog(const QString& s);
82
83 // Set stdout/stderr blocking mode.
84 bool stdoutBlock(int fd, bool bBlock) const;
85
86 protected slots:
87
88 // Stdout capture slot.
89 void stdoutNotify(int fd);
90
91 private:
92
93 // The maximum number of message lines.
94 int m_iMessagesLines;
95 int m_iMessagesLimit;
96 int m_iMessagesHigh;
97
98 // The textview main widget.
99 QTextEdit *m_pMessagesTextView;
100
101 // Stdout capture variables.
102 QSocketNotifier *m_pStdoutNotifier;
103 QString m_sStdoutBuffer;
104 int m_fdStdout[2];
105
106 // Logging stuff.
107 QFile *m_pMessagesLog;
108 };
109
110 } // namespace QSampler
111
112 #endif // __qsamplerMessages_h
113
114
115 // end of qsamplerMessages.h

  ViewVC Help
Powered by ViewVC