本文整理汇总了Python中quodlibet.util.connect_destroy函数的典型用法代码示例。如果您正苦于以下问题:Python connect_destroy函数的具体用法?Python connect_destroy怎么用?Python connect_destroy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了connect_destroy函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, library):
print_d("Creating Soundcloud Browser")
super(SoundcloudBrowser, self).__init__(spacing=12)
self.set_orientation(Gtk.Orientation.VERTICAL)
if not self.instances():
self._init(library)
self._register_instance()
self.connect('destroy', self.__destroy)
self.connect('uri-received', self.__handle_incoming_uri)
self.__auth_sig = self.api_client.connect('authenticated',
self.__on_authenticated)
connect_destroy(self.library, 'changed', self.__changed)
self.login_state = (State.LOGGED_IN if self.online
else State.LOGGED_OUT)
self._create_searchbar(self.library)
vbox = Gtk.VBox()
vbox.pack_start(self._create_footer(), False, False, 6)
vbox.pack_start(self._create_category_widget(), True, True, 0)
vbox.pack_start(self.create_login_button(), False, False, 6)
vbox.show()
pane = qltk.ConfigRHPaned("browsers", "soundcloud_pos", 0.4)
pane.show()
pane.pack1(vbox, resize=False, shrink=False)
self._songs_box = songs_box = Gtk.VBox(spacing=6)
songs_box.pack_start(self._searchbox, False, True, 0)
songs_box.show()
pane.pack2(songs_box, resize=True, shrink=False)
self.pack_start(pane, True, True, 0)
self.show()
开发者ID:zsau,项目名称:quodlibet,代码行数:31,代码来源:main.py
示例2: __init__
def __init__(self, player, library):
super(WaveformSeekBar, self).__init__()
self._player = player
self._rms_vals = []
self._elapsed_label = TimeLabel()
self._remaining_label = TimeLabel()
self._waveform_scale = WaveformScale()
self.pack_start(Align(self._elapsed_label, border=6), False, True, 0)
self.pack_start(self._waveform_scale, True, True, 0)
self.pack_start(Align(self._remaining_label, border=6), False, True, 0)
for child in self.get_children():
child.show_all()
self._tracker = TimeTracker(player)
self._tracker.connect('tick', self._on_tick, player)
connect_destroy(player, 'seek', self._on_player_seek)
connect_destroy(player, 'song-started', self._on_song_started)
connect_destroy(player, 'song-ended', self._on_song_ended)
connect_destroy(player, 'notify::seekable', self._on_seekable_changed)
connect_destroy(library, 'changed', self._on_song_changed, player)
self.connect('destroy', self._on_destroy)
self._update(player)
self._tracker.tick()
if player.info:
self._create_waveform(player.info, CONFIG.data_size)
开发者ID:piotrdrag,项目名称:quodlibet,代码行数:32,代码来源:waveformseekbar.py
示例3: enable_window_tracking
def enable_window_tracking(self, config_prefix, size_suffix=""):
"""Enable tracking/saving of changes and restore size/pos/maximized.
Make sure to call set_transient_for() before since position is
restored relative to the parent in this case.
config_prefix -- prefix for the config key
(prefix_size, prefix_position, prefix_maximized)
size_suffix -- optional suffix for saving the size. For cases where the
window has multiple states with different content sizes.
(example: edit tags with one song or multiple)
"""
self.__state = 0
self.__name = config_prefix
self.__size_suffix = size_suffix
self.__save_size_pos_deferred = DeferredSignal(
self.__do_save_size_pos, timeout=50, owner=self)
self.connect('configure-event', self.__configure_event)
self.connect('window-state-event', self.__window_state_changed)
self.connect('notify::visible', self.__visible_changed)
parent = self.get_transient_for()
if parent:
connect_destroy(
parent, 'configure-event', self.__parent_configure_event)
self.__restore_window_state()
开发者ID:bossjones,项目名称:quodlibet,代码行数:27,代码来源:window.py
示例4: __init__
def __init__(self, library, player, pattern_filename):
super(SongInfo, self).__init__()
self._pattern_filename = pattern_filename
self.set_visible_window(False)
align = Gtk.Alignment(xscale=0.0, xalign=0.0, yscale=0.0, yalign=0.0)
label = Gtk.Label()
label.set_ellipsize(Pango.EllipsizeMode.MIDDLE)
label.set_selectable(True)
align.add(label)
label.set_alignment(0.0, 0.0)
self._label = label
connect_destroy(library, 'changed', self._on_library_changed, player)
connect_destroy(player, 'song-started', self._on_song_started)
label.connect('populate-popup', self._on_label_popup, player, library)
self.connect('button-press-event', self._on_button_press_event,
player, library)
try:
with open(self._pattern_filename, "rb") as h:
self._pattern = h.read().strip().decode("utf-8")
except (EnvironmentError, UnicodeDecodeError):
pass
self._compiled = XMLFromMarkupPattern(self._pattern)
align.show_all()
self.add(align)
开发者ID:kriskielce88,项目名称:xn--ls8h,代码行数:27,代码来源:info.py
示例5: __init__
def __init__(self, library, song, lyrics=True, bookmarks=True):
super(OneSong, self).__init__()
vbox = Gtk.VBox(spacing=12)
vbox.set_border_width(12)
self._title(song, vbox)
self._album(song, vbox)
self._people(song, vbox)
self._library(song, vbox)
self._file(song, vbox)
self._additional(song, vbox)
sw = SW()
sw.title = _("Information")
sw.add_with_viewport(vbox)
self.append_page(sw)
if lyrics:
lyrics = LyricsPane(song)
lyrics.title = _("Lyrics")
self.append_page(lyrics)
if bookmarks:
bookmarks = EditBookmarksPane(None, song)
bookmarks.title = _("Bookmarks")
bookmarks.set_border_width(12)
self.append_page(bookmarks)
connect_destroy(library, 'changed', self.__check_changed, vbox, song)
开发者ID:elfalem,项目名称:quodlibet,代码行数:26,代码来源:information.py
示例6: enable_row_update
def enable_row_update(self, view, sw, column):
connect_obj(view, "draw", self.__update_visibility, view)
connect_destroy(sw.get_vadjustment(), "value-changed", self.__stop_update, view)
self.__pending_paths = []
self.__update_deferred = DeferredSignal(self.__update_visible_rows, timeout=50, priority=GLib.PRIORITY_LOW)
self.__column = column
self.__first_expose = True
开发者ID:mistotebe,项目名称:quodlibet,代码行数:9,代码来源:main.py
示例7: __init__
def __init__(self, parent, player, library):
super(TopBar, self).__init__()
# play controls
control_item = Gtk.ToolItem()
self.insert(control_item, 0)
t = PlayControls(player, library.librarian)
self.volume = t.volume
# only restore the volume in case it is managed locally, otherwise
# this could affect the system volume
if not player.has_external_volume:
player.volume = config.getfloat("memory", "volume")
self.volume.connect("value-changed", self._on_volume_changed)
control_item.add(t)
self.insert(Gtk.SeparatorToolItem(), 1)
info_item = Gtk.ToolItem()
self.insert(info_item, 2)
info_item.set_expand(True)
box = Gtk.Box(spacing=6)
info_item.add(box)
qltk.add_css(self, "GtkToolbar {padding: 3px;}")
# song text
info_pattern_path = os.path.join(quodlibet.get_user_dir(), "songinfo")
text = SongInfo(library.librarian, player, info_pattern_path)
box.pack_start(Align(text, border=3), True, True, 0)
# cover image
self.image = CoverImage(resize=True)
connect_destroy(player, 'song-started', self.__new_song)
# FIXME: makes testing easier
if app.cover_manager:
connect_destroy(
app.cover_manager, 'cover-changed',
self.__song_art_changed, library)
box.pack_start(Align(self.image, border=2), False, True, 0)
# On older Gtk+ (3.4, at least)
# setting a margin on CoverImage leads to errors and result in the
# QL window not beeing visible for some reason.
assert self.image.props.margin == 0
for child in self.get_children():
child.show_all()
context = self.get_style_context()
context.add_class("primary-toolbar")
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:54,代码来源:quodlibetwindow.py
示例8: __init__
def __init__(self, library, songs, parent=None):
super(Information, self).__init__(dialog=False)
self.set_default_size(400, 400)
self.set_transient_for(qltk.get_top_parent(parent))
self.enable_window_tracking("quodlibet_information")
if len(songs) > 1:
connect_destroy(library, 'changed', self.__check_changed)
if len(songs) > 0:
connect_destroy(library, 'removed', self.__check_removed)
self.__songs = songs
self.__update(library)
self.get_child().show_all()
开发者ID:urielz,项目名称:quodlibet,代码行数:12,代码来源:information.py
示例9: __init__
def __init__(self, player, library):
super(SeekBar, self).__init__()
self._elapsed_label = TimeLabel()
self._remaining_label = TimeLabel()
scale = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL)
scale.set_adjustment(Gtk.Adjustment.new(0, 0, 0, 3, 15, 0))
scale.set_draw_value(False)
self._scale = scale
self.pack_start(Align(self._elapsed_label, border=6), False, True, 0)
self.pack_start(scale, True, True, 0)
self.pack_start(Align(self._remaining_label, border=6), False, True, 0)
for child in self.get_children():
child.show_all()
self._id = self._scale.connect("value-changed", self._on_user_changed, player)
self._scale.connect("value-changed", self._on_scale_value_changed, player)
self._tracker = TimeTracker(player)
self._tracker.connect("tick", self._on_tick, player)
connect_destroy(player, "seek", self._on_player_seek)
connect_destroy(player, "song-started", self._on_song_started)
connect_destroy(player, "notify::seekable", self._on_seekable_changed)
connect_destroy(library, "changed", self._on_song_changed, player)
self.connect("destroy", self._on_destroy)
with self._inhibit():
self._update(player)
self._tracker.tick()
开发者ID:faubiguy,项目名称:quodlibet,代码行数:33,代码来源:seekbar.py
示例10: test_main
def test_main(self):
from gi.repository import Gtk
b = Gtk.Button()
class A(Gtk.Button):
def foo(self):
pass
a = A()
ref = sys.getrefcount(a)
util.connect_destroy(b, "clicked", a.foo)
self.assertEqual(sys.getrefcount(a), ref + 1)
a.destroy()
self.assertEqual(sys.getrefcount(a), ref)
开发者ID:vrasidas,项目名称:quodlibet,代码行数:15,代码来源:test_util.py
示例11: __init__
def __init__(self, model):
super(DuplicateSongsView, self).__init__(model)
connect_obj(self, 'row-activated',
self.__select_song, app.player)
# Selecting multiple is a nice feature it turns out.
self.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE)
# Handle signals propagated from the underlying library
self.connected_library_sigs = []
SIGNAL_MAP = {
'removed': self._removed,
'added': self._added,
'changed': self._changed
}
for (sig, callback) in SIGNAL_MAP.items():
print_d("Listening to library.%s signals" % sig)
connect_destroy(app.library, sig, callback)
开发者ID:zsau,项目名称:quodlibet,代码行数:17,代码来源:duplicates.py
示例12: __init__
def __init__(self, parent, player, library):
super(TopBar, self).__init__()
# play controls
control_item = Gtk.ToolItem()
self.insert(control_item, 0)
t = PlayControls(player, library.librarian)
self.volume = t.volume
control_item.add(t)
self.insert(Gtk.SeparatorToolItem(), 1)
info_item = Gtk.ToolItem()
self.insert(info_item, 2)
info_item.set_expand(True)
box = Gtk.Box(spacing=6)
info_item.add(box)
qltk.add_css(self, "GtkToolbar {padding: 3px;}")
# song text
info_pattern_path = os.path.join(const.USERDIR, "songinfo")
text = SongInfo(library.librarian, player, info_pattern_path)
box.pack_start(Alignment(text, border=3), True, True, 0)
# cover image
self.image = CoverImage(resize=True)
connect_destroy(player, 'song-started', self.__new_song)
# FIXME: makes testing easier
if app.cover_manager:
connect_destroy(
app.cover_manager, 'cover-changed',
self.__song_art_changed, library)
# CoverImage doesn't behave in a Alignment, so wrap it
coverbox = Gtk.Box()
coverbox.pack_start(self.image, True, True, 0)
box.pack_start(Alignment(coverbox, border=2), False, True, 0)
for child in self.get_children():
child.show_all()
context = self.get_style_context()
context.add_class("primary-toolbar")
开发者ID:kriskielce88,项目名称:xn--ls8h,代码行数:45,代码来源:quodlibetwindow.py
示例13: _create_category_widget
def _create_category_widget(self):
scrolled_window = ScrolledWindow()
scrolled_window.show()
scrolled_window.set_shadow_type(Gtk.ShadowType.IN)
self.view = view = RCMHintedTreeView()
view.show()
view.set_headers_visible(False)
scrolled_window.set_policy(
Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
scrolled_window.add(view)
model = Gtk.ListStore(int, str, str, str, bool)
filters = self.filters
for (i, (name, data)) in enumerate(filters):
filter_type, icon, query, always = data
enabled = always
model.append(row=[filter_type, icon, name, query, enabled])
def search_func(model, column, key, iter, data):
return key.lower() not in model[iter][column].lower()
view.set_search_column(self.ModelIndex.NAME)
view.set_search_equal_func(search_func, None)
column = Gtk.TreeViewColumn("Songs")
column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
renderpb = Gtk.CellRendererPixbuf()
renderpb.props.xpad = 6
renderpb.props.ypad = 6
column.pack_start(renderpb, False)
column.add_attribute(renderpb, "icon-name", self.ModelIndex.ICON_NAME)
render = Gtk.CellRendererText()
render.set_property('ellipsize', Pango.EllipsizeMode.END)
def cdf(column, cell, model, iter_, user_data):
on = (self.login_state == State.LOGGED_IN or
model[iter_][self.ModelIndex.ALWAYS_ENABLE])
cell.set_sensitive(on)
column.set_cell_data_func(render, cdf)
column.set_cell_data_func(renderpb, cdf)
view.append_column(column)
column.pack_start(render, True)
column.add_attribute(render, "text", self.ModelIndex.NAME)
view.set_model(model)
selection = view.get_selection()
def select_func(sel, model, path, value):
return (self.login_state == State.LOGGED_IN or
model[model.get_iter(path)][self.ModelIndex.ALWAYS_ENABLE])
selection.set_select_function(select_func)
self._refresh_online_filters()
self.__changed_sig = connect_destroy(selection, 'changed',
DeferredSignal(self._on_select))
return scrolled_window
开发者ID:zsau,项目名称:quodlibet,代码行数:56,代码来源:main.py
示例14: __init__
def __init__(self, player, library):
super(WaveformSeekBar, self).__init__()
self._player = player
self._rms_vals = []
self._hovering = False
self._elapsed_label = TimeLabel()
self._remaining_label = TimeLabel()
self._waveform_scale = WaveformScale(player)
self.pack_start(Align(self._elapsed_label, border=6), False, True, 0)
self.pack_start(self._waveform_scale, True, True, 0)
self.pack_start(Align(self._remaining_label, border=6), False, True, 0)
for child in self.get_children():
child.show_all()
self.set_time_label_visibility(CONFIG.show_time_labels)
self._waveform_scale.connect('size-allocate',
self._update_redraw_interval)
self._waveform_scale.connect('motion-notify-event',
self._on_mouse_hover)
self._waveform_scale.connect('leave-notify-event',
self._on_mouse_leave)
self._label_tracker = TimeTracker(player)
self._label_tracker.connect('tick', self._on_tick_label, player)
self._redraw_tracker = TimeTracker(player)
self._redraw_tracker.connect('tick', self._on_tick_waveform, player)
connect_destroy(player, 'seek', self._on_player_seek)
connect_destroy(player, 'song-started', self._on_song_started)
connect_destroy(player, 'song-ended', self._on_song_ended)
connect_destroy(player, 'notify::seekable', self._on_seekable_changed)
connect_destroy(library, 'changed', self._on_song_changed, player)
self.connect('destroy', self._on_destroy)
self._update(player)
if player.info:
self._create_waveform(player.info, CONFIG.max_data_points)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:43,代码来源:waveformseekbar.py
示例15: __init__
def __init__(self, player, library):
hbox = Gtk.HBox(spacing=3)
l = TimeLabel()
self._time_label = l
hbox.pack_start(l, True, True, 0)
arrow = Gtk.Arrow.new(Gtk.ArrowType.RIGHT, Gtk.ShadowType.NONE)
hbox.pack_start(arrow, False, True, 0)
super(SeekBar, self).__init__(hbox)
self._slider_label = TimeLabel()
self.set_slider_widget(self._slider_label)
self._on_seekable_changed(player)
connect_destroy(player, "notify::seekable", self._on_seekable_changed)
self.scale.connect('button-press-event', self.__seek_lock)
self.scale.connect('button-release-event', self.__seek_unlock, player)
self.scale.connect('key-press-event', self.__seek_lock)
self.scale.connect('key-release-event', self.__seek_unlock, player)
self.connect('scroll-event', self.__scroll, player)
self.scale.connect('value-changed', self.__update_time, l)
m = Gtk.Menu()
c = ConfigCheckMenuItem(
_("Display remaining time"), "player", "time_remaining")
c.set_active(config.getboolean("player", "time_remaining"))
connect_obj(c, 'toggled', self.scale.emit, 'value-changed')
self.__remaining = c
m.append(c)
m.append(SeparatorMenuItem())
i = qltk.MenuItem(_(u"_Edit Bookmarks…"), Icons.EDIT)
def edit_bookmarks_cb(menu_item):
window = bookmarks.EditBookmarks(self, library, player)
window.show()
i.connect('activate', edit_bookmarks_cb)
m.append(i)
m.show_all()
m.attach_to_widget(self, None)
connect_obj(self,
'button-press-event', self.__check_menu, m, player, c)
connect_obj(self, 'popup-menu', self.__popup_menu, m, player)
timer = TimeTracker(player)
connect_obj(timer, 'tick', self.__check_time, player)
connect_destroy(
library, "changed", self.__songs_changed, player, m)
connect_destroy(player, 'song-started', self.__song_started, m)
connect_destroy(player, 'seek', self.__seeked)
开发者ID:tintinyoung,项目名称:quodlibet,代码行数:52,代码来源:controls.py
示例16: __init__
def __init__(self, plugin_handler, filter_types=None):
super(FilterPluginBox, self).__init__()
# static filters
if filter_types is None:
filter_types = []
filters = [Kind() for Kind in filter_types]
filters.sort()
for f in filters:
self.pack_start(f, True, True, 0)
self.__filters = filters
# plugins
self.__plugins = []
hb = Gtk.HBox()
expander = Gtk.Expander(label=_(u"_More options…"))
expander.set_use_underline(True)
expander.set_no_show_all(True)
hb.pack_start(expander, True, True, 0)
self.pack_start(hb, False, True, 0)
for filt in filters:
filt.connect('preview', lambda *x: self.emit("preview"))
vbox = Gtk.VBox()
expander.add(vbox)
connect_destroy(plugin_handler,
"changed", self.__refresh_plugins, vbox, expander)
expander.connect("notify::expanded", self.__notify_expanded, vbox)
expander.set_expanded(False)
for child in self.get_children():
child.show()
plugin_handler.changed()
开发者ID:LudoBike,项目名称:quodlibet,代码行数:38,代码来源:_editutils.py
示例17: __init__
def __init__(self, library, player):
super(QueueExpander, self).__init__(spacing=3)
sw = ScrolledWindow()
sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
sw.set_shadow_type(Gtk.ShadowType.IN)
self.queue = PlayQueue(library, player)
self.queue.props.expand = True
sw.add(self.queue)
add_css(self, ".ql-expanded title { margin-bottom: 5px; }")
outer = ExpandBoxHack(spacing=12)
left = Gtk.HBox(spacing=12)
hb2 = Gtk.HBox(spacing=3)
state_icon = PlaybackStatusIcon()
state_icon.stop()
state_icon.show()
hb2.pack_start(state_icon, True, True, 0)
name_label = Gtk.Label(label=_("_Queue"), use_underline=True)
hb2.pack_start(name_label, True, True, 0)
left.pack_start(hb2, False, True, 0)
b = SmallImageButton(
image=SymbolicIconImage(Icons.EDIT_CLEAR, Gtk.IconSize.MENU))
b.set_tooltip_text(_("Remove all songs from the queue"))
b.connect('clicked', self.__clear_queue)
b.set_no_show_all(True)
b.set_relief(Gtk.ReliefStyle.NONE)
left.pack_start(b, False, False, 0)
self.count_label = count_label = Gtk.Label()
left.pack_start(count_label, False, True, 0)
outer.pack_start(left, True, True, 0)
close_button = SmallImageButton(
image=SymbolicIconImage("window-close", Gtk.IconSize.MENU),
relief=Gtk.ReliefStyle.NONE)
close_button.connect("clicked", lambda *x: self.hide())
outer.pack_start(close_button, False, False, 6)
self.set_label_fill(True)
cb = ConfigCheckButton(
_("_Random"), "memory", "shufflequeue")
cb.connect('toggled', self.__queue_shuffle, self.queue.model)
cb.set_active(config.getboolean("memory", "shufflequeue"))
cb.set_no_show_all(True)
left.pack_start(cb, False, True, 0)
self.set_label_widget(outer)
self.add(sw)
connect_obj(self, 'notify::expanded', self.__expand, cb, b)
targets = [
("text/x-quodlibet-songs", Gtk.TargetFlags.SAME_APP, DND_QL),
("text/uri-list", 0, DND_URI_LIST)
]
targets = [Gtk.TargetEntry.new(*t) for t in targets]
self.drag_dest_set(Gtk.DestDefaults.ALL, targets, Gdk.DragAction.COPY)
self.connect('drag-motion', self.__motion)
self.connect('drag-data-received', self.__drag_data_received)
self.queue.model.connect_after('row-inserted',
util.DeferredSignal(self.__check_expand), count_label)
self.queue.model.connect_after('row-deleted',
util.DeferredSignal(self.__update_count), count_label)
connect_obj(self, 'notify::visible', self.__visible, cb, b)
self.__update_count(self.model, None, count_label)
connect_destroy(
player, 'song-started', self.__update_state_icon, state_icon)
connect_destroy(
player, 'paused', self.__update_state_icon_pause,
state_icon, True)
connect_destroy(
player, 'unpaused', self.__update_state_icon_pause,
state_icon, False)
# to make the children clickable if mapped
# ....no idea why, but works
def hack(expander):
label = expander.get_label_widget()
if label:
label.unmap()
label.map()
self.connect("map", hack)
self.set_expanded(config.getboolean("memory", "queue_expanded"))
self.notify("expanded")
for child in self.get_children():
child.show_all()
开发者ID:faubiguy,项目名称:quodlibet,代码行数:98,代码来源:queue.py
示例18: __init__
def __init__(self, library, dir=None):
super(ExFalsoWindow, self).__init__(dialog=False)
self.set_title("Ex Falso")
self.set_default_size(750, 475)
self.enable_window_tracking("exfalso")
self.__library = library
hp = ConfigRHPaned("memory", "exfalso_paned_position", 1.0)
hp.set_border_width(0)
hp.set_position(250)
hp.show()
self.add(hp)
vb = Gtk.VBox()
bbox = Gtk.HBox(spacing=6)
about = Gtk.Button()
about.add(Gtk.Image.new_from_icon_name(
Icons.HELP_ABOUT, Gtk.IconSize.BUTTON))
connect_obj(about, 'clicked', self.__show_about, self)
bbox.pack_start(about, False, True, 0)
def prefs_cb(*args):
window = PreferencesWindow(self)
window.show()
def plugin_window_cb(*args):
window = PluginWindow(self)
window.show()
menu = Gtk.Menu()
plugin_item = MenuItem(_("_Plugins"), Icons.SYSTEM_RUN)
plugin_item.connect("activate", plugin_window_cb)
menu.append(plugin_item)
pref_item = MenuItem(_("_Preferences"), Icons.PREFERENCES_SYSTEM)
pref_item.connect("activate", prefs_cb)
menu.append(pref_item)
menu.show_all()
menu_button = MenuButton(
SymbolicIconImage(Icons.EMBLEM_SYSTEM, Gtk.IconSize.BUTTON),
arrow=True, down=False)
menu_button.set_menu(menu)
bbox.pack_start(menu_button, False, True, 0)
l = Gtk.Label()
l.set_alignment(1.0, 0.5)
l.set_ellipsize(Pango.EllipsizeMode.END)
bbox.pack_start(l, True, True, 0)
fs = MainFileSelector()
vb.pack_start(fs, True, True, 0)
vb.pack_start(Align(bbox, border=6), False, True, 0)
vb.show_all()
hp.pack1(vb, resize=True, shrink=False)
nb = qltk.Notebook()
nb.props.scrollable = True
nb.show()
for Page in [EditTags, TagsFromPath, RenameFiles, TrackNumbers]:
page = Page(self, self.__library)
page.show()
nb.append_page(page)
hp.pack2(nb, resize=True, shrink=False)
fs.connect('changed', self.__changed, l)
if dir:
fs.go_to(dir)
connect_destroy(self.__library, 'changed', self.__library_changed, fs)
self.__save = None
connect_obj(self, 'changed', self.set_pending, None)
for c in fs.get_children():
c.get_child().connect('button-press-event',
self.__pre_selection_changed, fs, nb)
c.get_child().connect('focus',
self.__pre_selection_changed, fs, nb)
fs.get_children()[1].get_child().connect('popup-menu',
self.__popup_menu, fs)
self.emit('changed', [])
self.get_child().show()
self.__ag = Gtk.AccelGroup()
key, mod = Gtk.accelerator_parse("<Primary>Q")
self.__ag.connect(key, mod, 0, lambda *x: self.destroy())
self.add_accel_group(self.__ag)
# GtkosxApplication assumes the menu bar is mapped, so add
# it but don't show it.
self._dummy_osx_menu_bar = Gtk.MenuBar()
vb.pack_start(self._dummy_osx_menu_bar, False, False, 0)
开发者ID:mistotebe,项目名称:quodlibet,代码行数:97,代码来源:exfalsowindow.py
示例19: __init__
def __init__(self, library):
super(InternetRadio, self).__init__(spacing=12)
self.set_orientation(Gtk.Orientation.VERTICAL)
if not self.instances():
self._init(library)
self._register_instance()
self.connect("destroy", self.__destroy)
completion = LibraryTagCompletion(self.__stations)
self.accelerators = Gtk.AccelGroup()
self.__searchbar = search = SearchBarBox(completion=completion, accel_group=self.accelerators)
search.connect("query-changed", self.__filter_changed)
menu = Gtk.Menu()
new_item = MenuItem(_(u"_New Station…"), Icons.LIST_ADD)
new_item.connect("activate", self.__add)
menu.append(new_item)
update_item = MenuItem(_("_Update Stations"), Icons.VIEW_REFRESH)
update_item.connect("activate", self.__update)
menu.append(update_item)
menu.show_all()
button = MenuButton(SymbolicIconImage(Icons.EMBLEM_SYSTEM, Gtk.IconSize.MENU), arrow=True)
button.set_menu(menu)
def focus(widget, *args):
qltk.get_top_parent(widget).songlist.grab_focus()
search.connect("focus-out", focus)
# treeview
scrolled_window = ScrolledWindow()
scrolled_window.show()
scrolled_window.set_shadow_type(Gtk.ShadowType.IN)
self.view = view = AllTreeView()
view.show()
view.set_headers_visible(False)
scrolled_window.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
scrolled_window.add(view)
model = Gtk.ListStore(int, str, str, str)
model.append(row=[self.TYPE_ALL, Icons.FOLDER, "__all", _("All Stations")])
model.append(row=[self.TYPE_SEP, Icons.FOLDER, "", ""])
# Translators: Favorite radio stations
model.append(row=[self.TYPE_FAV, Icons.FOLDER, "__fav", _("Favorites")])
model.append(row=[self.TYPE_SEP, Icons.FOLDER, "", ""])
filters = self.filters
for text, k in sorted([(filters.text(k), k) for k in filters.keys()]):
model.append(row=[self.TYPE_FILTER, Icons.EDIT_FIND, k, text])
model.append(row=[self.TYPE_NOCAT, Icons.FOLDER, "nocat", _("No Category")])
def separator(model, iter, data):
return model[iter][self.TYPE] == self.TYPE_SEP
view.set_row_separator_func(separator, None)
def search_func(model, column, key, iter, data):
return key.lower() not in model[iter][column].lower()
view.set_search_column(self.NAME)
view.set_search_equal_func(search_func, None)
column = Gtk.TreeViewColumn("genres")
column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
renderpb = Gtk.CellRendererPixbuf()
renderpb.props.xpad = 3
column.pack_start(renderpb, False)
column.add_attribute(renderpb, "icon-name", self.ICON_NAME)
render = Gtk.CellRendererText()
render.set_property("ellipsize", Pango.EllipsizeMode.END)
view.append_column(column)
column.pack_start(render, True)
column.add_attribute(render, "text", self.NAME)
view.set_model(model)
# selection
selection = view.get_selection()
selection.set_mode(Gtk.SelectionMode.MULTIPLE)
self.__changed_sig = connect_destroy(selection, "changed", util.DeferredSignal(lambda x: self.activate()))
box = Gtk.HBox(spacing=6)
box.pack_start(search, True, True, 0)
box.pack_start(button, False, True, 0)
self._searchbox = Align(box, left=0, right=6, top=6)
self._searchbox.show_all()
def qbar_response(infobar, response_id):
if response_id == infobar.RESPONSE_LOAD:
self.__update()
self.qbar = QuestionBar()
self.qbar.connect("response", qbar_response)
if self._is_library_empty():
#.........这里部分代码省略.........
开发者ID:virtuald,项目名称:quodlibet,代码行数:101,代码来源:iradio.py
示例20: __init__
def __init__(self, library, player=None, update=False,
model_cls=PlaylistModel):
super(SongList, self).__init__()
self._register_instance(SongList)
self.set_model(model_cls())
self.info = SongInfoSelection(self)
self.set_size_request(200, 150)
self.set_rules_hint(True)
self.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE)
self.set_fixed_height_mode(True)
self.__csig = self.connect('columns-changed', self.__columns_changed)
self._first_column = None
# A priority list of how to apply the sort keys.
# might contain column header names not present...
self._sort_sequence = []
self.set_column_headers(self.headers)
librarian = library.librarian or library
connect_destroy(librarian, 'changed', self.__song_updated)
connect_destroy(librarian, 'removed', self.__song_removed, player)
if update:
connect_destroy(librarian, 'added', self.__song_added)
if player:
connect_destroy(
player, 'paused', lambda *x: self.__redraw_current())
connect_destroy(
player, 'unpaused', lambda *x: self.__redraw_current())
connect_destroy(
player, 'error', lambda *x: self.__redraw_current())
self.connect('button-press-event', self.__button_press, librarian)
self.connect('key-press-event', self.__key_press, librarian)
self.setup_drop(library)
self.disable_drop()
self.set_search_equal_func(self.__search_func, None)
self.connect('destroy', self.__destroy)
开发者ID:lebauce,项目名称:quodlibet,代码行数:41,代码来源:songlist.py
注:本文中的quodlibet.util.connect_destroy函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论