feat: default public trackers

This commit is contained in:
Stefan Talpalaru
2022-02-20 11:54:20 -06:00
committed by Charles Kerr
parent f436d742a2
commit 7b377511a9
19 changed files with 265 additions and 3 deletions

View File

@@ -176,6 +176,33 @@ Gtk::Entry* new_entry(tr_quark const key, Glib::RefPtr<Session> const& core)
return w;
}
void text_buffer_changed_cb(Glib::RefPtr<Gtk::TextBuffer> buffer, tr_quark const key, Glib::RefPtr<Session> const& core)
{
Gtk::TextBuffer::iterator start, end;
buffer->get_bounds(start, end);
core->set_pref(key, buffer->get_text(start, end, FALSE));
}
Gtk::Widget* new_text_view(tr_quark const key, Glib::RefPtr<Session> const& core)
{
auto* w = Gtk::make_managed<Gtk::TextView>();
auto buffer = w->get_buffer();
buffer->set_text(gtr_pref_string_get(key));
/* set up the scrolled window and put the text view in it */
auto* scroll = Gtk::make_managed<Gtk::ScrolledWindow>();
scroll->set_policy(Gtk::PolicyType::POLICY_AUTOMATIC, Gtk::PolicyType::POLICY_AUTOMATIC);
scroll->set_shadow_type(Gtk::ShadowType::SHADOW_IN);
scroll->add(*w);
scroll->set_size_request(-1, 200);
/* signal */
buffer->signal_changed().connect([buffer, key, core]() { text_buffer_changed_cb(buffer, key, core); });
return scroll;
}
void chosen_cb(Gtk::FileChooser* w, tr_quark const key, Glib::RefPtr<Session> const& core)
{
core->set_pref(key, w->get_filename());
@@ -1051,6 +1078,11 @@ Gtk::Widget* PrefsDialog::Impl::networkPage()
w->set_tooltip_text(_("LPD is a tool for finding peers on your local network."));
t->add_wide_control(row, *w);
t->add_section_title(row, _("Default Trackers"));
auto tv = new_text_view(TR_KEY_default_trackers, core_);
tv->set_tooltip_text(_("Trackers for public torrents to use automatically"));
t->add_wide_control(row, *tv);
return t;
}