(gtk) simplify the blocklist prefs gui a bit.
This commit is contained in:
parent
04fafeadbd
commit
ba6dcab503
|
@ -266,16 +266,35 @@ torrentPage( GObject * core )
|
||||||
|
|
||||||
struct blocklist_data
|
struct blocklist_data
|
||||||
{
|
{
|
||||||
|
GtkWidget * check;
|
||||||
GtkWidget * dialog;
|
GtkWidget * dialog;
|
||||||
TrCore * core;
|
TrCore * core;
|
||||||
int abortFlag;
|
int abortFlag;
|
||||||
char secondary[512];
|
char secondary[256];
|
||||||
};
|
};
|
||||||
|
|
||||||
static gboolean
|
static void
|
||||||
blocklistDialogSetSecondary( gpointer vdata )
|
updateBlocklistText( GtkWidget * w, TrCore * core )
|
||||||
{
|
{
|
||||||
struct blocklist_data * data = vdata;
|
const int n = tr_blocklistGetRuleCount( tr_core_handle( core ) );
|
||||||
|
char buf[512];
|
||||||
|
g_snprintf( buf, sizeof( buf ),
|
||||||
|
ngettext( "Don't talk to the %'d _blocklisted peer",
|
||||||
|
"Don't talk to the %'d _blocklisted peers", n ), n );
|
||||||
|
gtk_button_set_label( GTK_BUTTON( w ), buf );
|
||||||
|
}
|
||||||
|
static gboolean
|
||||||
|
updateBlocklistTextFromData( gpointer gdata )
|
||||||
|
{
|
||||||
|
struct blocklist_data * data = gdata;
|
||||||
|
updateBlocklistText( data->check, data->core );
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
blocklistDialogSetSecondary( gpointer gdata )
|
||||||
|
{
|
||||||
|
struct blocklist_data * data = gdata;
|
||||||
GtkMessageDialog * md = GTK_MESSAGE_DIALOG( data->dialog );
|
GtkMessageDialog * md = GTK_MESSAGE_DIALOG( data->dialog );
|
||||||
gtk_message_dialog_format_secondary_text( md, data->secondary );
|
gtk_message_dialog_format_secondary_text( md, data->secondary );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -357,9 +376,10 @@ updateBlocklist( gpointer vdata )
|
||||||
if( ok && !data->abortFlag )
|
if( ok && !data->abortFlag )
|
||||||
{
|
{
|
||||||
g_snprintf( data->secondary, sizeof( data->secondary ),
|
g_snprintf( data->secondary, sizeof( data->secondary ),
|
||||||
_( "Blocklist updated with %'d rules" ), rules );
|
_( "Blocklist updated with %'d entries" ), rules );
|
||||||
g_idle_add( blocklistDialogSetSecondary, data );
|
g_idle_add( blocklistDialogSetSecondary, data );
|
||||||
g_idle_add( blocklistDialogAllowClose, data->dialog );
|
g_idle_add( blocklistDialogAllowClose, data->dialog );
|
||||||
|
g_idle_add( updateBlocklistTextFromData, data );
|
||||||
}
|
}
|
||||||
|
|
||||||
free( text );
|
free( text );
|
||||||
|
@ -388,10 +408,10 @@ onUpdateBlocklistResponseCB( GtkDialog * dialog, int response, gpointer vdata )
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
onUpdateBlocklistCB( GtkButton * w, gpointer core )
|
onUpdateBlocklistCB( GtkButton * w, gpointer gdata )
|
||||||
{
|
{
|
||||||
GtkWidget * d;
|
GtkWidget * d;
|
||||||
struct blocklist_data * data;
|
struct blocklist_data * data = gdata;
|
||||||
|
|
||||||
d = gtk_message_dialog_new( GTK_WINDOW( gtk_widget_get_toplevel( GTK_WIDGET( w ) ) ),
|
d = gtk_message_dialog_new( GTK_WINDOW( gtk_widget_get_toplevel( GTK_WIDGET( w ) ) ),
|
||||||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||||
|
@ -404,9 +424,7 @@ onUpdateBlocklistCB( GtkButton * w, gpointer core )
|
||||||
NULL );
|
NULL );
|
||||||
gtk_dialog_set_response_sensitive( GTK_DIALOG( d ), GTK_RESPONSE_CLOSE, FALSE );
|
gtk_dialog_set_response_sensitive( GTK_DIALOG( d ), GTK_RESPONSE_CLOSE, FALSE );
|
||||||
|
|
||||||
data = g_new0( struct blocklist_data, 1 );
|
|
||||||
data->dialog = d;
|
data->dialog = d;
|
||||||
data->core = core;
|
|
||||||
|
|
||||||
g_signal_connect( d, "response", G_CALLBACK(onUpdateBlocklistResponseCB), data );
|
g_signal_connect( d, "response", G_CALLBACK(onUpdateBlocklistResponseCB), data );
|
||||||
gtk_widget_show( d );
|
gtk_widget_show( d );
|
||||||
|
@ -422,6 +440,7 @@ peerPage( GObject * core )
|
||||||
GtkWidget * w;
|
GtkWidget * w;
|
||||||
GtkWidget * b;
|
GtkWidget * b;
|
||||||
GtkWidget * h;
|
GtkWidget * h;
|
||||||
|
struct blocklist_data * data;
|
||||||
|
|
||||||
t = hig_workarea_create( );
|
t = hig_workarea_create( );
|
||||||
hig_workarea_add_section_title (t, &row, _("Options"));
|
hig_workarea_add_section_title (t, &row, _("Options"));
|
||||||
|
@ -434,17 +453,20 @@ peerPage( GObject * core )
|
||||||
w = new_check_button( s, PREF_KEY_ENCRYPTED_ONLY, core );
|
w = new_check_button( s, PREF_KEY_ENCRYPTED_ONLY, core );
|
||||||
hig_workarea_add_wide_control( t, &row, w );
|
hig_workarea_add_wide_control( t, &row, w );
|
||||||
|
|
||||||
hig_workarea_add_section_divider( t, &row );
|
w = new_check_button( "", PREF_KEY_BLOCKLIST_ENABLED, core );
|
||||||
hig_workarea_add_section_title( t, &row, _( "Blocklist" ) );
|
updateBlocklistText( w, TR_CORE( core ) );
|
||||||
|
|
||||||
s = _( "Don't talk to _blocklisted peers" );
|
|
||||||
w = new_check_button( s, PREF_KEY_BLOCKLIST_ENABLED, core );
|
|
||||||
hig_workarea_add_wide_control( t, &row, w );
|
|
||||||
|
|
||||||
b = gtk_button_new_with_mnemonic( _( "_Update Blocklist" ) );
|
|
||||||
g_signal_connect( b, "clicked", G_CALLBACK(onUpdateBlocklistCB), core );
|
|
||||||
h = gtk_hbox_new( FALSE, GUI_PAD_BIG );
|
h = gtk_hbox_new( FALSE, GUI_PAD_BIG );
|
||||||
|
gtk_box_pack_start_defaults( GTK_BOX(h), w );
|
||||||
|
b = gtk_button_new_with_mnemonic( _( "_Update Blocklist" ) );
|
||||||
|
|
||||||
|
data = g_new0( struct blocklist_data, 1 );
|
||||||
|
data->core = TR_CORE( core );
|
||||||
|
data->check = w;
|
||||||
|
|
||||||
|
g_signal_connect( b, "clicked", G_CALLBACK(onUpdateBlocklistCB), data );
|
||||||
gtk_box_pack_start( GTK_BOX(h), b, FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX(h), b, FALSE, FALSE, 0 );
|
||||||
|
g_signal_connect( w, "toggled", G_CALLBACK(target_cb), b );
|
||||||
|
target_cb( w, b );
|
||||||
hig_workarea_add_wide_control( t, &row, h );
|
hig_workarea_add_wide_control( t, &row, h );
|
||||||
|
|
||||||
hig_workarea_add_section_divider( t, &row );
|
hig_workarea_add_section_divider( t, &row );
|
||||||
|
|
Loading…
Reference in New Issue