Daniel Brötzmann pushed to branch master at gajim / gajim


Commits:
0d492702 by wurstsalat at 2023-10-29T12:42:43+01:00
fix: VideoPreview: Disable preview on destroy

Fixes #11657

- - - - -


3 changed files:

- gajim/data/gui/video_preview.ui
- gajim/gtk/preferences.py
- gajim/gtk/video_preview.py


Changes:

=====================================
gajim/data/gui/video_preview.ui
=====================================
@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.2 -->
+<!-- Generated with glade 3.40.0 -->
 <interface>
-  <requires lib="gtk+" version="3.20"/>
+  <requires lib="gtk+" version="3.24"/>
   <object class="GtkBox" id="video_preview_box">
-    <property name="height_request">250</property>
+    <property name="height-request">250</property>
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
+    <property name="can-focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="vexpand">True</property>
     <property name="orientation">vertical</property>
     <property name="spacing">6</property>
     <child>
       <object class="GtkLabel" id="video_source_label">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
+        <property name="can-focus">False</property>
       </object>
       <packing>
         <property name="expand">False</property>
@@ -25,14 +27,14 @@
     <child>
       <object class="GtkBox" id="video_preview_placeholder">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
+        <property name="can-focus">False</property>
         <property name="vexpand">True</property>
         <property name="orientation">vertical</property>
         <child>
           <object class="GtkImage">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="icon_name">camera-web-symbolic</property>
+            <property name="can-focus">False</property>
+            <property name="icon-name">camera-web-symbolic</property>
             <property name="icon_size">6</property>
             <style>
               <class name="dim-label"/>
@@ -47,7 +49,7 @@
         <child>
           <object class="GtkLabel">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
+            <property name="can-focus">False</property>
             <property name="label" translatable="yes">Live Preview</property>
             <style>
               <class name="dim-label"/>


=====================================
gajim/gtk/preferences.py
=====================================
@@ -125,7 +125,7 @@ def _add_prefs(self, prefs: list[tuple[str, 
type[PreferenceBox]]]):
 
     def _add_video_preview(self) -> None:
         self._video_preview = VideoPreview()
-        self._ui.video.add(self._video_preview.widget)
+        self._ui.video.add(self._video_preview)
 
     def _on_key_press(self, _widget: Gtk.Widget, event: Gdk.EventKey) -> None:
         if event.keyval == Gdk.KEY_Escape:


=====================================
gajim/gtk/video_preview.py
=====================================
@@ -12,6 +12,7 @@
 # You should have received a copy of the GNU General Public License
 # along with Gajim. If not, see <http://www.gnu.org/licenses/>.
 
+from __future__ import annotations
 
 import logging
 
@@ -33,10 +34,9 @@
 log = logging.getLogger('gajim.gtk.preview')
 
 
-class VideoPreview:
+class VideoPreview(Gtk.Box):
     def __init__(self) -> None:
-
-        self._ui = get_builder('video_preview.ui')
+        Gtk.Box.__init__(self)
 
         self._active = False
 
@@ -45,9 +45,14 @@ def __init__(self) -> None:
         self._av_sink: Gst.Element | None = None
         self._av_widget: Gtk.Widget | None = None
 
-    @property
-    def widget(self) -> Gtk.Box:
-        return self._ui.video_preview_box
+        self._ui = get_builder('video_preview.ui')
+        self.add(self._ui.video_preview_box)
+        self.show_all()
+
+        self.connect('destroy', self._on_destroy)
+
+    def _on_destroy(self, widget: VideoPreview) -> None:
+        self._disable_preview()
 
     @property
     def is_active(self) -> bool:



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/0d492702e43718d56358c5281b48b39831a2ffdb

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/0d492702e43718d56358c5281b48b39831a2ffdb
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to