diff --git a/gajim/common/modules/bookmarks.py b/gajim/common/modules/bookmarks.py index 45b65ed84..20ef753bc 100644 --- a/gajim/common/modules/bookmarks.py +++ b/gajim/common/modules/bookmarks.py @@ -38,7 +38,6 @@ class Bookmarks: self._account = con.name self.bookmarks = {} self.conversion = False - self.available = False self.handlers = [] @@ -96,14 +95,18 @@ class Bookmarks: def _pubsub_bookmarks_received(self, _con, stanza): if not nbxmpp.isResultNode(stanza): log.info('No pubsub bookmarks: %s', stanza.getError()) - # Fallback, request private storage - self._request_private_bookmarks() + # Fallback, request private storage, only if server + # doesnt have bookmark conversion + if not self.conversion: + self._request_private_bookmarks() return - self.available = True log.info('Received Bookmarks (PubSub)') self._parse_bookmarks(stanza) - self._request_private_bookmarks() + if not self.conversion: + # If server does not have bookmark conversion, request private + # storage and try to merge the bookmarks + self._request_private_bookmarks() def _request_private_bookmarks(self) -> None: if not app.account_is_connected(self._account): @@ -120,7 +123,6 @@ class Bookmarks: if not nbxmpp.isResultNode(stanza): log.info('No private bookmarks: %s', stanza.getError()) else: - self.available = True log.info('Received Bookmarks (PrivateStorage)') merged = self._parse_bookmarks(stanza, check_merge=True) if merged and self._pubsub_support(): @@ -264,6 +266,9 @@ class Bookmarks: if storage_type is None: if self._pubsub_support(): self._pubsub_store(storage_node) + if self.conversion: + # Only push to either pubsub or private storage + return self._private_store(storage_node) elif storage_type == BookmarkStorageType.PUBSUB: if self._pubsub_support(): diff --git a/gajim/groupchat_control.py b/gajim/groupchat_control.py index 23052583f..b3e11d421 100644 --- a/gajim/groupchat_control.py +++ b/gajim/groupchat_control.py @@ -419,10 +419,9 @@ class GroupchatControl(ChatControlBase): # Bookmarks con = app.connections[self.account] - bookmark_support = con.get_module('Bookmarks').available bookmarked = self.room_jid in con.get_module('Bookmarks').bookmarks win.lookup_action('bookmark-' + self.control_id).set_enabled( - self.is_connected and bookmark_support and not bookmarked) + self.is_connected and not bookmarked) # Request Voice role = self.get_role(self.nick) diff --git a/gajim/gtk/join_groupchat.py b/gajim/gtk/join_groupchat.py index 32a920bbf..0bbbd0b94 100644 --- a/gajim/gtk/join_groupchat.py +++ b/gajim/gtk/join_groupchat.py @@ -113,10 +113,6 @@ class JoinGroupchatWindow(Gtk.ApplicationWindow): # Set bookmark switch sensitive if server supports bookmarks acc = self.account_combo.get_active_id() - con = app.connections[acc] - if not con.get_module('Bookmarks').available: - self.bookmark_switch.set_sensitive(False) - self.autojoin_switch.set_sensitive(False) self.show_all()