summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2010-02-23 09:56:56 +0100
committerPatrick Ohly <patrick.ohly@intel.com>2010-02-23 13:47:15 +0100
commita915f68ff6299b578f75169c8bbe4afa6a0e127e (patch)
tree2bb92609d54293659f6d74c8b991d80b47515d9b
parent205f7e368a5e3f90481b583f3adce7bc571a0876 (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.xml10
-rw-r--r--src/syncevo-dbus-server.cpp11
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;
}
}