1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-03-03 10:15:45 +00:00

accept patch from Infernux to add toggles to the tray menu. (#339)

This commit is contained in:
Charles Kerr 2007-09-21 16:29:09 +00:00
parent 4b46430731
commit 7f91ca4bfc
4 changed files with 35 additions and 23 deletions

View file

@ -52,6 +52,13 @@ priority_changed_cb (GtkAction *action UNUSED, GtkRadioAction *current)
set_selected_file_priority ( priority );
}
static GtkToggleActionEntry show_toggle_entries[] =
{
{ "toggle-main-window", NULL,
N_("Show _Main Window"), NULL, NULL, G_CALLBACK(action_cb), TRUE },
{ "toggle-debug-window", NULL,
N_("Show _Debug Window"), NULL, NULL, G_CALLBACK(action_cb), FALSE }
};
static GtkActionEntry entries[] =
{
@ -84,10 +91,6 @@ static GtkActionEntry entries[] =
N_("_Torrent Info"), NULL, NULL, G_CALLBACK(action_cb) },
{ "show-about-dialog", GTK_STOCK_ABOUT,
N_("_About Transmission"), NULL, NULL, G_CALLBACK(action_cb) },
{ "show-debug-window", NULL,
N_("Show _Debug Window"), NULL, NULL, G_CALLBACK(action_cb) },
{ "toggle-main-window", "ICON_TRANSMISSION",
N_("Show / Hide _Transmission"), NULL, NULL, G_CALLBACK(action_cb) },
{ "update-tracker", GTK_STOCK_REFRESH,
N_("Update Tracker"), NULL, NULL, G_CALLBACK(action_cb) }
};
@ -174,6 +177,11 @@ actions_init( GtkUIManager * ui_manager, gpointer callback_user_data )
TR_PRI_NORMAL,
G_CALLBACK(priority_changed_cb), NULL);
gtk_action_group_add_toggle_actions ( action_group,
show_toggle_entries,
G_N_ELEMENTS(show_toggle_entries),
callback_user_data );
gtk_action_group_add_actions( action_group,
entries, n_entries,
callback_user_data );

View file

@ -104,9 +104,9 @@ struct cbdata {
GtkWindow * wind;
TrCore * core;
GtkWidget * icon;
GtkWidget * msgwin;
TrPrefs * prefs;
guint timer;
gboolean msgwinopen;
gboolean closing;
GList * errqueue;
};
@ -161,8 +161,6 @@ static void
setpex( tr_torrent * tor, void * arg );
static gboolean
updatemodel(gpointer gdata);
static void
boolwindclosed(GtkWidget *widget, gpointer gdata);
static GList *
getselection( struct cbdata * cbdata );
@ -405,9 +403,9 @@ appsetup( TrWindow * wind, GList * args,
cbdata->wind = NULL;
cbdata->core = tr_core_new();
cbdata->icon = NULL;
cbdata->msgwin = NULL;
cbdata->prefs = NULL;
cbdata->timer = 0;
cbdata->msgwinopen = FALSE;
cbdata->closing = FALSE;
cbdata->errqueue = NULL;
@ -864,13 +862,6 @@ updatemodel(gpointer gdata) {
return TRUE;
}
static void
boolwindclosed(GtkWidget *widget SHUTUP, gpointer gdata) {
gboolean *preachy_gcc = gdata;
*preachy_gcc = FALSE;
}
/* returns a GList containing a GtkTreeRowReference to each selected row */
static GList *
getselection( struct cbdata * cbdata )
@ -981,6 +972,13 @@ recheckTorrentForeach (GtkTreeModel * model,
g_object_unref( G_OBJECT( gtor ) );
}
static gboolean
msgwinclosed()
{
action_toggle( "toggle-debug-window", FALSE );
return FALSE;
}
void
doAction ( const char * action_name, gpointer user_data )
{
@ -1071,14 +1069,20 @@ doAction ( const char * action_name, gpointer user_data )
gtk_widget_show( GTK_WIDGET( data->prefs ) );
}
}
else if (!strcmp (action_name, "show-debug-window"))
else if (!strcmp (action_name, "toggle-debug-window"))
{
if( !data->msgwinopen )
if( !data->msgwin )
{
GtkWidget * win = msgwin_create( data->core );
g_signal_connect( win, "destroy", G_CALLBACK( boolwindclosed ),
&data->msgwinopen );
data->msgwinopen = TRUE;
g_signal_connect( win, "destroy", G_CALLBACK( msgwinclosed ),
NULL );
data->msgwin = win;
}
else
{
action_toggle("toggle-debug-window", FALSE);
gtk_widget_destroy( data->msgwin );
data->msgwin = NULL;
}
}
else if (!strcmp (action_name, "show-about-dialog"))

View file

@ -229,6 +229,7 @@ msgwin_create( TrCore * core )
int ii, curlevel;
win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
gtk_window_set_title( GTK_WINDOW( win ), "Transmission Debug Window" );
gtk_window_set_default_size( GTK_WINDOW( win ), 600, 400 );
gtk_window_set_role( GTK_WINDOW( win ), "debug-window" );
vbox = gtk_vbox_new( FALSE, 0 );
@ -299,7 +300,6 @@ msgwin_create( TrCore * core )
gtk_box_pack_start( GTK_BOX( vbox ), scroll, TRUE, TRUE, 0 );
msgwin_update( );
gtk_container_add( GTK_CONTAINER( win ), vbox );
gtk_widget_show_all( win );

View file

@ -22,7 +22,7 @@ const char * fallback_ui_file =
" <menuitem action='edit-preferences'/>\n"
" </menu>\n"
" <menu action='help-menu'>\n"
" <menuitem action='show-debug-window'/>\n"
" <menuitem action='toggle-debug-window'/>\n"
" <separator/>\n"
" <menuitem action='show-about-dialog'/>\n"
" </menu>\n"
@ -51,7 +51,7 @@ const char * fallback_ui_file =
" <menuitem action='add-torrent'/>\n"
" <separator/>\n"
" <menuitem action='toggle-main-window'/>\n"
" <menuitem action='show-debug-window'/>\n"
" <menuitem action='toggle-debug-window'/>\n"
" <menuitem action='show-about-dialog'/>\n"
" <separator/>\n"
" <menuitem action='quit'/>\n"