Revision: 67134 http://trac.macports.org/changeset/67134 Author: rmsfisher@macports.org Date: 2010-04-29 19:53:14 -0700 (Thu, 29 Apr 2010) Log Message: ----------- python/quodlibet applied patch from upstream to fix http://code.google.com/p/quodlibet/issues/detail?id=417 Modified Paths: -------------- trunk/dports/python/quodlibet/Portfile Added Paths: ----------- trunk/dports/python/quodlibet/files/patch-quodlibet-qltk-properties.py.diff trunk/dports/python/quodlibet/files/patch-quodlibet-qltk-x.py.diff Modified: trunk/dports/python/quodlibet/Portfile =================================================================== --- trunk/dports/python/quodlibet/Portfile 2010-04-30 02:47:48 UTC (rev 67133) +++ trunk/dports/python/quodlibet/Portfile 2010-04-30 02:53:14 UTC (rev 67134) @@ -6,7 +6,7 @@ name quodlibet version 2.2.1 -revision 1 +revision 2 categories-append audio gnome maintainers elelay rmsfisher openmaintainer platforms darwin @@ -39,8 +39,9 @@ port:py26-feedparser \ port:python-musicbrainz2 -patchfiles patch-setup.py.diff - +patchfiles patch-setup.py.diff \ + patch-quodlibet-qltk-properties.py.diff \ + patch-quodlibet-qltk-x.py.diff post-patch { foreach file { quodlibet.py exfalso.py } { reinplace "s|/usr/bin/env python|${frameworks_dir}/Python.framework/Versions/2.6/bin/python2.6|g" \ Added: trunk/dports/python/quodlibet/files/patch-quodlibet-qltk-properties.py.diff =================================================================== --- trunk/dports/python/quodlibet/files/patch-quodlibet-qltk-properties.py.diff (rev 0) +++ trunk/dports/python/quodlibet/files/patch-quodlibet-qltk-properties.py.diff 2010-04-30 02:53:14 UTC (rev 67134) @@ -0,0 +1,11 @@ +--- quodlibet/qltk/properties.py.orig 2010-04-29 21:21:40.000000000 -0500 ++++ quodlibet/qltk/properties.py 2010-04-29 21:21:59.000000000 -0500 +@@ -24,7 +24,7 @@ + } + + def __init__(self, library, songs, parent=None): +- super(SongProperties, self).__init__() ++ super(SongProperties, self).__init__(dialog=False) + self.set_transient_for(qltk.get_top_parent(parent)) + if len(songs) > 1: self.set_default_size(600, 400) + else: self.set_default_size(400, 400) Added: trunk/dports/python/quodlibet/files/patch-quodlibet-qltk-x.py.diff =================================================================== --- trunk/dports/python/quodlibet/files/patch-quodlibet-qltk-x.py.diff (rev 0) +++ trunk/dports/python/quodlibet/files/patch-quodlibet-qltk-x.py.diff 2010-04-30 02:53:14 UTC (rev 67134) @@ -0,0 +1,72 @@ +--- quodlibet/qltk/x.py.orig 2010-04-29 21:21:46.000000000 -0500 ++++ quodlibet/qltk/x.py 2010-04-29 21:21:59.000000000 -0500 +@@ -11,6 +11,7 @@ + import gtk + + from quodlibet import util ++from quodlibet.qltk import get_top_parent + + class Window(gtk.Window): + """A Window that binds the ^W accelerator to close. This should not +@@ -21,11 +22,14 @@ + __gsignals__ = {"close-accel": ( + gobject.SIGNAL_RUN_LAST|gobject.SIGNAL_ACTION, gobject.TYPE_NONE, ())} + def __init__(self, *args, **kwargs): ++ dialog = kwargs.pop("dialog", True) + super(Window, self).__init__(*args, **kwargs) + type(self).childs.append(self) + self.__accels = gtk.AccelGroup() +- self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) ++ if dialog: ++ self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) + self.set_destroy_with_parent(True) ++ self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) + self.add_accel_group(self.__accels) + self.add_accelerator( + 'close-accel', self.__accels, ord('w'), gtk.gdk.CONTROL_MASK, 0) +@@ -34,11 +38,17 @@ + self.connect_object('destroy', type(self).childs.remove, self) + + def set_transient_for(self, parent): ++ if parent is None: ++ from quodlibet.widgets import main as parent + super(Window, self).set_transient_for(parent) +- if parent is not None: +- self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) + + def do_close_accel(self): ++ #Do not close the window if we edit a gtk.CellRendererText. ++ #Focus the treeview instead. ++ if isinstance(self.get_focus(), gtk.Entry) and \ ++ isinstance(self.get_focus().parent, gtk.TreeView): ++ self.get_focus().parent.grab_focus() ++ return + if not self.emit('delete-event', gtk.gdk.Event(gtk.gdk.DELETE)): + self.destroy() + +@@ -50,11 +60,21 @@ + __window = None + + def __new__(klass, *args): +- if klass.__window is None: ++ window = klass.__window ++ if window is None: + return super(UniqueWindow, klass).__new__(klass, *args) +- else: +- klass.__window.present() +- return klass.__window ++ #Look for widgets in the args, if there is one and it has ++ #a new top level window, reparent and reposition the window. ++ widgets = filter(lambda x: isinstance(x, gtk.Widget), args) ++ if widgets: ++ parent = window.get_transient_for() ++ new_parent = get_top_parent(widgets[0]) ++ if parent and new_parent and parent is not new_parent: ++ window.set_transient_for(new_parent) ++ window.hide() ++ window.show() ++ window.present() ++ return window + + @classmethod + def is_not_unique(klass):
participants (1)
-
rmsfisher@macports.org