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]