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 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.GetDateFormatEx( winKernel.LOCALE_NAME_USER_DEFAULT, winKernel.DATE_LONGDATE, selectedStartTime, None), winKernel.GetTimeFormat( winKernel.LOCALE_USER_DEFAULT, winKernel.TIME_NOSECONDS, selectedStartTime, None)) endLimit = u"%s %s" % (winKernel.GetDateFormatEx( winKernel.LOCALE_NAME_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 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)