diff -Nru nicotine-3.3.1/.snapcraft.yaml nicotine-3.3.2/.snapcraft.yaml
--- nicotine-3.3.1/.snapcraft.yaml 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/.snapcraft.yaml 2024-02-25 19:23:05.000000000 +0000
@@ -21,6 +21,7 @@
- network
- network-bind
- removable-media
+ - unity7
parts:
snapcraft-preload:
diff -Nru nicotine-3.3.1/NEWS.md nicotine-3.3.2/NEWS.md
--- nicotine-3.3.1/NEWS.md 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/NEWS.md 2024-02-25 19:23:05.000000000 +0000
@@ -5,6 +5,15 @@
You can run the latest unstable build of Nicotine+ to test recent changes and bug fixes, see [TESTING.md](doc/TESTING.md).
+## Version 3.3.2 (February 25, 2024)
+
+### Corrections
+
+ * Fixed a crash when adding transfers while in ungrouped mode
+ * Fixed an issue where dialog message labels were not read by screen readers
+ * Snap: Fixed screen reader detection for enabling GTK 3
+
+
## Version 3.3.1 (February 24, 2024)
### Changes
diff -Nru nicotine-3.3.1/README.md nicotine-3.3.2/README.md
--- nicotine-3.3.1/README.md 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/README.md 2024-02-25 19:23:05.000000000 +0000
@@ -14,7 +14,7 @@
## Download
-The current stable version of Nicotine+ is 3.3.1, released on February 24, 2024. See the [release notes](NEWS.md).
+The current stable version of Nicotine+ is 3.3.2, released on February 25, 2024. See the [release notes](NEWS.md).
Downloads are available for:
diff -Nru nicotine-3.3.1/data/org.nicotine_plus.Nicotine.appdata.xml nicotine-3.3.2/data/org.nicotine_plus.Nicotine.appdata.xml
--- nicotine-3.3.1/data/org.nicotine_plus.Nicotine.appdata.xml 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/data/org.nicotine_plus.Nicotine.appdata.xml 2024-02-25 19:23:05.000000000 +0000
@@ -62,6 +62,10 @@
Nicotine+ pretende ser una alternativa ligera, agradable, libre y de código abierto (FOSS) al cliente oficial de Soulseek, al tiempo que ofrece un amplio conjunto de funciones.
Nicotine+ zielt darauf ab, eine leichte, angenehme, freie und offene Quelle (FOSS) Alternative zum offiziellen Soulseek-Klient zu sein, während auch eine umfassende Reihe von Funktionen zu bieten.
+
+ #ffdfc7
+ #733000
+
Search Files
@@ -242,6 +246,7 @@
mild
+
diff -Nru nicotine-3.3.1/data/org.nicotine_plus.Nicotine.appdata.xml.in nicotine-3.3.2/data/org.nicotine_plus.Nicotine.appdata.xml.in
--- nicotine-3.3.1/data/org.nicotine_plus.Nicotine.appdata.xml.in 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/data/org.nicotine_plus.Nicotine.appdata.xml.in 2024-02-25 19:23:05.000000000 +0000
@@ -19,6 +19,10 @@
also providing a comprehensive set of features.
+
+ #ffdfc7
+ #733000
+
Search Files
@@ -78,6 +82,7 @@
mild
+
diff -Nru nicotine-3.3.1/debian/changelog nicotine-3.3.2/debian/changelog
--- nicotine-3.3.1/debian/changelog 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/debian/changelog 2024-02-25 19:23:05.000000000 +0000
@@ -1,8 +1,14 @@
-nicotine (3.3.1-202402240352~ubuntu18.04.1) bionic; urgency=low
+nicotine (3.3.2-202402251923~ubuntu18.04.1) bionic; urgency=low
* Auto build.
- -- Mat Sat, 24 Feb 2024 03:52:53 +0000
+ -- Mat Sun, 25 Feb 2024 19:23:05 +0000
+
+nicotine (3.3.2-1) mantic; urgency=medium
+
+ * Latest upstream.
+
+ -- Mat Sun, 25 Feb 2024 01:35:34 +0200
nicotine (3.3.1-1) mantic; urgency=medium
diff -Nru nicotine-3.3.1/debian/git-build-recipe.manifest nicotine-3.3.2/debian/git-build-recipe.manifest
--- nicotine-3.3.1/debian/git-build-recipe.manifest 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/debian/git-build-recipe.manifest 2024-02-25 19:23:05.000000000 +0000
@@ -1,2 +1,2 @@
-# git-build-recipe format 0.4 deb-version 3.3.1-202402240352
-lp:nicotine+ git-commit:f7f1f3f3bd601c9a37eb5970cf261dd1f16052a2
+# git-build-recipe format 0.4 deb-version 3.3.2-202402251923
+lp:nicotine+ git-commit:4bdd97f34732bc0ac88dcb2fc15ad3466fd633a9
diff -Nru nicotine-3.3.1/pynicotine/__init__.py nicotine-3.3.2/pynicotine/__init__.py
--- nicotine-3.3.1/pynicotine/__init__.py 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/pynicotine/__init__.py 2024-02-25 19:23:05.000000000 +0000
@@ -18,7 +18,7 @@
__application_name__ = "Nicotine+"
__application_id__ = "org.nicotine_plus.Nicotine"
-__version__ = "3.3.1"
+__version__ = "3.3.2"
__author__ = "Nicotine+ Team"
__copyright__ = """© 2004–2024 Nicotine+ Contributors
© 2003–2004 Nicotine Contributors
diff -Nru nicotine-3.3.1/pynicotine/downloads.py nicotine-3.3.2/pynicotine/downloads.py
--- nicotine-3.3.1/pynicotine/downloads.py 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/pynicotine/downloads.py 2024-02-25 19:23:05.000000000 +0000
@@ -370,6 +370,9 @@
if not folder_path:
return
+ if folder_path == self.get_default_download_folder(username):
+ return
+
for downloads in (
self.queued_users.get(username, {}),
self.active_users.get(username, {}),
diff -Nru nicotine-3.3.1/pynicotine/gtkgui/__init__.py nicotine-3.3.2/pynicotine/gtkgui/__init__.py
--- nicotine-3.3.1/pynicotine/gtkgui/__init__.py 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/pynicotine/gtkgui/__init__.py 2024-02-25 19:23:05.000000000 +0000
@@ -43,8 +43,7 @@
# If screen reader is enabled, use GTK 3 until treeviews have been ported to
# Gtk.ColumnView. Gtk.TreeView doesn't support screen readers in GTK 4.
- if (dbus_proxy.Get("(ss)", "org.a11y.Status", "IsEnabled")
- and dbus_proxy.Get("(ss)", "org.a11y.Status", "ScreenReaderEnabled")):
+ if dbus_proxy.Get("(ss)", "org.a11y.Status", "IsEnabled"):
log.add_debug("Screen reader enabled, using GTK 3 for improved accessibility")
return "3"
diff -Nru nicotine-3.3.1/pynicotine/gtkgui/transfers.py nicotine-3.3.2/pynicotine/gtkgui/transfers.py
--- nicotine-3.3.1/pynicotine/gtkgui/transfers.py 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/pynicotine/gtkgui/transfers.py 2024-02-25 19:23:05.000000000 +0000
@@ -604,7 +604,7 @@
return False
- expand_user = select_parent
+ expand_user = False
expand_folder = False
user_iterator = None
user_folder_path_iterator = None
@@ -626,6 +626,7 @@
if self.grouping_mode != "ungrouped":
# Group by folder or user
+ expand_user = select_parent
select_iterator = None
empty_int = 0
empty_str = ""
@@ -760,10 +761,10 @@
], select_row=False, parent_iterator=parent_iterator)
self.row_id += 1
- if expand_user:
+ if expand_user and user_iterator is not None:
self.tree_view.expand_row(user_iterator)
- if expand_folder:
+ if expand_folder and user_folder_path_iterator is not None:
self.tree_view.expand_row(user_folder_path_iterator)
return True
diff -Nru nicotine-3.3.1/pynicotine/gtkgui/widgets/dialogs.py nicotine-3.3.2/pynicotine/gtkgui/widgets/dialogs.py
--- nicotine-3.3.1/pynicotine/gtkgui/widgets/dialogs.py 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/pynicotine/gtkgui/widgets/dialogs.py 2024-02-25 19:23:05.000000000 +0000
@@ -358,7 +358,7 @@
action_box.add(action_area) # pylint: disable=no-member
for response_type, button_label in buttons:
- button = Gtk.Button(label=button_label, use_underline=True, hexpand=True, visible=True)
+ button = Gtk.Button(use_underline=True, hexpand=True, visible=True)
button.connect("clicked", self._on_button_pressed, response_type)
if GTK_API_VERSION >= 4:
@@ -380,6 +380,10 @@
self.message_label.set_mnemonic_widget(button)
self.default_focus_widget = button
+ # Set mnemonic widget before button label in order for screen reader to
+ # read both labels
+ button.set_label(button_label)
+
return widget
def _add_long_message(self, text):
@@ -457,7 +461,6 @@
def _add_option_toggle(self, option_label, option_value):
toggle = Gtk.CheckButton(label=option_label, active=option_value, receives_default=True, visible=True)
- self.message_label.set_mnemonic_widget(toggle)
if option_label:
if GTK_API_VERSION >= 4:
@@ -488,11 +491,13 @@
], **kwargs)
self.entry_container = None
+ self.entry_combobox = None
+ self.second_entry_combobox = None
+
self.entry_combobox = self.default_focus_widget = self._add_entry_combobox(
default, activates_default=not use_second_entry, visibility=visibility,
show_emoji_icon=show_emoji_icon, droplist=droplist
)
- self.second_entry = None
if use_second_entry:
self.second_entry_combobox = self._add_entry_combobox(
@@ -518,8 +523,8 @@
combobox.unfreeze()
- if activates_default:
- self.message_label.set_mnemonic_widget(entry if activates_default else combobox.widget)
+ if self.entry_combobox is None:
+ self.message_label.set_mnemonic_widget(entry if has_entry else combobox.widget)
self.container.set_visible(True)
return combobox
@@ -539,7 +544,7 @@
else:
self.entry_container.add(entry) # pylint: disable=no-member
- if activates_default:
+ if self.entry_combobox is None:
self.message_label.set_mnemonic_widget(entry)
self.container.set_visible(True)
diff -Nru nicotine-3.3.1/pynicotine/shares.py nicotine-3.3.2/pynicotine/shares.py
--- nicotine-3.3.1/pynicotine/shares.py 2024-02-24 03:52:53.000000000 +0000
+++ nicotine-3.3.2/pynicotine/shares.py 2024-02-25 19:23:05.000000000 +0000
@@ -178,8 +178,7 @@
return key in self._value_offsets
def __iter__(self):
- for key in self._value_offsets:
- yield key
+ yield from self._value_offsets
def __len__(self):
return len(self._value_offsets)