@@ -60,10 +60,8 @@ void Engine::clear()
6060{
6161 stop ();
6262
63- if (m_removeMonitorHandler) {
64- for (auto monitor : m_monitors)
65- m_removeMonitorHandler (monitor.get (), monitor->impl ->iface );
66- }
63+ for (auto monitor : m_monitors)
64+ m_monitorRemoved (monitor.get (), monitor->impl ->iface );
6765
6866 m_sections.clear ();
6967 m_targets.clear ();
@@ -1220,28 +1218,25 @@ const std::vector<std::shared_ptr<Monitor>> &Engine::monitors() const
12201218
12211219void Engine::setMonitors (const std::vector<std::shared_ptr<Monitor>> &newMonitors)
12221220{
1223- if (m_addMonitorHandler) {
1224- m_monitors.clear ();
1221+ m_monitors.clear ();
12251222
1226- for (auto monitor : newMonitors) {
1227- m_monitors.push_back (monitor);
1228- m_addMonitorHandler (monitor.get ());
1229- }
1230- } else
1231- m_monitors = newMonitors;
1223+ for (auto monitor : newMonitors) {
1224+ m_monitors.push_back (monitor);
1225+ m_monitorAdded (monitor.get ());
1226+ }
12321227
12331228 // Create missing monitors
12341229 createMissingMonitors ();
12351230}
12361231
1237- void Engine::setAddMonitorHandler ( const std::function< void ( Monitor *) > &handler )
1232+ sigslot::signal< Monitor *> &Engine::monitorAdded ( )
12381233{
1239- m_addMonitorHandler = handler ;
1234+ return m_monitorAdded ;
12401235}
12411236
1242- void Engine::setRemoveMonitorHandler ( const std::function< void ( Monitor *, IMonitorHandler *) > &handler )
1237+ sigslot::signal< Monitor *, IMonitorHandler *> &Engine::monitorRemoved ( )
12431238{
1244- m_removeMonitorHandler = handler ;
1239+ return m_monitorRemoved ;
12451240}
12461241
12471242const std::function<void (const std::string &)> &Engine::questionAsked () const
@@ -1633,9 +1628,7 @@ void Engine::addVarOrListMonitor(std::shared_ptr<Monitor> monitor, Target *targe
16331628 monitor->setY (rect.top ());
16341629
16351630 m_monitors.push_back (monitor);
1636-
1637- if (m_addMonitorHandler)
1638- m_addMonitorHandler (monitor.get ());
1631+ m_monitorAdded (monitor.get ());
16391632
16401633 monitor->setVisible (false );
16411634}
0 commit comments