From e104b1d529569e4dd3459d83420c3e5422779355 Mon Sep 17 00:00:00 2001 From: l_maliakal_d Date: Tue, 16 Oct 2012 08:29:44 +0000 Subject: [PATCH] messages capture config output, still to find a way to capture all cerr output git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorGui@95 af1100a4-978c-4157-bff7-07162d2ba061 --- slsDetectorGui/forms/form_tab_plot.ui | 4 ++-- slsDetectorGui/include/qDebugStream.h | 8 +++++++- slsDetectorGui/include/qDetectorMain.h | 3 ++- slsDetectorGui/include/qTabMessages.h | 9 +++++++-- slsDetectorGui/src/qDetectorMain.cpp | 26 +++++++++++++++++--------- slsDetectorGui/src/qTabMessages.cpp | 12 ++++++++++-- 6 files changed, 45 insertions(+), 17 deletions(-) diff --git a/slsDetectorGui/forms/form_tab_plot.ui b/slsDetectorGui/forms/form_tab_plot.ui index 98f05ce19..0c905f491 100644 --- a/slsDetectorGui/forms/form_tab_plot.ui +++ b/slsDetectorGui/forms/form_tab_plot.ui @@ -208,7 +208,7 @@ 5 - 4 + 5 107 26 @@ -238,7 +238,7 @@ 210 5 128 - 23 + 26 diff --git a/slsDetectorGui/include/qDebugStream.h b/slsDetectorGui/include/qDebugStream.h index bb4607691..6b5e8a51d 100644 --- a/slsDetectorGui/include/qDebugStream.h +++ b/slsDetectorGui/include/qDebugStream.h @@ -40,9 +40,12 @@ private: class qDebugStream : public basic_streambuf { public: - qDebugStream(ostream &stream, QWidget* w) : m_stream(stream), log_window(w) { + qDebugStream(ostream &stream, ostream &estream, QWidget* w) : m_stream(stream), e_stream(estream), log_window(w) { m_old_buf = stream.rdbuf(); stream.rdbuf(this); + //e_old_buf = stream.rdbuf(); + //estream.rdbuf(this); + }; //------------------------------------------------------------------------------------------------------------------------------------------------- @@ -57,6 +60,7 @@ public: #endif } m_stream.rdbuf(m_old_buf); + e_stream.rdbuf(e_old_buf); } //------------------------------------------------------------------------------------------------------------------------------------------------- @@ -104,6 +108,8 @@ protected: private: ostream &m_stream; streambuf *m_old_buf; + ostream &e_stream; + streambuf *e_old_buf; string m_string; QWidget* log_window; }; diff --git a/slsDetectorGui/include/qDetectorMain.h b/slsDetectorGui/include/qDetectorMain.h index b4ec2cdb6..fd8b8c830 100644 --- a/slsDetectorGui/include/qDetectorMain.h +++ b/slsDetectorGui/include/qDetectorMain.h @@ -113,8 +113,9 @@ private: int isDeveloper; /**Sets up the layout of the widget + * @param fName file name of the config file at start up * */ - void SetUpWidgetWindow(); + void SetUpWidgetWindow(const string fName); /**Sets up detector * @param fName file name of the config file at start up diff --git a/slsDetectorGui/include/qTabMessages.h b/slsDetectorGui/include/qTabMessages.h index 6821a55f1..49d722d46 100644 --- a/slsDetectorGui/include/qTabMessages.h +++ b/slsDetectorGui/include/qTabMessages.h @@ -28,14 +28,18 @@ class qTabMessages:public QWidget{ public: /** \short The constructor * @param parent is the parent tab widget - * @param detector is the detector returned from the detector tab */ - qTabMessages(QWidget *parent,multiSlsDetector*& detector); + qTabMessages(QWidget *parent); /** Destructor */ ~qTabMessages(); + /** Set the detetor reference + * @param det the detector reference + */ + void SetDetectorReference(multiSlsDetector*& detector){myDet = detector;}; + private: /** The sls detector object */ @@ -52,6 +56,7 @@ private: /** This class creates the log */ qDebugStream *qout; + //qDebugStream *qerr; /** methods */ /** Sets up the widget */ diff --git a/slsDetectorGui/src/qDetectorMain.cpp b/slsDetectorGui/src/qDetectorMain.cpp index b7ee346c9..97679de97 100644 --- a/slsDetectorGui/src/qDetectorMain.cpp +++ b/slsDetectorGui/src/qDetectorMain.cpp @@ -64,8 +64,7 @@ qDetectorMain::qDetectorMain(int argc, char **argv, QApplication *app, QWidget * } setupUi(this); - SetUpDetector(configFName); - SetUpWidgetWindow(); + SetUpWidgetWindow(configFName); Initialization(); } @@ -84,21 +83,29 @@ qDetectorMain::~qDetectorMain(){ //------------------------------------------------------------------------------------------------------------------------------------------------- -void qDetectorMain::SetUpWidgetWindow(){ +void qDetectorMain::SetUpWidgetWindow(const string fName){ // Layout layoutTabs= new QGridLayout; centralwidget->setLayout(layoutTabs); -// plot setup - myPlot = new qDrawPlot(dockWidgetPlot,myDet);cout<<"DockPlot ready"<setWidget(myPlot); //tabs setup tabs = new MyTabWidget(this); layoutTabs->addWidget(tabs); - // creating all the tab widgets - tab_messages = new qTabMessages (this, myDet); cout<<"Messages ready"<setWidget(myPlot); + + //settings messages to have the det reference + tab_messages->SetDetectorReference(myDet); + // creating all the other tab widgets tab_measurement = new qTabMeasurement (this, myDet,myPlot); cout<<"Measurement ready"<insertTab(Developer, scroll[Developer], "Developer"); // Prefer this to expand and not have scroll buttons tabs->insertTab(Messages, tab_messages, "Messages"); + // Default tab color defaultTabColor = tabs->tabBar()->tabTextColor(DataOutput); //Set the current tab(measurement) to blue as it is the current one @@ -267,7 +275,7 @@ void qDetectorMain::Initialization(){ void qDetectorMain::LoadConfigFile(const string fName){ -#ifdef VERBOSe +#ifdef VERBOSE cout << "Loading config file at start up:" << fName << endl; #endif QString file = QString(fName.c_str());//.section('/',-1); diff --git a/slsDetectorGui/src/qTabMessages.cpp b/slsDetectorGui/src/qTabMessages.cpp index 016ee82fd..7d22b7395 100644 --- a/slsDetectorGui/src/qTabMessages.cpp +++ b/slsDetectorGui/src/qTabMessages.cpp @@ -16,6 +16,8 @@ #include #include #include + + /** C++ Include Headers */ #include #include @@ -23,7 +25,7 @@ using namespace std; //------------------------------------------------------------------------------------------------------------------------------------------------- -qTabMessages::qTabMessages(QWidget *parent,multiSlsDetector*& detector):QWidget(parent),myDet(detector){ +qTabMessages::qTabMessages(QWidget *parent):QWidget(parent),myDet(0){ SetupWidgetWindow(); Initialization(); } @@ -33,6 +35,7 @@ qTabMessages::qTabMessages(QWidget *parent,multiSlsDetector*& detector):QWidget( qTabMessages::~qTabMessages(){ delete myDet; delete dispLog; + delete qout; } //------------------------------------------------------------------------------------------------------------------------------------------------- @@ -62,7 +65,11 @@ void qTabMessages::SetupWidgetWindow(){ gridLayout->addItem(new QSpacerItem(15,10,QSizePolicy::Fixed,QSizePolicy::Fixed),2,0); gridLayout->addWidget(dispLog,3,0,1,5); - qout=new qDebugStream(std::cout,this); + qout=new qDebugStream(cout,cerr, this);cout<<"working!"<getFilePath().c_str()); fName = fName+"/LogFile.txt"; fName = QFileDialog::getSaveFileName(this,tr("Save Snapshot "),