[pitivi] viewer: Handle project video size changes
- From: Thibault Saunier <tsaunier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] viewer: Handle project video size changes
- Date: Thu, 7 Apr 2016 12:40:25 +0000 (UTC)
commit ba2e588a9fc56a42039760321b4b20611b9016b6
Author: Thibault Saunier <tsaunier gnome org>
Date: Fri Apr 1 16:42:47 2016 +0200
viewer: Handle project video size changes
So that we recompute the viewer overlays properly
pitivi/project.py | 8 +++++++-
pitivi/viewer/overlay.py | 16 +++++++++++++++-
2 files changed, 22 insertions(+), 2 deletions(-)
---
diff --git a/pitivi/project.py b/pitivi/project.py
index 34b3337..fe35038 100644
--- a/pitivi/project.py
+++ b/pitivi/project.py
@@ -724,6 +724,7 @@ class Project(Loggable, GES.Project):
GObject.TYPE_PYOBJECT,)),
"settings-set-from-imported-asset": (GObject.SignalFlags.RUN_LAST, None,
(GES.Asset,)),
+ "video-size-changed": (GObject.SignalFlags.RUN_LAST, None, ()),
}
def __init__(self, app, name="", uri=None, scenario=None, **unused_kwargs):
@@ -905,7 +906,12 @@ class Project(Loggable, GES.Project):
def setVideoRestriction(self, name, value):
self._has_default_video_settings = False
- return Project._set_restriction(self.video_profile, name, value)
+ res = Project._set_restriction(self.video_profile, name, value)
+
+ if res:
+ self.emit("video-size-changed")
+
+ return res
def __setAudioRestriction(self, name, value):
self._has_default_audio_settings = False
diff --git a/pitivi/viewer/overlay.py b/pitivi/viewer/overlay.py
index 4873ed2..15302e0 100644
--- a/pitivi/viewer/overlay.py
+++ b/pitivi/viewer/overlay.py
@@ -19,6 +19,9 @@
# License along with this program; if not, write to the
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301, USA.
+"""
+Base class for the video viewer overlays
+"""
import numpy
@@ -39,8 +42,16 @@ class Overlay(Gtk.DrawingArea, Loggable):
self._source = source
self.click_source_position = None
self.stack = stack
+
project = stack.app.project_manager.current_project
- self.project_size = numpy.array([project.videowidth, project.videoheight])
+ project.connect("video-size-changed", self._canvas_size_changed_cb)
+ self.project_size = numpy.array([project.videowidth,
+ project.videoheight])
+
+ def _canvas_size_changed_cb(self, project):
+ project = self.stack.app.project_manager.current_project
+ self.project_size = numpy.array([project.videowidth,
+ project.videoheight])
def _is_hovered(self):
return self.stack.hovered_overlay == self
@@ -67,6 +78,9 @@ class Overlay(Gtk.DrawingArea, Loggable):
self.stack.hovered_overlay = self
def unhover(self):
+ """
+ Mark @self as not over anymore
+ """
self.stack.hovered_overlay = None
self.queue_draw()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]