コード例 #1
0
    def __init__(self, parent, main, calendarEntry=None):
        super(CalendarEntryRecurrenceEdit,  self).__init__(parent)

        self.parent = parent

        self.setupUi(self)

        locale = main.locale
        shortDay = lambda day : locale.standaloneDayName(day,  QLocale.ShortFormat)
        longDay = lambda day : locale.standaloneDayName(day)
        longMonth = lambda day : locale.standaloneMonthName(day)

        # Use longer format for date pickers
        self.startDate.setDisplayFormat(main.locale.dateFormat(QLocale.ShortFormat).replace("yy",  "yyyy"))
        self.endDate.setDisplayFormat(main.locale.dateFormat(QLocale.ShortFormat).replace("yy",  "yyyy"))

        # Translate Ui
        self.mondayBox.setText(shortDay(1))
        self.tuesdayBox.setText(shortDay(2))
        self.wednesdayBox.setText(shortDay(3))
        self.thursdayBox.setText(shortDay(4))
        self.fridayBox.setText(shortDay(5))
        self.saturdayBox.setText(shortDay(6))
        self.sundayBox.setText(shortDay(7))

        for day in xrange(1,  32):
            self.monthlyDayInMonthBox.addItem(unicode(OrdinalNumberFormatter.toString(day)),  QVariant(day))

        for week in xrange(1,  6):
            self.monthlyWeekInMonthBox.addItem(unicode(OrdinalNumberFormatter.toString(week)),  QVariant(week))
            self.yearlyWeekInMonthBox.addItem(unicode(OrdinalNumberFormatter.toString(week)),  QVariant(week))

        for day in xrange(1,  8):
            self.monthlyDayInWeekBox.addItem(longDay(day),  QVariant(day))
            self.yearlyDayInWeekBox.addItem(longDay(day),  QVariant(day))

        for month in xrange(1,  13):
            self.yearlyMonthInYearBox_ByDate.addItem(longMonth(month),  QVariant(month))
            self.yearlyMonthInYearBox_ByDay.addItem(longMonth(month),  QVariant(month))

        if not parent.calendarEntry:
            self.endDate.setDateTime(QDateTime(parent.date.addYears(3),  QTime(0,  0)))

        self.lastType = ""
        self.lastDays = ""
        self.lastExceptions = ""
        self.lastStart = QDateTime()
        self.lastEnd = QDateTime()
        self.lastInterval = 1

        self.connect(self,  SIGNAL("accepted()"),  self.recurrenceAccepted)
        self.connect(self,  SIGNAL("rejected()"),  self.resetRecurrence)
        self.connect(self.dailyButton,  SIGNAL("clicked()"),  lambda : self.ruleWidget.setCurrentWidget(self.dailyWidget))
        self.connect(self.weeklyButton,  SIGNAL("clicked()"),  lambda : self.ruleWidget.setCurrentWidget(self.weeklyWidget))
        self.connect(self.monthlyButton,  SIGNAL("clicked()"),  lambda : self.ruleWidget.setCurrentWidget(self.monthlyWidget))
        self.connect(self.yearlyButton,  SIGNAL("clicked()"),  lambda : self.ruleWidget.setCurrentWidget(self.yearlyWidget))
        self.connect(self.exceptionAddButton,  SIGNAL("clicked()"),  self.addException)
        self.connect(self.exceptionDeleteButton,  SIGNAL("clicked()"),  self.deleteException)        
