ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Base
VP1Base
VP1Controller.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
7
// //
8
// Header file for class VP1Controller //
9
// //
10
// Description: Common base class for VP1 controllers. //
11
// //
12
// Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
13
// Initial version: August 2008 //
14
// //
16
17
#ifndef VP1CONTROLLER_H
18
#define VP1CONTROLLER_H
19
20
#include "
VP1Base/VP1HelperClassBase.h
"
21
#include "
VP1Base/VP1Interval.h
"
22
23
#include <QWidget>
24
#include <memory>
25
26
class
QPushButton;
27
class
QAbstractButton;
28
class
QCheckBox;
29
class
QComboBox;
30
class
QGroupBox;
31
class
QSpinBox;
32
class
QDoubleSpinBox;
33
class
QRadioButton;
34
class
QSlider;
35
class
QScrollArea;
36
class
QButtonGroup;
37
class
SbColor4f;
38
class
VP1CollectionWidget
;
39
class
VP1ColorSelectButton
;
40
class
VP1Serialise
;
41
class
VP1Deserialise
;
42
class
SoMaterial;
43
class
VP1MaterialButton
;
44
class
VP1CustomTourEditor
;
45
46
class
VP1Controller
:
public
QWidget,
public
VP1HelperClassBase
{
47
48
Q_OBJECT
49
50
public
:
51
52
VP1Controller
(
IVP1System
* sys,
const
QString& classname);
53
virtual
~VP1Controller
();
54
55
void
initLastVars
();
//call at end of derived controller (after all addUpdateSlot calls & connection setups)
56
57
QByteArray
saveSettings
()
const
;
58
void
restoreSettings
(
const
QByteArray&);
59
60
// Need to be able to pass signals from customtoureditor to
61
static
void
setCustomTourEditor
(
VP1CustomTourEditor
* editor) {
m_customTourEditor
=editor;}
62
static
VP1CustomTourEditor
*
customTourEditor
() {
return
m_customTourEditor
;}
63
64
65
protected
:
66
67
template
<
class
T>
68
bool
changed
( T&lastval,
const
T& newval );
69
70
template
<
class
T>
71
static
QString
toString
(
const
T& par );
72
static
QString
toString
(
const
bool
& par );
73
static
QString
toString
(
const
QList<VP1Interval>& l );
74
static
QString
toString
( SbColor4f );
75
76
template
<
class
T>
77
void
initDialog
(T& theUI, QPushButton* launchbutton, QAbstractButton* enabledButton = 0);
78
void
initDialog
(std::unique_ptr<QWidget> dialog, QPushButton* launchbutton, QPushButton* closebutton, QAbstractButton* enabledButton = 0);
79
80
void
setupCollWidgetInScrollArea
(QScrollArea * scrollarea,
VP1CollectionWidget
* collWidget);
81
82
virtual
void
actualRestoreSettings
(
VP1Deserialise
&) = 0;
83
virtual
int
currentSettingsVersion
()
const
= 0;
84
virtual
void
actualSaveSettings
(
VP1Serialise
&)
const
= 0;
85
86
const
char
*
addUpdateSlot
(
const
char
* slot);
//simply returns the argument slot for convenience
87
void
connectToLastUpdateSlot
(QObject* sender,
const
char
* signal);
88
void
connectToLastUpdateSlot
(QCheckBox*);
89
void
connectToLastUpdateSlot
(QComboBox*);
90
void
connectToLastUpdateSlot
(QGroupBox*);
91
void
connectToLastUpdateSlot
(QSpinBox*);
92
void
connectToLastUpdateSlot
(QDoubleSpinBox*);
93
void
connectToLastUpdateSlot
(QRadioButton*);
94
void
connectToLastUpdateSlot
(QButtonGroup*);
95
void
connectToLastUpdateSlot
(QSlider*);
96
void
connectToLastUpdateSlot
(
VP1ColorSelectButton
*);
97
98
bool
initVarsMode
()
const
{
return
m_initVarsMode
; }
99
100
//Convenient way to setup radio button groups (when multiple groups inside same group box):
101
QButtonGroup *
defineRadioButtonGroup
( QRadioButton * rb0, QRadioButton * rb1,QRadioButton * rb2 = 0,
102
QRadioButton * rb3 = 0,QRadioButton * rb4 = 0,QRadioButton * rb5 = 0,
103
QRadioButton * rb6 = 0,QRadioButton * rb7 = 0,QRadioButton * rb8 = 0,
104
QRadioButton * rb9 = 0 );
105
QButtonGroup *
defineRadioButtonGroup
(
const
QList<QRadioButton *>&);
106
107
//convenience:
108
SoMaterial *
getMaterial
(
VP1MaterialButton
*)
const
;
109
SoMaterial *
fallBackMaterial
()
const
;
110
111
112
protected
Q_SLOTS:
113
void
testForChanges
() {
dummyUpdateTrigger
(); }
114
115
public
Q_SLOTS:
116
void
toggleDialogState
(QObject* widget=0);
117
void
enabledButtonStateChanged
();
118
void
collWidgetContentChanged
();
119
120
121
signals:
122
void
dummyUpdateTrigger
();
123
124
125
private
:
126
static
VP1CustomTourEditor
*
m_customTourEditor
;
127
128
class
Imp
;
129
Imp
*
m_d
;
130
bool
m_initVarsMode
;
131
132
};
133
135
// INLINES //
137
138
template
<
class
T>
139
QString
VP1Controller::toString
(
const
T& par )
140
{
141
return
VP1String::str
(par);
142
}
143
144
template
<
class
T>
145
void
VP1Controller::initDialog
(T& theUI, QPushButton* launchbutton,QAbstractButton* enabledButton) {
146
auto
w = std::make_unique<QWidget>(
nullptr
,Qt::WindowStaysOnTopHint);
147
theUI.setupUi(w.get());
148
initDialog
(std::move(w), launchbutton, theUI.pushButton_close,enabledButton);
149
}
150
151
template
<
class
T>
152
bool
VP1Controller::changed
( T&lastval,
const
T& newval )
153
{
154
if
(
initVarsMode
()) {
155
lastval=newval;
156
return
false
;
157
}
158
if
(lastval==newval)
159
return
false
;
160
lastval = newval;
161
return
true
;
162
}
163
164
165
#endif
VP1HelperClassBase.h
VP1Interval.h
IVP1System
Definition
IVP1System.h:36
VP1CollectionWidget
Definition
VP1CollectionWidget.h:32
VP1ColorSelectButton
Definition
VP1ColorSelectButton.h:20
VP1Controller::Imp
Definition
VP1Controller.cxx:46
VP1Controller::actualSaveSettings
virtual void actualSaveSettings(VP1Serialise &) const =0
VP1Controller::saveSettings
QByteArray saveSettings() const
Definition
VP1Controller.cxx:407
VP1Controller::initLastVars
void initLastVars()
Definition
VP1Controller.cxx:68
VP1Controller::~VP1Controller
virtual ~VP1Controller()
Definition
VP1Controller.cxx:90
VP1Controller::restoreSettings
void restoreSettings(const QByteArray &)
Definition
VP1Controller.cxx:389
VP1Controller::dummyUpdateTrigger
void dummyUpdateTrigger()
VP1Controller::actualRestoreSettings
virtual void actualRestoreSettings(VP1Deserialise &)=0
VP1Controller::initDialog
void initDialog(T &theUI, QPushButton *launchbutton, QAbstractButton *enabledButton=0)
Definition
VP1Controller.h:145
VP1Controller::toggleDialogState
void toggleDialogState(QObject *widget=0)
Definition
VP1Controller.cxx:196
VP1Controller::toString
static QString toString(const T &par)
Definition
VP1Controller.h:139
VP1Controller::getMaterial
SoMaterial * getMaterial(VP1MaterialButton *) const
Definition
VP1Controller.cxx:439
VP1Controller::connectToLastUpdateSlot
void connectToLastUpdateSlot(QObject *sender, const char *signal)
Definition
VP1Controller.cxx:329
VP1Controller::setupCollWidgetInScrollArea
void setupCollWidgetInScrollArea(QScrollArea *scrollarea, VP1CollectionWidget *collWidget)
Definition
VP1Controller.cxx:257
VP1Controller::setCustomTourEditor
static void setCustomTourEditor(VP1CustomTourEditor *editor)
Definition
VP1Controller.h:61
VP1Controller::m_initVarsMode
bool m_initVarsMode
Definition
VP1Controller.h:130
VP1Controller::addUpdateSlot
const char * addUpdateSlot(const char *slot)
Definition
VP1Controller.cxx:320
VP1Controller::m_d
Imp * m_d
Definition
VP1Controller.h:129
VP1Controller::currentSettingsVersion
virtual int currentSettingsVersion() const =0
VP1Controller::initVarsMode
bool initVarsMode() const
Definition
VP1Controller.h:98
VP1Controller::fallBackMaterial
SoMaterial * fallBackMaterial() const
Definition
VP1Controller.cxx:429
VP1Controller::changed
bool changed(T &lastval, const T &newval)
Definition
VP1Controller.h:152
VP1Controller::collWidgetContentChanged
void collWidgetContentChanged()
Definition
VP1Controller.cxx:234
VP1Controller::defineRadioButtonGroup
QButtonGroup * defineRadioButtonGroup(QRadioButton *rb0, QRadioButton *rb1, QRadioButton *rb2=0, QRadioButton *rb3=0, QRadioButton *rb4=0, QRadioButton *rb5=0, QRadioButton *rb6=0, QRadioButton *rb7=0, QRadioButton *rb8=0, QRadioButton *rb9=0)
Definition
VP1Controller.cxx:290
VP1Controller::customTourEditor
static VP1CustomTourEditor * customTourEditor()
Definition
VP1Controller.h:62
VP1Controller::m_customTourEditor
static VP1CustomTourEditor * m_customTourEditor
Definition
VP1Controller.h:126
VP1Controller::testForChanges
void testForChanges()
Definition
VP1Controller.h:113
VP1Controller::VP1Controller
VP1Controller(IVP1System *sys, const QString &classname)
Definition
VP1Controller.cxx:76
VP1Controller::enabledButtonStateChanged
void enabledButtonStateChanged()
Definition
VP1Controller.cxx:169
VP1CustomTourEditor
Definition
VP1CustomTourEditor.h:26
VP1Deserialise
Definition
VP1Deserialise.h:44
VP1HelperClassBase::VP1HelperClassBase
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
Definition
VP1HelperClassBase.cxx:28
VP1MaterialButton
Definition
VP1MaterialButton.h:46
VP1Serialise
Definition
VP1Serialise.h:45
VP1String::str
static QString str(const QString &s)
Definition
VP1String.h:49
Generated on
for ATLAS Offline Software by
1.17.0