diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2010-02-23 09:56:56 +0100 |
---|---|---|
committer | Patrick Ohly <patrick.ohly@intel.com> | 2010-02-23 13:47:15 +0100 |
commit | a915f68ff6299b578f75169c8bbe4afa6a0e127e (patch) | |
tree | 2bb92609d54293659f6d74c8b991d80b47515d9b | |
parent | 205f7e368a5e3f90481b583f3adce7bc571a0876 (diff) |
D-Bus interface: added Server.TemplatesChanged (MB #9841)mb9216_pohly
The new signal is very minimal without any parameters. Its purpose
is to notify the sync-ui when it has to reread the template configs.
It is triggered by modifying m_syncDevices, which is the input
for the template list.
-rw-r--r-- | src/dbus/interfaces/syncevo-server-full.xml | 10 | ||||
-rw-r--r-- | src/syncevo-dbus-server.cpp | 11 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/dbus/interfaces/syncevo-server-full.xml b/src/dbus/interfaces/syncevo-server-full.xml index bc3df21e..0fee97e9 100644 --- a/src/dbus/interfaces/syncevo-server-full.xml +++ b/src/dbus/interfaces/syncevo-server-full.xml @@ -420,6 +420,16 @@ </arg> </signal> + <signal name="TemplatesChanged"> + <doc:doc> + <doc:description> + Template added or removed, for example because a Bluetooth + peer was paired resp. removed. To find out more, request + list of templates anew. + </doc:description> + </doc:doc> + </signal> + <signal name="Presence"> <doc:doc> <doc:description> diff --git a/src/syncevo-dbus-server.cpp b/src/syncevo-dbus-server.cpp index 292fbd58..291cbb55 100644 --- a/src/syncevo-dbus-server.cpp +++ b/src/syncevo-dbus-server.cpp @@ -675,6 +675,12 @@ class DBusServer : public DBusObjectHelper const std::string &, const std::string &> presence; + /** + * Server.TemplatesChanged, triggered each time m_syncDevices, the + * input for the templates, is changed + */ + EmitSignal0 templatesChanged; + /** Server.InfoRequest */ EmitSignal6<const std::string &, const DBusObject_t &, @@ -3916,6 +3922,7 @@ DBusServer::DBusServer(GMainLoop *loop, const DBusConnectionPtr &conn, int durat m_bluezManager(*this), sessionChanged(*this, "SessionChanged"), presence(*this, "Presence"), + templatesChanged(*this, "TemplatesChanged"), infoRequest(*this, "InfoRequest"), m_presence(*this) { @@ -3935,6 +3942,7 @@ DBusServer::DBusServer(GMainLoop *loop, const DBusConnectionPtr &conn, int durat add(this, &DBusServer::getSessions, "GetSessions"); add(this, &DBusServer::infoResponse, "InfoResponse"); add(sessionChanged); + add(templatesChanged); add(presence); add(infoRequest); @@ -4303,6 +4311,7 @@ void DBusServer::addDevice(const SyncConfig::DeviceDescription &device) } if(it == m_syncDevices.end()) { m_syncDevices.push_back(device); + templatesChanged(); } } @@ -4312,6 +4321,7 @@ void DBusServer::removeDevice(const string &deviceId) for(syncDevIt = m_syncDevices.begin(); syncDevIt != m_syncDevices.end(); ++syncDevIt) { if(boost::equals(syncDevIt->m_deviceId, deviceId)) { m_syncDevices.erase(syncDevIt); + templatesChanged(); break; } } @@ -4324,6 +4334,7 @@ void DBusServer::updateDevice(const string &deviceId, for(it = m_syncDevices.begin(); it != m_syncDevices.end(); ++it) { if(boost::iequals(it->m_deviceId, deviceId)) { (*it) = device; + templatesChanged(); break; } } |