コード例 #2
0
ファイル: helper.py プロジェクト: Wonfee/series60-remote
    def calendarEntryRecurrenceToString(self,  type,  days,  exceptions,  start,  end,  interval):
        days = CalendarEntry.recurrenceParsedDays(type,  days)

        recurrence = self.tr("No recurrence")
        if type == "daily":
            if interval == 1:
                recurrence = self.tr("Recurs daily")
            else:
                recurrence = self.tr("Recurs every %n day(s)",  "",  interval)
        elif type == "weekly":
            weekdays = unicode(self.tr(", ",  "join string for weekdays")).join(
                                            [unicode(self.main.locale.standaloneDayName(int(day)+1,  QLocale.ShortFormat)) for day in days]
                                )
            if interval == 1:
                recurrence = self.tr("Recurs weekly on %1").arg(weekdays)
            else:
                recurrence = self.tr("Recurs every %n week(s) on %1",  "",  interval).arg(weekdays)
        elif type == "monthly_by_dates":
            datesinmonth = unicode(self.tr(", ",  "join string for dates in month")).join(
                                                [unicode(OrdinalNumberFormatter.toString(int(day)+1)) for day in days]
                                    )
            if interval == 1:
                recurrence = self.tr("Recurs monthly on the %1 day").arg(datesinmonth)
            else:
                recurrence = self.tr("Recurs every %n month(s) on the %1 day",  "",  interval).arg(datesinmonth)
        elif type == "monthly_by_days":
            locstring = list()
            for day in days:
                locstring.append(unicode(OrdinalNumberFormatter.toString(int(day['week'])+1) + ' ' + self.main.locale.standaloneDayName(int(day['day'])+1)) )
            daysinmonth = unicode(self.tr(" and ",  "join string for days in month")).join(locstring)

            if interval == 1:
                recurrence = self.tr("Recurs every month on the %1").arg(daysinmonth)
            else:
                recurrence = self.tr("Recurs every %n month(s) on the %1",  "",  interval).arg(daysinmonth)
        elif type == "yearly_by_date":
            arg = self.tr("%1 %2",  "month day{ordinal number}").arg(self.main.locale.monthName(start.date().month()), OrdinalNumberFormatter.toString(start.date().day()))
            if interval == 1:
                recurrence = self.tr("Recurs yearly on %1").arg(arg)
            else:
                recurrence = self.tr("Recurs every %n years(s) on %1",  "",  interval).arg(arg)
        elif type == "yearly_by_day":
            arg = self.tr("the %1 %2 of %3",  "the day{ordinal number} {weekday} of month").arg(OrdinalNumberFormatter.toString(days['week']+1),
                                                                                                                              self.main.locale.dayName(days['day']+1),
                                                                                                                              self.main.locale.monthName(days['month']+1))
            if interval == 1:
                recurrence = self.tr("Recurs every year on %1").arg(arg)
            else:
                recurrence = self.tr("Recurs every %n years(s) on %1",  "",  interval).arg(arg)

        if recurrence and end and end.isValid():
            recurrence = self.tr("%1 until %2",  "Recurs ... until").arg(recurrence,  self.main.locale.toString(end.date(),  QLocale.ShortFormat))

        return recurrence
コード例 #3
0
    def calendarEntryRecurrenceToString(self, type, days, exceptions, start,
                                        end, interval):
        days = CalendarEntry.recurrenceParsedDays(type, days)

        recurrence = self.tr("No recurrence")
        if type == "daily":
            if interval == 1:
                recurrence = self.tr("Recurs daily")
            else:
                recurrence = self.tr("Recurs every %n day(s)", "", interval)
        elif type == "weekly":
            weekdays = unicode(self.tr(", ", "join string for weekdays")).join(
                [
                    unicode(
                        self.main.locale.standaloneDayName(
                            int(day) + 1, QLocale.ShortFormat)) for day in days
                ])
            if interval == 1:
                recurrence = self.tr("Recurs weekly on %1").arg(weekdays)
            else:
                recurrence = self.tr("Recurs every %n week(s) on %1", "",
                                     interval).arg(weekdays)
        elif type == "monthly_by_dates":
            datesinmonth = unicode(
                self.tr(", ", "join string for dates in month")).join([
                    unicode(OrdinalNumberFormatter.toString(int(day) + 1))
                    for day in days
                ])
            if interval == 1:
                recurrence = self.tr("Recurs monthly on the %1 day").arg(
                    datesinmonth)
            else:
                recurrence = self.tr("Recurs every %n month(s) on the %1 day",
                                     "", interval).arg(datesinmonth)
        elif type == "monthly_by_days":
            locstring = list()
            for day in days:
                locstring.append(
                    unicode(
                        OrdinalNumberFormatter.toString(int(day['week']) + 1) +
                        ' ' + self.main.locale.standaloneDayName(
                            int(day['day']) + 1)))
            daysinmonth = unicode(
                self.tr(" and ",
                        "join string for days in month")).join(locstring)

            if interval == 1:
                recurrence = self.tr("Recurs every month on the %1").arg(
                    daysinmonth)
            else:
                recurrence = self.tr("Recurs every %n month(s) on the %1", "",
                                     interval).arg(daysinmonth)
        elif type == "yearly_by_date":
            arg = self.tr("%1 %2", "month day{ordinal number}").arg(
                self.main.locale.monthName(start.date().month()),
                OrdinalNumberFormatter.toString(start.date().day()))
            if interval == 1:
                recurrence = self.tr("Recurs yearly on %1").arg(arg)
            else:
                recurrence = self.tr("Recurs every %n years(s) on %1", "",
                                     interval).arg(arg)
        elif type == "yearly_by_day":
            arg = self.tr("the %1 %2 of %3",
                          "the day{ordinal number} {weekday} of month").arg(
                              OrdinalNumberFormatter.toString(days['week'] +
                                                              1),
                              self.main.locale.dayName(days['day'] + 1),
                              self.main.locale.monthName(days['month'] + 1))
            if interval == 1:
                recurrence = self.tr("Recurs every year on %1").arg(arg)
            else:
                recurrence = self.tr("Recurs every %n years(s) on %1", "",
                                     interval).arg(arg)

        if recurrence and end and end.isValid():
            recurrence = self.tr("%1 until %2", "Recurs ... until").arg(
                recurrence,
                self.main.locale.toString(end.date(), QLocale.ShortFormat))

        return recurrence