Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CGoGN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Etienne Schmitt
CGoGN
Commits
261883ed
Commit
261883ed
authored
Jan 28, 2013
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SCHNApps: linking entities scriptable from Python !
parent
b1faeed4
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
212 additions
and
50 deletions
+212
-50
SCHNApps/include/dialogs/cameraViewDialog.h
SCHNApps/include/dialogs/cameraViewDialog.h
+3
-0
SCHNApps/include/dialogs/mapsViewDialog.h
SCHNApps/include/dialogs/mapsViewDialog.h
+3
-0
SCHNApps/include/dialogs/pluginsViewDialog.h
SCHNApps/include/dialogs/pluginsViewDialog.h
+3
-0
SCHNApps/include/plugin.h
SCHNApps/include/plugin.h
+2
-4
SCHNApps/include/window.h
SCHNApps/include/window.h
+5
-0
SCHNApps/src/dialogs/cameraViewDialog.cpp
SCHNApps/src/dialogs/cameraViewDialog.cpp
+45
-8
SCHNApps/src/dialogs/mapsViewDialog.cpp
SCHNApps/src/dialogs/mapsViewDialog.cpp
+46
-9
SCHNApps/src/dialogs/pluginsViewDialog.cpp
SCHNApps/src/dialogs/pluginsViewDialog.cpp
+46
-9
SCHNApps/src/main.cpp
SCHNApps/src/main.cpp
+2
-2
SCHNApps/src/window.cpp
SCHNApps/src/window.cpp
+57
-18
No files found.
SCHNApps/include/dialogs/cameraViewDialog.h
View file @
261883ed
...
...
@@ -24,11 +24,14 @@ public:
private:
Window
*
m_window
;
View
*
m_view
;
bool
b_refreshingUI
;
void
selectCurrentCamera
();
public
slots
:
void
selectedCameraChanged
();
void
selectCamera
(
View
*
view
,
Camera
*
camera
);
void
deselectCamera
(
View
*
view
,
Camera
*
camera
);
void
addCameraToList
(
Camera
*
c
);
void
removeCameraFromList
(
Camera
*
c
);
};
...
...
SCHNApps/include/dialogs/mapsViewDialog.h
View file @
261883ed
...
...
@@ -24,9 +24,12 @@ public:
private:
Window
*
m_window
;
View
*
m_view
;
bool
b_refreshingUI
;
public
slots
:
void
selectedMapsChanged
();
void
selectMap
(
View
*
view
,
MapHandlerGen
*
map
);
void
deselectMap
(
View
*
view
,
MapHandlerGen
*
map
);
void
addMapToList
(
MapHandlerGen
*
m
);
void
removeMapFromList
(
MapHandlerGen
*
m
);
};
...
...
SCHNApps/include/dialogs/pluginsViewDialog.h
View file @
261883ed
...
...
@@ -24,9 +24,12 @@ public:
private:
Window
*
m_window
;
View
*
m_view
;
bool
b_refreshingUI
;
public
slots
:
void
selectedPluginsChanged
();
void
selectPlugin
(
View
*
view
,
Plugin
*
plugin
);
void
deselectPlugin
(
View
*
view
,
Plugin
*
plugin
);
void
addPluginToList
(
Plugin
*
p
);
void
removePluginFromList
(
Plugin
*
p
);
};
...
...
SCHNApps/include/plugin.h
View file @
261883ed
...
...
@@ -20,6 +20,7 @@ public:
Plugin
();
virtual
~
Plugin
();
public
slots
:
const
QString
&
getName
()
{
return
m_name
;
}
void
setName
(
const
QString
&
name
)
{
m_name
=
name
;
}
...
...
@@ -34,6 +35,7 @@ public:
bool
getProvidesRendering
()
{
return
b_providesRendering
;
}
void
setProvidesRendering
(
bool
b
)
{
b_providesRendering
=
b
;
}
public:
virtual
bool
enable
()
=
0
;
virtual
void
disable
()
=
0
;
...
...
@@ -46,10 +48,6 @@ public:
virtual
void
mouseMove
(
View
*
view
,
int
buttons
,
int
x
,
int
y
)
=
0
;
virtual
void
wheelEvent
(
View
*
view
,
int
delta
,
int
x
,
int
y
)
=
0
;
// virtual void viewLinked(View* view) = 0;
// virtual void viewUnlinked(View* view) = 0;
// virtual void currentViewChanged(View* view) = 0;
/*********************************************************
* MANAGE LINKED VIEWS
*********************************************************/
...
...
SCHNApps/include/window.h
View file @
261883ed
...
...
@@ -231,12 +231,17 @@ public:
public
slots
:
void
linkViewAndCamera
(
View
*
v
,
Camera
*
c
);
void
linkViewAndCamera
(
const
QString
&
viewName
,
const
QString
&
cameraName
);
void
linkViewAndMap
(
View
*
v
,
MapHandlerGen
*
m
);
void
linkViewAndMap
(
const
QString
&
viewName
,
const
QString
&
mapName
);
void
unlinkViewAndMap
(
View
*
v
,
MapHandlerGen
*
m
);
void
unlinkViewAndMap
(
const
QString
&
viewName
,
const
QString
&
mapName
);
void
linkViewAndPlugin
(
View
*
v
,
Plugin
*
p
);
void
linkViewAndPlugin
(
const
QString
&
viewName
,
const
QString
&
pluginName
);
void
unlinkViewAndPlugin
(
View
*
v
,
Plugin
*
p
);
void
unlinkViewAndPlugin
(
const
QString
&
viewName
,
const
QString
&
pluginName
);
/*********************************************************
* MANAGE TEXTURES
...
...
SCHNApps/src/dialogs/cameraViewDialog.cpp
View file @
261883ed
...
...
@@ -16,7 +16,8 @@ namespace SCHNApps
CameraViewDialog
::
CameraViewDialog
(
Window
*
window
,
View
*
view
)
:
QDialog
(
view
),
m_window
(
window
),
m_view
(
view
)
m_view
(
view
),
b_refreshingUI
(
false
)
{
this
->
setupUi
(
this
);
this
->
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : camera"
));
...
...
@@ -26,6 +27,9 @@ CameraViewDialog::CameraViewDialog(Window* window, View* view) :
connect
(
m_window
,
SIGNAL
(
cameraAdded
(
Camera
*
)),
this
,
SLOT
(
addCameraToList
(
Camera
*
)));
connect
(
m_window
,
SIGNAL
(
cameraRemoved
(
Camera
*
)),
this
,
SLOT
(
removeCameraFromList
(
Camera
*
)));
connect
(
m_window
,
SIGNAL
(
viewAndCameraLinked
(
View
*
,
Camera
*
)),
this
,
SLOT
(
selectCamera
(
View
*
,
Camera
*
)));
connect
(
m_window
,
SIGNAL
(
viewAndCameraUnlinked
(
View
*
,
Camera
*
)),
this
,
SLOT
(
deselectCamera
(
View
*
,
Camera
*
)));
QList
<
Camera
*>
cameras
=
m_window
->
getCamerasList
();
foreach
(
Camera
*
c
,
cameras
)
cameraList
->
addItem
(
c
->
getName
());
...
...
@@ -50,14 +54,47 @@ void CameraViewDialog::selectCurrentCamera()
void
CameraViewDialog
::
selectedCameraChanged
()
{
QList
<
QListWidgetItem
*>
currentItems
=
cameraList
->
selectedItems
();
if
(
currentItems
.
empty
())
selectCurrentCamera
();
else
if
(
b_refreshingUI
)
{
QList
<
QListWidgetItem
*>
currentItems
=
cameraList
->
selectedItems
();
if
(
currentItems
.
empty
())
selectCurrentCamera
();
else
{
const
QString
&
cname
=
currentItems
[
0
]
->
text
();
Camera
*
c
=
m_window
->
getCamera
(
cname
);
m_window
->
linkViewAndCamera
(
m_view
,
c
);
}
}
}
void
CameraViewDialog
::
selectCamera
(
View
*
view
,
Camera
*
camera
)
{
if
(
view
==
m_view
)
{
const
QString
&
cname
=
currentItems
[
0
]
->
text
();
Camera
*
c
=
m_window
->
getCamera
(
cname
);
m_window
->
linkViewAndCamera
(
m_view
,
c
);
QList
<
QListWidgetItem
*>
items
=
cameraList
->
findItems
(
camera
->
getName
(),
Qt
::
MatchExactly
);
if
(
!
items
.
empty
())
{
b_refreshingUI
=
true
;
items
[
0
]
->
setSelected
(
true
);
m_view
->
updateGL
();
b_refreshingUI
=
false
;
}
}
}
void
CameraViewDialog
::
deselectCamera
(
View
*
view
,
Camera
*
camera
)
{
if
(
view
==
m_view
)
{
QList
<
QListWidgetItem
*>
items
=
cameraList
->
findItems
(
camera
->
getName
(),
Qt
::
MatchExactly
);
if
(
!
items
.
empty
())
{
b_refreshingUI
=
true
;
items
[
0
]
->
setSelected
(
false
);
m_view
->
updateGL
();
b_refreshingUI
=
false
;
}
}
}
...
...
SCHNApps/src/dialogs/mapsViewDialog.cpp
View file @
261883ed
...
...
@@ -17,7 +17,8 @@ namespace SCHNApps
MapsViewDialog
::
MapsViewDialog
(
Window
*
window
,
View
*
view
)
:
QDialog
(
view
),
m_window
(
window
),
m_view
(
view
)
m_view
(
view
),
b_refreshingUI
(
false
)
{
this
->
setupUi
(
this
);
this
->
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : maps"
));
...
...
@@ -27,6 +28,9 @@ MapsViewDialog::MapsViewDialog(Window* window, View* view) :
connect
(
m_window
,
SIGNAL
(
mapAdded
(
MapHandlerGen
*
)),
this
,
SLOT
(
addMapToList
(
MapHandlerGen
*
)));
connect
(
m_window
,
SIGNAL
(
mapRemoved
(
MapHandlerGen
*
)),
this
,
SLOT
(
removeMapFromList
(
MapHandlerGen
*
)));
connect
(
m_window
,
SIGNAL
(
viewAndMapLinked
(
View
*
,
MapHandlerGen
*
)),
this
,
SLOT
(
selectMap
(
View
*
,
MapHandlerGen
*
)));
connect
(
m_window
,
SIGNAL
(
viewAndMapUnlinked
(
View
*
,
MapHandlerGen
*
)),
this
,
SLOT
(
deselectMap
(
View
*
,
MapHandlerGen
*
)));
QList
<
MapHandlerGen
*>
maps
=
m_window
->
getMapsList
();
foreach
(
MapHandlerGen
*
m
,
maps
)
mapList
->
addItem
(
m
->
getName
());
...
...
@@ -37,18 +41,51 @@ MapsViewDialog::~MapsViewDialog()
void
MapsViewDialog
::
selectedMapsChanged
()
{
for
(
int
i
=
0
;
i
<
mapList
->
count
();
++
i
)
if
(
!
b_refreshingUI
)
{
QString
mapName
=
mapList
->
item
(
i
)
->
text
();
MapHandlerGen
*
map
=
m_window
->
getMap
(
mapName
);
for
(
int
i
=
0
;
i
<
mapList
->
count
();
++
i
)
{
QString
mapName
=
mapList
->
item
(
i
)
->
text
();
MapHandlerGen
*
map
=
m_window
->
getMap
(
mapName
);
if
(
mapList
->
item
(
i
)
->
isSelected
()
&&
!
m_view
->
isLinkedToMap
(
map
))
m_window
->
linkViewAndMap
(
m_view
,
map
);
if
(
mapList
->
item
(
i
)
->
isSelected
()
&&
!
m_view
->
isLinkedToMap
(
map
))
m_window
->
linkViewAndMap
(
m_view
,
map
);
else
if
(
!
mapList
->
item
(
i
)
->
isSelected
()
&&
m_view
->
isLinkedToMap
(
map
))
m_window
->
unlinkViewAndMap
(
m_view
,
map
);
}
m_view
->
updateGL
();
}
}
void
MapsViewDialog
::
selectMap
(
View
*
view
,
MapHandlerGen
*
plugin
)
{
if
(
view
==
m_view
)
{
QList
<
QListWidgetItem
*>
items
=
mapList
->
findItems
(
plugin
->
getName
(),
Qt
::
MatchExactly
);
if
(
!
items
.
empty
())
{
b_refreshingUI
=
true
;
items
[
0
]
->
setSelected
(
true
);
m_view
->
updateGL
();
b_refreshingUI
=
false
;
}
}
}
else
if
(
!
mapList
->
item
(
i
)
->
isSelected
()
&&
m_view
->
isLinkedToMap
(
map
))
m_window
->
unlinkViewAndMap
(
m_view
,
map
);
void
MapsViewDialog
::
deselectMap
(
View
*
view
,
MapHandlerGen
*
plugin
)
{
if
(
view
==
m_view
)
{
QList
<
QListWidgetItem
*>
items
=
mapList
->
findItems
(
plugin
->
getName
(),
Qt
::
MatchExactly
);
if
(
!
items
.
empty
())
{
b_refreshingUI
=
true
;
items
[
0
]
->
setSelected
(
false
);
m_view
->
updateGL
();
b_refreshingUI
=
false
;
}
}
m_view
->
updateGL
();
}
void
MapsViewDialog
::
addMapToList
(
MapHandlerGen
*
m
)
...
...
SCHNApps/src/dialogs/pluginsViewDialog.cpp
View file @
261883ed
...
...
@@ -16,7 +16,8 @@ namespace SCHNApps
PluginsViewDialog
::
PluginsViewDialog
(
Window
*
window
,
View
*
view
)
:
QDialog
(
view
),
m_window
(
window
),
m_view
(
view
)
m_view
(
view
),
b_refreshingUI
(
false
)
{
this
->
setupUi
(
this
);
this
->
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : plugins"
));
...
...
@@ -26,6 +27,9 @@ PluginsViewDialog::PluginsViewDialog(Window* window, View* view) :
connect
(
m_window
,
SIGNAL
(
pluginLoaded
(
Plugin
*
)),
this
,
SLOT
(
addPluginToList
(
Plugin
*
)));
connect
(
m_window
,
SIGNAL
(
pluginUnloaded
(
Plugin
*
)),
this
,
SLOT
(
removePluginFromList
(
Plugin
*
)));
connect
(
m_window
,
SIGNAL
(
viewAndPluginLinked
(
View
*
,
Plugin
*
)),
this
,
SLOT
(
selectPlugin
(
View
*
,
Plugin
*
)));
connect
(
m_window
,
SIGNAL
(
viewAndPluginUnlinked
(
View
*
,
Plugin
*
)),
this
,
SLOT
(
deselectPlugin
(
View
*
,
Plugin
*
)));
QList
<
Plugin
*>
plugins
=
m_window
->
getPluginsList
();
foreach
(
Plugin
*
p
,
plugins
)
{
...
...
@@ -39,17 +43,50 @@ PluginsViewDialog::~PluginsViewDialog()
void
PluginsViewDialog
::
selectedPluginsChanged
()
{
for
(
int
i
=
0
;
i
<
pluginList
->
count
();
++
i
)
if
(
!
b_refreshingUI
)
{
for
(
int
i
=
0
;
i
<
pluginList
->
count
();
++
i
)
{
QString
pluginName
=
pluginList
->
item
(
i
)
->
text
();
Plugin
*
plugin
=
m_window
->
getPlugin
(
pluginName
);
if
(
pluginList
->
item
(
i
)
->
isSelected
()
&&
!
m_view
->
isLinkedToPlugin
(
plugin
))
m_window
->
linkViewAndPlugin
(
m_view
,
plugin
);
else
if
(
!
pluginList
->
item
(
i
)
->
isSelected
()
&&
m_view
->
isLinkedToPlugin
(
plugin
))
m_window
->
unlinkViewAndPlugin
(
m_view
,
plugin
);
}
m_view
->
updateGL
();
}
}
void
PluginsViewDialog
::
selectPlugin
(
View
*
view
,
Plugin
*
plugin
)
{
if
(
view
==
m_view
)
{
QString
pluginName
=
pluginList
->
item
(
i
)
->
text
();
Plugin
*
plugin
=
m_window
->
getPlugin
(
pluginName
);
if
(
pluginList
->
item
(
i
)
->
isSelected
()
&&
!
m_view
->
isLinkedToPlugin
(
plugin
))
m_window
->
linkViewAndPlugin
(
m_view
,
plugin
);
QList
<
QListWidgetItem
*>
items
=
pluginList
->
findItems
(
plugin
->
getName
(),
Qt
::
MatchExactly
);
if
(
!
items
.
empty
())
{
b_refreshingUI
=
true
;
items
[
0
]
->
setSelected
(
true
);
m_view
->
updateGL
();
b_refreshingUI
=
false
;
}
}
}
else
if
(
!
pluginList
->
item
(
i
)
->
isSelected
()
&&
m_view
->
isLinkedToPlugin
(
plugin
))
m_window
->
unlinkViewAndPlugin
(
m_view
,
plugin
);
void
PluginsViewDialog
::
deselectPlugin
(
View
*
view
,
Plugin
*
plugin
)
{
if
(
view
==
m_view
)
{
QList
<
QListWidgetItem
*>
items
=
pluginList
->
findItems
(
plugin
->
getName
(),
Qt
::
MatchExactly
);
if
(
!
items
.
empty
())
{
b_refreshingUI
=
true
;
items
[
0
]
->
setSelected
(
false
);
m_view
->
updateGL
();
b_refreshingUI
=
false
;
}
}
m_view
->
updateGL
();
}
void
PluginsViewDialog
::
addPluginToList
(
Plugin
*
p
)
...
...
SCHNApps/src/main.cpp
View file @
261883ed
...
...
@@ -15,10 +15,10 @@ int main(int argc, char* argv[])
PythonQt
::
init
();
QStringList
classNames
;
classNames
.
append
(
"Plugin"
);
classNames
.
append
(
"View"
);
classNames
.
append
(
"MapHandlerGen"
);
classNames
.
append
(
"Camera"
);
classNames
.
append
(
"Plugin"
);
classNames
.
append
(
"MapHandlerGen"
);
PythonQt
::
self
()
->
registerQObjectClassNames
(
classNames
);
// get a smart pointer to the __main__ module of the Python interpreter
...
...
SCHNApps/src/window.cpp
View file @
261883ed
...
...
@@ -476,8 +476,6 @@ Plugin* Window::loadPlugin(const QString& pluginName)
statusbar
->
showMessage
(
pluginName
+
QString
(
" successfully loaded."
),
2000
);
emit
(
pluginLoaded
(
plugin
));
m_pythonContext
.
addObject
(
pluginName
,
plugin
);
// method success
return
plugin
;
}
...
...
@@ -583,20 +581,24 @@ MapHandlerGen* Window::getMap(const QString& name) const
* MANAGE LINKS
*********************************************************/
void
Window
::
linkViewAnd
Plugin
(
View
*
v
,
Plugin
*
p
)
void
Window
::
linkViewAnd
Camera
(
View
*
v
,
Camera
*
c
)
{
v
->
linkPlugin
(
p
);
p
->
linkView
(
v
);
Camera
*
current
=
v
->
getCurrentCamera
();
current
->
unlinkView
(
v
);
emit
(
viewAndCameraUnlinked
(
v
,
current
));
emit
(
viewAndPluginLinked
(
v
,
p
));
v
->
setCurrentCamera
(
c
);
c
->
linkView
(
v
);
emit
(
viewAndCameraLinked
(
v
,
c
));
}
void
Window
::
unlinkViewAndPlugin
(
View
*
v
,
Plugin
*
p
)
void
Window
::
linkViewAndCamera
(
const
QString
&
viewName
,
const
QString
&
cameraName
)
{
v
->
unlinkPlugin
(
p
);
p
->
unlinkView
(
v
);
emit
(
viewAndPluginUnlinked
(
v
,
p
)
);
View
*
view
=
getView
(
viewName
);
Camera
*
camera
=
getCamera
(
cameraName
);
if
(
view
&&
camera
)
linkViewAndCamera
(
view
,
camera
);
}
void
Window
::
linkViewAndMap
(
View
*
v
,
MapHandlerGen
*
m
)
...
...
@@ -607,6 +609,14 @@ void Window::linkViewAndMap(View* v, MapHandlerGen* m)
emit
(
viewAndMapLinked
(
v
,
m
));
}
void
Window
::
linkViewAndMap
(
const
QString
&
viewName
,
const
QString
&
mapName
)
{
View
*
view
=
getView
(
viewName
);
MapHandlerGen
*
map
=
getMap
(
mapName
);
if
(
view
&&
map
)
linkViewAndMap
(
view
,
map
);
}
void
Window
::
unlinkViewAndMap
(
View
*
v
,
MapHandlerGen
*
m
)
{
v
->
unlinkMap
(
m
);
...
...
@@ -615,15 +625,44 @@ void Window::unlinkViewAndMap(View* v, MapHandlerGen* m)
emit
(
viewAndMapUnlinked
(
v
,
m
));
}
void
Window
::
linkViewAndCamera
(
View
*
v
,
Camera
*
c
)
void
Window
::
unlinkViewAndMap
(
const
QString
&
viewName
,
const
QString
&
mapName
)
{
Camera
*
current
=
v
->
getCurrentCamera
(
);
current
->
unlinkView
(
v
);
emit
(
viewAndCameraUnlinked
(
v
,
current
));
v
->
setCurrentCamera
(
c
);
c
->
linkView
(
v
);
View
*
view
=
getView
(
viewName
);
MapHandlerGen
*
map
=
getMap
(
mapName
);
if
(
view
&&
map
)
unlinkViewAndMap
(
view
,
map
);
}
emit
(
viewAndCameraLinked
(
v
,
c
));
void
Window
::
linkViewAndPlugin
(
View
*
v
,
Plugin
*
p
)
{
v
->
linkPlugin
(
p
);
p
->
linkView
(
v
);
emit
(
viewAndPluginLinked
(
v
,
p
));
}
void
Window
::
linkViewAndPlugin
(
const
QString
&
viewName
,
const
QString
&
pluginName
)
{
View
*
view
=
getView
(
viewName
);
Plugin
*
plugin
=
getPlugin
(
pluginName
);
if
(
view
&&
plugin
)
linkViewAndPlugin
(
view
,
plugin
);
}
void
Window
::
unlinkViewAndPlugin
(
View
*
v
,
Plugin
*
p
)
{
v
->
unlinkPlugin
(
p
);
p
->
unlinkView
(
v
);
emit
(
viewAndPluginUnlinked
(
v
,
p
));
}
void
Window
::
unlinkViewAndPlugin
(
const
QString
&
viewName
,
const
QString
&
pluginName
)
{
View
*
view
=
getView
(
viewName
);
Plugin
*
plugin
=
getPlugin
(
pluginName
);
if
(
view
&&
plugin
)
unlinkViewAndPlugin
(
view
,
plugin
);
}
/*********************************************************
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment