30#include <QGraphicsScene>
67 setMinimumSize(150,240);
70 QVBoxLayout * vboxLayout =
new QVBoxLayout(
this);
71 vboxLayout->setSpacing(0);
72 vboxLayout->setMargin(0);
75 QList<QPair<QString,QString> > views;
76 views << QPair<QString,QString>(
"X-Y",
":/icons/icons/xy.png");
77 views << QPair<QString,QString>(
"R-Z",
":/icons/icons/rz.png");
80 vboxLayout->addWidget(examiner);
83 m_d->view_xy = examiner->
view(
"X-Y");
84 m_d->view_rz = examiner->
view(
"R-Z");
85 assert(
m_d->view_xy&&
m_d->view_rz);
88 m_d->colorselectbutton = 0;
110 assert(!
m_d->system2itemcols.contains(system));
115 m_d->view_xy->addItemCollection(ic);
117 m_d->view_rz->addItemCollection(ic);
120 m_d->view_xy->setDisallowInteractions(ic, !handleSelections );
122 m_d->view_rz->setDisallowInteractions(ic, !handleSelections );
125 m_d->view_xy->setDisallowMovable(ic, !allowMovable );
127 m_d->view_rz->setDisallowMovable(ic, !allowMovable );
129 m_d->system2switchable << QPair<IVP1System*,bool>(system,switchable);
131 assert(!
m_d->system2startdisabled.contains(system));
132 m_d->system2startdisabled.insert(system,startDisabled);
133 assert(
m_d->system2startdisabled.contains(system));
135 if (allowController) {
136 m_d->systemsAllowedControllers << system;
148 m_d->sys2tabpage,
m_d->tabwidget,
149 m_d->system2switchable,
150 m_d->checkbox2system,
151 m_d->colorselectbutton ));
152 connect(
m_d->colorselectbutton,SIGNAL(colorChanged(
const QColor&)),
this,SLOT(
setBackgroundColor(
const QColor&)));
153 m_d->system2switchable.clear();
155 QMapIterator<QCheckBox*,IVP1System*> it(
m_d->checkbox2system);
156 while (it.hasNext()) {
159 assert(
m_d->system2startdisabled.contains(it.value()));
160 if (
m_d->system2startdisabled[it.value()]) {
161 it.key()->setChecked(
false);
162 m_d->updateSystemState(it.key());
177 m_d->view_xy->fitViewToContents();
178 m_d->view_rz->fitViewToContents();
185 m_d->view_xy->clearSelections();
186 m_d->view_rz->clearSelections();
192 QCheckBox * cb =
static_cast<QCheckBox*
>(sender()); assert(cb);
193 m_d->updateSystemState(cb);
203 if (cb->isChecked()) {
206 ic->reattachToView();
235 ic->detachFromView();
254 message(
"IVP12DDetViewsChannelWidget::addGeneralSystem ERROR: Method not implemented yet!!");
262 m_d->view_xy->setBackgroundBrush(col);
263 m_d->view_rz->setBackgroundBrush(col);
273 message(
"showControlsForSystem Error: Unable to determine system identity.");
276 if (!
m_d->sys2tabpage.contains(sys)) {
281 int index =
m_d->tabwidget->indexOf(
m_d->sys2tabpage[sys]);
283 message(
"Warning: Asked to show controller for a disabled system. Surely you jest?");
286 m_d->tabwidget->setCurrentIndex(
index);
294 QByteArray byteArray;
295 QBuffer buffer(&byteArray);
296 buffer.open(QIODevice::WriteOnly);
297 QDataStream out(&buffer);
306 out <<
m_d->colorselectbutton->color();
312 QMap<QString, bool> sysname2turnedon;
313 QMap<QCheckBox*,IVP1System*>::const_iterator it =
m_d->checkbox2system.constBegin();
314 while (it !=
m_d->checkbox2system.constEnd()) {
315 sysname2turnedon.insert(it.key()->text(),it.key()->isChecked());
319 out << sysname2turnedon;
323 out <<
m_d->tabwidget->tabText(
m_d->tabwidget->currentIndex());
339 buffer.open(QIODevice::ReadOnly);
340 QDataStream
state(&buffer);
345 message(
"Warning: State data in .vp1 file is in wrong format - ignoring!");
348 QByteArray basestate;
355 if (bgdcol!=
m_d->colorselectbutton->color())
356 m_d->colorselectbutton->setColor(bgdcol);
360 QMap<QString, bool> sysname2turnedon;
361 state >> sysname2turnedon;
362 QMap<QCheckBox*,IVP1System*>::const_iterator it =
m_d->checkbox2system.constBegin();
363 while (it !=
m_d->checkbox2system.constEnd()) {
364 if (sysname2turnedon.contains(it.key()->text())) {
365 if (sysname2turnedon[it.key()->text()]!=it.key()->isChecked())
366 it.key()->setChecked(sysname2turnedon[it.key()->text()]);
368 message(
"Warning: Config data does not contain information about switched state of subsystem '"+it.key()->text()+
"'");
376 if (
m_d->tabwidget) {
377 for (
int i = 0; i <
m_d->tabwidget->count(); ++i) {
378 if (
m_d->tabwidget->tabText(i) == tabname) {
379 m_d->tabwidget->setCurrentIndex(i);
QSet< VP1GraphicsItemCollection * > getItemCollections_RZ() const
QSet< VP1GraphicsItemCollection * > getItemCollections_XY() const
VP1GraphicsView * view() const
static QWidget * compositionController(const QList< IVP1System * > &systemsWithControllersAllowed, QMap< IVP1System *, QWidget * > &sys2tabpage, VP1TabWidget *&tabwidget, const QList< QPair< IVP1System *, bool > > &system2switchable, QMap< QCheckBox *, IVP1System * > &checkbox2system, VP1ColorSelectButton *&colorselectbutton, QWidget *extrawidget=0, bool nobgdcolorsel=false)
static void messageVerbose(const QString &)