def get_alarm_repeat_string(self): n = len(self.days) if n == 0: return "" elif n == 1: return LocalizedWeekdays.get_plural(self.days[0]) elif n == 7: return _("Every day") elif self.days == [0, 1, 2, 3, 4]: return _("Weekdays") else: days = [] for i in range(7): day_num = (LocalizedWeekdays.first_weekday() + i) % 7 if day_num in self.days: days.append(LocalizedWeekdays.get_abbr(day_num)) return ", ".join(days)
def __init__(self, parent, alarm=None): if alarm: Gtk.Dialog.__init__(self, _("Edit Alarm"), parent) else: Gtk.Dialog.__init__(self, _("New Alarm"), parent) self.set_border_width(6) self.parent = parent self.set_transient_for(parent) self.set_modal(True) self.day_buttons = [] content_area = self.get_content_area() self.add_buttons(Gtk.STOCK_CANCEL, 0, Gtk.STOCK_SAVE, 1) self.cf = SystemSettings.get_clock_format() grid = Gtk.Grid() grid.set_row_spacing(9) grid.set_column_spacing(6) grid.set_border_width(6) content_area.pack_start(grid, True, True, 0) if alarm: if self.cf == "12h": h = int(alarm.time.strftime("%I")) p = alarm.time.strftime("%p") else: h = alarm.hour p = None m = alarm.minute name = alarm.name days = alarm.days else: t = time.localtime() h = t.tm_hour m = t.tm_min p = time.strftime("%p", t) name = _("New Alarm") days = [] # Translators: "Time" in this context is the time an alarm # is set to go off (days, hours, minutes etc.) label = Gtk.Label(_("Time")) label.set_alignment(1.0, 0.5) grid.attach(label, 0, 0, 1, 1) self.hourselect = Gtk.SpinButton() self.hourselect.set_numeric(True) self.hourselect.set_increments(1.0, 1.0) self.hourselect.set_wrap(True) grid.attach(self.hourselect, 1, 0, 1, 1) label = Gtk.Label(": ") label.set_alignment(0.5, 0.5) grid.attach(label, 2, 0, 1, 1) self.minuteselect = Gtk.SpinButton() self.minuteselect.set_numeric(True) self.minuteselect.set_increments(1.0, 1.0) self.minuteselect.set_wrap(True) self.minuteselect.connect("output", self._show_leading_zeros) self.minuteselect.set_range(0.0, 59.0) self.minuteselect.set_value(m) grid.attach(self.minuteselect, 3, 0, 1, 1) if self.cf == "12h": self.ampm = Gtk.ComboBoxText() self.ampm.append_text("AM") self.ampm.append_text("PM") if p == "PM": h = h - 12 self.ampm.set_active(1) else: self.ampm.set_active(0) grid.attach(self.ampm, 4, 0, 1, 1) self.hourselect.set_range(1.0, 12.0) self.hourselect.set_value(h) gridcols = 5 else: self.hourselect.set_range(0.0, 23.0) self.hourselect.set_value(h) gridcols = 4 label = Gtk.Label(_("Name")) label.set_alignment(1.0, 0.5) grid.attach(label, 0, 1, 1, 1) self.entry = Gtk.Entry() self.entry.set_text(name) self.entry.set_editable(True) grid.attach(self.entry, 1, 1, gridcols - 1, 1) label = Gtk.Label(_("Repeat Every")) label.set_alignment(1.0, 0.5) grid.attach(label, 0, 2, 1, 1) # create a box and put repeat days in it box = Gtk.Box(True, 0) box.get_style_context().add_class("linked") for i in range(7): day_num = (LocalizedWeekdays.first_weekday() + i) % 7 day_name = LocalizedWeekdays.get_abbr(day_num) btn = Gtk.ToggleButton(label=day_name) btn.data = day_num if btn.data in days: btn.set_active(True) box.pack_start(btn, True, True, 0) self.day_buttons.append(btn) grid.attach(box, 1, 2, gridcols - 1, 1)