Changeset 8047


Ignore:
Timestamp:
Mar 10, 2009, 3:24:40 PM (12 years ago)
Author:
charles
Message:

(trunk gtk) launchpad bug #338046: XDG_DOWNLOAD_DIR isn't honored in gtk client

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/conf.c

    r7888 r8047  
    4040
    4141#include "conf.h"
     42#include "tr-prefs.h"
    4243#include "util.h"
    4344
     
    144145***/
    145146
     147static void cf_check_older_configs( void );
     148
     149/**
     150 * This is where we initialize the preferences file with the default values.
     151 * If you add a new preferences key, you /must/ add a default value here.
     152 */
     153static void
     154tr_prefs_init_defaults( tr_benc * d )
     155{
     156    const char * str;
     157
     158    cf_check_older_configs( );
     159
     160#ifdef HAVE_GIO
     161    str = NULL;
     162    if( !str ) str = g_get_user_special_dir( G_USER_DIRECTORY_DOWNLOAD );
     163    if( !str ) str = g_get_user_special_dir( G_USER_DIRECTORY_DESKTOP );
     164    if( !str ) str = tr_getDefaultDownloadDir( );
     165    tr_bencDictAddStr( d, PREF_KEY_DIR_WATCH, str );
     166    tr_bencDictAddInt( d, PREF_KEY_DIR_WATCH_ENABLED, FALSE );
     167#endif
     168
     169    tr_bencDictAddInt( d, PREF_KEY_INHIBIT_HIBERNATION, FALSE );
     170    tr_bencDictAddInt( d, PREF_KEY_BLOCKLIST_UPDATES_ENABLED, TRUE );
     171
     172    tr_bencDictAddStr( d, PREF_KEY_OPEN_DIALOG_FOLDER, g_get_home_dir( ) );
     173
     174    tr_bencDictAddInt( d, PREF_KEY_TOOLBAR, TRUE );
     175    tr_bencDictAddInt( d, PREF_KEY_FILTERBAR, TRUE );
     176    tr_bencDictAddInt( d, PREF_KEY_STATUSBAR, TRUE );
     177    tr_bencDictAddInt( d, PREF_KEY_SHOW_TRAY_ICON, FALSE );
     178    tr_bencDictAddInt( d, PREF_KEY_SHOW_DESKTOP_NOTIFICATION, TRUE );
     179    tr_bencDictAddStr( d, PREF_KEY_STATUSBAR_STATS, "total-ratio" );
     180
     181    tr_bencDictAddInt( d, PREF_KEY_SCHED_LIMIT_ENABLED, FALSE );
     182    tr_bencDictAddInt( d, PREF_KEY_SCHED_BEGIN,    60 * 23 ); /* 11pm */
     183    tr_bencDictAddInt( d, PREF_KEY_SCHED_END,      60 * 7 );  /* 7am */
     184    tr_bencDictAddInt( d, PREF_KEY_SCHED_DL_LIMIT, 200 );   /* 2x the other limit */
     185    tr_bencDictAddInt( d, PREF_KEY_SCHED_UL_LIMIT, 100 );   /* 2x the other limit */
     186
     187    tr_bencDictAddInt( d, PREF_KEY_OPTIONS_PROMPT, TRUE );
     188
     189    tr_bencDictAddInt( d, PREF_KEY_MAIN_WINDOW_HEIGHT, 500 );
     190    tr_bencDictAddInt( d, PREF_KEY_MAIN_WINDOW_WIDTH, 300 );
     191    tr_bencDictAddInt( d, PREF_KEY_MAIN_WINDOW_X, 50 );
     192    tr_bencDictAddInt( d, PREF_KEY_MAIN_WINDOW_Y, 50 );
     193    tr_bencDictAddStr( d, PREF_KEY_MAIN_WINDOW_LAYOUT_ORDER, "menu,toolbar,filter,list,statusbar" );
     194
     195    str = NULL;
     196#if GLIB_CHECK_VERSION( 2, 14, 0 )
     197    if( !str ) str = g_get_user_special_dir( G_USER_DIRECTORY_DOWNLOAD );
     198#endif
     199    if( !str ) str = tr_getDefaultDownloadDir( );
     200    tr_bencDictAddStr( d, TR_PREFS_KEY_DOWNLOAD_DIR, str );
     201
     202    tr_bencDictAddInt( d, PREF_KEY_ASKQUIT, TRUE );
     203
     204    tr_bencDictAddStr( d, PREF_KEY_SORT_MODE, "sort-by-name" );
     205    tr_bencDictAddInt( d, PREF_KEY_SORT_REVERSED, FALSE );
     206    tr_bencDictAddInt( d, PREF_KEY_MINIMAL_VIEW, FALSE );
     207
     208    tr_bencDictAddInt( d, PREF_KEY_START, TRUE );
     209    tr_bencDictAddInt( d, PREF_KEY_TRASH_ORIGINAL, FALSE );
     210}
     211
    146212static char*
    147213getPrefsFilename( void )
     
    160226    {
    161227        tr_bencInitDict( &settings, 0 );
     228        tr_prefs_init_defaults( &settings );
    162229        tr_sessionLoadSettings( &settings, gl_confdir, MY_NAME );
    163230        loaded = TRUE;
     
    193260}
    194261
    195 void
    196 pref_int_set_default( const char * key,
    197                       int64_t      value )
    198 {
    199     if( !tr_bencDictFind( getPrefs( ), key ) )
    200         pref_int_set( key, value );
    201 }
    202 
    203262double
    204263pref_double_get( const char * key )
     
    217276}
    218277
    219 void
    220 pref_double_set_default( const char * key,
    221                          double       value )
    222 {
    223     if ( !tr_bencDictFind( getPrefs( ), key ) )
    224          pref_double_set( key, value );
    225 }
    226 
    227278/***
    228279****
     
    262313}
    263314
    264 void
    265 pref_flag_set_default( const char * key,
    266                        gboolean     value )
    267 {
    268     pref_int_set_default( key, value != 0 );
    269 }
    270 
    271315/***
    272316****
     
    277321{
    278322    const char * str = NULL;
    279 
    280323    tr_bencDictFindStr( getPrefs( ), key, &str );
    281324    return str;
     
    283326
    284327void
    285 pref_string_set( const char * key,
    286                  const char * value )
     328pref_string_set( const char * key, const char * value )
    287329{
    288330    tr_bencDictAddStr( getPrefs( ), key, value );
    289 }
    290 
    291 void
    292 pref_string_set_default( const char * key,
    293                          const char * value )
    294 {
    295     if( !tr_bencDictFind( getPrefs( ), key ) )
    296         pref_string_set( key, value );
    297331}
    298332
     
    471505}
    472506
    473 void
     507static void
    474508cf_check_older_configs( void )
    475509{
     
    484518        if( g_file_test( key1, G_FILE_TEST_IS_REGULAR ) )
    485519        {
     520            g_message( _( "Importing \"%s\"" ), key1 );
    486521            translate_keyfile_to_json( key1, filename );
    487522        }
    488523        else if( g_file_test( key2, G_FILE_TEST_IS_REGULAR ) )
    489524        {
     525            g_message( _( "Importing \"%s\"" ), key2 );
    490526            translate_keyfile_to_json( key2, filename );
    491527        }
     
    493529        {
    494530            char * tmpfile;
    495             int    fd =
    496                 g_file_open_tmp( "transmission-prefs-XXXXXX", &tmpfile,
    497                                  NULL );
     531            int    fd = g_file_open_tmp( "transmission-prefs-XXXXXX", &tmpfile, NULL );
     532            g_message( _( "Importing \"%s\"" ), benc );
    498533            if( fd != -1 ) close( fd );
    499534            translate_08_to_09( benc, tmpfile );
     
    509544    g_free( filename );
    510545}
    511 
  • trunk/gtk/conf.h

    r7888 r8047  
    3131int64_t          pref_int_get           ( const char * key );
    3232void             pref_int_set           ( const char * key, int64_t value );
    33 void             pref_int_set_default   ( const char * key, int64_t value );
    3433
    3534double           pref_double_get        ( const char * key );
    3635void             pref_double_set        ( const char * key, double value );
    37 void             pref_double_set_default( const char * key, double value );
    3836
    3937gboolean         pref_flag_get          ( const char * key );
    4038void             pref_flag_set          ( const char * key, gboolean value );
    41 void             pref_flag_set_default  ( const char * key, gboolean value );
    4239
    4340const char*      pref_string_get        ( const char * key );
    4441void             pref_string_set        ( const char * key, const char * value );
    45 void             pref_string_set_default( const char * key, const char * value );
    4642
    4743void             pref_save              ( tr_session * );
     
    7571                  char **              errstr );
    7672
    77 void     cf_check_older_configs( void );
    78 
    7973#endif /* TG_CONF_H */
  • trunk/gtk/main.c

    r8034 r8047  
    394394    tr_notify_init( );
    395395    didinit = cf_init( configDir, NULL ); /* must come before actions_init */
    396     tr_prefs_init_defaults( );
    397396
    398397    myUIManager = gtk_ui_manager_new ( );
  • trunk/gtk/tr-prefs.c

    r8037 r8047  
    2828#include "tr-prefs.h"
    2929#include "util.h"
    30 
    31 /**
    32  * This is where we initialize the preferences file with the default values.
    33  * If you add a new preferences key, you /must/ add a default value here.
    34  */
    35 void
    36 tr_prefs_init_defaults( void )
    37 {
    38     const char * str;
    39 
    40     cf_check_older_configs( );
    41 
    42 #ifdef HAVE_GIO
    43     str = NULL;
    44     if( !str ) str = g_get_user_special_dir( G_USER_DIRECTORY_DOWNLOAD );
    45     if( !str ) str = g_get_user_special_dir( G_USER_DIRECTORY_DESKTOP );
    46     if( !str ) str = tr_getDefaultDownloadDir( );
    47     pref_string_set_default ( PREF_KEY_DIR_WATCH, str );
    48     pref_flag_set_default   ( PREF_KEY_DIR_WATCH_ENABLED, FALSE );
    49 #endif
    50 
    51     pref_flag_set_default   ( PREF_KEY_INHIBIT_HIBERNATION, FALSE );
    52     pref_flag_set_default   ( PREF_KEY_BLOCKLIST_UPDATES_ENABLED, TRUE );
    53 
    54     pref_string_set_default ( PREF_KEY_OPEN_DIALOG_FOLDER, g_get_home_dir( ) );
    55 
    56     pref_flag_set_default   ( PREF_KEY_TOOLBAR, TRUE );
    57     pref_flag_set_default   ( PREF_KEY_FILTERBAR, TRUE );
    58     pref_flag_set_default   ( PREF_KEY_STATUSBAR, TRUE );
    59     pref_flag_set_default   ( PREF_KEY_SHOW_TRAY_ICON, FALSE );
    60     pref_flag_set_default   ( PREF_KEY_SHOW_DESKTOP_NOTIFICATION, TRUE );
    61     pref_string_set_default ( PREF_KEY_STATUSBAR_STATS, "total-ratio" );
    62 
    63     pref_flag_set_default   ( PREF_KEY_SCHED_LIMIT_ENABLED, FALSE );
    64     pref_int_set_default    ( PREF_KEY_SCHED_BEGIN,    60 * 23 ); /* 11pm */
    65     pref_int_set_default    ( PREF_KEY_SCHED_END,      60 * 7 );  /* 7am */
    66     pref_int_set_default    ( PREF_KEY_SCHED_DL_LIMIT, 200 );   /* 2x the other limit */
    67     pref_int_set_default    ( PREF_KEY_SCHED_UL_LIMIT, 100 );   /* 2x the other limit */
    68 
    69     pref_flag_set_default   ( PREF_KEY_OPTIONS_PROMPT, TRUE );
    70 
    71     pref_int_set_default    ( PREF_KEY_MAIN_WINDOW_HEIGHT, 500 );
    72     pref_int_set_default    ( PREF_KEY_MAIN_WINDOW_WIDTH, 300 );
    73     pref_int_set_default    ( PREF_KEY_MAIN_WINDOW_X, 50 );
    74     pref_int_set_default    ( PREF_KEY_MAIN_WINDOW_Y, 50 );
    75     pref_string_set_default ( PREF_KEY_MAIN_WINDOW_LAYOUT_ORDER, "menu,toolbar,filter,list,statusbar" );
    76 
    77     str = NULL;
    78 #if GLIB_CHECK_VERSION( 2, 14, 0 )
    79     if( !str ) str = g_get_user_special_dir( G_USER_DIRECTORY_DOWNLOAD );
    80 #endif
    81     if( !str ) str = tr_getDefaultDownloadDir( );
    82     pref_string_set_default ( TR_PREFS_KEY_DOWNLOAD_DIR, str );
    83 
    84     pref_flag_set_default   ( PREF_KEY_ASKQUIT, TRUE );
    85 
    86     pref_string_set_default ( PREF_KEY_SORT_MODE, "sort-by-name" );
    87     pref_flag_set_default   ( PREF_KEY_SORT_REVERSED, FALSE );
    88     pref_flag_set_default   ( PREF_KEY_MINIMAL_VIEW, FALSE );
    89 
    90     pref_flag_set_default   ( PREF_KEY_START, TRUE );
    91     pref_flag_set_default   ( PREF_KEY_TRASH_ORIGINAL, FALSE );
    92 }
    9330
    9431/**
  • trunk/gtk/tr-prefs.h

    r8026 r8047  
    5151#define PREF_KEY_MAIN_WINDOW_Y              "main-window-y"
    5252
    53 void tr_prefs_init_defaults( void );
    54 
    5553#endif
  • trunk/libtransmission/session.c

    r7977 r8047  
    316316    char * filename;
    317317    tr_benc fileSettings;
     318    tr_benc sessionDefaults;
     319    tr_benc tmp;
    318320
    319321    assert( tr_bencIsDict( d ) );
    320322
    321     /* get the defaults */
    322     tr_sessionGetDefaultSettings( d );
     323    /* initializing the defaults: caller may have passed in some app-level defaults.
     324     * preserve those and use the session defaults to fill in any missing gaps. */
     325    tr_bencInitDict( &sessionDefaults, 0 );
     326    tr_sessionGetDefaultSettings( &sessionDefaults );
     327    tr_bencMergeDicts( &sessionDefaults, d );
     328    tmp = *d; *d = sessionDefaults; sessionDefaults = tmp;
    323329
    324330    /* if caller didn't specify a config dir, use the default */
     
    334340
    335341    /* cleanup */
     342    tr_bencFree( &sessionDefaults );
    336343    tr_free( filename );
    337344}
Note: See TracChangeset for help on using the changeset viewer.