class DaysOfMonth(Base): HELP = _('''\ Download this periodical every month, on the specified days. The download will happen as soon after the specified time as possible on the specified days of each month. For example, if you choose the 1st and the 15th after 9:00 AM, the periodical will be downloaded on the 1st and 15th of every month, as soon after 9:00 AM as possible. ''') def __init__(self, parent=None): Base.__init__(self, parent) self.l1 = QLabel(_('&Days of the month:')) self.days = QLineEdit(self) self.days.setToolTip( _('Comma separated list of days of the month.' ' For example: 1, 15')) self.l1.setBuddy(self.days) self.l2 = QLabel(_('Download &after:')) self.time = QTimeEdit(self) self.time.setDisplayFormat('hh:mm AP') self.l2.setBuddy(self.time) self.l.addWidget(self.l1, 0, 0, 1, 1) self.l.addWidget(self.days, 0, 1, 1, 1) self.l.addWidget(self.l2, 1, 0, 1, 1) self.l.addWidget(self.time, 1, 1, 1, 1) def initialize(self, typ=None, val=None): if val is None: val = ((1, ), 6, 0) days_of_month, hour, minute = val self.days.setText(', '.join(map(str, map(int, days_of_month)))) self.time.setTime(QTime(hour, minute)) @property def schedule(self): parts = [ x.strip() for x in unicode_type(self.days.text()).split(',') if x.strip() ] try: days_of_month = tuple(map(int, parts)) except: days_of_month = (1, ) if not days_of_month: days_of_month = (1, ) t = self.time.time() hour, minute = t.hour(), t.minute() return 'days_of_month', (days_of_month, int(hour), int(minute))
def __init__(self, parent=None): Base.__init__(self, parent) self.l1 = QLabel(_('&Days of the month:')) self.days = QLineEdit(self) self.days.setToolTip( _('Comma separated list of days of the month.' ' For example: 1, 15')) self.l1.setBuddy(self.days) self.l2 = QLabel(_('Download &after:')) self.time = QTimeEdit(self) self.time.setDisplayFormat('hh:mm AP') self.l2.setBuddy(self.time) self.l.addWidget(self.l1, 0, 0, 1, 1) self.l.addWidget(self.days, 0, 1, 1, 1) self.l.addWidget(self.l2, 1, 0, 1, 1) self.l.addWidget(self.time, 1, 1, 1, 1)
def __init__(self, parent=None): Base.__init__(self, parent) self.days = [ QCheckBox(force_unicode(calendar.day_abbr[d]), self) for d in range(7) ] for i, cb in enumerate(self.days): row = i % 2 col = i // 2 self.l.addWidget(cb, row, col, 1, 1) self.time = QTimeEdit(self) self.time.setDisplayFormat('hh:mm AP') if canonicalize_lang(get_lang()) in {'deu', 'nds'}: self.time.setDisplayFormat('HH:mm') self.hl = QHBoxLayout() self.l1 = QLabel(_('&Download after:')) self.l1.setBuddy(self.time) self.hl.addWidget(self.l1) self.hl.addWidget(self.time) self.l.addLayout(self.hl, 1, 3, 1, 1) self.initialize()
class DaysOfWeek(Base): HELP = _('''\ Download this periodical every week on the specified days after the specified time. For example, if you choose: Monday after 9:00 AM, then the periodical will be download every Monday as soon after 9:00 AM as possible. ''') def __init__(self, parent=None): Base.__init__(self, parent) self.days = [ QCheckBox(force_unicode(calendar.day_abbr[d]), self) for d in range(7) ] for i, cb in enumerate(self.days): row = i % 2 col = i // 2 self.l.addWidget(cb, row, col, 1, 1) self.time = QTimeEdit(self) self.time.setDisplayFormat('hh:mm AP') if canonicalize_lang(get_lang()) in {'deu', 'nds'}: self.time.setDisplayFormat('HH:mm') self.hl = QHBoxLayout() self.l1 = QLabel(_('&Download after:')) self.l1.setBuddy(self.time) self.hl.addWidget(self.l1) self.hl.addWidget(self.time) self.l.addLayout(self.hl, 1, 3, 1, 1) self.initialize() def initialize(self, typ=None, val=None): if typ is None: typ = 'day/time' val = (-1, 6, 0) if typ == 'day/time': val = convert_day_time_schedule(val) days_of_week, hour, minute = val for i, d in enumerate(self.days): d.setChecked(i in days_of_week) self.time.setTime(QTime(hour, minute)) @property def schedule(self): days_of_week = tuple( [i for i, d in enumerate(self.days) if d.isChecked()]) t = self.time.time() hour, minute = t.hour(), t.minute() return 'days_of_week', (days_of_week, int(hour), int(minute))