Changeset 5302


Ignore:
Timestamp:
Mar 19, 2008, 2:54:32 PM (14 years ago)
Author:
charles
Message:

(gtk) add a "display options dialog" checkbox in the "open torrent" dialog.

Location:
trunk/gtk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/conf.c

    r5193 r5302  
    177177    return g_key_file_get_boolean( getPrefsKeyFile( ), GROUP, key, NULL );
    178178}
     179gboolean
     180pref_flag_eval( pref_flag_t val, const char * key ) {
     181    switch( val ) {
     182        case PREF_FLAG_TRUE: return TRUE;
     183        case PREF_FLAG_FALSE: return FALSE;
     184        default: return pref_flag_get( key );
     185    }
     186}
    179187void
    180188pref_flag_set( const char * key, gboolean value ) {
  • trunk/gtk/conf.h

    r5127 r5302  
    4848**/
    4949
     50enum
     51{
     52    PREF_FLAG_DEFAULT = 0,
     53    PREF_FLAG_FALSE = 1,
     54    PREF_FLAG_TRUE = 2
     55};
     56
     57typedef int pref_flag_t;
     58
     59gboolean pref_flag_eval( pref_flag_t val, const char * key );
     60
     61
     62/**
     63***
     64**/
     65
    5066gboolean
    5167cf_init(const char *confdir, char **errstr);
  • trunk/gtk/ipc.c

    r5299 r5302  
    514514    if( list ) {
    515515        list = g_slist_reverse( list );
    516         tr_core_add_list( srv->core, list, FALSE );
     516        tr_core_add_list_defaults( srv->core, list );
    517517        tr_core_torrents_added( TR_CORE( srv->core ) );
    518518    }
  • trunk/gtk/main.c

    r5276 r5302  
    356356          gboolean forcepause, gboolean minimized )
    357357{
     358    const pref_flag_t start = forcepause ? PREF_FLAG_FALSE : PREF_FLAG_DEFAULT;
     359    const pref_flag_t prompt = PREF_FLAG_DEFAULT;
     360
    358361    /* fill out cbdata */
    359362    cbdata->wind       = NULL;
     
    379382    /* add torrents from command-line and saved state */
    380383    tr_core_load( cbdata->core, forcepause );
    381     tr_core_add_list( cbdata->core, torrentFiles, forcepause );
     384    tr_core_add_list( cbdata->core, torrentFiles, start, prompt );
    382385    torrentFiles = NULL;
    383386    tr_core_torrents_added( cbdata->core );
     
    695698        {
    696699            paths = g_slist_reverse( paths );
    697             tr_core_add_list( data->core, paths, FALSE );
     700            tr_core_add_list_defaults( data->core, paths );
    698701            tr_core_torrents_added( data->core );
    699702        }
  • trunk/gtk/open-dialog.c

    r5298 r5302  
    253253onOpenDialogResponse( GtkDialog * dialog, int response, gpointer core )
    254254{
    255     char * folder = gtk_file_chooser_get_current_folder( GTK_FILE_CHOOSER( dialog ) );
     255    char * folder;
     256
     257    /* remember this folder the next time we use this dialog */
     258    folder = gtk_file_chooser_get_current_folder( GTK_FILE_CHOOSER( dialog ) );
    256259    pref_string_set( PREF_KEY_OPEN_DIALOG_FOLDER, folder );
    257260    g_free( folder );
    258261
    259     if( response == GTK_RESPONSE_ACCEPT ) {
     262    if( response == GTK_RESPONSE_ACCEPT )
     263    {
     264        GtkWidget * w = gtk_file_chooser_get_extra_widget( GTK_FILE_CHOOSER( dialog ) );
     265        const gboolean showOptions = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON ( w ) );
     266        const pref_flag_t start = PREF_FLAG_DEFAULT;
     267        const pref_flag_t prompt = showOptions ? PREF_FLAG_TRUE : PREF_FLAG_FALSE;
    260268        GSList * l = gtk_file_chooser_get_filenames( GTK_FILE_CHOOSER( dialog ) );
    261         tr_core_add_list( core, l, FALSE );
     269        tr_core_add_list( core, l, start, prompt );
    262270    }
    263271
     
    270278{
    271279    GtkWidget * w;
     280    GtkWidget * c;
    272281    GtkFileFilter * filter;
    273282    char * folder;
     
    300309        g_free( folder );
    301310    }
    302    
     311
     312    c = gtk_check_button_new_with_mnemonic( _( "Display _options dialog" ) );
     313    gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( c ), pref_flag_get( PREF_KEY_OPTIONS_PROMPT ) );
     314    gtk_file_chooser_set_extra_widget( GTK_FILE_CHOOSER( w ), c );
     315    gtk_widget_show( c );
    303316
    304317    gtk_widget_show( w );
  • trunk/gtk/tr-core.c

    r5278 r5302  
    311311{
    312312    TrCore * core = TR_CORE( gcore );
    313     tr_core_add_list( core, core->priv->monitor_files, FALSE );
     313    tr_core_add_list_defaults( core, core->priv->monitor_files );
    314314
    315315    /* cleanup */
     
    644644
    645645void
    646 tr_core_add_list( TrCore   * core,
    647                   GSList   * torrentFiles,
    648                   gboolean   forcePaused )
    649 {
     646tr_core_add_list( TrCore      * core,
     647                  GSList      * torrentFiles,
     648                  pref_flag_t   start,
     649                  pref_flag_t   prompt )
     650{
     651    const gboolean doStart = pref_flag_eval( start, PREF_KEY_START );
     652    const gboolean doPrompt = pref_flag_eval( prompt, PREF_KEY_OPTIONS_PROMPT );
     653
    650654    if( torrentFiles && !isDisposed( core ) )
    651655    {
    652656        GSList * l;
    653         const gboolean doPrompt = pref_flag_get( PREF_KEY_OPTIONS_PROMPT );
    654657        tr_handle * handle = core->priv->handle;
    655658
     
    658661            tr_ctor * ctor = tr_ctorNew( handle );
    659662            tr_core_apply_defaults( ctor );
    660             if( forcePaused )
    661                 tr_ctorSetPaused( ctor, TR_FORCE, TRUE );
     663            tr_ctorSetPaused( ctor, TR_FORCE, !doStart );
    662664            if( tr_ctorSetMetainfoFromFile( ctor, l->data ) )
    663665                tr_ctorFree( ctor );
  • trunk/gtk/tr-core.h

    r5276 r5302  
    3232
    3333#include <libtransmission/transmission.h>
    34 
     34#include "conf.h" /* pref_flag_t */
    3535#include "tr-torrent.h"
    36 #include "util.h"
    3736
    3837#define TR_CORE_TYPE (tr_core_get_type())
     
    125124 * May trigger one or more "error" signals with TR_CORE_ERR_ADD_TORRENT
    126125 */
    127 void tr_core_add_list( TrCore  * self,
    128                        GSList  * torrentFiles,
    129                        gboolean  forcePaused );
     126void tr_core_add_list( TrCore      * self,
     127                       GSList      * torrentFiles,
     128                       pref_flag_t   start,
     129                       pref_flag_t   prompt );
     130
     131#define tr_core_add_list_defaults(c,l) \
     132        tr_core_add_list(c,l,PREF_FLAG_DEFAULT,PREF_FLAG_DEFAULT)
    130133
    131134/**
Note: See TracChangeset for help on using the changeset viewer.