|
|
#include "wfpage.h"
|
|
|
|
|
|
WFPage::WFPage(QWidget *parent) :
|
|
|
QMainWindow(parent)
|
|
|
{
|
|
|
wfPlot_v = new WFPlot();
|
|
|
wfPlot_e1 = new WFPlot();
|
|
|
wfPlot_e2 = new WFPlot();
|
|
|
wfPlot_b1 = new WFPlot();
|
|
|
wfPlot_b2 = new WFPlot();
|
|
|
wfPlot_b3 = new WFPlot();
|
|
|
//
|
|
|
wfPlot_v->customPlot->setTitle("v");
|
|
|
wfPlot_e1->customPlot->setTitle("e1");
|
|
|
wfPlot_e2->customPlot->setTitle("e2");
|
|
|
wfPlot_b1->customPlot->setTitle("b1");
|
|
|
wfPlot_b2->customPlot->setTitle("b2");
|
|
|
wfPlot_b3->customPlot->setTitle("b3");
|
|
|
//
|
|
|
/*mainLayout = new QGridLayout;
|
|
|
mainLayout->addWidget(wfPlot_v, 0, 0, 1, 1);
|
|
|
mainLayout->addWidget(wfPlot_e1, 0, 1, 1, 1);
|
|
|
mainLayout->addWidget(wfPlot_e2, 0, 2, 1, 1);
|
|
|
mainLayout->addWidget(wfPlot_b1, 1, 0, 1, 1);
|
|
|
mainLayout->addWidget(wfPlot_b2, 1, 1, 1, 1);
|
|
|
mainLayout->addWidget(wfPlot_b3, 1, 2, 1, 1);*/
|
|
|
//
|
|
|
dockV = NULL;
|
|
|
dockE1 = NULL;
|
|
|
dockE2 = NULL;
|
|
|
dockB1 = NULL;
|
|
|
dockB2 = NULL;
|
|
|
dockB3 = NULL;
|
|
|
|
|
|
createToolBar();
|
|
|
//
|
|
|
//this->setLayout(mainLayout);
|
|
|
}
|
|
|
|
|
|
void WFPage::displayOnPlot(short *data, unsigned char num)
|
|
|
{
|
|
|
switch(num){
|
|
|
case 0:
|
|
|
wfPlot_v->displayOnPlot(data, DEFAULT_SIZE);
|
|
|
break;
|
|
|
case 1:
|
|
|
wfPlot_e1->displayOnPlot(data, DEFAULT_SIZE);
|
|
|
break;
|
|
|
case 2:
|
|
|
wfPlot_e2->displayOnPlot(data, DEFAULT_SIZE);
|
|
|
break;
|
|
|
case 3:
|
|
|
wfPlot_b1->displayOnPlot(data, DEFAULT_SIZE);
|
|
|
break;
|
|
|
case 4:
|
|
|
wfPlot_b2->displayOnPlot(data, DEFAULT_SIZE);
|
|
|
break;
|
|
|
case 5:
|
|
|
wfPlot_b3->displayOnPlot(data, DEFAULT_SIZE);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void WFPage::createDockWindows()
|
|
|
{
|
|
|
dockV = new QDockWidget(tr("V"), this);
|
|
|
dockE1 = new QDockWidget(tr("E1"), this);
|
|
|
dockE2 = new QDockWidget(tr("E2"), this);
|
|
|
dockB1 = new QDockWidget(tr("B1"), this);
|
|
|
dockB2 = new QDockWidget(tr("B2"), this);
|
|
|
dockB3 = new QDockWidget(tr("B3"), this);
|
|
|
}
|
|
|
|
|
|
void WFPage::createToolBar()
|
|
|
{
|
|
|
radio_v = new QRadioButton(tr("v"));
|
|
|
radio_e1 = new QRadioButton(tr("e1"));
|
|
|
radio_e2 = new QRadioButton(tr("e2"));
|
|
|
radio_b1 = new QRadioButton(tr("b1"));
|
|
|
radio_b2 = new QRadioButton(tr("b2"));
|
|
|
radio_b3 = new QRadioButton(tr("b3"));
|
|
|
radio_tabify = new QRadioButton(tr("tabify"));
|
|
|
|
|
|
radio_v->setAutoExclusive(false);
|
|
|
radio_e1->setAutoExclusive(false);
|
|
|
radio_e2->setAutoExclusive(false);
|
|
|
radio_b1->setAutoExclusive(false);
|
|
|
radio_b2->setAutoExclusive(false);
|
|
|
radio_b3->setAutoExclusive(false);
|
|
|
radio_tabify->setAutoExclusive(false);
|
|
|
|
|
|
myToolBar = new QToolBar("select");
|
|
|
|
|
|
myToolBar->addWidget(radio_v);
|
|
|
myToolBar->addWidget(radio_e1);
|
|
|
myToolBar->addWidget(radio_e2);
|
|
|
myToolBar->addWidget(radio_b1);
|
|
|
myToolBar->addWidget(radio_b2);
|
|
|
myToolBar->addWidget(radio_b3);
|
|
|
myToolBar->addSeparator();
|
|
|
myToolBar->addWidget(radio_tabify);
|
|
|
|
|
|
addToolBar(Qt::LeftToolBarArea, myToolBar);
|
|
|
|
|
|
radio_tabify->setChecked(true);
|
|
|
|
|
|
connect(this->radio_v, SIGNAL(clicked(bool)), this, SLOT(actionRadioV(bool)));
|
|
|
connect(this->radio_e1, SIGNAL(clicked(bool)), this, SLOT(actionRadioE1(bool)));
|
|
|
connect(this->radio_e2, SIGNAL(clicked(bool)), this, SLOT(actionRadioE2(bool)));
|
|
|
connect(this->radio_b1, SIGNAL(clicked(bool)), this, SLOT(actionRadioB1(bool)));
|
|
|
connect(this->radio_b2, SIGNAL(clicked(bool)), this, SLOT(actionRadioB2(bool)));
|
|
|
connect(this->radio_b3, SIGNAL(clicked(bool)), this, SLOT(actionRadioB3(bool)));
|
|
|
connect(this->radio_tabify, SIGNAL(clicked(bool)), this, SLOT(organizeDocks()));
|
|
|
}
|
|
|
|
|
|
void WFPage::actionRadioV(bool state)
|
|
|
{
|
|
|
if (state == true)
|
|
|
{
|
|
|
if (dockV == NULL)
|
|
|
{
|
|
|
dockV = new QDockWidget("V", this);
|
|
|
dockV->setWidget(wfPlot_v);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this->removeDockWidget(dockV);
|
|
|
}
|
|
|
organizeDocks();
|
|
|
}
|
|
|
|
|
|
void WFPage::actionRadioE1(bool state)
|
|
|
{
|
|
|
if (state == true)
|
|
|
{
|
|
|
if (dockE1 == NULL)
|
|
|
{
|
|
|
dockE1 = new QDockWidget("E1", this);
|
|
|
dockE1->setWidget(wfPlot_e1);
|
|
|
}
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockE1);
|
|
|
dockE1->show();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this->removeDockWidget(dockE1);
|
|
|
}
|
|
|
organizeDocks();
|
|
|
}
|
|
|
|
|
|
void WFPage::actionRadioE2(bool state)
|
|
|
{
|
|
|
if (state == true)
|
|
|
{
|
|
|
if (dockE2 == NULL)
|
|
|
{
|
|
|
dockE2 = new QDockWidget("E2", this);
|
|
|
dockE2->setWidget(wfPlot_e2);
|
|
|
}
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockE2);
|
|
|
dockE2->show();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this->removeDockWidget(dockE2);
|
|
|
}
|
|
|
organizeDocks();
|
|
|
}
|
|
|
|
|
|
void WFPage::actionRadioB1(bool state)
|
|
|
{
|
|
|
if (state == true)
|
|
|
{
|
|
|
if (dockB1 == NULL)
|
|
|
{
|
|
|
dockB1 = new QDockWidget("B1", this);
|
|
|
dockB1->setWidget(wfPlot_b1);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this->removeDockWidget(dockB1);
|
|
|
}
|
|
|
organizeDocks();
|
|
|
}
|
|
|
|
|
|
void WFPage::actionRadioB2(bool state)
|
|
|
{
|
|
|
if (state == true)
|
|
|
{
|
|
|
if (dockB2 == NULL)
|
|
|
{
|
|
|
dockB2 = new QDockWidget("B2", this);
|
|
|
dockB2->setWidget(wfPlot_b2);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this->removeDockWidget(dockB2);
|
|
|
}
|
|
|
organizeDocks();
|
|
|
}
|
|
|
|
|
|
void WFPage::actionRadioB3(bool state)
|
|
|
{
|
|
|
if (state == true)
|
|
|
{
|
|
|
if (dockB3 == NULL)
|
|
|
{
|
|
|
dockB3 = new QDockWidget("B3", this);
|
|
|
dockB3->setWidget(wfPlot_b3);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this->removeDockWidget(dockB3);
|
|
|
}
|
|
|
organizeDocks();
|
|
|
}
|
|
|
|
|
|
void WFPage::buildDockList()
|
|
|
{
|
|
|
dockList.clear();
|
|
|
|
|
|
if (radio_v->isChecked())
|
|
|
{
|
|
|
dockList.append(dockV);
|
|
|
removeDockWidget(dockV);
|
|
|
}
|
|
|
if (radio_e1->isChecked())
|
|
|
{
|
|
|
dockList.append(dockE1);
|
|
|
removeDockWidget(dockE1);
|
|
|
}
|
|
|
if (radio_e2->isChecked())
|
|
|
{
|
|
|
dockList.append(dockE2);
|
|
|
removeDockWidget(dockE2);
|
|
|
}
|
|
|
if (radio_b1->isChecked())
|
|
|
{
|
|
|
dockList.append(dockB1);
|
|
|
removeDockWidget(dockB1);
|
|
|
}
|
|
|
if (radio_b2->isChecked())
|
|
|
{
|
|
|
dockList.append(dockB2);
|
|
|
removeDockWidget(dockB2);
|
|
|
}
|
|
|
if (radio_b3->isChecked())
|
|
|
{
|
|
|
dockList.append(dockB3);
|
|
|
removeDockWidget(dockB3);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void WFPage::organizeDocks()
|
|
|
{
|
|
|
if (radio_tabify->isChecked())
|
|
|
{
|
|
|
tabify();
|
|
|
this->resize(1.2*this->minimumSizeHint());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
unTabify();
|
|
|
wfPlot_v->resize(wfPlot_v->minimumSizeHint());
|
|
|
wfPlot_e1->resize(wfPlot_e1->minimumSizeHint());
|
|
|
wfPlot_e2->resize(wfPlot_e2->minimumSizeHint());
|
|
|
wfPlot_b1->resize(wfPlot_b1->minimumSizeHint());
|
|
|
wfPlot_b2->resize(wfPlot_b2->minimumSizeHint());
|
|
|
wfPlot_b3->resize(wfPlot_b3->minimumSizeHint());
|
|
|
this->resize(this->minimumSizeHint());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void WFPage::unTabify()
|
|
|
{
|
|
|
buildDockList();
|
|
|
|
|
|
switch(dockList.size())
|
|
|
{
|
|
|
case 0:
|
|
|
break;
|
|
|
case 1:
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(0));
|
|
|
dockList.at(0)->show();
|
|
|
break;
|
|
|
case 2:
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(0));
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(1));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
break;
|
|
|
case 3:
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(0));
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(1));
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(2));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
dockList.at(2)->show();
|
|
|
break;
|
|
|
case 4:
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(0));
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(1));
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(2));
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(3));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
dockList.at(2)->show();
|
|
|
dockList.at(3)->show();
|
|
|
break;
|
|
|
case 5:
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(0));
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(1));
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(2));
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(3));
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(4));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
dockList.at(2)->show();
|
|
|
dockList.at(3)->show();
|
|
|
dockList.at(4)->show();
|
|
|
break;
|
|
|
case 6:
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(0));
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(1));
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(2));
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(3));
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(4));
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(5));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
dockList.at(2)->show();
|
|
|
dockList.at(3)->show();
|
|
|
dockList.at(4)->show();
|
|
|
dockList.at(5)->show();
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void WFPage::tabify()
|
|
|
{
|
|
|
buildDockList();
|
|
|
|
|
|
switch(dockList.size())
|
|
|
{
|
|
|
case 0:
|
|
|
break;
|
|
|
case 1:
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(0));
|
|
|
dockList.at(0)->show();
|
|
|
break;
|
|
|
case 2:
|
|
|
addDockWidget(Qt::TopDockWidgetArea, dockList.at(0));
|
|
|
tabifyDockWidget(dockList.at(0), dockList.at(1));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
break;
|
|
|
case 3:
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(0));
|
|
|
tabifyDockWidget(dockList.at(0), dockList.at(1));
|
|
|
tabifyDockWidget(dockList.at(1), dockList.at(2));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
dockList.at(2)->show();
|
|
|
break;
|
|
|
case 4:
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(0));
|
|
|
tabifyDockWidget(dockList.at(0), dockList.at(1));
|
|
|
tabifyDockWidget(dockList.at(1), dockList.at(2));
|
|
|
tabifyDockWidget(dockList.at(2), dockList.at(3));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
dockList.at(2)->show();
|
|
|
dockList.at(3)->show();
|
|
|
break;
|
|
|
case 5:
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(0));
|
|
|
tabifyDockWidget(dockList.at(0), dockList.at(1));
|
|
|
tabifyDockWidget(dockList.at(1), dockList.at(2));
|
|
|
tabifyDockWidget(dockList.at(2), dockList.at(3));
|
|
|
tabifyDockWidget(dockList.at(3), dockList.at(4));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
dockList.at(2)->show();
|
|
|
dockList.at(3)->show();
|
|
|
dockList.at(4)->show();
|
|
|
break;
|
|
|
case 6:
|
|
|
addDockWidget(Qt::BottomDockWidgetArea, dockList.at(0));
|
|
|
tabifyDockWidget(dockList.at(0), dockList.at(1));
|
|
|
tabifyDockWidget(dockList.at(1), dockList.at(2));
|
|
|
tabifyDockWidget(dockList.at(2), dockList.at(3));
|
|
|
tabifyDockWidget(dockList.at(3), dockList.at(4));
|
|
|
tabifyDockWidget(dockList.at(4), dockList.at(5));
|
|
|
dockList.at(0)->show();
|
|
|
dockList.at(1)->show();
|
|
|
dockList.at(2)->show();
|
|
|
dockList.at(3)->show();
|
|
|
dockList.at(4)->show();
|
|
|
dockList.at(5)->show();
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|