35 |
#include <unistd.h> |
#include <unistd.h> |
36 |
#endif |
#endif |
37 |
|
|
38 |
|
|
39 |
|
namespace QSampler { |
40 |
|
|
41 |
// The default maximum number of message lines. |
// The default maximum number of message lines. |
42 |
#define QSAMPLER_MESSAGES_MAXLINES 1000 |
#define QSAMPLER_MESSAGES_MAXLINES 1000 |
43 |
|
|
46 |
#define QSAMPLER_MESSAGES_FDREAD 0 |
#define QSAMPLER_MESSAGES_FDREAD 0 |
47 |
#define QSAMPLER_MESSAGES_FDWRITE 1 |
#define QSAMPLER_MESSAGES_FDWRITE 1 |
48 |
|
|
|
|
|
49 |
//------------------------------------------------------------------------- |
//------------------------------------------------------------------------- |
50 |
// qsamplerMessages - Messages log dockable window. |
// QSampler::Messages - Messages log dockable window. |
51 |
// |
// |
52 |
|
|
53 |
// Constructor. |
// Constructor. |
54 |
qsamplerMessages::qsamplerMessages ( QWidget *pParent ) |
Messages::Messages ( QWidget *pParent ) |
55 |
: QDockWidget(pParent) |
: QDockWidget(pParent) |
56 |
{ |
{ |
57 |
// Surely a name is crucial (e.g.for storing geometry settings) |
// Surely a name is crucial (e.g.for storing geometry settings) |
93 |
|
|
94 |
|
|
95 |
// Destructor. |
// Destructor. |
96 |
qsamplerMessages::~qsamplerMessages (void) |
Messages::~Messages (void) |
97 |
{ |
{ |
98 |
// No more notifications. |
// No more notifications. |
99 |
if (m_pStdoutNotifier) |
if (m_pStdoutNotifier) |
103 |
} |
} |
104 |
|
|
105 |
|
|
106 |
void qsamplerMessages::showEvent (QShowEvent* event) |
void Messages::showEvent (QShowEvent* event) |
107 |
{ |
{ |
108 |
QDockWidget::showEvent(event); |
QDockWidget::showEvent(event); |
109 |
emit visibilityChanged(isVisible()); |
emit visibilityChanged(isVisible()); |
111 |
|
|
112 |
|
|
113 |
// Own stdout/stderr socket notifier slot. |
// Own stdout/stderr socket notifier slot. |
114 |
void qsamplerMessages::stdoutNotify ( int fd ) |
void Messages::stdoutNotify ( int fd ) |
115 |
{ |
{ |
116 |
#if !defined(WIN32) |
#if !defined(WIN32) |
117 |
char achBuffer[1024]; |
char achBuffer[1024]; |
125 |
|
|
126 |
|
|
127 |
// Stdout buffer handler -- now splitted by complete new-lines... |
// Stdout buffer handler -- now splitted by complete new-lines... |
128 |
void qsamplerMessages::appendStdoutBuffer ( const QString& s ) |
void Messages::appendStdoutBuffer ( const QString& s ) |
129 |
{ |
{ |
130 |
m_sStdoutBuffer.append(s); |
m_sStdoutBuffer.append(s); |
131 |
|
|
142 |
|
|
143 |
|
|
144 |
// Stdout flusher -- show up any unfinished line... |
// Stdout flusher -- show up any unfinished line... |
145 |
void qsamplerMessages::flushStdoutBuffer (void) |
void Messages::flushStdoutBuffer (void) |
146 |
{ |
{ |
147 |
if (!m_sStdoutBuffer.isEmpty()) { |
if (!m_sStdoutBuffer.isEmpty()) { |
148 |
appendMessagesText(m_sStdoutBuffer); |
appendMessagesText(m_sStdoutBuffer); |
152 |
|
|
153 |
|
|
154 |
// Stdout capture accessors. |
// Stdout capture accessors. |
155 |
bool qsamplerMessages::isCaptureEnabled (void) |
bool Messages::isCaptureEnabled (void) |
156 |
{ |
{ |
157 |
return (bool) (m_pStdoutNotifier != NULL); |
return (bool) (m_pStdoutNotifier != NULL); |
158 |
} |
} |
159 |
|
|
160 |
void qsamplerMessages::setCaptureEnabled ( bool bCapture ) |
void Messages::setCaptureEnabled ( bool bCapture ) |
161 |
{ |
{ |
162 |
// Flush current buffer. |
// Flush current buffer. |
163 |
flushStdoutBuffer(); |
flushStdoutBuffer(); |
192 |
|
|
193 |
|
|
194 |
// Message font accessors. |
// Message font accessors. |
195 |
QFont qsamplerMessages::messagesFont (void) |
QFont Messages::messagesFont (void) |
196 |
{ |
{ |
197 |
return m_pTextView->font(); |
return m_pTextView->font(); |
198 |
} |
} |
199 |
|
|
200 |
void qsamplerMessages::setMessagesFont( const QFont& font ) |
void Messages::setMessagesFont( const QFont& font ) |
201 |
{ |
{ |
202 |
m_pTextView->setFont(font); |
m_pTextView->setFont(font); |
203 |
} |
} |
204 |
|
|
205 |
|
|
206 |
// Maximum number of message lines accessors. |
// Maximum number of message lines accessors. |
207 |
int qsamplerMessages::messagesLimit (void) |
int Messages::messagesLimit (void) |
208 |
{ |
{ |
209 |
return m_iMessagesLimit; |
return m_iMessagesLimit; |
210 |
} |
} |
211 |
|
|
212 |
void qsamplerMessages::setMessagesLimit ( int iMessagesLimit ) |
void Messages::setMessagesLimit ( int iMessagesLimit ) |
213 |
{ |
{ |
214 |
m_iMessagesLimit = iMessagesLimit; |
m_iMessagesLimit = iMessagesLimit; |
215 |
m_iMessagesHigh = iMessagesLimit + (iMessagesLimit / 3); |
m_iMessagesHigh = iMessagesLimit + (iMessagesLimit / 3); |
217 |
|
|
218 |
|
|
219 |
// The main utility methods. |
// The main utility methods. |
220 |
void qsamplerMessages::appendMessages ( const QString& s ) |
void Messages::appendMessages ( const QString& s ) |
221 |
{ |
{ |
222 |
appendMessagesColor(s, "#999999"); |
appendMessagesColor(s, "#999999"); |
223 |
} |
} |
224 |
|
|
225 |
void qsamplerMessages::appendMessagesColor ( const QString& s, const QString &c ) |
void Messages::appendMessagesColor ( const QString& s, const QString &c ) |
226 |
{ |
{ |
227 |
appendMessagesText("<font color=\"" + c + "\">" |
appendMessagesText("<font color=\"" + c + "\">" |
228 |
+ QTime::currentTime().toString("hh:mm:ss.zzz") |
+ QTime::currentTime().toString("hh:mm:ss.zzz") |
229 |
+ ' ' + s + "</font>"); |
+ ' ' + s + "</font>"); |
230 |
} |
} |
231 |
|
|
232 |
void qsamplerMessages::appendMessagesText ( const QString& s ) |
void Messages::appendMessagesText ( const QString& s ) |
233 |
{ |
{ |
234 |
// Check for message line limit... |
// Check for message line limit... |
235 |
if (m_iMessagesLines > m_iMessagesHigh) { |
if (m_iMessagesLines > m_iMessagesHigh) { |
254 |
|
|
255 |
|
|
256 |
// History reset. |
// History reset. |
257 |
void qsamplerMessages::clear (void) |
void Messages::clear (void) |
258 |
{ |
{ |
259 |
m_iMessagesLines = 0; |
m_iMessagesLines = 0; |
260 |
m_pTextView->clear(); |
m_pTextView->clear(); |
261 |
} |
} |
262 |
|
|
263 |
|
} // namespace QSampler |
264 |
|
|
265 |
|
|
266 |
// end of qsamplerMessages.cpp |
// end of qsamplerMessages.cpp |