本文整理汇总了Python中quodlibet.qltk.entry.UndoEntry.set_tooltip_text方法的典型用法代码示例。如果您正苦于以下问题:Python UndoEntry.set_tooltip_text方法的具体用法?Python UndoEntry.set_tooltip_text怎么用?Python UndoEntry.set_tooltip_text使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类quodlibet.qltk.entry.UndoEntry
的用法示例。
在下文中一共展示了UndoEntry.set_tooltip_text方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: tag_editing_vbox
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def tag_editing_vbox(self):
"""Returns a new VBox containing all tag editing widgets"""
vbox = Gtk.VBox(spacing=6)
cb = CCB(_("Auto-save tag changes"), 'editing',
'auto_save_changes', populate=True,
tooltip=_("Save changes to tags without confirmation "
"when editing multiple files"))
vbox.pack_start(cb, False, True, 0)
hb = Gtk.HBox(spacing=6)
e = UndoEntry()
e.set_text(config.get("editing", "split_on"))
e.connect('changed', self.__changed, 'editing', 'split_on')
e.set_tooltip_text(
_("A list of separators to use when splitting tag values. "
"The list is space-separated"))
def do_revert_split(button, section, option):
config.reset(section, option)
e.set_text(config.get(section, option))
split_revert = Button(_("_Revert"), Icons.DOCUMENT_REVERT)
split_revert.connect("clicked", do_revert_split, "editing",
"split_on")
l = Gtk.Label(label=_("Split _on:"))
l.set_use_underline(True)
l.set_mnemonic_widget(e)
hb.pack_start(l, False, True, 0)
hb.pack_start(e, True, True, 0)
hb.pack_start(split_revert, False, True, 0)
vbox.pack_start(hb, False, True, 0)
return vbox
示例2: __init__
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def __init__(self):
super(PreferencesWindow.Tagging, self).__init__(spacing=12)
self.set_border_width(12)
self.title = _("Tags")
vbox = gtk.VBox(spacing=6)
cb = ConfigCheckButton(_("Auto-save tag changes"),
'editing', 'auto_save_changes',
populate=True)
cb.set_tooltip_text(_("Save changes to tags without confirmation "
"when editing multiple files"))
vbox.pack_start(cb, expand=False)
cb = ConfigCheckButton(_("Show _programmatic tags"),
'editing', 'alltags', populate=True)
cb.set_tooltip_text(
_("Access all tags, including machine-generated ones "
"e.g. MusicBrainz or Replay Gain tags"))
vbox.pack_start(cb, expand=False)
hb = gtk.HBox(spacing=6)
e = UndoEntry()
e.set_text(config.get("editing", "split_on"))
e.connect('changed', self.__changed, 'editing', 'split_on')
e.set_tooltip_text(
_("A list of separators to use when splitting tag values. "
"The list is space-separated"))
l = gtk.Label(_("Split _on:"))
l.set_use_underline(True)
l.set_mnemonic_widget(e)
hb.pack_start(l, expand=False)
hb.pack_start(e)
vbox.pack_start(hb, expand=False)
vb2 = gtk.VBox(spacing=6)
cb = ConfigCheckButton(_("Save ratings and play _counts"),
"editing", "save_to_songs", populate=True)
vb2.pack_start(cb)
hb = gtk.HBox(spacing=6)
lab = gtk.Label(_("_Email:"))
entry = UndoEntry()
entry.set_tooltip_text(_("Ratings and play counts will be set "
"for this email address"))
entry.set_text(config.get("editing", "save_email"))
entry.connect('changed', self.__changed, 'editing', 'save_email')
hb.pack_start(lab, expand=False)
hb.pack_start(entry)
lab.set_mnemonic_widget(entry)
lab.set_use_underline(True)
vb2.pack_start(hb)
f = qltk.Frame(_("Tag Editing"), child=vbox)
self.pack_start(f, expand=False)
f = qltk.Frame(_("Ratings"), child=vb2)
self.pack_start(f, expand=False)
self.show_all()
示例3: PluginPreferences
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def PluginPreferences(self, parent):
outer_vb = Gtk.VBox(spacing=12)
vb = Gtk.VBox(spacing=12)
# Playing
hb = Gtk.HBox(spacing=6)
entry = UndoEntry()
entry.set_text(self.config_get(self.CFG_PAT_PLAYING,
self.DEFAULT_PAT))
entry.connect('changed', self.config_entry_changed,
self.CFG_PAT_PLAYING)
lbl = Gtk.Label(label=_("Playing:"))
entry.set_tooltip_markup(_("Status text when a song is started. "
"Accepts QL Patterns e.g. %s")
% util.monospace(
util.escape("<~artist~title>")))
lbl.set_mnemonic_widget(entry)
hb.pack_start(lbl, False, True, 0)
hb.pack_start(entry, True, True, 0)
vb.pack_start(hb, True, True, 0)
# Paused
hb = Gtk.HBox(spacing=6)
entry = UndoEntry()
entry.set_text(self.config_get(self.CFG_PAT_PAUSED,
self.DEFAULT_PAT_PAUSED))
entry.connect('changed', self.config_entry_changed,
self.CFG_PAT_PAUSED)
lbl = Gtk.Label(label=_("Paused:"))
entry.set_tooltip_markup(_("Status text when a song is paused. "
"Accepts QL Patterns e.g. %s")
% util.monospace(
util.escape("<~artist~title>")))
lbl.set_mnemonic_widget(entry)
hb.pack_start(lbl, False, True, 0)
hb.pack_start(entry, True, True, 0)
vb.pack_start(hb, True, True, 0)
# No Song
hb = Gtk.HBox(spacing=6)
entry = UndoEntry()
entry.set_text(self.config_get(self.CFG_STATUS_SONGLESS, ""))
entry.connect('changed', self.config_entry_changed,
self.CFG_STATUS_SONGLESS)
entry.set_tooltip_text(
_("Plain text for status when there is no current song"))
lbl = Gtk.Label(label=_("No song:"))
lbl.set_mnemonic_widget(entry)
hb.pack_start(lbl, False, True, 0)
hb.pack_start(entry, True, True, 0)
vb.pack_start(hb, True, True, 0)
# Frame
frame = qltk.Frame(_("Status Patterns"), child=vb)
outer_vb.pack_start(frame, False, True, 0)
return outer_vb
示例4: _config
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def _config(section, option, label, tooltip, getter):
def on_changed(entry, *args):
config.set(section, option, entry.get_text())
entry = UndoEntry()
entry.set_tooltip_text(tooltip)
entry.set_text(decode(config.get(section, option)))
entry.connect("changed", on_changed)
def on_reverted(*args):
config.reset(section, option)
entry.set_text(decode(config.get(section, option)))
revert = Gtk.Button()
revert.add(Gtk.Image.new_from_icon_name(Icons.DOCUMENT_REVERT, Gtk.IconSize.BUTTON))
revert.connect("clicked", on_reverted)
return (Gtk.Label(label=label), entry, revert)
示例5: __init__
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def __init__(self, player, debug=False):
super(GstPlayerPreferences, self).__init__(spacing=6)
e = UndoEntry()
e.set_tooltip_text(_("The GStreamer output pipeline used for "
"playback. Leave blank for the default pipeline. "
"In case the pipeline contains a sink, "
"it will be used instead of the default one."))
e.set_text(config.get('player', 'gst_pipeline'))
def changed(entry):
config.set('player', 'gst_pipeline', entry.get_text())
e.connect('changed', changed)
pipe_label = Gtk.Label(label=_('_Output pipeline:'))
pipe_label.set_use_underline(True)
pipe_label.set_mnemonic_widget(e)
apply_button = Gtk.Button(stock=Gtk.STOCK_APPLY)
def format_buffer(scale, value):
return _("%.1f seconds") % value
def scale_changed(scale):
duration_msec = int(scale.get_value() * 1000)
player._set_buffer_duration(duration_msec)
duration = config.getfloat("player", "gst_buffer")
scale = Gtk.HScale.new(
Gtk.Adjustment(value=duration, lower=0.2, upper=10))
scale.set_value_pos(Gtk.PositionType.RIGHT)
scale.set_show_fill_level(True)
scale.connect('format-value', format_buffer)
scale.connect('value-changed', scale_changed)
buffer_label = Gtk.Label(label=_('_Buffer duration:'))
buffer_label.set_use_underline(True)
buffer_label.set_mnemonic_widget(scale)
def rebuild_pipeline(*args):
player._rebuild_pipeline()
apply_button.connect('clicked', rebuild_pipeline)
gapless_button = ConfigCheckButton(
_('Disable _gapless playback'),
"player", "gst_disable_gapless", populate=True)
gapless_button.set_alignment(0.0, 0.5)
gapless_button.set_tooltip_text(
_("Disabling gapless playback can avoid track changing problems "
"with some GStreamer versions."))
widgets = [(pipe_label, e, apply_button),
(buffer_label, scale, None),
]
table = Gtk.Table(n_rows=len(widgets), n_columns=3)
table.set_col_spacings(6)
table.set_row_spacings(6)
for i, (left, middle, right) in enumerate(widgets):
left.set_alignment(0.0, 0.5)
table.attach(left, 0, 1, i, i + 1,
xoptions=Gtk.AttachOptions.FILL |
Gtk.AttachOptions.SHRINK)
if right:
table.attach(middle, 1, 2, i, i + 1)
table.attach(right, 2, 3, i, i + 1,
xoptions=Gtk.AttachOptions.FILL |
Gtk.AttachOptions.SHRINK)
else:
table.attach(middle, 1, 3, i, i + 1)
table.attach(gapless_button, 0, 3, 2, 3)
self.pack_start(table, True, True, 0)
if debug:
def print_bin(player):
player._print_pipeline()
b = Button("Print Pipeline", Gtk.STOCK_DIALOG_INFO)
connect_obj(b, 'clicked', print_bin, player)
self.pack_start(b, True, True, 0)
示例6: PluginPreferences
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def PluginPreferences(cls, parent):
def value_changed(entry, key):
if entry.get_property('sensitive'):
cls.server.config[key] = entry.get_text()
config.set("plugins", "squeezebox_" + key, entry.get_text())
vb = Gtk.VBox(spacing=12)
if not cls.server:
cls.init_server()
cfg = cls.server.config
# Server settings Frame
cfg_frame = Gtk.Frame(label=_("<b>Squeezebox Server</b>"))
cfg_frame.set_shadow_type(Gtk.ShadowType.NONE)
cfg_frame.get_label_widget().set_use_markup(True)
cfg_frame_align = Gtk.Alignment.new(0, 0, 1, 1)
cfg_frame_align.set_padding(6, 6, 12, 12)
cfg_frame.add(cfg_frame_align)
# Tabulate all settings for neatness
table = Gtk.Table(n_rows=3, n_columns=2)
table.set_col_spacings(6)
table.set_row_spacings(6)
rows = []
ve = UndoEntry()
ve.set_text(cfg["hostname"])
ve.connect('changed', value_changed, 'server_hostname')
rows.append((Gtk.Label(label=_("Hostname:")), ve))
ve = UndoEntry()
ve.set_width_chars(5)
ve.set_text(str(cfg["port"]))
ve.connect('changed', value_changed, 'server_port')
rows.append((Gtk.Label(label=_("Port:")), ve))
ve = UndoEntry()
ve.set_text(cfg["user"])
ve.connect('changed', value_changed, 'server_user')
rows.append((Gtk.Label(label=_("Username:")), ve))
ve = UndoEntry()
ve.set_text(str(cfg["password"]))
ve.connect('changed', value_changed, 'server_password')
rows.append((Gtk.Label(label=_("Password:")), ve))
ve = UndoEntry()
ve.set_text(str(cfg["library_dir"]))
ve.set_tooltip_text(_("Library directory the server connects to."))
ve.connect('changed', value_changed, 'server_library_dir')
rows.append((Gtk.Label(label=_("Library path:")), ve))
for (row, (label, entry)) in enumerate(rows):
label.set_alignment(0.0, 0.5)
table.attach(label, 0, 1, row, row + 1,
xoptions=Gtk.AttachOptions.FILL)
table.attach(entry, 1, 2, row, row + 1)
# Add verify button
button = Gtk.Button(label=_("_Verify settings"), use_underline=True)
button.set_sensitive(cls.server is not None)
button.connect('clicked', cls.check_settings)
table.attach(button, 0, 2, row + 1, row + 2)
cfg_frame_align.add(table)
vb.pack_start(cfg_frame, True, True, 0)
debug = cls.ConfigCheckButton(_("Debug"), "debug")
vb.pack_start(debug, True, True, 0)
return vb
示例7: ratings_vbox
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def ratings_vbox(self):
"""Returns a new VBox containing all ratings widgets"""
vb = Gtk.VBox(spacing=6)
# Default Rating
model = Gtk.ListStore(float)
default_combo = Gtk.ComboBox(model=model)
default_lab = Gtk.Label(label=_("_Default rating:"))
default_lab.set_use_underline(True)
default_lab.set_alignment(0, 0.5)
def draw_rating(column, cell, model, it, data):
num = model[it][0]
text = "%0.2f: %s" % (num, util.format_rating(num))
cell.set_property('text', text)
def default_rating_changed(combo, model):
it = combo.get_active_iter()
if it is None:
return
RATINGS.default = model[it][0]
qltk.redraw_all_toplevels()
def populate_default_rating_model(combo, num):
model = combo.get_model()
model.clear()
deltas = []
default = RATINGS.default
precision = RATINGS.precision
for i in range(0, num + 1):
r = i * precision
model.append(row=[r])
deltas.append((abs(default - r), i))
active = sorted(deltas)[0][1]
print_d("Choosing #%d (%.2f), closest to current %.2f"
% (active, precision * active, default))
combo.set_active(active)
cell = Gtk.CellRendererText()
default_combo.pack_start(cell, True)
default_combo.set_cell_data_func(cell, draw_rating, None)
default_combo.connect('changed', default_rating_changed, model)
default_lab.set_mnemonic_widget(default_combo)
def refresh_default_combo(num):
populate_default_rating_model(default_combo, num)
# Rating Scale
model = Gtk.ListStore(int)
scale_combo = Gtk.ComboBox(model=model)
scale_lab = Gtk.Label(label=_("Rating _scale:"))
scale_lab.set_use_underline(True)
scale_lab.set_mnemonic_widget(scale_combo)
cell = Gtk.CellRendererText()
scale_combo.pack_start(cell, False)
num = RATINGS.number
for i in [1, 2, 3, 4, 5, 6, 8, 10]:
it = model.append(row=[i])
if i == num:
scale_combo.set_active_iter(it)
def draw_rating_scale(column, cell, model, it, data):
num_stars = model[it][0]
text = "%d: %s" % (num_stars, RATINGS.full_symbol * num_stars)
cell.set_property('text', text)
def rating_scale_changed(combo, model):
it = combo.get_active_iter()
if it is None:
return
RATINGS.number = num = model[it][0]
refresh_default_combo(num)
refresh_default_combo(RATINGS.number)
scale_combo.set_cell_data_func(cell, draw_rating_scale, None)
scale_combo.connect('changed', rating_scale_changed, model)
default_align = Align(halign=Gtk.Align.START)
default_align.add(default_lab)
scale_align = Align(halign=Gtk.Align.START)
scale_align.add(scale_lab)
grid = Gtk.Grid(column_spacing=6, row_spacing=6)
grid.add(scale_align)
grid.add(scale_combo)
grid.attach(default_align, 0, 1, 1, 1)
grid.attach(default_combo, 1, 1, 1, 1)
vb.pack_start(grid, False, False, 6)
# Bayesian Factor
bayesian_factor = config.getfloat("settings",
"bayesian_rating_factor", 0.0)
adj = Gtk.Adjustment.new(bayesian_factor, 0.0, 10.0, 0.5, 0.5, 0.0)
bayes_spin = Gtk.SpinButton(adjustment=adj, numeric=True)
bayes_spin.set_digits(1)
bayes_spin.connect('changed', self.__changed_and_signal_library,
'settings', 'bayesian_rating_factor')
bayes_spin.set_tooltip_text(
_("Bayesian Average factor (C) for aggregated ratings.\n"
#.........这里部分代码省略.........
示例8: __init__
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def __init__(self):
def create_display_frame():
vbox = Gtk.VBox(spacing=6)
model = Gtk.ListStore(str, str)
def on_changed(combo):
it = combo.get_active_iter()
if it is None:
return
DURATION.format = model[it][0]
app.window.songlist.info.refresh()
app.window.qexpander.refresh()
# TODO: refresh info windows ideally too (but see #2019)
def draw_duration(column, cell, model, it, data):
df, example = model[it]
cell.set_property('text', example)
for df in sorted(DurationFormat.values):
# 4954s == longest ever CD, FWIW
model.append([df, format_time_preferred(4954, df)])
duration = Gtk.ComboBox(model=model)
cell = Gtk.CellRendererText()
duration.pack_start(cell, True)
duration.set_cell_data_func(cell, draw_duration, None)
index = sorted(DurationFormat.values).index(DURATION.format)
duration.set_active(index)
duration.connect('changed', on_changed)
hbox = Gtk.HBox(spacing=6)
label = Gtk.Label(label=_("Duration totals") + ":",
use_underline=True)
label.set_mnemonic_widget(duration)
hbox.pack_start(label, False, True, 0)
hbox.pack_start(duration, False, True, 0)
vbox.pack_start(hbox, False, True, 0)
return qltk.Frame(_("Display"), child=vbox)
def create_search_frame():
vb = Gtk.VBox(spacing=6)
hb = Gtk.HBox(spacing=6)
l = Gtk.Label(label=_("_Global filter:"))
l.set_use_underline(True)
e = ValidatingEntry(Query.validator)
e.set_text(config.get("browsers", "background"))
e.connect('changed', self._entry, 'background', 'browsers')
e.set_tooltip_text(
_("Apply this query in addition to all others"))
l.set_mnemonic_widget(e)
hb.pack_start(l, False, True, 0)
hb.pack_start(e, True, True, 0)
vb.pack_start(hb, False, True, 0)
# Translators: The heading of the preference group, no action
return qltk.Frame(C_("heading", "Search"), child=vb)
super(PreferencesWindow.Browsers, self).__init__(spacing=12)
self.set_border_width(12)
self.title = _("Browsers")
self.pack_start(create_search_frame(), False, True, 0)
self.pack_start(create_display_frame(), False, True, 0)
# Ratings
vb = Gtk.VBox(spacing=6)
c1 = CCB(_("Confirm _multiple ratings"),
'browsers', 'rating_confirm_multiple', populate=True,
tooltip=_("Ask for confirmation before changing the "
"rating of multiple songs at once"))
c2 = CCB(_("Enable _one-click ratings"),
'browsers', 'rating_click', populate=True,
tooltip=_("Enable rating by clicking on the rating "
"column in the song list"))
vbox = Gtk.VBox(spacing=6)
vbox.pack_start(c1, False, True, 0)
vbox.pack_start(c2, False, True, 0)
f = qltk.Frame(_("Ratings"), child=vbox)
self.pack_start(f, False, True, 0)
vb = Gtk.VBox(spacing=6)
# Filename choice algorithm config
cb = CCB(_("Prefer _embedded art"),
'albumart', 'prefer_embedded', populate=True,
tooltip=_("Choose to use artwork embedded in the audio "
"(where available) over other sources"))
vb.pack_start(cb, False, True, 0)
hb = Gtk.HBox(spacing=3)
cb = CCB(_("_Fixed image filename:"),
'albumart', 'force_filename', populate=True,
tooltip=_("The single image filename to use if "
"selected"))
hb.pack_start(cb, False, True, 0)
entry = UndoEntry()
entry.set_tooltip_text(
_("The album art image file to use when forced"))
entry.set_text(config.get("albumart", "filename"))
entry.connect('changed', self.__changed_text, 'filename')
#.........这里部分代码省略.........
示例9: PluginPreferences
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
#.........这里部分代码省略.........
service_combo.set_active(idx)
if service_combo.get_active() == -1:
service_combo.set_active(0)
labels[row].set_mnemonic_widget(service_combo)
row += 1
# url
entry = UndoEntry()
entry.set_text(plugin_config.get('url'))
entry.connect('changed', changed, 'url')
service_combo.connect('changed', combo_changed, entry)
service_combo.emit('changed')
table.attach(entry, 1, 2, row, row + 1)
labels[row].set_mnemonic_widget(entry)
row += 1
# username
entry = UndoEntry()
entry.set_text(plugin_config.get('username'))
entry.connect('changed', changed, 'username')
table.attach(entry, 1, 2, row, row + 1)
labels[row].set_mnemonic_widget(entry)
row += 1
# password
entry = UndoEntry()
entry.set_text(plugin_config.get('password'))
entry.set_visibility(False)
entry.connect('changed', changed, 'password')
table.attach(entry, 1, 2, row, row + 1)
labels[row].set_mnemonic_widget(entry)
row += 1
# verify data
button = qltk.Button(_("_Verify account data"),
Icons.DIALOG_INFORMATION)
button.connect('clicked', check_login)
table.attach(button, 0, 2, 4, 5)
box.pack_start(qltk.Frame(_("Account"), child=table), True, True, 0)
# second frame
table = Gtk.Table(n_rows=4, n_columns=2)
table.props.expand = False
table.set_col_spacings(6)
table.set_row_spacings(6)
label_names = [_("_Artist pattern:"), _("_Title pattern:"),
_("Exclude _filter:")]
labels = []
for idx, name in enumerate(label_names):
label = Gtk.Label(label=name)
label.set_alignment(0.0, 0.5)
label.set_use_underline(True)
table.attach(label, 0, 1, idx, idx + 1,
xoptions=Gtk.AttachOptions.FILL |
Gtk.AttachOptions.SHRINK)
labels.append(label)
row = 0
# artist pattern
entry = UndoEntry()
entry.set_text(plugin_config.get('artistpat'))
entry.connect('changed', changed, 'artistpat')
table.attach(entry, 1, 2, row, row + 1)
entry.set_tooltip_text(_("The pattern used to format "
"the artist name for submission. Leave blank for default."))
labels[row].set_mnemonic_widget(entry)
row += 1
# title pattern
entry = UndoEntry()
entry.set_text(plugin_config.get('titlepat'))
entry.connect('changed', changed, 'titlepat')
table.attach(entry, 1, 2, row, row + 1)
entry.set_tooltip_text(_("The pattern used to format "
"the title for submission. Leave blank for default."))
labels[row].set_mnemonic_widget(entry)
row += 1
# exclude filter
entry = ValidatingEntry(Query.validator)
entry.set_text(plugin_config.get('exclude'))
entry.set_tooltip_text(
_("Songs matching this filter will not be submitted."))
entry.connect('changed', changed, 'exclude')
table.attach(entry, 1, 2, row, row + 1)
labels[row].set_mnemonic_widget(entry)
row += 1
# offline mode
offline = plugin_config.ConfigCheckButton(
_("_Offline mode (don't submit anything)"),
'offline', populate=True)
table.attach(offline, 0, 2, row, row + 1)
box.pack_start(qltk.Frame(_("Submission"), child=table), True, True, 0)
return box
示例10: GetStringDialog
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
class GetStringDialog(Dialog):
"""Simple dialog to return a string from the user"""
def __init__(self, parent, title, text,
button_label=_("_OK"), button_icon=Icons.DOCUMENT_OPEN,
tooltip=None):
super(GetStringDialog, self).__init__(
title=title, transient_for=parent, use_header_bar=True)
self.set_border_width(6)
self.set_resizable(True)
self.add_button(_("_Cancel"), Gtk.ResponseType.CANCEL)
self.add_icon_button(button_label, button_icon, Gtk.ResponseType.OK)
self.vbox.set_spacing(6)
self.set_default_response(Gtk.ResponseType.OK)
box = Gtk.VBox(spacing=6)
lab = Gtk.Label(label=text)
box.set_border_width(6)
lab.set_line_wrap(True)
lab.set_justify(Gtk.Justification.CENTER)
box.pack_start(lab, True, True, 0)
self._val = UndoEntry()
if tooltip:
self._val.set_tooltip_text(tooltip)
self._val.set_max_width_chars(50)
box.pack_start(self._val, True, True, 0)
self.vbox.pack_start(box, True, True, 0)
self.get_child().show_all()
def _verify_clipboard(self, text):
"""Return an altered text or None if the content was invalid."""
return
def run(self, text="", clipboard=False, test=False):
"""Shows the dialog and returns the entered value.
If clipboard is set, the initial value will be pulled from the
clipboard and can be verified/altered by _verify_clipboard. In case the
verification fails text will be used as fallback"""
self.show()
if clipboard:
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
clip = clipboard.wait_for_text()
if clip is not None:
clip = self._verify_clipboard(clip)
if clip is not None:
text = clip
self._val.set_text(text)
self._val.set_activates_default(True)
self._val.grab_focus()
resp = Gtk.ResponseType.OK
if not test:
resp = super(GetStringDialog, self).run()
if resp == Gtk.ResponseType.OK:
value = self._val.get_text()
else:
value = None
self.destroy()
return value
示例11: __init__
# 需要导入模块: from quodlibet.qltk.entry import UndoEntry [as 别名]
# 或者: from quodlibet.qltk.entry.UndoEntry import set_tooltip_text [as 别名]
def __init__(self):
super(PreferencesWindow.Browsers, self).__init__(spacing=12)
self.set_border_width(12)
self.title = _("Browsers")
# Search
vb = Gtk.VBox(spacing=6)
hb = Gtk.HBox(spacing=6)
l = Gtk.Label(label=_("_Global filter:"))
l.set_use_underline(True)
e = ValidatingEntry(QueryValidator)
e.set_text(config.get("browsers", "background"))
e.connect('changed', self._entry, 'background', 'browsers')
e.set_tooltip_text(_("Apply this query in addition to all others"))
l.set_mnemonic_widget(e)
hb.pack_start(l, False, True, 0)
hb.pack_start(e, True, True, 0)
vb.pack_start(hb, False, True, 0)
# Translators: The heading of the preference group, no action
f = qltk.Frame(C_("heading", "Search"), child=vb)
self.pack_start(f, False, True, 0)
# Ratings
vb = Gtk.VBox(spacing=6)
c1 = CCB(_("Confirm _multiple ratings"),
'browsers', 'rating_confirm_multiple', populate=True,
tooltip=_("Ask for confirmation before changing the "
"rating of multiple songs at once"))
c2 = CCB(_("Enable _one-click ratings"),
'browsers', 'rating_click', populate=True,
tooltip=_("Enable rating by clicking on the rating "
"column in the song list"))
vbox = Gtk.VBox(spacing=6)
vbox.pack_start(c1, False, True, 0)
vbox.pack_start(c2, False, True, 0)
f = qltk.Frame(_("Ratings"), child=vbox)
self.pack_start(f, False, True, 0)
vb = Gtk.VBox(spacing=6)
# Filename choice algorithm config
cb = CCB(_("Prefer _embedded art"),
'albumart', 'prefer_embedded', populate=True,
tooltip=_("Choose to use artwork embedded in the audio "
"(where available) over other sources"))
vb.pack_start(cb, False, True, 0)
hb = Gtk.HBox(spacing=3)
cb = CCB(_("_Fixed image filename:"),
'albumart', 'force_filename', populate=True,
tooltip=_("The single image filename to use if "
"selected"))
hb.pack_start(cb, False, True, 0)
entry = UndoEntry()
entry.set_tooltip_text(
_("The album art image file to use when forced"))
entry.set_text(config.get("albumart", "filename"))
entry.connect('changed', self.__changed_text, 'filename')
# Disable entry when not forcing
entry.set_sensitive(cb.get_active())
cb.connect('toggled', self.__toggled_force_filename, entry)
hb.pack_start(entry, True, True, 0)
vb.pack_start(hb, False, True, 0)
f = qltk.Frame(_("Album Art"), child=vb)
self.pack_start(f, False, True, 0)
for child in self.get_children():
child.show_all()