Пример #1
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):  ## FIXME
        gtk.VBox.__init__(self)
        self.event = event
        assert event.parent.name == "universityTerm"  ## FIXME
        sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
        #####
        if not event.parent.courses:
            showError(event.parent.noCourseError, ui.eventManDialog)
            raise RuntimeError("No courses added")
        self.courseIds = []
        self.courseNames = []
        combo = gtk.ComboBoxText()
        for course in event.parent.courses:
            self.courseIds.append(course[0])
            self.courseNames.append(course[1])
            combo.append_text(course[1])
        #combo.connect("changed", self.updateSummary)
        self.courseCombo = combo
        ##
        hbox = gtk.HBox()
        label = gtk.Label(_("Course"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        pack(hbox, combo)
        ##
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Week"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        weekNumModeRule, ok = event["weekNumMode"]
        if not ok:
            raise RuntimeError("no weekNumMode rule")
        self.weekNumModeCombo = WeekNumModeWidgetClass(weekNumModeRule)
        pack(hbox, self.weekNumModeCombo)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Week Day"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.weekDayCombo = WeekDayComboBox()
        #self.weekDayCombo.connect("changed", self.updateSummary)
        pack(hbox, self.weekDayCombo)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Time"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        ##
        self.dayTimeStartCombo = HourMinuteButtonOption()
        self.dayTimeEndCombo = HourMinuteButtonOption()
        ##
        #self.dayTimeStartCombo.get_child().set_direction(gtk.TextDirection.LTR)
        #self.dayTimeEndCombo.get_child().set_direction(gtk.TextDirection.LTR)
        ##
        pack(hbox, self.dayTimeStartCombo)
        pack(hbox, gtk.Label(" " + _("to") + " "))
        pack(hbox, self.dayTimeEndCombo)
        pack(self, hbox)
        ###########
        #hbox = gtk.HBox()
        #label = gtk.Label(_("Summary"))
        #label.set_alignment(0, 0.5)
        #sizeGroup.add_widget(label)
        #pack(hbox, label)
        #self.summaryEntry = gtk.Entry()
        #pack(hbox, self.summaryEntry, 1, 1)
        #pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Description"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.descriptionInput = TextFrame()
        pack(hbox, self.descriptionInput, 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Icon"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.iconSelect = IconSelectButton()
        #print(join(pixDir, self.icon))
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(""), 1, 1)
        pack(self, hbox)
        ######
        self.notificationBox = common.NotificationBox(event)
        pack(self, self.notificationBox)
        ######
        #self.filesBox = common.FilesBox(self.event)
        #pack(self, self.filesBox)
        ######
        self.courseCombo.set_active(0)
        #self.updateSummary()

    def focusSummary(self):
        pass

    #def updateSummary(self, widget=None):
    #	courseIndex = self.courseCombo.get_active()
    #	summary = (
    #		_("%s Class")%self.courseNames[courseIndex] +
    #		" (" +
    #		self.weekDayCombo.get_active_text() +
    #		")"
    #	)
    #	self.summaryEntry.set_text(summary)
    #	self.event.summary = summary

    def updateWidget(self):  ## FIXME
        if self.event.courseId is None:
            pass
        else:
            self.courseCombo.set_active(
                self.courseIds.index(self.event.courseId))
        ##
        self.weekNumModeCombo.updateWidget()
        weekDayRule, ok = self.event["weekDay"]
        if not ok:
            raise RuntimeError("no weekDay rule")
        weekDayList = weekDayRule.weekDayList
        if len(weekDayList) == 1:
            self.weekDayCombo.setValue(weekDayList[0])  # FIXME
        else:
            self.weekDayCombo.set_active(0)
        ##
        self.dayTimeStartCombo.clear_history()
        self.dayTimeEndCombo.clear_history()
        for hm in reversed(self.event.parent.classTimeBounds):
            for combo in (self.dayTimeStartCombo, self.dayTimeEndCombo):
                combo.set_value(hm)
                combo.add_history()
        timeRangeRule, ok = self.event["dayTimeRange"]
        if not ok:
            raise RuntimeError("no dayTimeRange rule")
        self.dayTimeStartCombo.set_value(timeRangeRule.dayTimeStart)
        self.dayTimeEndCombo.set_value(timeRangeRule.dayTimeEnd)
        ####
        #self.summaryEntry.set_text(self.event.summary)
        self.descriptionInput.set_text(self.event.description)
        self.iconSelect.set_filename(self.event.icon)
        ####
        self.notificationBox.updateWidget()
        ####
        #self.filesBox.updateWidget()

    def updateVars(self):  ## FIXME
        courseIndex = self.courseCombo.get_active()
        if courseIndex is None:
            showError(_("No course is selected"), ui.eventManDialog)
            raise RuntimeError("No courses is selected")
        else:
            self.event.courseId = self.courseIds[courseIndex]
        ##
        self.weekNumModeCombo.updateVars()
        ##
        weekDay, ok = self.event["weekDay"]
        if not ok:
            raise RuntimeError("no weekDay rule")
        weekDay.weekDayList = [self.weekDayCombo.getValue()]  ## FIXME
        ##
        dayTimeRange, ok = self.event["dayTimeRange"]
        if not ok:
            raise RuntimeError("no dayTimeRange rule")
        dayTimeRange.setRange(
            self.dayTimeStartCombo.get_value(),
            self.dayTimeEndCombo.get_value(),
        )
        ####
        #self.event.summary = self.summaryEntry.get_text()
        self.event.description = self.descriptionInput.get_text()
        self.event.icon = self.iconSelect.get_filename()
        ####
        self.notificationBox.updateVars()
        self.event.updateSummary()
Пример #2
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):  ## FIXME
        gtk.VBox.__init__(self)
        self.event = event
        assert event.parent.name == "universityTerm"  ## FIXME
        sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
        #####
        if not event.parent.courses:
            showError(event.parent.noCourseError, ui.eventManDialog)
            raise RuntimeError("No courses added")
        self.courseIds = []
        self.courseNames = []
        combo = gtk.ComboBoxText()
        for course in event.parent.courses:
            self.courseIds.append(course[0])
            self.courseNames.append(course[1])
            combo.append_text(course[1])
        #combo.connect("changed", self.updateSummary)
        self.courseCombo = combo
        ##
        hbox = gtk.HBox()
        label = gtk.Label(_("Course"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        pack(hbox, combo)
        ##
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Date"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.dateInput = DateButton()
        pack(hbox, self.dateInput)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Time"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        ##
        self.dayTimeStartCombo = HourMinuteButton()
        self.dayTimeEndCombo = HourMinuteButton()
        ##
        #self.dayTimeStartCombo.get_child().set_direction(gtk.TextDirection.LTR)
        #self.dayTimeEndCombo.get_child().set_direction(gtk.TextDirection.LTR)
        ##
        pack(hbox, self.dayTimeStartCombo)
        pack(hbox, gtk.Label(" " + _("to") + " "))
        pack(hbox, self.dayTimeEndCombo)
        pack(self, hbox)
        ###########
        #hbox = gtk.HBox()
        #label = gtk.Label(_("Summary"))
        #label.set_alignment(0, 0.5)
        #sizeGroup.add_widget(label)
        #pack(hbox, label)
        #self.summaryEntry = gtk.Entry()
        #pack(hbox, self.summaryEntry, 1, 1)
        #pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Description"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.descriptionInput = TextFrame()
        pack(hbox, self.descriptionInput, 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Icon"))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.iconSelect = IconSelectButton()
        #print(join(pixDir, self.icon))
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(""), 1, 1)
        pack(self, hbox)
        ######
        self.notificationBox = common.NotificationBox(event)
        pack(self, self.notificationBox)
        ######
        #self.filesBox = common.FilesBox(self.event)
        #pack(self, self.filesBox)
        ######
        self.courseCombo.set_active(0)
        #self.updateSummary()

    def focusSummary(self):
        pass

    #def updateSummary(self, widget=None):
    #	courseIndex = self.courseCombo.get_active()
    #	summary = _("%s Exam")%self.courseNames[courseIndex]
    #	self.summaryEntry.set_text(summary)
    #	self.event.summary = summary

    def updateWidget(self):  ## FIXME
        if self.event.courseId is None:
            pass
        else:
            self.courseCombo.set_active(
                self.courseIds.index(self.event.courseId))
        ##
        self.dateInput.set_value(self.event.getDate())
        ##
        timeRangeRule, ok = self.event["dayTimeRange"]
        if not ok:
            raise RuntimeError("no dayTimeRange rule")
        self.dayTimeStartCombo.set_value(timeRangeRule.dayTimeStart)
        self.dayTimeEndCombo.set_value(timeRangeRule.dayTimeEnd)
        ####
        #self.summaryEntry.set_text(self.event.summary)
        self.descriptionInput.set_text(self.event.description)
        self.iconSelect.set_filename(self.event.icon)
        ####
        self.notificationBox.updateWidget()
        ####
        #self.filesBox.updateWidget()

    def updateVars(self):  ## FIXME
        courseIndex = self.courseCombo.get_active()
        if courseIndex is None:
            showError(_("No course is selected"), ui.eventManDialog)
            raise RuntimeError("No courses is selected")
        else:
            self.event.courseId = self.courseIds[courseIndex]
        ##
        self.event.setDate(*tuple(self.dateInput.get_value()))
        ##
        timeRangeRule, ok = self.event["dayTimeRange"]
        if not ok:
            raise RuntimeError("no dayTimeRange rule")
        timeRangeRule.setRange(
            self.dayTimeStartCombo.get_value(),
            self.dayTimeEndCombo.get_value(),
        )
        ####
        #self.event.summary = self.summaryEntry.get_text()
        self.event.description = self.descriptionInput.get_text()
        self.event.icon = self.iconSelect.get_filename()
        ####
        self.notificationBox.updateVars()
        self.event.updateSummary()

    def modeComboChanged(self, obj=None):
        # overwrite method from common.WidgetClass
        newMode = self.modeCombo.get_active()
        self.dateInput.changeMode(self.event.mode, newMode)
        self.event.mode = newMode
Пример #3
0
class BaseWidgetClass(gtk.VBox):
    def __init__(self, group):
        from scal3.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
        from scal3.ui_gtk.mywidgets.tz_combo import TimeZoneComboBoxEntry
        gtk.VBox.__init__(self)
        self.group = group
        ########
        self.sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Title"))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.titleEntry = gtk.Entry()
        pack(hbox, self.titleEntry, 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Color"))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.colorButton = MyColorButton()
        self.colorButton.set_use_alpha(True)  ## FIXME
        pack(hbox, self.colorButton)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Default Icon"))  ## FIXME
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.iconSelect = IconSelectButton()
        pack(hbox, self.iconSelect)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Default Calendar Type"))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        combo = CalTypeCombo()
        pack(hbox, combo)
        pack(hbox, gtk.Label(""), 1, 1)
        self.modeCombo = combo
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        self.tzCheck = gtk.CheckButton(_("Default Time Zone"))
        pack(hbox, self.tzCheck)
        self.sizeGroup.add_widget(self.tzCheck)
        combo = TimeZoneComboBoxEntry()
        pack(hbox, combo)
        pack(hbox, gtk.Label(""), 1, 1)
        self.tzCombo = combo
        pack(self, hbox)
        self.tzCheck.connect(
            "clicked",
            lambda check: self.tzCombo.set_sensitive(check.get_active()),
        )
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Show in Calendar"))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.showInDCalCheck = gtk.CheckButton(_("Day"))
        self.showInWCalCheck = gtk.CheckButton(_("Week"))
        self.showInMCalCheck = gtk.CheckButton(_("Month"))
        pack(hbox, self.showInDCalCheck)
        pack(hbox, gtk.Label(""), 1, 1)
        pack(hbox, self.showInWCalCheck)
        pack(hbox, gtk.Label(""), 1, 1)
        pack(hbox, self.showInMCalCheck)
        pack(hbox, gtk.Label(""), 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Show in"))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.showInTimeLineCheck = gtk.CheckButton(_("Time Line"))
        self.showInStatusIconCheck = gtk.CheckButton(_("Status Icon"))
        pack(hbox, self.showInTimeLineCheck)
        pack(hbox, gtk.Label(""), 1, 1)
        pack(hbox, self.showInStatusIconCheck)
        pack(hbox, gtk.Label(""), 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_("Event Cache Size"))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.cacheSizeSpin = IntSpinButton(0, 9999)
        pack(hbox, self.cacheSizeSpin)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(label=_("Event Text Separator"))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.sepInput = TextFrame()
        pack(hbox, self.sepInput, 1, 1)
        pack(self, hbox)
        set_tooltip(
            hbox,
            _("Using to seperate Summary and Description when displaying event"
              ))
        #####
        #hbox = gtk.HBox()
        #label = gtk.Label(_("Show Full Event Description"))
        #label.set_alignment(0, 0.5)
        #pack(hbox, label)
        #self.sizeGroup.add_widget(label)
        #self.showFullEventDescCheck = gtk.CheckButton("")
        #pack(hbox, self.showFullEventDescCheck, 1, 1)
        #pack(self, hbox)
        ###
        self.modeCombo.connect(
            "changed",
            self.modeComboChanged,
        )  # right place? before updateWidget? FIXME

    def updateWidget(self):
        self.titleEntry.set_text(self.group.title)
        self.colorButton.set_color(self.group.color)
        self.iconSelect.set_filename(self.group.icon)
        self.modeCombo.set_active(self.group.mode)
        ##
        self.tzCheck.set_active(self.group.timeZoneEnable)
        self.tzCombo.set_sensitive(self.group.timeZoneEnable)
        if self.group.timeZone:
            self.tzCombo.set_text(self.group.timeZone)
        ##
        self.showInDCalCheck.set_active(self.group.showInDCal)
        self.showInWCalCheck.set_active(self.group.showInWCal)
        self.showInMCalCheck.set_active(self.group.showInMCal)
        self.showInTimeLineCheck.set_active(self.group.showInTimeLine)
        self.showInStatusIconCheck.set_active(self.group.showInStatusIcon)
        self.cacheSizeSpin.set_value(self.group.eventCacheSize)
        self.sepInput.set_text(self.group.eventTextSep)
        #self.showFullEventDescCheck.set_active(self.group.showFullEventDesc)

    def updateVars(self):
        self.group.title = self.titleEntry.get_text()
        self.group.color = self.colorButton.get_color()
        self.group.icon = self.iconSelect.get_filename()
        self.group.mode = self.modeCombo.get_active()
        ##
        self.group.timeZoneEnable = self.tzCheck.get_active()
        self.group.timeZone = self.tzCombo.get_text()
        ##
        self.group.showInDCal = self.showInDCalCheck.get_active()
        self.group.showInWCal = self.showInWCalCheck.get_active()
        self.group.showInMCal = self.showInMCalCheck.get_active()
        self.group.showInTimeLine = self.showInTimeLineCheck.get_active()
        self.group.showInStatusIcon = self.showInStatusIconCheck.get_active()
        self.group.eventCacheSize = int(self.cacheSizeSpin.get_value())
        self.group.eventTextSep = self.sepInput.get_text()
        #self.group.showFullEventDesc = self.showFullEventDescCheck.get_active()

    def modeComboChanged(self, obj=None):
        pass
Пример #4
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):  ## FIXME
        gtk.VBox.__init__(self)
        self.event = event
        assert event.parent.name == 'universityTerm'  ## FIXME
        sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
        #####
        if not event.parent.courses:
            showError(event.parent.noCourseError, ui.eventManDialog)
            raise RuntimeError('No courses added')
        self.courseIds = []
        self.courseNames = []
        combo = gtk.ComboBoxText()
        for course in event.parent.courses:
            self.courseIds.append(course[0])
            self.courseNames.append(course[1])
            combo.append_text(course[1])
        #combo.connect('changed', self.updateSummary)
        self.courseCombo = combo
        ##
        hbox = gtk.HBox()
        label = gtk.Label(_('Course'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        pack(hbox, combo)
        ##
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Week'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.weekNumModeCombo = WeekNumModeWidgetClass(event['weekNumMode'])
        pack(hbox, self.weekNumModeCombo)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Week Day'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.weekDayCombo = WeekDayComboBox()
        #self.weekDayCombo.connect('changed', self.updateSummary)
        pack(hbox, self.weekDayCombo)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Time'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        ##
        self.dayTimeStartCombo = HourMinuteButtonOption()
        self.dayTimeEndCombo = HourMinuteButtonOption()
        ##
        #self.dayTimeStartCombo.get_child().set_direction(gtk.TextDirection.LTR)
        #self.dayTimeEndCombo.get_child().set_direction(gtk.TextDirection.LTR)
        ##
        pack(hbox, self.dayTimeStartCombo)
        pack(hbox, gtk.Label(' ' + _('to') + ' '))
        pack(hbox, self.dayTimeEndCombo)
        pack(self, hbox)
        ###########
        #hbox = gtk.HBox()
        #label = gtk.Label(_('Summary'))
        #label.set_alignment(0, 0.5)
        #sizeGroup.add_widget(label)
        #pack(hbox, label)
        #self.summaryEntry = gtk.Entry()
        #pack(hbox, self.summaryEntry, 1, 1)
        #pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Description'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.descriptionInput = TextFrame()
        pack(hbox, self.descriptionInput, 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Icon'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.iconSelect = IconSelectButton()
        #print(join(pixDir, self.icon))
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        ######
        self.notificationBox = common.NotificationBox(event)
        pack(self, self.notificationBox)
        ######
        #self.filesBox = common.FilesBox(self.event)
        #pack(self, self.filesBox)
        ######
        self.courseCombo.set_active(0)
        #self.updateSummary()
    def focusSummary(self):
        pass

    #def updateSummary(self, widget=None):
    #	courseIndex = self.courseCombo.get_active()
    #	summary = _('%s Class')%self.courseNames[courseIndex] + ' (' + self.weekDayCombo.get_active_text() + ')'
    #	self.summaryEntry.set_text(summary)
    #	self.event.summary = summary
    def updateWidget(self):  ## FIXME
        if self.event.courseId is None:
            pass
        else:
            self.courseCombo.set_active(
                self.courseIds.index(self.event.courseId))
        ##
        self.weekNumModeCombo.updateWidget()
        weekDayList = self.event['weekDay'].weekDayList
        if len(weekDayList) == 1:
            self.weekDayCombo.setValue(weekDayList[0])  ## FIXME
        else:
            self.weekDayCombo.set_active(0)
        ##
        self.dayTimeStartCombo.clear_history()
        self.dayTimeEndCombo.clear_history()
        for hm in reversed(self.event.parent.classTimeBounds):
            for combo in (self.dayTimeStartCombo, self.dayTimeEndCombo):
                combo.set_value(hm)
                combo.add_history()
        timeRangeRule = self.event['dayTimeRange']
        self.dayTimeStartCombo.set_value(timeRangeRule.dayTimeStart)
        self.dayTimeEndCombo.set_value(timeRangeRule.dayTimeEnd)
        ####
        #self.summaryEntry.set_text(self.event.summary)
        self.descriptionInput.set_text(self.event.description)
        self.iconSelect.set_filename(self.event.icon)
        ####
        self.notificationBox.updateWidget()
        ####
        #self.filesBox.updateWidget()
    def updateVars(self):  ## FIXME
        courseIndex = self.courseCombo.get_active()
        if courseIndex is None:
            showError(_('No course is selected'), ui.eventManDialog)
            raise RuntimeError('No courses is selected')
        else:
            self.event.courseId = self.courseIds[courseIndex]
        ##
        self.weekNumModeCombo.updateVars()
        self.event['weekDay'].weekDayList = [self.weekDayCombo.getValue()
                                             ]  ## FIXME
        ##
        self.event['dayTimeRange'].setRange(
            self.dayTimeStartCombo.get_value(),
            self.dayTimeEndCombo.get_value(),
        )
        ####
        #self.event.summary = self.summaryEntry.get_text()
        self.event.description = self.descriptionInput.get_text()
        self.event.icon = self.iconSelect.get_filename()
        ####
        self.notificationBox.updateVars()
        self.event.updateSummary()
Пример #5
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):## FIXME
        gtk.VBox.__init__(self)
        self.event = event
        assert event.parent.name == 'universityTerm' ## FIXME
        sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
        #####
        if not event.parent.courses:
            showError(event.parent.noCourseError, ui.eventManDialog)
            raise RuntimeError('No courses added')
        self.courseIds = []
        self.courseNames = []
        combo = gtk.ComboBoxText()
        for course in event.parent.courses:
            self.courseIds.append(course[0])
            self.courseNames.append(course[1])
            combo.append_text(course[1])
        #combo.connect('changed', self.updateSummary)
        self.courseCombo = combo
        ##
        hbox = gtk.HBox()
        label = gtk.Label(_('Course'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        pack(hbox, combo)
        ##
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Date'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.dateInput = DateButton()
        pack(hbox, self.dateInput)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Time'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        ##
        self.dayTimeStartCombo = HourMinuteButton()
        self.dayTimeEndCombo = HourMinuteButton()
        ##
        #self.dayTimeStartCombo.get_child().set_direction(gtk.TextDirection.LTR)
        #self.dayTimeEndCombo.get_child().set_direction(gtk.TextDirection.LTR)
        ##
        pack(hbox, self.dayTimeStartCombo)
        pack(hbox, gtk.Label(' ' + _('to') + ' '))
        pack(hbox, self.dayTimeEndCombo)
        pack(self, hbox)
        ###########
        #hbox = gtk.HBox()
        #label = gtk.Label(_('Summary'))
        #label.set_alignment(0, 0.5)
        #sizeGroup.add_widget(label)
        #pack(hbox, label)
        #self.summaryEntry = gtk.Entry()
        #pack(hbox, self.summaryEntry, 1, 1)
        #pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Description'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.descriptionInput = TextFrame()
        pack(hbox, self.descriptionInput, 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Icon'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.iconSelect = IconSelectButton()
        #print(join(pixDir, self.icon))
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        ######
        self.notificationBox = common.NotificationBox(event)
        pack(self, self.notificationBox)
        ######
        #self.filesBox = common.FilesBox(self.event)
        #pack(self, self.filesBox)
        ######
        self.courseCombo.set_active(0)
        #self.updateSummary()
    def focusSummary(self):
        pass
    #def updateSummary(self, widget=None):
    #    courseIndex = self.courseCombo.get_active()
    #    summary = _('%s Exam')%self.courseNames[courseIndex]
    #    self.summaryEntry.set_text(summary)
    #    self.event.summary = summary
    def updateWidget(self):## FIXME
        if self.event.courseId is None:
            pass
        else:
            self.courseCombo.set_active(self.courseIds.index(self.event.courseId))
        ##
        self.dateInput.set_value(self.event.getDate())
        ##
        timeRangeRule = self.event['dayTimeRange']
        self.dayTimeStartCombo.set_value(timeRangeRule.dayTimeStart)
        self.dayTimeEndCombo.set_value(timeRangeRule.dayTimeEnd)
        ####
        #self.summaryEntry.set_text(self.event.summary)
        self.descriptionInput.set_text(self.event.description)
        self.iconSelect.set_filename(self.event.icon)
        ####
        self.notificationBox.updateWidget()
        ####
        #self.filesBox.updateWidget()
    def updateVars(self):## FIXME
        courseIndex = self.courseCombo.get_active()
        if courseIndex is None:
            showError(_('No course is selected'), ui.eventManDialog)
            raise RuntimeError('No courses is selected')
        else:
            self.event.courseId = self.courseIds[courseIndex]
        ##
        self.event.setDate(*tuple(self.dateInput.get_value()))
        ##
        self.event['dayTimeRange'].setRange(
            self.dayTimeStartCombo.get_value(),
            self.dayTimeEndCombo.get_value(),
        )
        ####
        #self.event.summary = self.summaryEntry.get_text()
        self.event.description = self.descriptionInput.get_text()
        self.event.icon = self.iconSelect.get_filename()
        ####
        self.notificationBox.updateVars()
        self.event.updateSummary()
    def modeComboChanged(self, obj=None):## overwrite method from common.WidgetClass
        newMode = self.modeCombo.get_active()
        self.dateInput.changeMode(self.event.mode, newMode)
        self.event.mode = newMode
Пример #6
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):
        from scal3.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
        from scal3.ui_gtk.mywidgets.tz_combo import TimeZoneComboBoxEntry
        gtk.VBox.__init__(self)
        self.event = event
        ###########
        hbox = gtk.HBox()
        ###
        pack(hbox, gtk.Label(_('Calendar Type')))
        combo = CalTypeCombo()
        combo.set_active(calTypes.primary)## overwritten in updateWidget()
        pack(hbox, combo)
        pack(hbox, gtk.Label(''), 1, 1)
        self.modeCombo = combo
        ###
        pack(self, hbox)
        ###########
        if event.isAllDay:
            self.tzCheck = None
        else:
            hbox = gtk.HBox()
            self.tzCheck = gtk.CheckButton(_('Time Zone'))
            set_tooltip(self.tzCheck, _('For input times of event'))
            pack(hbox, self.tzCheck)
            combo = TimeZoneComboBoxEntry()
            pack(hbox, combo)
            pack(hbox, gtk.Label(''), 1, 1)
            self.tzCombo = combo
            pack(self, hbox)
            self.tzCheck.connect('clicked', lambda check: self.tzCombo.set_sensitive(check.get_active()))
        ###########
        hbox = gtk.HBox()
        pack(hbox, gtk.Label(_('Summary')))
        self.summaryEntry = gtk.Entry()
        pack(hbox, self.summaryEntry, 1, 1)
        pack(self, hbox)
        ###########
        self.descriptionInput = TextFrame()
        swin = gtk.ScrolledWindow()
        swin.set_policy(gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC)
        swin.add_with_viewport(self.descriptionInput)
        ###
        exp = gtk.Expander()
        exp.set_expanded(True)
        exp.set_label(_('Description'))
        exp.add(swin)
        pack(self, exp, 1, 1)
        ###########
        hbox = gtk.HBox()
        pack(hbox, gtk.Label(_('Icon')+':'))
        self.iconSelect = IconSelectButton()
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        ##########
        self.modeCombo.connect('changed', self.modeComboChanged)## right place? before updateWidget? FIXME
    def focusSummary(self):
        self.summaryEntry.select_region(0, -1)
        self.summaryEntry.grab_focus()
    def updateWidget(self):
        #print('updateWidget', self.event.files)
        self.modeCombo.set_active(self.event.mode)
        if self.tzCheck:
            self.tzCheck.set_active(self.event.timeZoneEnable)
            self.tzCombo.set_sensitive(self.event.timeZoneEnable)
            self.tzCombo.set_text(self.event.timeZone)
        self.summaryEntry.set_text(self.event.summary)
        self.descriptionInput.set_text(self.event.description)
        self.iconSelect.set_filename(self.event.icon)
        #####
        for attr in ('notificationBox', 'filesBox'):
            try:
                getattr(self, attr).updateWidget()
            except AttributeError:
                pass
        #####
        self.modeComboChanged()
    def updateVars(self):
        self.event.mode = self.modeCombo.get_active()
        if self.tzCheck:
            self.event.timeZoneEnable = self.tzCheck.get_active()
            self.event.timeZone = self.tzCombo.get_text()
        else:
            self.event.timeZoneEnable = False ## FIXME
        self.event.summary = self.summaryEntry.get_text()
        self.event.description = self.descriptionInput.get_text()
        self.event.icon = self.iconSelect.get_filename()
        #####
        for attr in ('notificationBox', 'filesBox'):
            try:
                getattr(self, attr).updateVars()
            except AttributeError:
                pass
        #####
    def modeComboChanged(self, obj=None):## FIXME
        pass
Пример #7
0
class WidgetClass(gtk.VBox):
	def __init__(self, event):## FIXME
		gtk.VBox.__init__(self)
		self.event = event
		assert event.parent.name == "universityTerm" ## FIXME
		sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
		#####
		if not event.parent.courses:
			showError(event.parent.noCourseError, ui.eventManDialog)
			raise RuntimeError("No courses added")
		self.courseIds = []
		self.courseNames = []
		combo = gtk.ComboBoxText()
		for course in event.parent.courses:
			self.courseIds.append(course[0])
			self.courseNames.append(course[1])
			combo.append_text(course[1])
		#combo.connect("changed", self.updateSummary)
		self.courseCombo = combo
		##
		hbox = gtk.HBox()
		label = gtk.Label(_("Course"))
		label.set_alignment(0, 0.5)
		sizeGroup.add_widget(label)
		pack(hbox, label)
		pack(hbox, combo)
		##
		pack(self, hbox)
		#####
		hbox = gtk.HBox()
		label = gtk.Label(_("Week"))
		label.set_alignment(0, 0.5)
		sizeGroup.add_widget(label)
		pack(hbox, label)
		weekNumModeRule, ok = event["weekNumMode"]
		if not ok:
			raise RuntimeError("no weekNumMode rule")
		self.weekNumModeCombo = WeekNumModeWidgetClass(weekNumModeRule)
		pack(hbox, self.weekNumModeCombo)
		pack(self, hbox)
		#####
		hbox = gtk.HBox()
		label = gtk.Label(_("Week Day"))
		label.set_alignment(0, 0.5)
		sizeGroup.add_widget(label)
		pack(hbox, label)
		self.weekDayCombo = WeekDayComboBox()
		#self.weekDayCombo.connect("changed", self.updateSummary)
		pack(hbox, self.weekDayCombo)
		pack(self, hbox)
		#####
		hbox = gtk.HBox()
		label = gtk.Label(_("Time"))
		label.set_alignment(0, 0.5)
		sizeGroup.add_widget(label)
		pack(hbox, label)
		##
		self.dayTimeStartCombo = HourMinuteButtonOption()
		self.dayTimeEndCombo = HourMinuteButtonOption()
		##
		#self.dayTimeStartCombo.get_child().set_direction(gtk.TextDirection.LTR)
		#self.dayTimeEndCombo.get_child().set_direction(gtk.TextDirection.LTR)
		##
		pack(hbox, self.dayTimeStartCombo)
		pack(hbox, gtk.Label(" " + _("to") + " "))
		pack(hbox, self.dayTimeEndCombo)
		pack(self, hbox)
		###########
		#hbox = gtk.HBox()
		#label = gtk.Label(_("Summary"))
		#label.set_alignment(0, 0.5)
		#sizeGroup.add_widget(label)
		#pack(hbox, label)
		#self.summaryEntry = gtk.Entry()
		#pack(hbox, self.summaryEntry, 1, 1)
		#pack(self, hbox)
		#####
		hbox = gtk.HBox()
		label = gtk.Label(_("Description"))
		label.set_alignment(0, 0.5)
		sizeGroup.add_widget(label)
		pack(hbox, label)
		self.descriptionInput = TextFrame()
		pack(hbox, self.descriptionInput, 1, 1)
		pack(self, hbox)
		#####
		hbox = gtk.HBox()
		label = gtk.Label(_("Icon"))
		label.set_alignment(0, 0.5)
		sizeGroup.add_widget(label)
		pack(hbox, label)
		self.iconSelect = IconSelectButton()
		#print(join(pixDir, self.icon))
		pack(hbox, self.iconSelect)
		pack(hbox, gtk.Label(""), 1, 1)
		pack(self, hbox)
		######
		self.notificationBox = common.NotificationBox(event)
		pack(self, self.notificationBox)
		######
		#self.filesBox = common.FilesBox(self.event)
		#pack(self, self.filesBox)
		######
		self.courseCombo.set_active(0)
		#self.updateSummary()

	def focusSummary(self):
		pass

	#def updateSummary(self, widget=None):
	#	courseIndex = self.courseCombo.get_active()
	#	summary = (
	#		_("%s Class")%self.courseNames[courseIndex] +
	#		" (" +
	#		self.weekDayCombo.get_active_text() +
	#		")"
	#	)
	#	self.summaryEntry.set_text(summary)
	#	self.event.summary = summary

	def updateWidget(self):## FIXME
		if self.event.courseId is None:
			pass
		else:
			self.courseCombo.set_active(self.courseIds.index(self.event.courseId))
		##
		self.weekNumModeCombo.updateWidget()
		weekDayRule, ok = self.event["weekDay"]
		if not ok:
			raise RuntimeError("no weekDay rule")
		weekDayList = weekDayRule.weekDayList
		if len(weekDayList) == 1:
			self.weekDayCombo.setValue(weekDayList[0])  # FIXME
		else:
			self.weekDayCombo.set_active(0)
		##
		self.dayTimeStartCombo.clear_history()
		self.dayTimeEndCombo.clear_history()
		for hm in reversed(self.event.parent.classTimeBounds):
			for combo in (self.dayTimeStartCombo, self.dayTimeEndCombo):
				combo.set_value(hm)
				combo.add_history()
		timeRangeRule, ok = self.event["dayTimeRange"]
		if not ok:
			raise RuntimeError("no dayTimeRange rule")
		self.dayTimeStartCombo.set_value(timeRangeRule.dayTimeStart)
		self.dayTimeEndCombo.set_value(timeRangeRule.dayTimeEnd)
		####
		#self.summaryEntry.set_text(self.event.summary)
		self.descriptionInput.set_text(self.event.description)
		self.iconSelect.set_filename(self.event.icon)
		####
		self.notificationBox.updateWidget()
		####
		#self.filesBox.updateWidget()

	def updateVars(self):## FIXME
		courseIndex = self.courseCombo.get_active()
		if courseIndex is None:
			showError(_("No course is selected"), ui.eventManDialog)
			raise RuntimeError("No courses is selected")
		else:
			self.event.courseId = self.courseIds[courseIndex]
		##
		self.weekNumModeCombo.updateVars()
		##
		weekDay, ok = self.event["weekDay"]
		if not ok:
			raise RuntimeError("no weekDay rule")
		weekDay.weekDayList = [self.weekDayCombo.getValue()]## FIXME
		##
		dayTimeRange, ok = self.event["dayTimeRange"]
		if not ok:
			raise RuntimeError("no dayTimeRange rule")
		dayTimeRange.setRange(
			self.dayTimeStartCombo.get_value(),
			self.dayTimeEndCombo.get_value(),
		)
		####
		#self.event.summary = self.summaryEntry.get_text()
		self.event.description = self.descriptionInput.get_text()
		self.event.icon = self.iconSelect.get_filename()
		####
		self.notificationBox.updateVars()
		self.event.updateSummary()
Пример #8
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):## FIXME
        gtk.VBox.__init__(self)
        self.event = event
        assert event.parent.name == 'universityTerm' ## FIXME
        sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
        #####
        if not event.parent.courses:
            showError(event.parent.noCourseError, ui.eventManDialog)
            raise RuntimeError('No courses added')
        self.courseIds = []
        self.courseNames = []
        combo = gtk.ComboBoxText()
        for course in event.parent.courses:
            self.courseIds.append(course[0])
            self.courseNames.append(course[1])
            combo.append_text(course[1])
        #combo.connect('changed', self.updateSummary)
        self.courseCombo = combo
        ##
        hbox = gtk.HBox()
        label = gtk.Label(_('Course'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        pack(hbox, combo)
        ##
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Week'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.weekNumModeCombo = WeekNumModeWidgetClass(event['weekNumMode'])
        pack(hbox, self.weekNumModeCombo)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Week Day'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.weekDayCombo = WeekDayComboBox()
        #self.weekDayCombo.connect('changed', self.updateSummary)
        pack(hbox, self.weekDayCombo)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Time'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        ##
        self.dayTimeStartCombo = HourMinuteButtonOption()
        self.dayTimeEndCombo = HourMinuteButtonOption()
        ##
        #self.dayTimeStartCombo.get_child().set_direction(gtk.TextDirection.LTR)
        #self.dayTimeEndCombo.get_child().set_direction(gtk.TextDirection.LTR)
        ##
        pack(hbox, self.dayTimeStartCombo)
        pack(hbox, gtk.Label(' ' + _('to') + ' '))
        pack(hbox, self.dayTimeEndCombo)
        pack(self, hbox)
        ###########
        #hbox = gtk.HBox()
        #label = gtk.Label(_('Summary'))
        #label.set_alignment(0, 0.5)
        #sizeGroup.add_widget(label)
        #pack(hbox, label)
        #self.summaryEntry = gtk.Entry()
        #pack(hbox, self.summaryEntry, 1, 1)
        #pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Description'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.descriptionInput = TextFrame()
        pack(hbox, self.descriptionInput, 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Icon'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        pack(hbox, label)
        self.iconSelect = IconSelectButton()
        #print(join(pixDir, self.icon))
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        ######
        self.notificationBox = common.NotificationBox(event)
        pack(self, self.notificationBox)
        ######
        #self.filesBox = common.FilesBox(self.event)
        #pack(self, self.filesBox)
        ######
        self.courseCombo.set_active(0)
        #self.updateSummary()
    def focusSummary(self):
        pass
    #def updateSummary(self, widget=None):
    #    courseIndex = self.courseCombo.get_active()
    #    summary = _('%s Class')%self.courseNames[courseIndex] + ' (' + self.weekDayCombo.get_active_text() + ')'
    #    self.summaryEntry.set_text(summary)
    #    self.event.summary = summary
    def updateWidget(self):## FIXME
        if self.event.courseId is None:
            pass
        else:
            self.courseCombo.set_active(self.courseIds.index(self.event.courseId))
        ##
        self.weekNumModeCombo.updateWidget()
        weekDayList = self.event['weekDay'].weekDayList
        if len(weekDayList)==1:
            self.weekDayCombo.setValue(weekDayList[0])## FIXME
        else:
            self.weekDayCombo.set_active(0)
        ##
        self.dayTimeStartCombo.clear_history()
        self.dayTimeEndCombo.clear_history()
        for hm in reversed(self.event.parent.classTimeBounds):
            for combo in (self.dayTimeStartCombo, self.dayTimeEndCombo):
                combo.set_value(hm)
                combo.add_history()
        timeRangeRule = self.event['dayTimeRange']
        self.dayTimeStartCombo.set_value(timeRangeRule.dayTimeStart)
        self.dayTimeEndCombo.set_value(timeRangeRule.dayTimeEnd)
        ####
        #self.summaryEntry.set_text(self.event.summary)
        self.descriptionInput.set_text(self.event.description)
        self.iconSelect.set_filename(self.event.icon)
        ####
        self.notificationBox.updateWidget()
        ####
        #self.filesBox.updateWidget()
    def updateVars(self):## FIXME
        courseIndex = self.courseCombo.get_active()
        if courseIndex is None:
            showError(_('No course is selected'), ui.eventManDialog)
            raise RuntimeError('No courses is selected')
        else:
            self.event.courseId = self.courseIds[courseIndex]
        ##
        self.weekNumModeCombo.updateVars()
        self.event['weekDay'].weekDayList = [self.weekDayCombo.getValue()]## FIXME
        ##
        self.event['dayTimeRange'].setRange(
            self.dayTimeStartCombo.get_value(),
            self.dayTimeEndCombo.get_value(),
        )
        ####
        #self.event.summary = self.summaryEntry.get_text()
        self.event.description = self.descriptionInput.get_text()
        self.event.icon = self.iconSelect.get_filename()
        ####
        self.notificationBox.updateVars()
        self.event.updateSummary()
Пример #9
0
class BaseWidgetClass(gtk.VBox):
    def __init__(self, group):
        from scal3.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
        gtk.VBox.__init__(self)
        self.group = group
        ########
        self.sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Title'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.titleEntry = gtk.Entry()
        pack(hbox, self.titleEntry, 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Color'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.colorButton = MyColorButton()
        self.colorButton.set_use_alpha(True) ## FIXME
        pack(hbox, self.colorButton)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Default Icon'))## FIXME
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.iconSelect = IconSelectButton()
        pack(hbox, self.iconSelect)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Default Calendar Type'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        combo = CalTypeCombo()
        pack(hbox, combo)
        pack(hbox, gtk.Label(''), 1, 1)
        self.modeCombo = combo
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Show in Calendar'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.showInDCalCheck = gtk.CheckButton(_('Day'))
        self.showInWCalCheck = gtk.CheckButton(_('Week'))
        self.showInMCalCheck = gtk.CheckButton(_('Month'))
        pack(hbox, self.showInDCalCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(hbox, self.showInWCalCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(hbox, self.showInMCalCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Show in'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.showInTimeLineCheck = gtk.CheckButton(_('Time Line'))
        self.showInStatusIconCheck = gtk.CheckButton(_('Status Icon'))
        pack(hbox, self.showInTimeLineCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(hbox, self.showInStatusIconCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Event Cache Size'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.cacheSizeSpin = IntSpinButton(0, 9999)
        pack(hbox, self.cacheSizeSpin)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Event Text Seperator'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.sepInput = TextFrame()
        pack(hbox, self.sepInput, 1, 1)
        pack(self, hbox)
        set_tooltip(hbox, _('Using to seperate Summary and Description when displaying event'))
        #####
        #hbox = gtk.HBox()
        #label = gtk.Label(_('Show Full Event Description'))
        #label.set_alignment(0, 0.5)
        #pack(hbox, label)
        #self.sizeGroup.add_widget(label)
        #self.showFullEventDescCheck = gtk.CheckButton('')
        #pack(hbox, self.showFullEventDescCheck, 1, 1)
        #pack(self, hbox)
        ###
        self.modeCombo.connect('changed', self.modeComboChanged)## right place? before updateWidget? FIXME
    def updateWidget(self):
        self.titleEntry.set_text(self.group.title)
        self.colorButton.set_color(self.group.color)
        self.iconSelect.set_filename(self.group.icon)
        self.modeCombo.set_active(self.group.mode)
        self.showInDCalCheck.set_active(self.group.showInDCal)
        self.showInWCalCheck.set_active(self.group.showInWCal)
        self.showInMCalCheck.set_active(self.group.showInMCal)
        self.showInTimeLineCheck.set_active(self.group.showInTimeLine)
        self.showInStatusIconCheck.set_active(self.group.showInStatusIcon)
        self.cacheSizeSpin.set_value(self.group.eventCacheSize)
        self.sepInput.set_text(self.group.eventTextSep)
        #self.showFullEventDescCheck.set_active(self.group.showFullEventDesc)
    def updateVars(self):
        self.group.title = self.titleEntry.get_text()
        self.group.color = self.colorButton.get_color()
        self.group.icon = self.iconSelect.get_filename()
        self.group.mode = self.modeCombo.get_active()
        self.group.showInDCal = self.showInDCalCheck.get_active()
        self.group.showInWCal = self.showInWCalCheck.get_active()
        self.group.showInMCal = self.showInMCalCheck.get_active()
        self.group.showInTimeLine = self.showInTimeLineCheck.get_active()
        self.group.showInStatusIcon = self.showInStatusIconCheck.get_active()
        self.group.eventCacheSize = int(self.cacheSizeSpin.get_value())
        self.group.eventTextSep = self.sepInput.get_text()
        #self.group.showFullEventDesc = self.showFullEventDescCheck.get_active()
    def modeComboChanged(self, obj=None):
        pass
Пример #10
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):
        from scal3.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
        from scal3.ui_gtk.mywidgets.tz_combo import TimeZoneComboBoxEntry
        gtk.VBox.__init__(self)
        self.event = event
        ###########
        hbox = gtk.HBox()
        ###
        pack(hbox, gtk.Label(_('Calendar Type')))
        combo = CalTypeCombo()
        combo.set_active(calTypes.primary)## overwritten in updateWidget()
        pack(hbox, combo)
        pack(hbox, gtk.Label(''), 1, 1)
        self.modeCombo = combo
        ###
        pack(self, hbox)
        ###########
        if event.isAllDay:
            self.tzCheck = None
        else:
            hbox = gtk.HBox()
            self.tzCheck = gtk.CheckButton(_('Time Zone'))
            set_tooltip(self.tzCheck, _('For input times of event'))
            pack(hbox, self.tzCheck)
            combo = TimeZoneComboBoxEntry()
            pack(hbox, combo)
            pack(hbox, gtk.Label(''), 1, 1)
            self.tzCombo = combo
            pack(self, hbox)
            self.tzCheck.connect('clicked', lambda check: self.tzCombo.set_sensitive(check.get_active()))
        ###########
        hbox = gtk.HBox()
        pack(hbox, gtk.Label(_('Summary')))
        self.summaryEntry = gtk.Entry()
        pack(hbox, self.summaryEntry, 1, 1)
        pack(self, hbox)
        ###########
        self.descriptionInput = TextFrame()
        swin = gtk.ScrolledWindow()
        swin.set_policy(gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC)
        swin.add_with_viewport(self.descriptionInput)
        ###
        exp = gtk.Expander()
        exp.set_expanded(True)
        exp.set_label(_('Description'))
        exp.add(swin)
        pack(self, exp, 1, 1)
        ###########
        hbox = gtk.HBox()
        pack(hbox, gtk.Label(_('Icon')+':'))
        self.iconSelect = IconSelectButton()
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        ##########
        self.modeCombo.connect('changed', self.modeComboChanged)## right place? before updateWidget? FIXME
    def focusSummary(self):
        self.summaryEntry.select_region(0, -1)
        self.summaryEntry.grab_focus()
    def updateWidget(self):
        #print('updateWidget', self.event.files)
        self.modeCombo.set_active(self.event.mode)
        if self.tzCheck:
            if self.event.timeZone:
                self.tzCheck.set_active(self.event.timeZoneEnable)
                self.tzCombo.set_sensitive(self.event.timeZoneEnable)
                self.tzCombo.set_text(self.event.timeZone)
            else:
                self.tzCheck.set_active(False)
                self.tzCombo.set_sensitive(False)
        ###
        self.summaryEntry.set_text(self.event.summary)
        self.descriptionInput.set_text(self.event.description)
        self.iconSelect.set_filename(self.event.icon)
        #####
        for attr in ('notificationBox', 'filesBox'):
            try:
                getattr(self, attr).updateWidget()
            except AttributeError:
                pass
        #####
        self.modeComboChanged()
    def updateVars(self):
        self.event.mode = self.modeCombo.get_active()
        if self.tzCheck:
            self.event.timeZoneEnable = self.tzCheck.get_active()
            self.event.timeZone = self.tzCombo.get_text()
        else:
            self.event.timeZoneEnable = False ## FIXME
        self.event.summary = self.summaryEntry.get_text()
        self.event.description = self.descriptionInput.get_text()
        self.event.icon = self.iconSelect.get_filename()
        #####
        for attr in ('notificationBox', 'filesBox'):
            try:
                getattr(self, attr).updateVars()
            except AttributeError:
                pass
        #####
    def modeComboChanged(self, obj=None):## FIXME
        pass
Пример #11
0
class BaseWidgetClass(gtk.VBox):
    def __init__(self, group):
        from scal3.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
        gtk.VBox.__init__(self)
        self.group = group
        ########
        self.sizeGroup = gtk.SizeGroup(gtk.SizeGroupMode.HORIZONTAL)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Title'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.titleEntry = gtk.Entry()
        pack(hbox, self.titleEntry, 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Color'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.colorButton = MyColorButton()
        self.colorButton.set_use_alpha(True)  ## FIXME
        pack(hbox, self.colorButton)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Default Icon'))  ## FIXME
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.iconSelect = IconSelectButton()
        pack(hbox, self.iconSelect)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Default Calendar Type'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        combo = CalTypeCombo()
        pack(hbox, combo)
        pack(hbox, gtk.Label(''), 1, 1)
        self.modeCombo = combo
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Show in Calendar'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.showInDCalCheck = gtk.CheckButton(_('Day'))
        self.showInWCalCheck = gtk.CheckButton(_('Week'))
        self.showInMCalCheck = gtk.CheckButton(_('Month'))
        pack(hbox, self.showInDCalCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(hbox, self.showInWCalCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(hbox, self.showInMCalCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Show in'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.showInTimeLineCheck = gtk.CheckButton(_('Time Line'))
        self.showInStatusIconCheck = gtk.CheckButton(_('Status Icon'))
        pack(hbox, self.showInTimeLineCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(hbox, self.showInStatusIconCheck)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Event Cache Size'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.cacheSizeSpin = IntSpinButton(0, 9999)
        pack(hbox, self.cacheSizeSpin)
        pack(self, hbox)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Event Text Seperator'))
        label.set_alignment(0, 0.5)
        pack(hbox, label)
        self.sizeGroup.add_widget(label)
        self.sepInput = TextFrame()
        pack(hbox, self.sepInput, 1, 1)
        pack(self, hbox)
        set_tooltip(
            hbox,
            _('Using to seperate Summary and Description when displaying event'
              ))
        #####
        #hbox = gtk.HBox()
        #label = gtk.Label(_('Show Full Event Description'))
        #label.set_alignment(0, 0.5)
        #pack(hbox, label)
        #self.sizeGroup.add_widget(label)
        #self.showFullEventDescCheck = gtk.CheckButton('')
        #pack(hbox, self.showFullEventDescCheck, 1, 1)
        #pack(self, hbox)
        ###
        self.modeCombo.connect(
            'changed',
            self.modeComboChanged)  ## right place? before updateWidget? FIXME

    def updateWidget(self):
        self.titleEntry.set_text(self.group.title)
        self.colorButton.set_color(self.group.color)
        self.iconSelect.set_filename(self.group.icon)
        self.modeCombo.set_active(self.group.mode)
        self.showInDCalCheck.set_active(self.group.showInDCal)
        self.showInWCalCheck.set_active(self.group.showInWCal)
        self.showInMCalCheck.set_active(self.group.showInMCal)
        self.showInTimeLineCheck.set_active(self.group.showInTimeLine)
        self.showInStatusIconCheck.set_active(self.group.showInStatusIcon)
        self.cacheSizeSpin.set_value(self.group.eventCacheSize)
        self.sepInput.set_text(self.group.eventTextSep)
        #self.showFullEventDescCheck.set_active(self.group.showFullEventDesc)
    def updateVars(self):
        self.group.title = self.titleEntry.get_text()
        self.group.color = self.colorButton.get_color()
        self.group.icon = self.iconSelect.get_filename()
        self.group.mode = self.modeCombo.get_active()
        self.group.showInDCal = self.showInDCalCheck.get_active()
        self.group.showInWCal = self.showInWCalCheck.get_active()
        self.group.showInMCal = self.showInMCalCheck.get_active()
        self.group.showInTimeLine = self.showInTimeLineCheck.get_active()
        self.group.showInStatusIcon = self.showInStatusIconCheck.get_active()
        self.group.eventCacheSize = int(self.cacheSizeSpin.get_value())
        self.group.eventTextSep = self.sepInput.get_text()
        #self.group.showFullEventDesc = self.showFullEventDescCheck.get_active()
    def modeComboChanged(self, obj=None):
        pass