~rmjb/backintime/backuphour

« back to all changes in this revision

Viewing changes to gnome/settingsdialog.py

  • Committer: Richard Bailey
  • Date: 2009-10-22 01:15:52 UTC
  • Revision ID: rmjb@mail.com-20091022011552-xasi03qqq0vfm92l
Added the option to choose the hour of the backup for daily, weekly & monthly backups.
TODO: Still have to enable this for the schedule per include folder

Show diffs side-by-side

added added

removed removed

Lines of Context:
75
75
                                'on_cb_per_directory_schedule_toggled' : self.on_cb_per_directory_schedule_toggled,
76
76
                                'on_combo_profiles_changed': self.on_combo_profiles_changed,
77
77
                                'on_btn_where_clicked': self.on_btn_where_clicked,
 
78
                                'on_cb_backup_mode_changed': self.on_cb_backup_mode_changed,
78
79
                        }
79
80
                
80
81
                builder.connect_signals(signals)
115
116
                        self.rev_automatic_backup_modes[ map[key] ] = key
116
117
                        self.store_backup_mode.append( [ map[key], key ] )
117
118
                
 
119
                #hour of backup
 
120
                self.lbl_hour = get( 'lbl_hour' )
 
121
                self.cb_hour = get( 'cb_hour' )
 
122
                text_renderer = gtk.CellRendererText()
 
123
                self.cb_hour.pack_start( text_renderer, True )
 
124
                self.cb_hour.add_attribute( text_renderer, 'text', 0 )
 
125
                
 
126
                self.store_hour_list = gtk.ListStore( str, str )
 
127
                for hour in range( 24 ):
 
128
                        strhour = '%02d' % hour
 
129
                        self.store_hour_list.append( [ self.format_hour( strhour ), strhour ] )
 
130
                
 
131
                self.cb_hour.set_model( self.store_hour_list )
 
132
                
118
133
                #per directory schedule
119
134
                self.cb_per_directory_schedule = get( 'cb_per_directory_schedule' )
120
135
                self.lbl_schedule = get( 'lbl_schedule' )
293
308
                
294
309
                self.update_profile()
295
310
        
 
311
        def on_cb_backup_mode_changed( self, *params ):
 
312
                self.set_backup_hour()
 
313
        
296
314
        def update_profiles( self ):
297
315
                self.disable_combo_changed = True
298
316
                
349
367
                self.cb_backup_mode.set_active( self.determine_value_index( self.store_backup_mode,
350
368
                                self.config.get_automatic_backup_mode() ) )
351
369
                
 
370
                #setup backup hour
 
371
                self.set_backup_hour()
 
372
                
352
373
                #setup remove old backups older than
353
374
                enabled, value, unit = self.config.get_remove_old_snapshots()
354
375
                
385
406
                #don't run when on battery
386
407
                self.cb_no_on_battery.set_active( self.config.is_no_on_battery_enabled() )
387
408
        
 
409
        def set_backup_hour ( self ):
 
410
                current_mode = self.store_backup_mode.get_value( self.cb_backup_mode.get_active_iter(), 1 )
 
411
                if current_mode >= self.config.DAY:
 
412
                        self.lbl_hour.set_sensitive( True )
 
413
                        self.cb_hour.set_sensitive( True )
 
414
                        self.cb_hour.set_active( self.determine_value_index( self.store_hour_list,
 
415
                                        self.config.get_backup_hour() ) )
 
416
                else:
 
417
                        self.lbl_hour.set_sensitive( False )
 
418
                        self.cb_hour.set_sensitive( False )
 
419
                        self.cb_hour.set_active( 0 )
 
420
        
 
421
        def format_hour( self, strhour ):
 
422
                return '%s:00' % strhour
 
423
        
388
424
        def save_profile( self ):
389
425
                #snapshots path
390
426
                snapshots_path = self.edit_where.get_text()
424
460
                #global schedule
425
461
                self.config.set_automatic_backup_mode( self.store_backup_mode.get_value( self.cb_backup_mode.get_active_iter(), 1 ) )
426
462
                
 
463
                #backup hour
 
464
                self.config.set_backup_hour( self.store_hour_list.get_value( self.cb_hour.get_active_iter(), 1 ) )
 
465
                
427
466
                #auto-remove snapshots
428
467
                self.config.set_remove_old_snapshots( 
429
468
                                                self.cb_remove_old_backup.get_active(),