mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-06 10:00:40 +02:00
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
This commit is contained in:
parent
863662a5eb
commit
e104b1d529
@ -208,7 +208,7 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>5</x>
|
||||
<y>4</y>
|
||||
<y>5</y>
|
||||
<width>107</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
@ -238,7 +238,7 @@
|
||||
<x>210</x>
|
||||
<y>5</y>
|
||||
<width>128</width>
|
||||
<height>23</height>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
|
@ -40,9 +40,12 @@ private:
|
||||
class qDebugStream : public basic_streambuf<char> {
|
||||
|
||||
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;
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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"<<endl;
|
||||
dockWidgetPlot->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"<<endl;
|
||||
|
||||
|
||||
// creating the messages tab before the plots and detector to catch config stdout
|
||||
tab_messages = new qTabMessages (this); cout<<"Messages ready"<<endl;
|
||||
// settings up detector
|
||||
SetUpDetector(fName);
|
||||
// plot setup
|
||||
myPlot = new qDrawPlot(dockWidgetPlot,myDet);cout<<"DockPlot ready"<<endl;
|
||||
dockWidgetPlot->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"<<endl;
|
||||
tab_dataoutput = new qTabDataOutput (this, myDet); cout<<"DataOutput ready"<<endl;
|
||||
tab_plot = new qTabPlot (this, myDet,myPlot); cout<<"Plot ready"<<endl;
|
||||
@ -132,6 +139,7 @@ void qDetectorMain::SetUpWidgetWindow(){
|
||||
tabs->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);
|
||||
|
@ -16,6 +16,8 @@
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QFileDialog>
|
||||
|
||||
|
||||
/** C++ Include Headers */
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
@ -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!"<<endl;
|
||||
//qerr=new qDebugStream(cerr,this);
|
||||
|
||||
//qerr=NULL;
|
||||
//qerr=new qDebugStream(std::cerr,this);cout<<"worked!"<<endl;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
@ -82,6 +89,7 @@ void qTabMessages::customEvent(QEvent *e) {
|
||||
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
void qTabMessages::SaveLog() {
|
||||
//cerr<<endl<<"ERRRORRRR"<<endl<<endl;
|
||||
QString fName = QString(myDet->getFilePath().c_str());
|
||||
fName = fName+"/LogFile.txt";
|
||||
fName = QFileDialog::getSaveFileName(this,tr("Save Snapshot "),
|
||||
|
Loading…
x
Reference in New Issue
Block a user