Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwurstsalat <mailtrash@posteo.de>2022-10-03 21:29:28 +0300
committerwurstsalat <mailtrash@posteo.de>2022-10-03 21:34:56 +0300
commit44b9de35765adff64dc07ede69b18d7bb0e5c551 (patch)
tree39762d2b0671b764e7097cb91d508654c7292607
parentcc11bce20fc5eb3d90b85ce11d21c83636c0cf07 (diff)
cfix: PEPConfig: Change view style on theme change, fix finalize
-rw-r--r--gajim/gtk/pep_config.py27
-rw-r--r--pyrightconfig.json1
2 files changed, 25 insertions, 3 deletions
diff --git a/gajim/gtk/pep_config.py b/gajim/gtk/pep_config.py
index 898e4b326..6c9e95155 100644
--- a/gajim/gtk/pep_config.py
+++ b/gajim/gtk/pep_config.py
@@ -14,6 +14,7 @@
from __future__ import annotations
+from typing import Any
from typing import Optional
import logging
@@ -28,6 +29,7 @@ from nbxmpp.simplexml import Node
from nbxmpp.task import Task
from gajim.common import app
+from gajim.common import ged
from gajim.common.i18n import _
from gajim.common.helpers import to_user_string
@@ -35,14 +37,16 @@ from .dialogs import ErrorDialog
from .dialogs import WarningDialog
from .dataform import DataFormWidget
from .builder import get_builder
+from .util import EventHelper
from .util import get_source_view_style_scheme
log = logging.getLogger('gajim.gui.pep_config')
-class PEPConfig(Gtk.ApplicationWindow):
+class PEPConfig(Gtk.ApplicationWindow, EventHelper):
def __init__(self, account: str) -> None:
Gtk.ApplicationWindow.__init__(self)
+ EventHelper.__init__(self)
self.set_application(app.app)
self.set_position(Gtk.WindowPosition.CENTER)
self.set_show_menubar(False)
@@ -70,13 +74,30 @@ class PEPConfig(Gtk.ApplicationWindow):
self._ui.items_view.get_buffer().set_style_scheme(style_scheme)
self._init_services()
- self._ui.services_treeview.get_selection().connect(
+
+ selection = self._ui.services_treeview.get_selection()
+ self._changed_handler = selection.connect(
'changed', self._on_services_selection_changed)
+ self.register_events([
+ ('style-changed', ged.GUI1, self._on_style_changed)
+ ])
+
self.show_all()
self.connect('key-press-event', self._on_key_press)
+ self.connect('destroy', self._on_destroy)
self._ui.connect_signals(self)
+ def _on_destroy(self, *args: Any) -> None:
+ selection = self._ui.services_treeview.get_selection()
+ selection.disconnect(self._changed_handler)
+ app.check_finalize(self)
+
+ def _on_style_changed(self, *args: Any) -> None:
+ style_scheme = get_source_view_style_scheme()
+ if style_scheme is not None:
+ self._ui.items_view.get_buffer().set_style_scheme(style_scheme)
+
def _on_key_press(self, _widget: Gtk.Widget, event: Gdk.EventKey) -> None:
if event.keyval == Gdk.KEY_Escape:
self.destroy()
@@ -181,7 +202,7 @@ class PEPConfig(Gtk.ApplicationWindow):
self._result_node = result.node
- form = dataforms.extend_form(node=result.form)
+ form = dataforms.extend_form(node=result.form) # pyright: ignore
self._dataform_widget = DataFormWidget(form)
self._dataform_widget.set_propagate_natural_height(True)
self._dataform_widget.show_all()
diff --git a/pyrightconfig.json b/pyrightconfig.json
index 554fda59e..9da53ad58 100644
--- a/pyrightconfig.json
+++ b/pyrightconfig.json
@@ -105,6 +105,7 @@
"gajim/gtk/notification.py",
"gajim/gtk/notification_manager.py",
"gajim/gtk/password_dialog.py",
+ "gajim/gtk/pep_config.py",
"gajim/gtk/plugins.py",
"gajim/gtk/preview.py",
"gajim/gtk/preview_audio.py",