re-sync the GTK+ and Qt clients' prefs dialogs.
This commit is contained in:
parent
c4276d832e
commit
c385a1559f
230
gtk/tr-prefs.c
230
gtk/tr-prefs.c
|
@ -256,34 +256,52 @@ target_cb (GtkWidget * tb, gpointer target)
|
|||
****/
|
||||
|
||||
static GtkWidget*
|
||||
downloadPage (GObject * core)
|
||||
downloadingPage (GObject * core)
|
||||
{
|
||||
GtkWidget * t;
|
||||
GtkWidget * w;
|
||||
GtkWidget * l;
|
||||
const char * s;
|
||||
guint row = 0;
|
||||
GtkWidget * t;
|
||||
GtkWidget * w;
|
||||
GtkWidget * l;
|
||||
const char * s;
|
||||
guint row = 0;
|
||||
|
||||
t = hig_workarea_create ();
|
||||
t = hig_workarea_create ();
|
||||
hig_workarea_add_section_title (t, &row, C_("Gerund", "Adding"));
|
||||
|
||||
hig_workarea_add_section_title (t, &row, _("Location"));
|
||||
s = _("Automatically add .torrent files _from:");
|
||||
l = new_check_button (s, TR_KEY_watch_dir_enabled, core);
|
||||
w = new_path_chooser_button (TR_KEY_watch_dir, core);
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (w), gtr_pref_flag_get (TR_KEY_watch_dir_enabled));
|
||||
g_signal_connect (l, "toggled", G_CALLBACK (target_cb), w);
|
||||
hig_workarea_add_row_w (t, &row, l, w, NULL);
|
||||
|
||||
s = _("Show the Torrent Options _dialog");
|
||||
w = new_check_button (s, TR_KEY_show_options_window, core);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("_Start added torrents");
|
||||
w = new_check_button (s, TR_KEY_start_added_torrents, core);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("Mo_ve .torrent file to the trash");
|
||||
w = new_check_button (s, TR_KEY_trash_original_torrent_files, core);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
w = new_path_chooser_button (TR_KEY_download_dir, core);
|
||||
hig_workarea_add_row (t, &row, _("Save to _Location:"), w, NULL);
|
||||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Queue"));
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Download Queue"));
|
||||
|
||||
s = _("Maximum active _downloads:");
|
||||
s = _("Ma_ximum active downloads:");
|
||||
w = new_spin_button (TR_KEY_download_queue_size, core, 0, INT_MAX, 1);
|
||||
hig_workarea_add_row (t, &row, s, w, NULL);
|
||||
|
||||
s = _("Downloads sharing data in the last N minutes are _active:");
|
||||
s = _("Downloads sharing data in the last _N minutes are active:");
|
||||
w = new_spin_button (TR_KEY_queue_stalled_minutes, core, 1, INT_MAX, 15);
|
||||
hig_workarea_add_row (t, &row, s, w, NULL);
|
||||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Incomplete"));
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Incomplete"));
|
||||
|
||||
s = _("Append \"._part\" to incomplete files' names");
|
||||
w = new_check_button (s, TR_KEY_rename_partial_files, core);
|
||||
|
@ -296,14 +314,14 @@ downloadPage (GObject * core)
|
|||
g_signal_connect (l, "toggled", G_CALLBACK (target_cb), w);
|
||||
hig_workarea_add_row_w (t, &row, l, w, NULL);
|
||||
|
||||
s = _("Call _script when torrent is completed:");
|
||||
s = _("Call scrip_t when torrent is completed:");
|
||||
l = new_check_button (s, TR_KEY_script_torrent_done_enabled, core);
|
||||
w = new_file_chooser_button (TR_KEY_script_torrent_done_filename, core);
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (w), gtr_pref_flag_get (TR_KEY_script_torrent_done_enabled));
|
||||
g_signal_connect (l, "toggled", G_CALLBACK (target_cb), w);
|
||||
hig_workarea_add_row_w (t, &row, l, w, NULL);
|
||||
|
||||
return t;
|
||||
return t;
|
||||
}
|
||||
|
||||
/****
|
||||
|
@ -311,39 +329,16 @@ downloadPage (GObject * core)
|
|||
****/
|
||||
|
||||
static GtkWidget*
|
||||
torrentPage (GObject * core)
|
||||
seedingPage (GObject * core)
|
||||
{
|
||||
const char * s;
|
||||
GtkWidget * t;
|
||||
GtkWidget * w;
|
||||
GtkWidget * w2;
|
||||
GtkWidget * l;
|
||||
guint row = 0;
|
||||
GtkWidget * t;
|
||||
GtkWidget * w;
|
||||
GtkWidget * w2;
|
||||
const char * s;
|
||||
guint row = 0;
|
||||
|
||||
t = hig_workarea_create ();
|
||||
hig_workarea_add_section_title (t, &row, C_("Gerund", "Adding"));
|
||||
|
||||
s = _("_Start when added");
|
||||
w = new_check_button (s, TR_KEY_start_added_torrents, core);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("Show _options dialog");
|
||||
w = new_check_button (s, TR_KEY_show_options_window, core);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("Mo_ve .torrent file to the trash");
|
||||
w = new_check_button (s, TR_KEY_trash_original_torrent_files, core);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("Automatically _add torrents from:");
|
||||
l = new_check_button (s, TR_KEY_watch_dir_enabled, core);
|
||||
w = new_path_chooser_button (TR_KEY_watch_dir, core);
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (w), gtr_pref_flag_get (TR_KEY_watch_dir_enabled));
|
||||
g_signal_connect (l, "toggled", G_CALLBACK (target_cb), w);
|
||||
hig_workarea_add_row_w (t, &row, l, w, NULL);
|
||||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, C_("Gerund", "Seeding"));
|
||||
t = hig_workarea_create ();
|
||||
hig_workarea_add_section_title (t, &row, _("Limits"));
|
||||
|
||||
s = _("Stop seeding at _ratio:");
|
||||
w = new_check_button (s, TR_KEY_ratio_limit_enabled, core);
|
||||
|
@ -359,7 +354,7 @@ torrentPage (GObject * core)
|
|||
g_signal_connect (w, "toggled", G_CALLBACK (target_cb), w2);
|
||||
hig_workarea_add_row_w (t, &row, w, w2, NULL);
|
||||
|
||||
return t;
|
||||
return t;
|
||||
}
|
||||
|
||||
/****
|
||||
|
@ -519,20 +514,27 @@ new_encryption_combo (GObject * core, const tr_quark key)
|
|||
static GtkWidget*
|
||||
privacyPage (GObject * core)
|
||||
{
|
||||
const char * s;
|
||||
GtkWidget * t;
|
||||
GtkWidget * w;
|
||||
GtkWidget * b;
|
||||
GtkWidget * h;
|
||||
GtkWidget * e;
|
||||
struct blocklist_data * data;
|
||||
guint row = 0;
|
||||
const char * s;
|
||||
GtkWidget * t;
|
||||
GtkWidget * w;
|
||||
GtkWidget * b;
|
||||
GtkWidget * h;
|
||||
GtkWidget * e;
|
||||
struct blocklist_data * data;
|
||||
guint row = 0;
|
||||
|
||||
data = g_new0 (struct blocklist_data, 1);
|
||||
data->core = TR_CORE (core);
|
||||
data = g_new0 (struct blocklist_data, 1);
|
||||
data->core = TR_CORE (core);
|
||||
|
||||
t = hig_workarea_create ();
|
||||
hig_workarea_add_section_title (t, &row, _("Blocklist"));
|
||||
t = hig_workarea_create ();
|
||||
hig_workarea_add_section_title (t, &row, _("Privacy"));
|
||||
|
||||
s = _("_Encryption mode:");
|
||||
w = new_encryption_combo (core, TR_KEY_encryption);
|
||||
hig_workarea_add_row (t, &row, s, w, NULL);
|
||||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Blocklist"));
|
||||
|
||||
b = new_check_button (_("Enable _blocklist:"), TR_KEY_blocklist_enabled, core);
|
||||
e = new_entry (TR_KEY_blocklist_url, core);
|
||||
|
@ -563,37 +565,12 @@ privacyPage (GObject * core)
|
|||
hig_workarea_add_wide_control (t, &row, w);
|
||||
g_signal_connect (data->check, "toggled", G_CALLBACK (target_cb), w); target_cb (data->check, w);
|
||||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Privacy"));
|
||||
|
||||
s = _("_Encryption mode:");
|
||||
w = new_encryption_combo (core, TR_KEY_encryption);
|
||||
hig_workarea_add_row (t, &row, s, w, NULL);
|
||||
|
||||
s = _("Use PE_X to find more peers");
|
||||
w = new_check_button (s, TR_KEY_pex_enabled, core);
|
||||
s = _("PEX is a tool for exchanging peer lists with the peers you're connected to.");
|
||||
gtk_widget_set_tooltip_text (w, s);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("Use _DHT to find more peers");
|
||||
w = new_check_button (s, TR_KEY_dht_enabled, core);
|
||||
s = _("DHT is a tool for finding peers without a tracker.");
|
||||
gtk_widget_set_tooltip_text (w, s);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("Use _Local Peer Discovery to find more peers");
|
||||
w = new_check_button (s, TR_KEY_lpd_enabled, core);
|
||||
s = _("LPD is a tool for finding peers on your local network.");
|
||||
gtk_widget_set_tooltip_text (w, s);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
g_object_weak_ref (G_OBJECT (t), privacyPageDestroyed, data);
|
||||
return t;
|
||||
g_object_weak_ref (G_OBJECT (t), privacyPageDestroyed, data);
|
||||
return t;
|
||||
}
|
||||
|
||||
/****
|
||||
***** Web Tab
|
||||
***** Remote Tab
|
||||
****/
|
||||
|
||||
enum
|
||||
|
@ -787,7 +764,7 @@ remotePageFree (gpointer gpage)
|
|||
}
|
||||
|
||||
static GtkWidget*
|
||||
webPage (GObject * core)
|
||||
remotePage (GObject * core)
|
||||
{
|
||||
GtkWidget * t;
|
||||
GtkWidget * w;
|
||||
|
@ -801,10 +778,10 @@ webPage (GObject * core)
|
|||
t = hig_workarea_create ();
|
||||
g_object_set_data_full (G_OBJECT (t), "page", page, remotePageFree);
|
||||
|
||||
hig_workarea_add_section_title (t, &row, _("Web Client"));
|
||||
hig_workarea_add_section_title (t, &row, _("Remote Control"));
|
||||
|
||||
/* "enabled" checkbutton */
|
||||
s = _("_Enable web client");
|
||||
s = _("Allow _remote access");
|
||||
w = new_check_button (s, TR_KEY_rpc_enabled, core);
|
||||
page->rpc_tb = GTK_TOGGLE_BUTTON (w);
|
||||
g_signal_connect (w, "clicked", G_CALLBACK (onRPCToggled), page);
|
||||
|
@ -846,7 +823,7 @@ webPage (GObject * core)
|
|||
page->auth_widgets = g_slist_prepend (page->auth_widgets, w);
|
||||
|
||||
/* require authentication */
|
||||
s = _("Only allow these IP a_ddresses to connect:");
|
||||
s = _("Only allow these IP a_ddresses:");
|
||||
w = new_check_button (s, TR_KEY_rpc_whitelist_enabled, core);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
page->whitelist_tb = GTK_TOGGLE_BUTTON (w);
|
||||
|
@ -1023,7 +1000,7 @@ new_week_combo (GObject * core, const tr_quark key)
|
|||
}
|
||||
|
||||
static void
|
||||
bandwidthPageFree (gpointer gpage)
|
||||
speedPageFree (gpointer gpage)
|
||||
{
|
||||
struct BandwidthPage * page = gpage;
|
||||
|
||||
|
@ -1032,7 +1009,7 @@ bandwidthPageFree (gpointer gpage)
|
|||
}
|
||||
|
||||
static GtkWidget*
|
||||
bandwidthPage (GObject * core)
|
||||
speedPage (GObject * core)
|
||||
{
|
||||
const char * s;
|
||||
GtkWidget * t;
|
||||
|
@ -1063,20 +1040,20 @@ bandwidthPage (GObject * core)
|
|||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, GUI_PAD);
|
||||
w = gtk_image_new_from_stock ("alt-speed-on", -1);
|
||||
gtk_box_pack_start (GTK_BOX (h), w, FALSE, FALSE, 0);
|
||||
g_snprintf (buf, sizeof (buf), "<b>%s</b>", _("Alternative Speed Limits"));
|
||||
w = gtk_label_new (buf);
|
||||
gtk_misc_set_alignment (GTK_MISC (w), 0.0f, 0.5f);
|
||||
gtk_label_set_use_markup (GTK_LABEL (w), TRUE);
|
||||
gtk_box_pack_start (GTK_BOX (h), w, FALSE, FALSE, 0);
|
||||
w = gtk_image_new_from_stock ("alt-speed-on", -1);
|
||||
gtk_box_pack_start (GTK_BOX (h), w, FALSE, FALSE, 0);
|
||||
hig_workarea_add_section_title_widget (t, &row, h);
|
||||
|
||||
s = _("Override normal speed limits manually or at scheduled times");
|
||||
g_snprintf (buf, sizeof (buf), "<small>%s</small>", s);
|
||||
w = gtk_label_new (buf);
|
||||
gtk_label_set_use_markup (GTK_LABEL (w), TRUE);
|
||||
gtk_misc_set_alignment (GTK_MISC (w), 0.5f, 0.5f);
|
||||
gtk_misc_set_alignment (GTK_MISC (w), 0.0f, 0.5f);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
g_snprintf (buf, sizeof (buf), _("U_pload (%s):"), _ (speed_K_str));
|
||||
|
@ -1109,7 +1086,7 @@ bandwidthPage (GObject * core)
|
|||
w = hig_workarea_add_row (t, &row, s, w, NULL);
|
||||
page->sched_widgets = g_slist_prepend (page->sched_widgets, w);
|
||||
|
||||
g_object_set_data_full (G_OBJECT (t), "page", page, bandwidthPageFree);
|
||||
g_object_set_data_full (G_OBJECT (t), "page", page, speedPageFree);
|
||||
|
||||
refreshSchedSensitivity (page);
|
||||
return t;
|
||||
|
@ -1240,6 +1217,24 @@ networkPage (GObject * core)
|
|||
hig_workarea_add_wide_control (t, &row, w);
|
||||
#endif
|
||||
|
||||
s = _("Use PE_X to find more peers");
|
||||
w = new_check_button (s, TR_KEY_pex_enabled, core);
|
||||
s = _("PEX is a tool for exchanging peer lists with the peers you're connected to.");
|
||||
gtk_widget_set_tooltip_text (w, s);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("Use _DHT to find more peers");
|
||||
w = new_check_button (s, TR_KEY_dht_enabled, core);
|
||||
s = _("DHT is a tool for finding peers without a tracker.");
|
||||
gtk_widget_set_tooltip_text (w, s);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
s = _("Use _Local Peer Discovery to find more peers");
|
||||
w = new_check_button (s, TR_KEY_lpd_enabled, core);
|
||||
s = _("LPD is a tool for finding peers on your local network.");
|
||||
gtk_widget_set_tooltip_text (w, s);
|
||||
hig_workarea_add_wide_control (t, &row, w);
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
|
@ -1265,30 +1260,23 @@ gtr_prefs_dialog_new (GtkWindow * parent, GObject * core)
|
|||
n = gtk_notebook_new ();
|
||||
gtk_container_set_border_width (GTK_CONTAINER (n), GUI_PAD);
|
||||
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n),
|
||||
torrentPage (core),
|
||||
gtk_label_new (_("Torrents")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n),
|
||||
downloadPage (core),
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n), speedPage (core),
|
||||
gtk_label_new (_("Speed")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n), downloadingPage (core),
|
||||
gtk_label_new (C_("Gerund", "Downloading")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n),
|
||||
bandwidthPage (core),
|
||||
gtk_label_new (_("Speed")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n),
|
||||
privacyPage (core),
|
||||
gtk_label_new (_("Privacy")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n),
|
||||
networkPage (core),
|
||||
gtk_label_new (_("Network")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n),
|
||||
desktopPage (core),
|
||||
gtk_label_new (_("Desktop")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n),
|
||||
webPage (core),
|
||||
gtk_label_new (_("Web")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n), seedingPage (core),
|
||||
gtk_label_new (C_("Gerund", "Seeding")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n), privacyPage (core),
|
||||
gtk_label_new (_("Privacy")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n), networkPage (core),
|
||||
gtk_label_new (_("Network")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n), desktopPage (core),
|
||||
gtk_label_new (_("Desktop")));
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (n), remotePage (core),
|
||||
gtk_label_new (_("Remote")));
|
||||
|
||||
g_signal_connect (d, "response", G_CALLBACK (response_cb), core);
|
||||
gtr_dialog_set_content (GTK_DIALOG (d), n);
|
||||
return d;
|
||||
g_signal_connect (d, "response", G_CALLBACK (response_cb), core);
|
||||
gtr_dialog_set_content (GTK_DIALOG (d), n);
|
||||
return d;
|
||||
}
|
||||
|
||||
|
|
|
@ -169,19 +169,19 @@ PrefsDialog :: lineEditNew( int key, int echoMode )
|
|||
***/
|
||||
|
||||
QWidget *
|
||||
PrefsDialog :: createWebTab( Session& session )
|
||||
PrefsDialog :: createRemoteTab( Session& session )
|
||||
{
|
||||
HIG * hig = new HIG( this );
|
||||
hig->addSectionTitle( tr( "Web Client" ) );
|
||||
hig->addSectionTitle( tr( "Remote Control" ) );
|
||||
QWidget * w;
|
||||
QHBoxLayout * h = new QHBoxLayout( );
|
||||
QPushButton * b = new QPushButton( tr( "&Open web client" ) );
|
||||
connect( b, SIGNAL(clicked()), &session, SLOT(launchWebInterface()) );
|
||||
h->addWidget( b, 0, Qt::AlignRight );
|
||||
QWidget * l = checkBoxNew( tr( "&Enable web client" ), Prefs::RPC_ENABLED );
|
||||
QWidget * l = checkBoxNew( tr( "Allow &remote access" ), Prefs::RPC_ENABLED );
|
||||
myUnsupportedWhenRemote << l;
|
||||
hig->addRow( l, h, 0 );
|
||||
l = hig->addRow( tr( "Listening &port:" ), w = spinBoxNew( Prefs::RPC_PORT, 0, 65535, 1 ) );
|
||||
l = hig->addRow( tr( "HTTP &port:" ), w = spinBoxNew( Prefs::RPC_PORT, 0, 65535, 1 ) );
|
||||
myWebWidgets << l << w;
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Use &authentication" ), Prefs::RPC_AUTH_REQUIRED ) );
|
||||
myWebWidgets << w;
|
||||
|
@ -189,7 +189,7 @@ PrefsDialog :: createWebTab( Session& session )
|
|||
myWebAuthWidgets << l << w;
|
||||
l = hig->addRow( tr( "Pass&word:" ), w = lineEditNew( Prefs::RPC_PASSWORD, QLineEdit::Password ) );
|
||||
myWebAuthWidgets << l << w;
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Only allow these IP a&ddresses to connect:" ), Prefs::RPC_WHITELIST_ENABLED ) );
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Only allow these IP a&ddresses:" ), Prefs::RPC_WHITELIST_ENABLED ) );
|
||||
myWebWidgets << w;
|
||||
l = hig->addRow( tr( "Addresses:" ), w = lineEditNew( Prefs::RPC_WHITELIST ) );
|
||||
myWebWhitelistWidgets << l << w;
|
||||
|
@ -218,13 +218,13 @@ PrefsDialog :: createSpeedTab( )
|
|||
hig->addSectionTitle( tr( "Speed Limits" ) );
|
||||
const QString speed_K_str = Formatter::unitStr( Formatter::SPEED, Formatter::KB );
|
||||
|
||||
l = checkBoxNew( tr( "Limit &download speed (%1):" ).arg( speed_K_str ), Prefs::DSPEED_ENABLED );
|
||||
r = spinBoxNew( Prefs::DSPEED, 0, INT_MAX, 5 );
|
||||
l = checkBoxNew( tr( "&Upload (%1):" ).arg( speed_K_str ), Prefs::USPEED_ENABLED );
|
||||
r = spinBoxNew( Prefs::USPEED, 0, INT_MAX, 5 );
|
||||
hig->addRow( l, r );
|
||||
enableBuddyWhenChecked( qobject_cast<QCheckBox*>(l), r );
|
||||
|
||||
l = checkBoxNew( tr( "Limit &upload speed (%1):" ).arg( speed_K_str ), Prefs::USPEED_ENABLED );
|
||||
r = spinBoxNew( Prefs::USPEED, 0, INT_MAX, 5 );
|
||||
l = checkBoxNew( tr( "&Download (%1):" ).arg( speed_K_str ), Prefs::DSPEED_ENABLED );
|
||||
r = spinBoxNew( Prefs::DSPEED, 0, INT_MAX, 5 );
|
||||
hig->addRow( l, r );
|
||||
enableBuddyWhenChecked( qobject_cast<QCheckBox*>(l), r );
|
||||
|
||||
|
@ -244,12 +244,12 @@ PrefsDialog :: createSpeedTab( )
|
|||
QString s = tr( "<small>Override normal speed limits manually or at scheduled times</small>" );
|
||||
hig->addWideControl( new QLabel( s ) );
|
||||
|
||||
s = tr( "Limit do&wnload speed (%1):" ).arg( speed_K_str );
|
||||
r = spinBoxNew( Prefs :: ALT_SPEED_LIMIT_DOWN, 0, INT_MAX, 5 );
|
||||
s = tr( "U&pload (%1):" ).arg( speed_K_str );
|
||||
r = spinBoxNew( Prefs :: ALT_SPEED_LIMIT_UP, 0, INT_MAX, 5 );
|
||||
hig->addRow( s, r );
|
||||
|
||||
s = tr( "Limit u&pload speed (%1):" ).arg( speed_K_str );
|
||||
r = spinBoxNew( Prefs :: ALT_SPEED_LIMIT_UP, 0, INT_MAX, 5 );
|
||||
s = tr( "Do&wnload (%1):" ).arg( speed_K_str );
|
||||
r = spinBoxNew( Prefs :: ALT_SPEED_LIMIT_DOWN, 0, INT_MAX, 5 );
|
||||
hig->addRow( s, r );
|
||||
|
||||
QCheckBox * c = checkBoxNew( tr( "&Scheduled times:" ), Prefs::ALT_SPEED_LIMIT_TIME_ENABLED );
|
||||
|
@ -352,7 +352,7 @@ PrefsDialog :: createNetworkTab( )
|
|||
hig->addWideControl( checkBoxNew( tr( "Use UPnP or NAT-PMP port &forwarding from my router" ), Prefs::PORT_FORWARDING ) );
|
||||
|
||||
hig->addSectionDivider( );
|
||||
hig->addSectionTitle( tr( "Limits" ) );
|
||||
hig->addSectionTitle( tr( "Peer Limits" ) );
|
||||
hig->addRow( tr( "Maximum peers per &torrent:" ), spinBoxNew( Prefs::PEER_LIMIT_TORRENT, 1, FD_SETSIZE, 5 ) );
|
||||
hig->addRow( tr( "Maximum peers &overall:" ), spinBoxNew( Prefs::PEER_LIMIT_GLOBAL, 1, FD_SETSIZE, 5 ) );
|
||||
|
||||
|
@ -362,6 +362,12 @@ PrefsDialog :: createNetworkTab( )
|
|||
QWidget * w;
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Enable &uTP for peer connections" ), Prefs::UTP_ENABLED ) );
|
||||
w->setToolTip( tr( "uTP is a tool for reducing network congestion." ) );
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Use PE&X to find more peers" ), Prefs::PEX_ENABLED ) );
|
||||
w->setToolTip( tr( "PEX is a tool for exchanging peer lists with the peers you're connected to." ) );
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Use &DHT to find more peers" ), Prefs::DHT_ENABLED ) );
|
||||
w->setToolTip( tr( "DHT is a tool for finding peers without a tracker." ) );
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Use &Local Peer Discovery to find more peers" ), Prefs::LPD_ENABLED ) );
|
||||
w->setToolTip( tr( "LPD is a tool for finding peers on your local network." ) );
|
||||
|
||||
hig->finish( );
|
||||
return hig;
|
||||
|
@ -420,6 +426,18 @@ PrefsDialog :: createPrivacyTab( )
|
|||
QWidget * w;
|
||||
HIG * hig = new HIG( this );
|
||||
|
||||
hig->addSectionTitle( tr( "Encryption" ) );
|
||||
|
||||
QComboBox * box = new QComboBox( );
|
||||
box->addItem( tr( "Allow encryption" ), 0 );
|
||||
box->addItem( tr( "Prefer encryption" ), 1 );
|
||||
box->addItem( tr( "Require encryption" ), 2 );
|
||||
myWidgets.insert( Prefs :: ENCRYPTION, box );
|
||||
connect( box, SIGNAL(activated(int)), this, SLOT(encryptionEdited(int)));
|
||||
|
||||
hig->addRow( tr( "&Encryption mode:" ), box );
|
||||
|
||||
hig->addSectionDivider( );
|
||||
hig->addSectionTitle( tr( "Blocklist" ) );
|
||||
|
||||
QWidget * l = checkBoxNew( tr("Enable &blocklist:"), Prefs::BLOCKLIST_ENABLED );
|
||||
|
@ -442,24 +460,6 @@ PrefsDialog :: createPrivacyTab( )
|
|||
myBlockWidgets << l;
|
||||
hig->addWideControl( l );
|
||||
|
||||
hig->addSectionDivider( );
|
||||
hig->addSectionTitle( tr( "Privacy" ) );
|
||||
|
||||
QComboBox * box = new QComboBox( );
|
||||
box->addItem( tr( "Allow encryption" ), 0 );
|
||||
box->addItem( tr( "Prefer encryption" ), 1 );
|
||||
box->addItem( tr( "Require encryption" ), 2 );
|
||||
myWidgets.insert( Prefs :: ENCRYPTION, box );
|
||||
connect( box, SIGNAL(activated(int)), this, SLOT(encryptionEdited(int)));
|
||||
|
||||
hig->addRow( tr( "&Encryption mode:" ), box );
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Use PE&X to find more peers" ), Prefs::PEX_ENABLED ) );
|
||||
w->setToolTip( tr( "PEX is a tool for exchanging peer lists with the peers you're connected to." ) );
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Use &DHT to find more peers" ), Prefs::DHT_ENABLED ) );
|
||||
w->setToolTip( tr( "DHT is a tool for finding peers without a tracker." ) );
|
||||
hig->addWideControl( w = checkBoxNew( tr( "Use &Local Peer Discovery to find more peers" ), Prefs::LPD_ENABLED ) );
|
||||
w->setToolTip( tr( "LPD is a tool for finding peers on your local network." ) );
|
||||
|
||||
hig->finish( );
|
||||
updateBlocklistLabel( );
|
||||
return hig;
|
||||
|
@ -520,7 +520,7 @@ PrefsDialog :: onLocationSelected( const QString& path, int key )
|
|||
}
|
||||
|
||||
QWidget *
|
||||
PrefsDialog :: createTorrentsTab( )
|
||||
PrefsDialog :: createSeedingTab( )
|
||||
{
|
||||
const int iconSize( style( )->pixelMetric( QStyle :: PM_SmallIconSize ) );
|
||||
const QFileIconProvider iconProvider;
|
||||
|
@ -531,22 +531,7 @@ PrefsDialog :: createTorrentsTab( )
|
|||
|
||||
QWidget *l, *r;
|
||||
HIG * hig = new HIG( this );
|
||||
hig->addSectionTitle( tr( "Adding" ) );
|
||||
|
||||
hig->addWideControl( checkBoxNew( tr( "Show &options dialog" ), Prefs::OPTIONS_PROMPT ) );
|
||||
hig->addWideControl( checkBoxNew( tr( "&Start when added" ), Prefs::START ) );
|
||||
hig->addWideControl( checkBoxNew( tr( "Mo&ve .torrent file to the trash" ), Prefs::TRASH_ORIGINAL ) );
|
||||
|
||||
l = checkBoxNew( tr( "Automatically &add torrents from:" ), Prefs::DIR_WATCH_ENABLED );
|
||||
QPushButton * b = myWatchButton = new QPushButton;
|
||||
b->setIcon( folderPixmap );
|
||||
b->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
|
||||
connect( b, SIGNAL(clicked(bool)), this, SLOT(onWatchClicked(void)) );
|
||||
hig->addRow( l, b );
|
||||
enableBuddyWhenChecked( qobject_cast<QCheckBox*>(l), b );
|
||||
|
||||
hig->addSectionDivider( );
|
||||
hig->addSectionTitle( tr( "Seeding Limits" ) );
|
||||
hig->addSectionTitle( tr( "Limits" ) );
|
||||
|
||||
l = checkBoxNew( tr( "Stop seeding at &ratio:" ), Prefs::RATIO_ENABLED );
|
||||
r = doubleSpinBoxNew( Prefs::RATIO, 0, INT_MAX, 0.5, 2 );
|
||||
|
@ -563,7 +548,7 @@ PrefsDialog :: createTorrentsTab( )
|
|||
}
|
||||
|
||||
QWidget *
|
||||
PrefsDialog :: createDownloadTab( )
|
||||
PrefsDialog :: createDownloadingTab( )
|
||||
{
|
||||
const int iconSize( style( )->pixelMetric( QStyle :: PM_SmallIconSize ) );
|
||||
const QFileIconProvider iconProvider;
|
||||
|
@ -572,21 +557,36 @@ PrefsDialog :: createDownloadTab( )
|
|||
const QIcon fileIcon = iconProvider.icon( QFileIconProvider::File );
|
||||
const QPixmap filePixmap = fileIcon.pixmap( iconSize );
|
||||
|
||||
QWidget *l;
|
||||
QWidget * l;
|
||||
QPushButton * b;
|
||||
HIG * hig = new HIG( this );
|
||||
hig->addSectionTitle( tr( "Location" ) );
|
||||
hig->addSectionTitle( tr( "Adding" ) );
|
||||
|
||||
QPushButton * b = myDestinationButton = new QPushButton;
|
||||
l = checkBoxNew( tr( "Automatically add .torrent files &from:" ), Prefs::DIR_WATCH_ENABLED );
|
||||
b = myWatchButton = new QPushButton;
|
||||
b->setIcon( folderPixmap );
|
||||
b->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
|
||||
connect( b, SIGNAL(clicked(bool)), this, SLOT(onWatchClicked(void)) );
|
||||
hig->addRow( l, b );
|
||||
enableBuddyWhenChecked( qobject_cast<QCheckBox*>(l), b );
|
||||
|
||||
hig->addWideControl( checkBoxNew( tr( "Show the Torrent Options &dialog" ), Prefs::OPTIONS_PROMPT ) );
|
||||
|
||||
hig->addWideControl( checkBoxNew( tr( "&Start added torrents" ), Prefs::START ) );
|
||||
|
||||
hig->addWideControl( checkBoxNew( tr( "Mo&ve the .torrent file to the trash" ), Prefs::TRASH_ORIGINAL ) );
|
||||
|
||||
b = myDestinationButton = new QPushButton;
|
||||
b->setIcon( folderPixmap );
|
||||
b->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
|
||||
connect( b, SIGNAL(clicked(bool)), this, SLOT(onDestinationClicked(void)) );
|
||||
hig->addRow( tr( "Save to &Location:" ), b );
|
||||
|
||||
hig->addSectionDivider( );
|
||||
hig->addSectionTitle( tr( "Queue" ) );
|
||||
hig->addSectionTitle( tr( "Download Queue" ) );
|
||||
|
||||
hig->addRow( tr( "Maximum active &downloads:" ), spinBoxNew( Prefs::DOWNLOAD_QUEUE_SIZE, 1, INT_MAX, 1 ) );
|
||||
hig->addRow( tr( "Downloads sharing data in the last N minutes are &active:" ), spinBoxNew( Prefs::QUEUE_STALLED_MINUTES, 1, INT_MAX, 10 ) );
|
||||
hig->addRow( tr( "Ma&ximum active downloads:" ), spinBoxNew( Prefs::DOWNLOAD_QUEUE_SIZE, 1, INT_MAX, 1 ) );
|
||||
hig->addRow( tr( "Downloads sharing data in the last &N minutes are active:" ), spinBoxNew( Prefs::QUEUE_STALLED_MINUTES, 1, INT_MAX, 10 ) );
|
||||
|
||||
hig->addSectionDivider( );
|
||||
hig->addSectionTitle( tr( "Incomplete" ) );
|
||||
|
@ -627,13 +627,13 @@ PrefsDialog :: PrefsDialog( Session& session, Prefs& prefs, QWidget * parent ):
|
|||
setWindowTitle( tr( "Transmission Preferences" ) );
|
||||
|
||||
QTabWidget * t = new QTabWidget( this );
|
||||
t->addTab( createTorrentsTab( ), tr( "Torrents" ) );
|
||||
t->addTab( createDownloadTab( ), tr( "Download" ) );
|
||||
t->addTab( createSpeedTab( ), tr( "Speed" ) );
|
||||
t->addTab( createDownloadingTab( ), tr( "Downloading" ) );
|
||||
t->addTab( createSeedingTab( ), tr( "Seeding" ) );
|
||||
t->addTab( createPrivacyTab( ), tr( "Privacy" ) );
|
||||
t->addTab( createNetworkTab( ), tr( "Network" ) );
|
||||
t->addTab( createDesktopTab( ), tr( "Desktop" ) );
|
||||
t->addTab( createWebTab( session ), tr( "Web" ) );
|
||||
t->addTab( createRemoteTab(session), tr( "Remote" ) );
|
||||
myLayout->addWidget( t );
|
||||
|
||||
QDialogButtonBox * buttons = new QDialogButtonBox( QDialogButtonBox::Close, Qt::Horizontal, this );
|
||||
|
|
|
@ -77,13 +77,13 @@ class PrefsDialog: public QDialog
|
|||
private:
|
||||
void setPref( int key, const QVariant& v );
|
||||
bool isAllowed( int key ) const;
|
||||
QWidget * createTorrentsTab( );
|
||||
QWidget * createDownloadTab( );
|
||||
QWidget * createDownloadingTab( );
|
||||
QWidget * createSeedingTab( );
|
||||
QWidget * createSpeedTab( );
|
||||
QWidget * createPrivacyTab( );
|
||||
QWidget * createNetworkTab( );
|
||||
QWidget * createDesktopTab( );
|
||||
QWidget * createWebTab( Session& );
|
||||
QWidget * createRemoteTab( Session& );
|
||||
|
||||
private:
|
||||
typedef QMap<int,QWidget*> key2widget_t;
|
||||
|
|
Loading…
Reference in New Issue