Results 681 comments of Mat

I pushed a few more optimizations, but I think we've run out of low-hanging fruit. It might be possible to add rows without blocking the GUI, but quick testing showed...

Closing in favor of #2910. Same underlying issue, except some Wayland compositors kill the program when it freezes too long.

Apparently gettext.install() can also make ngettext() available, so you can `gettext.install(names=["ngettext"])` in i18n.py, then do something like: ```py self.items["selected_files"].set_label( ngettext("{num} File Selected", "{num} Files Selected", num_files).format(num=num_files) ) ```

It depends. Ideally we would only use a string once in the codebase anyway. We could probably start by defining these strings in popupmenu.py only, and move them somewhere else...

It depends on what exactly you need. I'm not interested in maintaining any integration with Tor or I2P-related libraries, but if e.g. a bug in Nicotine+ prevents it from being...

Once this is merged, we can start moving filters to the core and port the treeview to our TreeView class.

Marking this as ready for testing. Some of the performance concerns when filtering will be addressed in the TreeView port.

Some parts are relevant, but I don't have time to work on this now.

> Only tested on linux with `thunar $` Have you tested with no file manager specified in Nicotine+ (system default)?