mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-10-28 23:12:29 +01:00 
			
		
		
		
	refactor: simpler sni naming
This commit is contained in:
		| @@ -19,10 +19,8 @@ class Host { | |||||||
|     static void nameVanished(GDBusConnection*, const gchar*, gpointer); |     static void nameVanished(GDBusConnection*, const gchar*, gpointer); | ||||||
|     static void proxyReady(GObject*, GAsyncResult*, gpointer); |     static void proxyReady(GObject*, GAsyncResult*, gpointer); | ||||||
|     static void registerHost(GObject*, GAsyncResult*, gpointer); |     static void registerHost(GObject*, GAsyncResult*, gpointer); | ||||||
|     static void itemRegistered(SnOrgKdeStatusNotifierWatcher*, const gchar*, |     static void itemRegistered(SnWatcher*, const gchar*, gpointer); | ||||||
|       gpointer); |     static void itemUnregistered(SnWatcher*, const gchar*, gpointer); | ||||||
|     static void itemUnregistered(SnOrgKdeStatusNotifierWatcher*, const gchar*, |  | ||||||
|       gpointer); |  | ||||||
|  |  | ||||||
|     std::tuple<std::string, std::string> getBusNameAndObjectPath(const gchar*); |     std::tuple<std::string, std::string> getBusNameAndObjectPath(const gchar*); | ||||||
|     void addRegisteredItem(const gchar* service); |     void addRegisteredItem(const gchar* service); | ||||||
| @@ -33,7 +31,7 @@ class Host { | |||||||
|     std::string object_path_; |     std::string object_path_; | ||||||
|     Glib::Dispatcher* dp_; |     Glib::Dispatcher* dp_; | ||||||
|     GCancellable* cancellable_ = nullptr; |     GCancellable* cancellable_ = nullptr; | ||||||
|     SnOrgKdeStatusNotifierWatcher* watcher_ = nullptr; |     SnWatcher* watcher_ = nullptr; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ private: | |||||||
|  |  | ||||||
|   Glib::Dispatcher *dp_; |   Glib::Dispatcher *dp_; | ||||||
|   GCancellable *cancellable_ = nullptr; |   GCancellable *cancellable_ = nullptr; | ||||||
|   SnOrgKdeStatusNotifierItem *proxy_ = nullptr; |   SnItem *proxy_ = nullptr; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| } // namespace waybar::modules::SNI | } // namespace waybar::modules::SNI | ||||||
|   | |||||||
| @@ -34,13 +34,13 @@ private: | |||||||
|   static void nameVanished(GDBusConnection *connection, const char *name, |   static void nameVanished(GDBusConnection *connection, const char *name, | ||||||
|                            gpointer data); |                            gpointer data); | ||||||
|  |  | ||||||
|   void updateRegisteredItems(SnOrgKdeStatusNotifierWatcher *obj); |   void updateRegisteredItems(SnWatcher *obj); | ||||||
|  |  | ||||||
|   uint32_t bus_name_id_; |   uint32_t bus_name_id_; | ||||||
|   uint32_t watcher_id_; |   uint32_t watcher_id_; | ||||||
|   GSList *hosts_ = nullptr; |   GSList *hosts_ = nullptr; | ||||||
|   GSList *items_ = nullptr; |   GSList *items_ = nullptr; | ||||||
|   SnOrgKdeStatusNotifierWatcher *watcher_ = nullptr; |   SnWatcher *watcher_ = nullptr; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| } // namespace waybar::modules::SNI | } // namespace waybar::modules::SNI | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> | "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> | ||||||
| <node> | <node> | ||||||
| <interface name="org.kde.StatusNotifierItem"> | <interface name="org.kde.StatusNotifierItem"> | ||||||
|  |     <annotation name="org.gtk.GDBus.C.Name" value="Item" /> | ||||||
|     <property name="Category" type="s" access="read"/> |     <property name="Category" type="s" access="read"/> | ||||||
|     <property name="Id" type="s" access="read"/> |     <property name="Id" type="s" access="read"/> | ||||||
|     <property name="Title" type="s" access="read"/> |     <property name="Title" type="s" access="read"/> | ||||||
|   | |||||||
| @@ -1,24 +1,30 @@ | |||||||
| <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> | <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> | ||||||
| <node> | <node> | ||||||
|   <interface name="org.kde.StatusNotifierWatcher"> |   <interface name="org.kde.StatusNotifierWatcher"> | ||||||
|  |     <annotation name="org.gtk.GDBus.C.Name" value="Watcher" /> | ||||||
|  |  | ||||||
|     <!-- methods --> |     <!-- methods --> | ||||||
|     <method name="RegisterStatusNotifierItem"> |     <method name="RegisterStatusNotifierItem"> | ||||||
|        <arg name="service" type="s" direction="in"/> |       <annotation name="org.gtk.GDBus.C.Name" value="RegisterItem" /> | ||||||
|  |       <arg name="service" type="s" direction="in"/> | ||||||
|     </method> |     </method> | ||||||
|  |  | ||||||
|     <method name="RegisterStatusNotifierHost"> |     <method name="RegisterStatusNotifierHost"> | ||||||
|        <arg name="service" type="s" direction="in"/> |         <annotation name="org.gtk.GDBus.C.Name" value="RegisterHost" /> | ||||||
|  |         <arg name="service" type="s" direction="in"/> | ||||||
|     </method> |     </method> | ||||||
|  |  | ||||||
|  |  | ||||||
|     <!-- properties --> |     <!-- properties --> | ||||||
|  |  | ||||||
|     <property name="RegisteredStatusNotifierItems" type="as" access="read"> |     <property name="RegisteredStatusNotifierItems" type="as" access="read"> | ||||||
|        <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QStringList"/> |       <annotation name="org.gtk.GDBus.C.Name" value="RegisteredItems" /> | ||||||
|  |       <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QStringList"/> | ||||||
|     </property> |     </property> | ||||||
|  |  | ||||||
|     <property name="IsStatusNotifierHostRegistered" type="b" access="read"/> |     <property name="IsStatusNotifierHostRegistered" type="b" access="read"> | ||||||
|  |       <annotation name="org.gtk.GDBus.C.Name" value="IsHostRegistered" /> | ||||||
|  |     </property> | ||||||
|  |  | ||||||
|     <property name="ProtocolVersion" type="i" access="read"/> |     <property name="ProtocolVersion" type="i" access="read"/> | ||||||
|  |  | ||||||
| @@ -26,17 +32,21 @@ | |||||||
|     <!-- signals --> |     <!-- signals --> | ||||||
|  |  | ||||||
|     <signal name="StatusNotifierItemRegistered"> |     <signal name="StatusNotifierItemRegistered"> | ||||||
|         <arg type="s"/> |       <annotation name="org.gtk.GDBus.C.Name" value="ItemRegistered" /> | ||||||
|  |       <arg type="s" direction="out" name="service" /> | ||||||
|     </signal> |     </signal> | ||||||
|  |  | ||||||
|     <signal name="StatusNotifierItemUnregistered"> |     <signal name="StatusNotifierItemUnregistered"> | ||||||
|         <arg type="s"/> |       <annotation name="org.gtk.GDBus.C.Name" value="ItemUnregistered" /> | ||||||
|  |       <arg type="s" direction="out" name="service" /> | ||||||
|     </signal> |     </signal> | ||||||
|  |  | ||||||
|     <signal name="StatusNotifierHostRegistered"> |     <signal name="StatusNotifierHostRegistered"> | ||||||
|  |       <annotation name="org.gtk.GDBus.C.Name" value="HostRegistered" /> | ||||||
|     </signal> |     </signal> | ||||||
|  |  | ||||||
|     <signal name="StatusNotifierHostUnregistered"> |     <signal name="StatusNotifierHostUnregistered"> | ||||||
|  |       <annotation name="org.gtk.GDBus.C.Name" value="HostUnregistered" /> | ||||||
|     </signal> |     </signal> | ||||||
|   </interface> |   </interface> | ||||||
| </node> | </node> | ||||||
| @@ -35,7 +35,7 @@ void Host::nameAppeared(GDBusConnection* connection, | |||||||
|     // TODO |     // TODO | ||||||
|   } |   } | ||||||
|   host->cancellable_ = g_cancellable_new(); |   host->cancellable_ = g_cancellable_new(); | ||||||
|   sn_org_kde_status_notifier_watcher_proxy_new( |   sn_watcher_proxy_new( | ||||||
|     connection, |     connection, | ||||||
|     G_DBUS_PROXY_FLAGS_NONE, |     G_DBUS_PROXY_FLAGS_NONE, | ||||||
|     "org.kde.StatusNotifierWatcher", |     "org.kde.StatusNotifierWatcher", | ||||||
| @@ -57,8 +57,7 @@ void Host::proxyReady(GObject* src, GAsyncResult* res, | |||||||
|   gpointer data) |   gpointer data) | ||||||
| { | { | ||||||
|   GError* error = nullptr; |   GError* error = nullptr; | ||||||
|   SnOrgKdeStatusNotifierWatcher* watcher = |   SnWatcher* watcher = sn_watcher_proxy_new_finish(res, &error); | ||||||
|     sn_org_kde_status_notifier_watcher_proxy_new_finish(res, &error); |  | ||||||
|   if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { |   if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { | ||||||
|     std::cerr << error->message << std::endl; |     std::cerr << error->message << std::endl; | ||||||
|     g_error_free(error); |     g_error_free(error); | ||||||
| @@ -71,7 +70,7 @@ void Host::proxyReady(GObject* src, GAsyncResult* res, | |||||||
|     g_error_free(error); |     g_error_free(error); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
|   sn_org_kde_status_notifier_watcher_call_register_status_notifier_host( |   sn_watcher_call_register_host( | ||||||
|     host->watcher_, host->object_path_.c_str(), host->cancellable_, |     host->watcher_, host->object_path_.c_str(), host->cancellable_, | ||||||
|     &Host::registerHost, data); |     &Host::registerHost, data); | ||||||
| } | } | ||||||
| @@ -80,8 +79,7 @@ void Host::registerHost(GObject* src, GAsyncResult* res, | |||||||
|   gpointer data) |   gpointer data) | ||||||
| { | { | ||||||
|   GError* error = nullptr; |   GError* error = nullptr; | ||||||
|   sn_org_kde_status_notifier_watcher_call_register_status_notifier_host_finish( |   sn_watcher_call_register_host_finish(SN_WATCHER(src), res, &error); | ||||||
|     SN_ORG_KDE_STATUS_NOTIFIER_WATCHER(src), res, &error); |  | ||||||
|   if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { |   if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { | ||||||
|     std::cerr << error->message << std::endl; |     std::cerr << error->message << std::endl; | ||||||
|     g_error_free(error); |     g_error_free(error); | ||||||
| @@ -93,12 +91,11 @@ void Host::registerHost(GObject* src, GAsyncResult* res, | |||||||
|     g_error_free(error); |     g_error_free(error); | ||||||
|     return;  |     return;  | ||||||
|   } |   } | ||||||
|   g_signal_connect(host->watcher_, "status-notifier-item-registered", |   g_signal_connect(host->watcher_, "item-registered", | ||||||
|     G_CALLBACK(&Host::itemRegistered), data); |     G_CALLBACK(&Host::itemRegistered), data); | ||||||
|   g_signal_connect(host->watcher_, "status-notifier-item-unregistered", |   g_signal_connect(host->watcher_, "item-unregistered", | ||||||
|     G_CALLBACK(&Host::itemUnregistered), data); |     G_CALLBACK(&Host::itemUnregistered), data); | ||||||
|   auto items = |   auto items = sn_watcher_dup_registered_items(host->watcher_); | ||||||
|     sn_org_kde_status_notifier_watcher_dup_registered_status_notifier_items(host->watcher_); |  | ||||||
|   if (items) { |   if (items) { | ||||||
|     for (uint32_t i = 0; items[i] != nullptr; i += 1) { |     for (uint32_t i = 0; items[i] != nullptr; i += 1) { | ||||||
|       host->addRegisteredItem(items[i]); |       host->addRegisteredItem(items[i]); | ||||||
| @@ -108,14 +105,14 @@ void Host::registerHost(GObject* src, GAsyncResult* res, | |||||||
| } | } | ||||||
|  |  | ||||||
| void Host::itemRegistered( | void Host::itemRegistered( | ||||||
|   SnOrgKdeStatusNotifierWatcher* watcher, const gchar* service, gpointer data) |   SnWatcher* watcher, const gchar* service, gpointer data) | ||||||
| { | { | ||||||
|   auto host = static_cast<SNI::Host *>(data); |   auto host = static_cast<SNI::Host *>(data); | ||||||
|   host->addRegisteredItem(service); |   host->addRegisteredItem(service); | ||||||
| } | } | ||||||
|  |  | ||||||
| void Host::itemUnregistered( | void Host::itemUnregistered( | ||||||
|   SnOrgKdeStatusNotifierWatcher* watcher, const gchar* service, gpointer data) |   SnWatcher* watcher, const gchar* service, gpointer data) | ||||||
| { | { | ||||||
|   auto host = static_cast<SNI::Host *>(data); |   auto host = static_cast<SNI::Host *>(data); | ||||||
|   auto [bus_name, object_path] = host->getBusNameAndObjectPath(service); |   auto [bus_name, object_path] = host->getBusNameAndObjectPath(service); | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ waybar::modules::SNI::Item::Item(std::string bn, std::string op, | |||||||
|   event_box.signal_button_press_event().connect( |   event_box.signal_button_press_event().connect( | ||||||
|       sigc::mem_fun(*this, &Item::handleClick)); |       sigc::mem_fun(*this, &Item::handleClick)); | ||||||
|   cancellable_ = g_cancellable_new(); |   cancellable_ = g_cancellable_new(); | ||||||
|   sn_org_kde_status_notifier_item_proxy_new_for_bus( |   sn_item_proxy_new_for_bus( | ||||||
|       G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, bus_name.c_str(), |       G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, bus_name.c_str(), | ||||||
|       object_path.c_str(), cancellable_, &Item::proxyReady, this); |       object_path.c_str(), cancellable_, &Item::proxyReady, this); | ||||||
| } | } | ||||||
| @@ -20,8 +20,8 @@ waybar::modules::SNI::Item::Item(std::string bn, std::string op, | |||||||
| void waybar::modules::SNI::Item::proxyReady(GObject *obj, GAsyncResult *res, | void waybar::modules::SNI::Item::proxyReady(GObject *obj, GAsyncResult *res, | ||||||
|                                             gpointer data) { |                                             gpointer data) { | ||||||
|   GError *error = nullptr; |   GError *error = nullptr; | ||||||
|   SnOrgKdeStatusNotifierItem *proxy = |   SnItem *proxy = | ||||||
|       sn_org_kde_status_notifier_item_proxy_new_for_bus_finish(res, &error); |       sn_item_proxy_new_for_bus_finish(res, &error); | ||||||
|   if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { |   if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { | ||||||
|     g_error_free(error); |     g_error_free(error); | ||||||
|     return; |     return; | ||||||
| @@ -227,7 +227,7 @@ waybar::modules::SNI::Item::getIconByName(std::string name, int request_size) { | |||||||
| void waybar::modules::SNI::Item::handleActivate(GObject *src, GAsyncResult *res, | void waybar::modules::SNI::Item::handleActivate(GObject *src, GAsyncResult *res, | ||||||
|                                                 gpointer data) { |                                                 gpointer data) { | ||||||
|   auto item = static_cast<SNI::Item *>(data); |   auto item = static_cast<SNI::Item *>(data); | ||||||
|   sn_org_kde_status_notifier_item_call_activate_finish(item->proxy_, res, |   sn_item_call_activate_finish(item->proxy_, res, | ||||||
|                                                        nullptr); |                                                        nullptr); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -235,7 +235,7 @@ void waybar::modules::SNI::Item::handleSecondaryActivate(GObject *src, | |||||||
|                                                          GAsyncResult *res, |                                                          GAsyncResult *res, | ||||||
|                                                          gpointer data) { |                                                          gpointer data) { | ||||||
|   auto item = static_cast<SNI::Item *>(data); |   auto item = static_cast<SNI::Item *>(data); | ||||||
|   sn_org_kde_status_notifier_item_call_secondary_activate_finish(item->proxy_, |   sn_item_call_secondary_activate_finish(item->proxy_, | ||||||
|                                                                  res, nullptr); |                                                                  res, nullptr); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -247,11 +247,11 @@ bool waybar::modules::SNI::Item::handleClick(GdkEventButton *const &ev) { | |||||||
|       } |       } | ||||||
|       gtk_menu->popup(ev->button, ev->time); |       gtk_menu->popup(ev->button, ev->time); | ||||||
|     } else { |     } else { | ||||||
|       sn_org_kde_status_notifier_item_call_activate( |       sn_item_call_activate( | ||||||
|           proxy_, ev->x, ev->y, nullptr, &Item::handleActivate, this); |           proxy_, ev->x, ev->y, nullptr, &Item::handleActivate, this); | ||||||
|     } |     } | ||||||
|   } else if (ev->type == GDK_2BUTTON_PRESS) { |   } else if (ev->type == GDK_2BUTTON_PRESS) { | ||||||
|     sn_org_kde_status_notifier_item_call_secondary_activate( |     sn_item_call_secondary_activate( | ||||||
|         proxy_, ev->x, ev->y, nullptr, &Item::handleSecondaryActivate, this); |         proxy_, ev->x, ev->y, nullptr, &Item::handleSecondaryActivate, this); | ||||||
|   } else { |   } else { | ||||||
|     return false; |     return false; | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ Watcher::Watcher() | |||||||
|   bus_name_id_ = g_bus_own_name(G_BUS_TYPE_SESSION, |   bus_name_id_ = g_bus_own_name(G_BUS_TYPE_SESSION, | ||||||
|     "org.kde.StatusNotifierWatcher", flags, |     "org.kde.StatusNotifierWatcher", flags, | ||||||
|     &Watcher::busAcquired, nullptr, nullptr, this, nullptr); |     &Watcher::busAcquired, nullptr, nullptr, this, nullptr); | ||||||
|   watcher_ = sn_org_kde_status_notifier_watcher_skeleton_new(); |   watcher_ = sn_watcher_skeleton_new(); | ||||||
| } | } | ||||||
|  |  | ||||||
| Watcher::~Watcher() | Watcher::~Watcher() | ||||||
| @@ -32,14 +32,13 @@ void Watcher::busAcquired(GDBusConnection* connection, const gchar* name, | |||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
|   g_signal_connect_swapped(host->watcher_, |   g_signal_connect_swapped(host->watcher_, | ||||||
|     "handle-register-status-notifier-item", |     "handle-register-item", | ||||||
|     G_CALLBACK(&Watcher::handleRegisterItem), data); |     G_CALLBACK(&Watcher::handleRegisterItem), data); | ||||||
|   g_signal_connect_swapped(host->watcher_, |   g_signal_connect_swapped(host->watcher_, | ||||||
|     "handle-register-status-notifier-host", |     "handle-register-host", | ||||||
|     G_CALLBACK(&Watcher::handleRegisterHost), data); |     G_CALLBACK(&Watcher::handleRegisterHost), data); | ||||||
|   sn_org_kde_status_notifier_watcher_set_protocol_version(host->watcher_, 0); |   sn_watcher_set_protocol_version(host->watcher_, 0); | ||||||
|   sn_org_kde_status_notifier_watcher_set_is_status_notifier_host_registered( |   sn_watcher_set_is_host_registered(host->watcher_, TRUE); | ||||||
|     host->watcher_, TRUE); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| gboolean Watcher::handleRegisterHost(Watcher* obj, | gboolean Watcher::handleRegisterHost(Watcher* obj, | ||||||
| @@ -66,14 +65,11 @@ gboolean Watcher::handleRegisterHost(Watcher* obj, | |||||||
|   } |   } | ||||||
|   watch = gfWatchNew(GF_WATCH_TYPE_HOST, service, bus_name, object_path, obj); |   watch = gfWatchNew(GF_WATCH_TYPE_HOST, service, bus_name, object_path, obj); | ||||||
|   obj->hosts_ = g_slist_prepend(obj->hosts_, watch); |   obj->hosts_ = g_slist_prepend(obj->hosts_, watch); | ||||||
|   sn_org_kde_status_notifier_watcher_set_is_status_notifier_host_registered( |   sn_watcher_set_is_host_registered(obj->watcher_, TRUE); | ||||||
|     obj->watcher_, TRUE); |  | ||||||
|   if (g_slist_length(obj->hosts_)) { |   if (g_slist_length(obj->hosts_)) { | ||||||
|     sn_org_kde_status_notifier_watcher_emit_status_notifier_host_registered( |     sn_watcher_emit_host_registered(obj->watcher_); | ||||||
|       obj->watcher_); |  | ||||||
|   } |   } | ||||||
|   sn_org_kde_status_notifier_watcher_complete_register_status_notifier_host( |   sn_watcher_complete_register_host(obj->watcher_, invocation); | ||||||
|     obj->watcher_, invocation); |  | ||||||
|   return TRUE; |   return TRUE; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -96,19 +92,16 @@ gboolean Watcher::handleRegisterItem(Watcher* obj, | |||||||
|   if (watch != nullptr) { |   if (watch != nullptr) { | ||||||
|     g_warning("Status Notifier Item with bus name '%s' and object path '%s' is already registered", |     g_warning("Status Notifier Item with bus name '%s' and object path '%s' is already registered", | ||||||
|       bus_name, object_path); |       bus_name, object_path); | ||||||
|     sn_org_kde_status_notifier_watcher_complete_register_status_notifier_item( |     sn_watcher_complete_register_item(obj->watcher_, invocation); | ||||||
|       obj->watcher_, invocation); |  | ||||||
|     return TRUE; |     return TRUE; | ||||||
|   } |   } | ||||||
|   watch = gfWatchNew(GF_WATCH_TYPE_ITEM, service, bus_name, object_path, obj); |   watch = gfWatchNew(GF_WATCH_TYPE_ITEM, service, bus_name, object_path, obj); | ||||||
|   obj->items_ = g_slist_prepend(obj->items_, watch); |   obj->items_ = g_slist_prepend(obj->items_, watch); | ||||||
|   obj->updateRegisteredItems(obj->watcher_); |   obj->updateRegisteredItems(obj->watcher_); | ||||||
|   gchar* tmp = g_strdup_printf("%s%s", bus_name, object_path); |   gchar* tmp = g_strdup_printf("%s%s", bus_name, object_path); | ||||||
|   sn_org_kde_status_notifier_watcher_emit_status_notifier_item_registered( |   sn_watcher_emit_item_registered(obj->watcher_, tmp); | ||||||
|     obj->watcher_, tmp); |  | ||||||
|   g_free(tmp); |   g_free(tmp); | ||||||
|   sn_org_kde_status_notifier_watcher_complete_register_status_notifier_item( |   sn_watcher_complete_register_item(obj->watcher_, invocation); | ||||||
|     obj->watcher_, invocation); |  | ||||||
|   return TRUE; |   return TRUE; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -147,22 +140,19 @@ void Watcher::nameVanished(GDBusConnection* connection, const char* name, | |||||||
|   if (watch->type == GF_WATCH_TYPE_HOST) { |   if (watch->type == GF_WATCH_TYPE_HOST) { | ||||||
|     watch->watcher->hosts_ = g_slist_remove(watch->watcher->hosts_, watch); |     watch->watcher->hosts_ = g_slist_remove(watch->watcher->hosts_, watch); | ||||||
|     if (watch->watcher->hosts_ == nullptr)  { |     if (watch->watcher->hosts_ == nullptr)  { | ||||||
|       sn_org_kde_status_notifier_watcher_set_is_status_notifier_host_registered( |       sn_watcher_set_is_host_registered(watch->watcher->watcher_, FALSE); | ||||||
|         watch->watcher->watcher_, FALSE); |       sn_watcher_emit_host_registered(watch->watcher->watcher_); | ||||||
|       sn_org_kde_status_notifier_watcher_emit_status_notifier_host_registered( |  | ||||||
|         watch->watcher->watcher_); |  | ||||||
|     } |     } | ||||||
|   } else if (watch->type == GF_WATCH_TYPE_ITEM) { |   } else if (watch->type == GF_WATCH_TYPE_ITEM) { | ||||||
|     watch->watcher->items_ = g_slist_remove(watch->watcher->items_, watch); |     watch->watcher->items_ = g_slist_remove(watch->watcher->items_, watch); | ||||||
|     watch->watcher->updateRegisteredItems(watch->watcher->watcher_); |     watch->watcher->updateRegisteredItems(watch->watcher->watcher_); | ||||||
|     gchar* tmp = g_strdup_printf("%s%s", watch->bus_name, watch->object_path); |     gchar* tmp = g_strdup_printf("%s%s", watch->bus_name, watch->object_path); | ||||||
|     sn_org_kde_status_notifier_watcher_emit_status_notifier_item_unregistered( |     sn_watcher_emit_item_unregistered(watch->watcher->watcher_, tmp); | ||||||
|       watch->watcher->watcher_, tmp); |  | ||||||
|     g_free(tmp); |     g_free(tmp); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| void Watcher::updateRegisteredItems(SnOrgKdeStatusNotifierWatcher* obj) | void Watcher::updateRegisteredItems(SnWatcher* obj) | ||||||
| { | { | ||||||
|   GVariantBuilder builder; |   GVariantBuilder builder; | ||||||
|   g_variant_builder_init(&builder, G_VARIANT_TYPE("as"));  |   g_variant_builder_init(&builder, G_VARIANT_TYPE("as"));  | ||||||
| @@ -174,8 +164,7 @@ void Watcher::updateRegisteredItems(SnOrgKdeStatusNotifierWatcher* obj) | |||||||
|   } |   } | ||||||
|   GVariant* variant = g_variant_builder_end(&builder); |   GVariant* variant = g_variant_builder_end(&builder); | ||||||
|   const gchar** items = g_variant_get_strv(variant, nullptr); |   const gchar** items = g_variant_get_strv(variant, nullptr); | ||||||
|   sn_org_kde_status_notifier_watcher_set_registered_status_notifier_items( |   sn_watcher_set_registered_items(obj, items); | ||||||
|     obj, items); |  | ||||||
|   g_variant_unref(variant); |   g_variant_unref(variant); | ||||||
|   g_free(items); |   g_free(items); | ||||||
| } | } | ||||||
		Reference in New Issue
	
	Block a user
	 Alexis
					Alexis