--- qsampler/trunk/src/qsamplerMessages.h 2007/10/28 23:30:36 1461 +++ qsampler/trunk/src/qsamplerMessages.h 2018/12/04 09:52:38 3438 @@ -1,7 +1,8 @@ // qsamplerMessages.h // /**************************************************************************** - Copyright (C) 2004-2007, rncbc aka Rui Nuno Capela. All rights reserved. + Copyright (C) 2004-2017, rncbc aka Rui Nuno Capela. All rights reserved. + Copyright (C) 2007, Christian Schoenebeck This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -26,66 +27,87 @@ class QSocketNotifier; class QTextEdit; +class QFile; +namespace QSampler { //------------------------------------------------------------------------- -// qsamplerMessages - Messages log dockable window. +// QSampler::Messages - Messages log dockable window. // -class qsamplerMessages : public QDockWidget +class Messages : public QDockWidget { - Q_OBJECT + Q_OBJECT public: - // Constructor. - qsamplerMessages(QWidget *pParent, const char *pszName = 0); - // Destructor. - ~qsamplerMessages(); - - // Stdout/stderr capture accessors. - bool isCaptureEnabled(); - void setCaptureEnabled(bool bCapture); - - // Message font accessors. - QFont messagesFont(); - void setMessagesFont(const QFont & font); - - // Maximum number of message lines accessors. - int messagesLimit(); - void setMessagesLimit(int iMessagesLimit); - - // The main utility methods. - void appendMessages(const QString& s); - void appendMessagesColor(const QString& s, const QString &c); - void appendMessagesText(const QString& s); - - void scrollToBottom(); - - // Stdout capture functions. - void appendStdoutBuffer(const QString& s); - void flushStdoutBuffer(); + // Constructor. + Messages(QWidget *pParent); + // Destructor. + ~Messages(); + + // Stdout/stderr capture accessors. + bool isCaptureEnabled(); + void setCaptureEnabled(bool bCapture); + + // Message font accessors. + QFont messagesFont(); + void setMessagesFont(const QFont & font); + + // Maximum number of message lines accessors. + int messagesLimit(); + void setMessagesLimit(int iMessagesLimit); + + // Logging settings. + bool isLogging() const; + void setLogging(bool bEnabled, const QString& sFilename = QString()); + + // The main utility methods. + void appendMessages(const QString& s); + void appendMessagesColor(const QString& s, const QString &c); + void appendMessagesText(const QString& s); + + // Stdout capture functions. + void appendStdoutBuffer(const QString& s); + void flushStdoutBuffer(); + + // History reset. + void clear(); + +protected: + + // Message executives. + void appendMessagesLine(const QString& s); + void appendMessagesLog(const QString& s); + + // Set stdout/stderr blocking mode. + bool stdoutBlock(int fd, bool bBlock) const; protected slots: - // Stdout capture slot. - void stdoutNotify(int fd); + // Stdout capture slot. + void stdoutNotify(int fd); private: - // The maximum number of message lines. - int m_iMessagesLimit; - int m_iMessagesHigh; - - // The textview main widget. - QTextEdit *m_pTextView; - - // Stdout capture variables. - QSocketNotifier *m_pStdoutNotifier; - QString m_sStdoutBuffer; - int m_fdStdout[2]; + // The maximum number of message lines. + int m_iMessagesLines; + int m_iMessagesLimit; + int m_iMessagesHigh; + + // The textview main widget. + QTextEdit *m_pMessagesTextView; + + // Stdout capture variables. + QSocketNotifier *m_pStdoutNotifier; + QString m_sStdoutBuffer; + int m_fdStdout[2]; + + // Logging stuff. + QFile *m_pMessagesLog; }; +} // namespace QSampler #endif // __qsamplerMessages_h