def reportFocus(self): if self.appModule.outlookVersion>=13 and self.appModule.nativeOm: e=self.appModule.nativeOm.activeExplorer() s=e.selection if s.count>0: p=s.item(1) try: start=p.start end=p.end except COMError: return super(CalendarView,self).reportFocus() t=self._generateTimeRangeText(start,end) # Translators: A message reported when on a calendar appointment in Microsoft Outlook ui.message(_("Appointment {subject}, {time}").format(subject=p.subject,time=t)) else: v=e.currentView try: selectedStartTime=v.selectedStartTime selectedEndTime=v.selectedEndTime except COMError: return super(CalendarView,self).reportFocus() timeSlotText=self._generateTimeRangeText(selectedStartTime,selectedEndTime) startLimit=u"%s %s"%(winKernel.GetDateFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.DATE_LONGDATE, selectedStartTime, None),winKernel.GetTimeFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.TIME_NOSECONDS, selectedStartTime, None)) endLimit=u"%s %s"%(winKernel.GetDateFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.DATE_LONGDATE, selectedEndTime, None),winKernel.GetTimeFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.TIME_NOSECONDS, selectedEndTime, None)) query=u'[Start] < "{endLimit}" And [End] > "{startLimit}"'.format(startLimit=startLimit,endLimit=endLimit) i=e.currentFolder.items i.sort('[Start]') i.IncludeRecurrences =True if i.find(query): # Translators: a message when the current time slot on an Outlook Calendar has an appointment timeSlotText=_("Has appointment")+" "+timeSlotText ui.message(timeSlotText) else: self.event_valueChange()
def _generateTimeRangeText(self,startTime,endTime): startText=winKernel.GetTimeFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.TIME_NOSECONDS, startTime, None) endText=winKernel.GetTimeFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.TIME_NOSECONDS, endTime, None) startDate=startTime.date() endDate=endTime.date() if not CalendarView._lastStartDate or startDate!=CalendarView._lastStartDate or endDate!=startDate: startText="%s %s"%(winKernel.GetDateFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.DATE_LONGDATE, startTime, None),startText) if endDate!=startDate: endText="%s %s"%(winKernel.GetDateFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.DATE_LONGDATE, endTime, None),endText) CalendarView._lastStartDate=startDate # Translators: a message reporting the time range (i.e. start time to end time) of an Outlook calendar entry return _("{startTime} to {endTime}").format(startTime=startText,endTime=endText)
def script_encoderDateTime(self, gesture): import winKernel if scriptHandler.getLastScriptRepeatCount() == 0: text = winKernel.GetTimeFormat(winKernel.LOCALE_USER_DEFAULT, 0, None, None) else: text = winKernel.GetDateFormat(winKernel.LOCALE_USER_DEFAULT, winKernel.DATE_LONGDATE, None, None) ui.message(text)