The reason for signal.signal(signal.SIGPIPE, signal.SIG_DFL)
Python ignores SIGPIPE by default ( signal(SIGPIPE, SIG_IGN) )
Write on a socket return then an error 32 EPIPE, which naturally
turns into an exception.
signal.SIG_DFL restores normal UNIX behavior
Sets are unordered and list with push/pop acts as LIFO, though we need FIFO.
Since the number of elements is tiny, no need to use deque.
Addresses #9120
if autopopup_chat_opened is activated no control is found because
the event that triggered the notification is already deleted when
the notification is clicked by the user. So instead of searching
for the event, search for the control with jid/account.
Fixes#9124
Before: After a rightclick -> "Modify Account" on an account in the
roster the preferences of the account are shown but the account is not
selected in the account list.
After: account will be selected in the account list too
Use GtkFileChooserDialog only when we need previews, default to
NativeFileChooser otherwise.
GtkFileChooserDialogs have a long list of issues, so lets only use it
if we gain something from it.
Flatpak should only run NativeFileChoosers because its sandboxed and
this is needed for security purposes. As a result of that, Flatpak Users
dont have image previews in the FileOpenDialogs
Refactor all FileChoosers for a more simple approach when we use them
Add a new SendFileDialog, so we dont have to put widgets into the FileChooser
which forces non-native Dialogs.
Dont save fingerprints to config and check certs with our own methods.
We should trust openssl to do all necessary checks.
Self signed certs can be added to cacert.pem and will not show up as
an error until the cert changes.
nbxmpp now saves all ssl errors and passes them, so now we loop over
all errors until all are confirmed or ignored by the user
Also cacerts are now saved in utf-8
* rename the remove_plugin function to uninstall_plugin because it
deletes files on the disc and uninstall is the label of the button which
triggers this function
* added a new remove_plugin function, which deactivates the plugin (if
needed), removes it from the list of managed plugins and deletes the
contents of sys.modules