~gtg-user/gtg/undo_in_tasks

« back to all changes in this revision

Viewing changes to GTG/taskeditor/editor.py

  • Committer: Lionel Dricot
  • Date: 2009-12-16 17:40:48 UTC
  • mfrom: (462.1.7 gtg.local)
  • Revision ID: ploum@ploum.net-20091216174048-ui76zc4ightgmr1l
Better calendar behaviour ( bug #495446 )

Ok guys, let's break the trunk again :-)

Show diffs side-by-side

added added

removed removed

Lines of Context:
91
91
                "on_set_fuzzydate_now"  : self.set_fuzzydate_now,
92
92
                "on_set_fuzzydate_soon" : self.set_fuzzydate_soon,
93
93
                "on_set_fuzzydate_later": self.set_fuzzydate_later,
94
 
                "on_dayselected_double" : self.day_selected_double,
95
94
        }
96
95
        self.builder.connect_signals(dic)
97
96
        self.window         = self.builder.get_object("TaskEditor")
406
405
 
407
406
            y = toset.year()
408
407
            m = toset.month()
409
 
            d = toset.day()
 
408
            d = int(toset.day())
410
409
            
 
410
            #We have to select the day first. If not, we might ask for
 
411
            #February while still being on 31 -> error !
 
412
            self.cal_widget.select_day(d)
411
413
            self.cal_widget.select_month(int(m)-1,int(y))
412
 
            self.cal_widget.select_day(int(d))
413
414
            
414
415
        self.calendar.connect('button-press-event', self.__focus_out)
415
416
        self.sigid = self.cal_widget.connect("day-selected",self.day_selected)
416
417
        self.sigid_month = self.cal_widget.connect("month-changed",self.month_changed)
417
 
        
 
418
 
418
419
    def day_selected(self,widget) :
419
420
        y,m,d = widget.get_date()
420
421
        if self.__opened_date == "due" :
422
423
        elif self.__opened_date == "start" :
423
424
            self.task.set_start_date(dates.strtodate("%s-%s-%s"%(y,m+1,d)))
424
425
        if self.close_when_changed :
425
 
            self.__close_calendar()
 
426
            #When we select a day, we connect the mouse release to the
 
427
            #closing of the calendar.
 
428
            self.mouse_sigid = self.cal_widget.connect('event',self.__mouse_release)
426
429
        else :
427
430
            self.close_when_changed = True
428
431
        self.refresh_editor()
429
432
        
 
433
    def __mouse_release(self,widget,event):
 
434
        if event.type == gtk.gdk.BUTTON_RELEASE:
 
435
            self.__close_calendar()
 
436
            self.cal_widget.disconnect(self.mouse_sigid)
 
437
        
430
438
    def month_changed(self,widget) :
431
439
        #This is a ugly hack to close the calendar on the first click
432
440
        self.close_when_changed = False
433
 
    
434
 
    def day_selected_double(self,widget) : #pylint: disable-msg=W0613
435
 
        self.__close_calendar()
436
 
        
 
441
 
437
442
    def set_opened_date(self, date):
438
443
        if self.__opened_date == "due" :
439
444
            self.task.set_due_date(date)
606
611
        if self.sigid_month :
607
612
            self.cal_widget.disconnect(self.sigid_month)
608
613
            self.sigid_month = None
609
 
        
610
614
 
611
615
    
612
616