Commit b1faeed4 authored by Pierre Kraemer's avatar Pierre Kraemer

SCHNApps: more signal/slot connection for plugins

parent 4f88ae92
...@@ -37,10 +37,6 @@ public: ...@@ -37,10 +37,6 @@ public:
virtual void mouseMove(View* view, int buttons, int x, int y) {} virtual void mouseMove(View* view, int buttons, int x, int y) {}
virtual void wheelEvent(View* view, int delta, int x, int y) {} virtual void wheelEvent(View* view, int delta, int x, int y) {}
virtual void viewLinked(View* view) {}
virtual void viewUnlinked(View* view) {}
virtual void currentViewChanged(View* view) {}
public slots: public slots:
void openComputeNormalDialog(); void openComputeNormalDialog();
void openComputeCurvatureDialog(); void openComputeCurvatureDialog();
......
...@@ -34,10 +34,6 @@ public: ...@@ -34,10 +34,6 @@ public:
virtual void mouseMove(View* view, int buttons, int x, int y) {} virtual void mouseMove(View* view, int buttons, int x, int y) {}
virtual void wheelEvent(View* view, int delta, int x, int y) {} virtual void wheelEvent(View* view, int delta, int x, int y) {}
virtual void viewLinked(View* view) {}
virtual void viewUnlinked(View* view) {}
virtual void currentViewChanged(View* view) {}
public slots: public slots:
void importFromFile(const QString& fileName); void importFromFile(const QString& fileName);
void importFromFileDialog(); void importFromFileDialog();
......
...@@ -34,10 +34,6 @@ public: ...@@ -34,10 +34,6 @@ public:
virtual void mouseMove(View* view, int buttons, int x, int y) {} virtual void mouseMove(View* view, int buttons, int x, int y) {}
virtual void wheelEvent(View* view, int delta, int x, int y) {} virtual void wheelEvent(View* view, int delta, int x, int y) {}
virtual void viewLinked(View* view) {}
virtual void viewUnlinked(View* view) {}
virtual void currentViewChanged(View* view) {}
public slots: public slots:
void importFromFile(const QString& fileName); void importFromFile(const QString& fileName);
void importFromFileDialog(); void importFromFileDialog();
......
...@@ -66,6 +66,10 @@ bool RenderPlugin::enable() ...@@ -66,6 +66,10 @@ bool RenderPlugin::enable()
connect(m_dockTab->check_renderFaces, SIGNAL(toggled(bool)), this, SLOT(cb_renderFacesChanged(bool))); connect(m_dockTab->check_renderFaces, SIGNAL(toggled(bool)), this, SLOT(cb_renderFacesChanged(bool)));
connect(m_dockTab->group_faceShading, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(cb_faceStyleChanged(QAbstractButton*))); connect(m_dockTab->group_faceShading, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(cb_faceStyleChanged(QAbstractButton*)));
connect(m_window, SIGNAL(viewAndPluginLinked(View*, Plugin*)), this, SLOT(viewLinked(View*, Plugin*)));
connect(m_window, SIGNAL(viewAndPluginUnlinked(View*, Plugin*)), this, SLOT(viewUnlinked(View*, Plugin*)));
connect(m_window, SIGNAL(currentViewChanged(View*)), this, SLOT(currentViewChanged(View*)));
return true; return true;
} }
...@@ -128,38 +132,44 @@ void RenderPlugin::redraw(View* view) ...@@ -128,38 +132,44 @@ void RenderPlugin::redraw(View* view)
} }
} }
void RenderPlugin::viewLinked(View* view) void RenderPlugin::viewLinked(View* view, Plugin* plugin)
{ {
ParameterSet* params = new ParameterSet(); if(plugin == this)
h_viewParams.insert(view, params);
const QList<MapHandlerGen*>& maps = view->getLinkedMaps();
foreach(MapHandlerGen* map, maps)
{ {
PerMapParameterSet p(map); ParameterSet* params = new ParameterSet();
params->perMap.insert(map->getName(), p); h_viewParams.insert(view, params);
} const QList<MapHandlerGen*>& maps = view->getLinkedMaps();
if (!maps.empty()) foreach(MapHandlerGen* map, maps)
changeSelectedMap(view, maps[0]); {
PerMapParameterSet p(map);
params->perMap.insert(map->getName(), p);
}
if (!maps.empty())
changeSelectedMap(view, maps[0]);
connect(view, SIGNAL(mapLinked(MapHandlerGen*)), this, SLOT(mapLinked(MapHandlerGen*))); connect(view, SIGNAL(mapLinked(MapHandlerGen*)), this, SLOT(mapLinked(MapHandlerGen*)));
connect(view, SIGNAL(mapUnlinked(MapHandlerGen*)), this, SLOT(mapUnlinked(MapHandlerGen*))); connect(view, SIGNAL(mapUnlinked(MapHandlerGen*)), this, SLOT(mapUnlinked(MapHandlerGen*)));
if(view->isCurrentView()) if(view->isCurrentView())
m_dockTab->refreshUI(params); m_dockTab->refreshUI(params);
}
} }
void RenderPlugin::viewUnlinked(View* view) void RenderPlugin::viewUnlinked(View* view, Plugin* plugin)
{ {
h_viewParams.remove(view); if(plugin == this)
{
h_viewParams.remove(view);
disconnect(view, SIGNAL(mapLinked(MapHandlerGen*)), this, SLOT(mapLinked(MapHandlerGen*))); disconnect(view, SIGNAL(mapLinked(MapHandlerGen*)), this, SLOT(mapLinked(MapHandlerGen*)));
disconnect(view, SIGNAL(mapUnlinked(MapHandlerGen*)), this, SLOT(mapUnlinked(MapHandlerGen*))); disconnect(view, SIGNAL(mapUnlinked(MapHandlerGen*)), this, SLOT(mapUnlinked(MapHandlerGen*)));
}
} }
void RenderPlugin::currentViewChanged(View* view) void RenderPlugin::currentViewChanged(View* view)
{ {
assert(isLinkedToView(view)); if(isLinkedToView(view))
m_dockTab->refreshUI(h_viewParams[view]); m_dockTab->refreshUI(h_viewParams[view]);
} }
void RenderPlugin::mapLinked(MapHandlerGen* m) void RenderPlugin::mapLinked(MapHandlerGen* m)
...@@ -210,6 +220,8 @@ void RenderPlugin::vboRemoved(Utils::VBO* vbo) ...@@ -210,6 +220,8 @@ void RenderPlugin::vboRemoved(Utils::VBO* vbo)
changePositionVBO(view, map, NULL); changePositionVBO(view, map, NULL);
if(params->perMap[map->getName()].normalVBO == vbo) if(params->perMap[map->getName()].normalVBO == vbo)
changeNormalVBO(view, map, NULL); changeNormalVBO(view, map, NULL);
m_dockTab->refreshUI(h_viewParams[view]);
} }
void RenderPlugin::changeSelectedMap(View* view, MapHandlerGen* map) void RenderPlugin::changeSelectedMap(View* view, MapHandlerGen* map)
......
...@@ -96,10 +96,6 @@ public: ...@@ -96,10 +96,6 @@ public:
virtual void mouseMove(View* view, int buttons, int x, int y) {} virtual void mouseMove(View* view, int buttons, int x, int y) {}
virtual void wheelEvent(View* view, int delta, int x, int y) {} virtual void wheelEvent(View* view, int delta, int x, int y) {}
virtual void viewLinked(View* view);
virtual void viewUnlinked(View* view);
virtual void currentViewChanged(View* view);
void setRefreshingUI(bool b) { b_refreshingUI = b; } void setRefreshingUI(bool b) { b_refreshingUI = b; }
protected: protected:
...@@ -114,8 +110,13 @@ protected: ...@@ -114,8 +110,13 @@ protected:
bool b_refreshingUI; bool b_refreshingUI;
public slots: public slots:
void viewLinked(View* view, Plugin* plugin);
void viewUnlinked(View* view, Plugin* plugin);
void currentViewChanged(View* view);
void mapLinked(MapHandlerGen* m); void mapLinked(MapHandlerGen* m);
void mapUnlinked(MapHandlerGen* m); void mapUnlinked(MapHandlerGen* m);
void vboAdded(Utils::VBO* vbo); void vboAdded(Utils::VBO* vbo);
void vboRemoved(Utils::VBO* vbo); void vboRemoved(Utils::VBO* vbo);
......
...@@ -36,6 +36,10 @@ bool RenderVectorPlugin::enable() ...@@ -36,6 +36,10 @@ bool RenderVectorPlugin::enable()
connect(m_dockTab->list_vectorVBO, SIGNAL(itemSelectionChanged()), this, SLOT(cb_selectedVectorsVBOChanged())); connect(m_dockTab->list_vectorVBO, SIGNAL(itemSelectionChanged()), this, SLOT(cb_selectedVectorsVBOChanged()));
connect(m_dockTab->slider_vectorsScaleFactor, SIGNAL(valueChanged(int)), this, SLOT(cb_vectorsScaleFactorChanged(int))); connect(m_dockTab->slider_vectorsScaleFactor, SIGNAL(valueChanged(int)), this, SLOT(cb_vectorsScaleFactorChanged(int)));
connect(m_window, SIGNAL(viewAndPluginLinked(View*, Plugin*)), this, SLOT(viewLinked(View*, Plugin*)));
connect(m_window, SIGNAL(viewAndPluginUnlinked(View*, Plugin*)), this, SLOT(viewUnlinked(View*, Plugin*)));
connect(m_window, SIGNAL(currentViewChanged(View*)), this, SLOT(currentViewChanged(View*)));
return true; return true;
} }
...@@ -66,38 +70,44 @@ void RenderVectorPlugin::redraw(View* view) ...@@ -66,38 +70,44 @@ void RenderVectorPlugin::redraw(View* view)
} }
} }
void RenderVectorPlugin::viewLinked(View* view) void RenderVectorPlugin::viewLinked(View* view, Plugin* plugin)
{ {
ParameterSet* params = new ParameterSet(); if(plugin == this)
h_viewParams.insert(view, params);
const QList<MapHandlerGen*>& maps = view->getLinkedMaps();
foreach(MapHandlerGen* map, maps)
{ {
PerMapParameterSet p(map); ParameterSet* params = new ParameterSet();
params->perMap.insert(map->getName(), p); h_viewParams.insert(view, params);
} const QList<MapHandlerGen*>& maps = view->getLinkedMaps();
if (!maps.empty()) foreach(MapHandlerGen* map, maps)
changeSelectedMap(view, maps[0]); {
PerMapParameterSet p(map);
params->perMap.insert(map->getName(), p);
}
if (!maps.empty())
changeSelectedMap(view, maps[0]);
connect(view, SIGNAL(mapLinked(MapHandlerGen*)), this, SLOT(mapLinked(MapHandlerGen*))); connect(view, SIGNAL(mapLinked(MapHandlerGen*)), this, SLOT(mapLinked(MapHandlerGen*)));
connect(view, SIGNAL(mapUnlinked(MapHandlerGen*)), this, SLOT(mapUnlinked(MapHandlerGen*))); connect(view, SIGNAL(mapUnlinked(MapHandlerGen*)), this, SLOT(mapUnlinked(MapHandlerGen*)));
if(view->isCurrentView()) if(view->isCurrentView())
m_dockTab->refreshUI(params); m_dockTab->refreshUI(params);
}
} }
void RenderVectorPlugin::viewUnlinked(View* view) void RenderVectorPlugin::viewUnlinked(View* view, Plugin* plugin)
{ {
h_viewParams.remove(view); if(plugin == this)
{
h_viewParams.remove(view);
disconnect(view, SIGNAL(mapLinked(MapHandlerGen*)), this, SLOT(mapLinked(MapHandlerGen*))); disconnect(view, SIGNAL(mapLinked(MapHandlerGen*)), this, SLOT(mapLinked(MapHandlerGen*)));
disconnect(view, SIGNAL(mapUnlinked(MapHandlerGen*)), this, SLOT(mapUnlinked(MapHandlerGen*))); disconnect(view, SIGNAL(mapUnlinked(MapHandlerGen*)), this, SLOT(mapUnlinked(MapHandlerGen*)));
}
} }
void RenderVectorPlugin::currentViewChanged(View* view) void RenderVectorPlugin::currentViewChanged(View* view)
{ {
assert(isLinkedToView(view)); if(isLinkedToView(view))
m_dockTab->refreshUI(h_viewParams[view]); m_dockTab->refreshUI(h_viewParams[view]);
} }
void RenderVectorPlugin::mapLinked(MapHandlerGen* m) void RenderVectorPlugin::mapLinked(MapHandlerGen* m)
......
...@@ -78,10 +78,6 @@ public: ...@@ -78,10 +78,6 @@ public:
virtual void mouseMove(View* view, int buttons, int x, int y) {} virtual void mouseMove(View* view, int buttons, int x, int y) {}
virtual void wheelEvent(View* view, int delta, int x, int y) {} virtual void wheelEvent(View* view, int delta, int x, int y) {}
virtual void viewLinked(View* view);
virtual void viewUnlinked(View* view);
virtual void currentViewChanged(View* view);
void setRefreshingUI(bool b) { b_refreshingUI = b; } void setRefreshingUI(bool b) { b_refreshingUI = b; }
protected: protected:
...@@ -93,8 +89,13 @@ protected: ...@@ -93,8 +89,13 @@ protected:
bool b_refreshingUI; bool b_refreshingUI;
public slots: public slots:
void viewLinked(View* view, Plugin* plugin);
void viewUnlinked(View* view, Plugin* plugin);
void currentViewChanged(View* view);
void mapLinked(MapHandlerGen* m); void mapLinked(MapHandlerGen* m);
void mapUnlinked(MapHandlerGen* m); void mapUnlinked(MapHandlerGen* m);
void vboAdded(Utils::VBO* vbo); void vboAdded(Utils::VBO* vbo);
void vboRemoved(Utils::VBO* vbo); void vboRemoved(Utils::VBO* vbo);
......
...@@ -36,10 +36,6 @@ public: ...@@ -36,10 +36,6 @@ public:
virtual void mouseMove(View* view, int buttons, int x, int y) {} virtual void mouseMove(View* view, int buttons, int x, int y) {}
virtual void wheelEvent(View* view, int delta, int x, int y) {} virtual void wheelEvent(View* view, int delta, int x, int y) {}
virtual void viewLinked(View* view) {}
virtual void viewUnlinked(View* view) {}
virtual void currentViewChanged(View* view) {}
public slots: public slots:
void openSubdivideSurfaceDialog(); void openSubdivideSurfaceDialog();
void subdivideSurface(); void subdivideSurface();
......
...@@ -46,9 +46,9 @@ public: ...@@ -46,9 +46,9 @@ public:
virtual void mouseMove(View* view, int buttons, int x, int y) = 0; 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 wheelEvent(View* view, int delta, int x, int y) = 0;
virtual void viewLinked(View* view) = 0; // virtual void viewLinked(View* view) = 0;
virtual void viewUnlinked(View* view) = 0; // virtual void viewUnlinked(View* view) = 0;
virtual void currentViewChanged(View* view) = 0; // virtual void currentViewChanged(View* view) = 0;
/********************************************************* /*********************************************************
* MANAGE LINKED VIEWS * MANAGE LINKED VIEWS
......
...@@ -382,10 +382,7 @@ void Window::setCurrentView(View* view) ...@@ -382,10 +382,7 @@ void Window::setCurrentView(View* view)
const QList<Plugin*>& newPlugins = m_currentView->getLinkedPlugins(); const QList<Plugin*>& newPlugins = m_currentView->getLinkedPlugins();
foreach(Plugin* p, newPlugins) foreach(Plugin* p, newPlugins)
{
enablePluginTabWidgets(p); enablePluginTabWidgets(p);
p->currentViewChanged(m_currentView);
}
connect(m_currentView, SIGNAL(pluginLinked(Plugin*)), this, SLOT(enablePluginTabWidgets(Plugin*))); connect(m_currentView, SIGNAL(pluginLinked(Plugin*)), this, SLOT(enablePluginTabWidgets(Plugin*)));
...@@ -592,8 +589,6 @@ void Window::linkViewAndPlugin(View* v, Plugin* p) ...@@ -592,8 +589,6 @@ void Window::linkViewAndPlugin(View* v, Plugin* p)
p->linkView(v); p->linkView(v);
emit(viewAndPluginLinked(v, p)); emit(viewAndPluginLinked(v, p));
p->viewLinked(v);
} }
void Window::unlinkViewAndPlugin(View* v, Plugin* p) void Window::unlinkViewAndPlugin(View* v, Plugin* p)
...@@ -602,8 +597,6 @@ void Window::unlinkViewAndPlugin(View* v, Plugin* p) ...@@ -602,8 +597,6 @@ void Window::unlinkViewAndPlugin(View* v, Plugin* p)
p->unlinkView(v); p->unlinkView(v);
emit(viewAndPluginUnlinked(v, p)); emit(viewAndPluginUnlinked(v, p));
p->viewUnlinked(v);
} }
void Window::linkViewAndMap(View* v, MapHandlerGen* m) void Window::linkViewAndMap(View* v, MapHandlerGen* m)
...@@ -629,6 +622,7 @@ void Window::linkViewAndCamera(View* v, Camera* c) ...@@ -629,6 +622,7 @@ void Window::linkViewAndCamera(View* v, Camera* c)
emit(viewAndCameraUnlinked(v, current)); emit(viewAndCameraUnlinked(v, current));
v->setCurrentCamera(c); v->setCurrentCamera(c);
c->linkView(v); c->linkView(v);
emit(viewAndCameraLinked(v, c)); emit(viewAndCameraLinked(v, c));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment