本文整理汇总了Python中quodlibet.qltk.get_top_parent函数的典型用法代码示例。如果您正苦于以下问题:Python get_top_parent函数的具体用法?Python get_top_parent怎么用?Python get_top_parent使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_top_parent函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_gtp
def test_gtp(self):
w = Gtk.Window()
l = Gtk.Label()
self.failUnlessEqual(qltk.get_top_parent(w), w)
self.failUnlessEqual(qltk.get_top_parent(l), None)
w.destroy()
l.destroy()
示例2: test_gtp_packed
def test_gtp_packed(self):
w = Gtk.Window()
l = Gtk.Label()
w.add(l)
self.failUnlessEqual(qltk.get_top_parent(w), w)
self.failUnlessEqual(qltk.get_top_parent(l), w)
w.destroy()
l.destroy()
示例3: __drag_data_received
def __drag_data_received(self, view, ctx, x, y, sel, tid, etime, library):
# TreeModelSort doesn't support GtkTreeDragDestDrop.
view.emit_stop_by_name('drag-data-received')
model = view.get_model()
if tid == DND_QL:
filenames = qltk.selection_get_filenames(sel)
songs = list(filter(None, [library.get(f) for f in filenames]))
if not songs:
Gtk.drag_finish(ctx, False, False, etime)
return
try:
path, pos = view.get_dest_row_at_pos(x, y)
except TypeError:
playlist = FileBackedPlaylist.from_songs(PLAYLISTS, songs,
library)
GLib.idle_add(self._select_playlist, playlist)
else:
playlist = model[path][0]
playlist.extend(songs)
self.changed(playlist)
Gtk.drag_finish(ctx, True, False, etime)
# Cause a refresh to the dragged-to playlist if it is selected
# so that the dragged (duplicate) track(s) appears
if playlist is self.__get_name_of_current_selected_playlist():
model, plist_iter = self.__selected_playlists()
songlist = qltk.get_top_parent(self).songlist
self.activate(resort=not songlist.is_sorted())
else:
if tid == DND_URI_LIST:
uri = sel.get_uris()[0]
name = os.path.basename(uri)
elif tid == DND_MOZ_URL:
data = sel.get_data()
uri, name = data.decode('utf16', 'replace').split('\n')
else:
Gtk.drag_finish(ctx, False, False, etime)
return
name = _name_for(name or os.path.basename(uri))
try:
sock = urlopen(uri)
if uri.lower().endswith('.pls'):
playlist = parse_pls(sock, name, library=library)
elif (uri.lower().endswith('.m3u') or
uri.lower().endswith('.m3u8')):
playlist = parse_m3u(sock, name, library=library)
else:
raise IOError
library.add(playlist.songs)
self.changed(playlist)
Gtk.drag_finish(ctx, True, False, etime)
except IOError:
Gtk.drag_finish(ctx, False, False, etime)
qltk.ErrorMessage(
qltk.get_top_parent(self),
_("Unable to import playlist"),
_("Quod Libet can only import playlists in the M3U/M3U8 "
"and PLS formats.")).run()
示例4: __init__
def __init__(self, parent):
super(AddFeedDialog, self).__init__(
qltk.get_top_parent(parent),
_("New Feed"),
_("Enter the location of an audio feed:"),
okbutton=Gtk.STOCK_ADD,
)
示例5: __init__
def __init__(self, parent, default=""):
if self.is_not_unique(): return
super(TextEdit, self).__init__()
self.set_title(_("Edit Display"))
self.set_transient_for(qltk.get_top_parent(parent))
self.set_border_width(12)
self.set_default_size(420, 190)
vbox = gtk.VBox(spacing=12)
close = gtk.Button(stock=gtk.STOCK_CLOSE)
close.connect('clicked', lambda *x: self.destroy())
b = gtk.HButtonBox()
b.set_layout(gtk.BUTTONBOX_END)
b.pack_start(close)
self.box = box = self.Box(default)
vbox.pack_start(box)
vbox.pack_start(b, expand=False)
self.add(vbox)
self.apply = box.apply
self.revert = box.revert
close.grab_focus()
self.show_all()
示例6: __init__
def __init__(self, parent):
if self.is_not_unique(): return
super(PreferencesWindow, self).__init__()
self.set_title(_("Preferences") + " - Quod Libet")
self.set_border_width(12)
self.set_resizable(False)
self.set_transient_for(qltk.get_top_parent(parent))
self.__notebook = notebook = qltk.Notebook()
for Page in [self.Connection, self.Player, self.SongList, self.Browsers,
self.Library, self.Tagging]: notebook.append_page(Page())
close = gtk.Button(stock=gtk.STOCK_CLOSE)
close.connect_object('clicked', lambda x: x.destroy(), self)
button_box = gtk.HButtonBox()
button_box.set_layout(gtk.BUTTONBOX_END)
button_box.pack_start(close)
vbox = gtk.VBox(spacing=12)
vbox.pack_start(notebook)
vbox.pack_start(button_box, expand=False)
self.add(vbox)
self.connect_object('destroy', PreferencesWindow.__destroy, self)
self.show_all()
示例7: __show_cover
def __show_cover(self, box, event):
"""Show the cover as a detached BigCenteredImage.
If one is already showing, destroy it instead
If there is no image, run the AlbumArt plugin
"""
song = self.__song
if not song:
return
if event.button != 1 or event.type != gtk.gdk.BUTTON_PRESS:
return
if not self.__file:
from quodlibet.qltk.songsmenu import SongsMenu
from quodlibet import app
SongsMenu.plugins.handle("Download Album art", app.library,
qltk.get_top_parent(self), [song])
return
if self.__current_bci is not None:
# We're displaying it; destroy it.
self.__current_bci.destroy()
return
try:
self.__current_bci = BigCenteredImage(
song.comma("album"), self.__file.name, parent=self)
except gobject.GError: # reload in case the image file is gone
self.refresh()
else:
self.__current_bci.connect('destroy', self.__reset_bci)
示例8: __drag_data_get
def __drag_data_get(self, view, ctx, sel, tid, etime):
model, paths = self.get_selection().get_selected_rows()
if tid == DND_QL:
songs = [model[path][0] for path in paths
if model[path][0].can_add]
if len(songs) != len(paths):
qltk.ErrorMessage(
qltk.get_top_parent(self), _("Unable to copy songs"),
_("The files selected cannot be copied to other "
"song lists or the queue.")).run()
Gdk.drag_abort(ctx, etime)
return
qltk.selection_set_songs(sel, songs)
# DEM 2018/05/25: The below check is a deliberate repitition of
# code in the drag-motion signal handler. In MacOS/Quartz, the
# context action is not propogated between event handlers for
# drag-motion and drag-data-get using "ctx.get_actions()". It is
# unclear if this is a bug or expected behavior. Regardless, the
# context widget information is the same so identical behavior can
# be achieved by simply using the same widget check as in the move
# action.
if Gtk.drag_get_source_widget(ctx) == self and \
not self.__force_copy:
self.__drag_iters = list(map(model.get_iter, paths))
else:
self.__drag_iters = []
else:
uris = [model[path][0]("~uri") for path in paths]
sel.set_uris(uris)
self.__drag_iters = []
示例9: __clicked
def __clicked(self, button):
if self.__window.get_property('visible'): return
self.__window.child.show_all()
self.__window.size_request()
x, y = self.child.window.get_origin()
w, h = self.child.window.get_size()
ww, wh = self.__window.child.parent.get_size()
sx, sy = self._move_to(x, y, w, h, ww, wh, pad=3)
self.__window.set_transient_for(get_top_parent(self))
self.__window.move(sx, sy)
self.__window.show()
self.__window.grab_focus()
self.__window.grab_add()
pointer = gtk.gdk.pointer_grab(
self.__window.window, True,
gtk.gdk.BUTTON_PRESS_MASK |
gtk.gdk.BUTTON_RELEASE_MASK |
gtk.gdk.BUTTON_MOTION_MASK |
gtk.gdk.POINTER_MOTION_MASK |
gtk.gdk.SCROLL_MASK, None, None, gtk.get_current_event_time())
keyboard = gtk.gdk.keyboard_grab(
self.__window.window, True, gtk.get_current_event_time())
if pointer != gtk.gdk.GRAB_SUCCESS or keyboard != gtk.gdk.GRAB_SUCCESS:
self.__window.grab_remove()
self.__window.hide()
if pointer == gtk.gdk.GRAB_SUCCESS:
gtk.gdk.pointer_ungrab(gtk.get_current_event_time())
if keyboard == gtk.gdk.GRAB_SUCCESS:
gtk.gdk.keyboard_ungrab(gtk.get_current_event_time())
示例10: __init__
def __init__(self, parent=None):
super(LoggingWindow, self).__init__()
self.set_default_size(400, 400)
self.set_title(_("Output Log"))
self.set_border_width(12)
self.set_transient_for(qltk.get_top_parent(parent))
notebook = qltk.Notebook()
for logname in quodlibet.util.logging.names():
text = "\n".join(quodlibet.util.logging.contents(logname))
view = gtk.TextView()
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
sw.set_shadow_type(gtk.SHADOW_IN)
sw.add(view)
buffer = view.get_buffer()
buffer.set_text(text)
notebook.append_page(sw, logname)
close = gtk.Button(stock=gtk.STOCK_CLOSE)
close.connect_object('clicked', lambda x: x.destroy(), self)
button_box = gtk.HButtonBox()
button_box.set_layout(gtk.BUTTONBOX_END)
button_box.pack_start(close)
vbox = gtk.VBox(spacing=12)
vbox.pack_start(notebook)
vbox.pack_start(button_box, expand=False)
self.add(vbox)
self.show_all()
示例11: __init__
def __init__(self, cbes, title, validator=None):
# Do this before calling parent constructor
self.cbes = cbes
super(CBESEditor, self).__init__(title, validator)
self.set_transient_for(qltk.get_top_parent(cbes))
connect_obj(self, 'destroy', self.__finish, cbes)
self.value.set_text(cbes.get_child().get_text())
示例12: __clicked
def __clicked(self, button):
if self.__window.get_property('visible'):
return
if self._disable_slider:
return
if self.__grabbed:
self.__popup_hide()
window = self.__window
frame = window.get_child()
frame.show_all()
window.set_transient_for(get_top_parent(self))
# this type hint tells the wayland backend to create a popup
window.set_type_hint(Gdk.WindowTypeHint.DROPDOWN_MENU)
position_window_beside_widget(window, self)
self.__grabbed = window_grab_and_map(
window,
Gdk.EventMask.BUTTON_PRESS_MASK |
Gdk.EventMask.BUTTON_RELEASE_MASK |
Gdk.EventMask.BUTTON_MOTION_MASK |
Gdk.EventMask.POINTER_MOTION_MASK |
Gdk.EventMask.SCROLL_MASK)
示例13: __init__
def __init__(self, browser):
if self.is_not_unique():
return
super(Preferences, self).__init__()
self.set_border_width(12)
self.set_title(_("Playlist Browser Preferences"))
self.set_default_size(420, 240)
self.set_transient_for(qltk.get_top_parent(browser))
box = Gtk.VBox(spacing=6)
edit_frame = self.edit_display_pane(browser, _("Playlist display"))
box.pack_start(edit_frame, False, True, 12)
main_box = Gtk.VBox(spacing=12)
close = Button(_("_Close"), Icons.WINDOW_CLOSE)
close.connect('clicked', lambda *x: self.destroy())
b = Gtk.HButtonBox()
b.set_layout(Gtk.ButtonBoxStyle.END)
b.pack_start(close, True, True, 0)
main_box.pack_start(box, True, True, 0)
self.use_header_bar()
if not self.has_close_button():
main_box.pack_start(b, False, True, 0)
self.add(main_box)
close.grab_focus()
self.show_all()
示例14: show_uri
def show_uri(label, uri):
"""Shows a uri. The uri can be anything handled by GIO or a quodlibet
specific one.
Currently handled quodlibet uris:
- quodlibet:///prefs/plugins/<plugin id>
Args:
label (str)
uri (str) the uri to show
Returns:
True on success, False on error
"""
parsed = urlparse(uri)
if parsed.scheme == "quodlibet":
if parsed.netloc != "":
print_w("Unknown QuodLibet URL format (%s)" % uri)
return False
else:
return __show_quodlibet_uri(parsed)
else:
# Gtk.show_uri_on_window exists since 3.22
if hasattr(Gtk, "show_uri_on_window"):
from quodlibet.qltk import get_top_parent
return Gtk.show_uri_on_window(get_top_parent(label), uri, 0)
else:
return Gtk.show_uri(None, uri, 0)
示例15: __init__
def __init__(self, parent, default="", **kwargs):
if self.is_not_unique():
return
super(TextEdit, self).__init__()
self.set_title(_("Edit Display"))
self.set_transient_for(qltk.get_top_parent(parent))
self.set_border_width(12)
self.set_default_size(420, 190)
vbox = Gtk.VBox(spacing=12)
close = Button(_("_Close"), Icons.WINDOW_CLOSE)
close.connect('clicked', lambda *x: self.destroy())
b = Gtk.HButtonBox()
b.set_layout(Gtk.ButtonBoxStyle.END)
b.pack_start(close, True, True, 0)
self.box = box = self.Box(default, **kwargs)
vbox.pack_start(box, True, True, 0)
self.use_header_bar()
if not self.has_close_button():
vbox.pack_start(b, False, True, 0)
self.add(vbox)
self.apply = box.apply
self.revert = box.revert
close.grab_focus()
self.get_child().show_all()