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

Diff of /qsampler/trunk/src/qsamplerMessages.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1738 by capela, Wed May 14 15:24:22 2008 UTC revision 2441 by capela, Wed Apr 10 09:11:37 2013 UTC
# Line 1  Line 1 
1  // qsamplerMessages.cpp  // qsamplerMessages.cpp
2  //  //
3  /****************************************************************************  /****************************************************************************
4     Copyright (C) 2004-2008, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2004-2013, rncbc aka Rui Nuno Capela. All rights reserved.
5     Copyright (C) 2007, Christian Schoenebeck     Copyright (C) 2007, Christian Schoenebeck
6    
7     This program is free software; you can redistribute it and/or     This program is free software; you can redistribute it and/or
# Line 55  namespace QSampler { Line 55  namespace QSampler {
55    
56  // Constructor.  // Constructor.
57  Messages::Messages ( QWidget *pParent )  Messages::Messages ( QWidget *pParent )
58      : QDockWidget(pParent)          : QDockWidget(pParent)
59  {  {
60          // Surely a name is crucial (e.g.for storing geometry settings)          // Surely a name is crucial (e.g.for storing geometry settings)
61          QDockWidget::setObjectName("qsamplerMessages");          QDockWidget::setObjectName("qsamplerMessages");
62    
63      // Intialize stdout capture stuff.          // Intialize stdout capture stuff.
64      m_pStdoutNotifier = NULL;          m_pStdoutNotifier = NULL;
65      m_fdStdout[QSAMPLER_MESSAGES_FDREAD]  = QSAMPLER_MESSAGES_FDNIL;          m_fdStdout[QSAMPLER_MESSAGES_FDREAD]  = QSAMPLER_MESSAGES_FDNIL;
66      m_fdStdout[QSAMPLER_MESSAGES_FDWRITE] = QSAMPLER_MESSAGES_FDNIL;          m_fdStdout[QSAMPLER_MESSAGES_FDWRITE] = QSAMPLER_MESSAGES_FDNIL;
67    
68          // Create local text view widget.          // Create local text view widget.
69          m_pMessagesTextView = new QTextEdit(this);          m_pMessagesTextView = new QTextEdit(this);
# Line 100  Messages::Messages ( QWidget *pParent ) Line 100  Messages::Messages ( QWidget *pParent )
100  // Destructor.  // Destructor.
101  Messages::~Messages (void)  Messages::~Messages (void)
102  {  {
103            // Turn off and close logging.
104          setLogging(false);          setLogging(false);
105    
106      // No more notifications.          // No more notifications.
107      if (m_pStdoutNotifier)          if (m_pStdoutNotifier)
108          delete m_pStdoutNotifier;                  delete m_pStdoutNotifier;
109    
110      // No need to delete child widgets, Qt does it all for us.          // No need to delete child widgets, Qt does it all for us.
111  }  }
112    
113    
114    #if QT_VERSION < 0x040300
115  void Messages::showEvent ( QShowEvent *pEvent )  void Messages::showEvent ( QShowEvent *pEvent )
116  {  {
117      QDockWidget::showEvent(pEvent);          QDockWidget::showEvent(pEvent);
118      emit visibilityChanged(isVisible());          emit visibilityChanged(isVisible());
119  }  }
120    #endif
121    
122  // Own stdout/stderr socket notifier slot.  // Own stdout/stderr socket notifier slot.
123  void Messages::stdoutNotify ( int fd )  void Messages::stdoutNotify ( int fd )
124  {  {
125  #if !defined(WIN32)  #if !defined(WIN32)
126      char achBuffer[1024];          char achBuffer[1024];
127      int  cchBuffer = ::read(fd, achBuffer, sizeof(achBuffer) - 1);          int  cchBuffer = ::read(fd, achBuffer, sizeof(achBuffer) - 1);
128      if (cchBuffer > 0) {          if (cchBuffer > 0) {
129          achBuffer[cchBuffer] = (char) 0;                  achBuffer[cchBuffer] = (char) 0;
130          appendStdoutBuffer(achBuffer);                  appendStdoutBuffer(achBuffer);
131      }          }
132  #endif  #endif
133  }  }
134    
# Line 151  void Messages::appendStdoutBuffer ( cons Line 153  void Messages::appendStdoutBuffer ( cons
153  // Stdout flusher -- show up any unfinished line...  // Stdout flusher -- show up any unfinished line...
154  void Messages::flushStdoutBuffer (void)  void Messages::flushStdoutBuffer (void)
155  {  {
156      if (!m_sStdoutBuffer.isEmpty()) {          if (!m_sStdoutBuffer.isEmpty()) {
157          appendMessagesText(m_sStdoutBuffer);                  appendMessagesText(m_sStdoutBuffer);
158          m_sStdoutBuffer.truncate(0);                  m_sStdoutBuffer.truncate(0);
159      }          }
160  }  }
161    
162    
163  // Stdout capture accessors.  // Stdout capture accessors.
164  bool Messages::isCaptureEnabled (void)  bool Messages::isCaptureEnabled (void)
165  {  {
166      return (bool) (m_pStdoutNotifier != NULL);          return (bool) (m_pStdoutNotifier != NULL);
167  }  }
168    
169  void Messages::setCaptureEnabled ( bool bCapture )  void Messages::setCaptureEnabled ( bool bCapture )
170  {  {
171      // Flush current buffer.          // Flush current buffer.
172      flushStdoutBuffer();          flushStdoutBuffer();
173    
174  #if !defined(WIN32)  #if !defined(WIN32)
175          // Destroy if already enabled.          // Destroy if already enabled.
# Line 201  void Messages::setCaptureEnabled ( bool Line 203  void Messages::setCaptureEnabled ( bool
203  // Message font accessors.  // Message font accessors.
204  QFont Messages::messagesFont (void)  QFont Messages::messagesFont (void)
205  {  {
206      return m_pMessagesTextView->font();          return m_pMessagesTextView->font();
207  }  }
208    
209  void Messages::setMessagesFont ( const QFont& font )  void Messages::setMessagesFont ( const QFont& font )
210  {  {
211      m_pMessagesTextView->setFont(font);          m_pMessagesTextView->setFont(font);
212  }  }
213    
214    
215  // Maximum number of message lines accessors.  // Maximum number of message lines accessors.
216  int Messages::messagesLimit (void)  int Messages::messagesLimit (void)
217  {  {
218      return m_iMessagesLimit;          return m_iMessagesLimit;
219  }  }
220    
221  void Messages::setMessagesLimit ( int iMessagesLimit )  void Messages::setMessagesLimit ( int iMessagesLimit )
222  {  {
223      m_iMessagesLimit = iMessagesLimit;          m_iMessagesLimit = iMessagesLimit;
224      m_iMessagesHigh  = iMessagesLimit + (iMessagesLimit / 3);          m_iMessagesHigh  = iMessagesLimit + (iMessagesLimit / 3);
225  }  }
226    
227  // Messages logging stuff.  // Messages logging stuff.
# Line 287  void Messages::appendMessagesLine ( cons Line 289  void Messages::appendMessagesLine ( cons
289  // The main utility methods.  // The main utility methods.
290  void Messages::appendMessages ( const QString& s )  void Messages::appendMessages ( const QString& s )
291  {  {
292      appendMessagesColor(s, "#999999");          appendMessagesColor(s, "#999999");
293  }  }
294    
295  void Messages::appendMessagesColor ( const QString& s, const QString &c )  void Messages::appendMessagesColor ( const QString& s, const QString &c )
296  {  {
297          QString sText = QTime::currentTime().toString("hh:mm:ss.zzz") + ' ' + s;          QString sText = QTime::currentTime().toString("hh:mm:ss.zzz") + ' ' + s;
           
298          appendMessagesLine("<font color=\"" + c + "\">" + sText + "</font>");          appendMessagesLine("<font color=\"" + c + "\">" + sText + "</font>");
299          appendMessagesLog(sText);          appendMessagesLog(sText);
300  }  }

Legend:
Removed from v.1738  
changed lines
  Added in v.2441

  ViewVC Help
Powered by ViewVC