Example #1
0
 def __init__(self, event):
     from scal2.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
     from scal2.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.POLICY_AUTOMATIC, gtk.POLICY_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
Example #2
0
 def __init__(self, event):
     from scal2.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
     from scal2.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.POLICY_AUTOMATIC, gtk.POLICY_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
Example #3
0
 def __init__(self, event):
     gtk.VBox.__init__(self)
     self.event = event
     ###########
     hbox = gtk.HBox()
     ###
     hbox.pack_start(gtk.Label(_('Calendar Type')+':'), 0, 0)
     combo = DateTypeCombo()
     combo.set_active(core.primaryMode)## overwritten in updateWidget()
     hbox.pack_start(combo, 0, 0)
     hbox.pack_start(gtk.Label(''), 1, 1)
     self.modeCombo = combo
     ###
     self.pack_start(hbox, 0, 0)
     ###########
     hbox = gtk.HBox()
     hbox.pack_start(gtk.Label(_('Summary')), 0, 0)
     self.summaryEntry = gtk.Entry()
     hbox.pack_start(self.summaryEntry, 1, 1)
     self.pack_start(hbox, 0, 0)
     ###########
     hbox = gtk.HBox()
     hbox.pack_start(gtk.Label(_('Description')), 0, 0)
     self.descriptionInput = TextFrame()
     hbox.pack_start(self.descriptionInput, 1, 1)
     self.pack_start(hbox, 0, 0)
     ###########
     hbox = gtk.HBox()
     hbox.pack_start(gtk.Label(_('Icon')+':'), 0, 0)
     self.iconSelect = IconSelectButton()
     #print join(pixDir, self.icon)
     hbox.pack_start(self.iconSelect, 0, 0)
     hbox.pack_start(gtk.Label(''), 1, 1)
     self.pack_start(hbox, 0, 0)
     ##########
     self.modeCombo.connect('changed', self.modeComboChanged)## right place? before updateWidget? FIXME
Example #4
0
class GroupBulkEditDialog(gtk.Dialog):
    def __init__(self, group):
        self._group = group
        gtk.Dialog.__init__(self)
        self.set_title(_('Bulk Edit Events'))
        ####
        dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'), gtk.RESPONSE_CANCEL)
        dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.RESPONSE_OK)
        ##
        self.connect('response', lambda w, e: self.hide())
        ####
        label = gtk.Label(_('Here you are going to modify all events inside group "%s" at once. You better make a backup from you events before doing this. Just right click on group and select "Export" (or a full backup: menu File -> Export)')%group.title+'\n\n')
        label.set_line_wrap(True)
        pack(self.vbox, label)
        ####
        hbox = gtk.HBox()
        self.iconRadio = gtk.RadioButton(label=_('Icon'))
        pack(hbox, self.iconRadio, 1, 1)
        self.summaryRadio = gtk.RadioButton(label=_('Summary'), group=self.iconRadio)
        pack(hbox, self.summaryRadio, 1, 1)
        self.descriptionRadio = gtk.RadioButton(label=_('Description'), group=self.iconRadio)
        pack(hbox, self.descriptionRadio, 1, 1)
        self.timeZoneRadio = gtk.RadioButton(label=_('Time Zone'), group=self.iconRadio)
        pack(hbox, self.timeZoneRadio, 1, 1)
        pack(self.vbox, hbox)
        ###
        self.iconRadio.connect('clicked', self.firstRadioChanged)
        self.summaryRadio.connect('clicked', self.firstRadioChanged)
        self.descriptionRadio.connect('clicked', self.firstRadioChanged)
        self.timeZoneRadio.connect('clicked', self.firstRadioChanged)
        ####
        hbox = gtk.HBox()
        self.iconChangeCombo = gtk.combo_box_new_text()
        self.iconChangeCombo.append_text('----')
        self.iconChangeCombo.append_text(_('Change'))
        self.iconChangeCombo.append_text(_('Change if empty'))
        pack(hbox, self.iconChangeCombo)
        pack(hbox, gtk.Label('  '))
        self.iconSelect = IconSelectButton()
        self.iconSelect.set_filename(group.icon)
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self.vbox, hbox)
        self.iconHbox = hbox
        ####
        self.textVbox = gtk.VBox()
        ###
        hbox = gtk.HBox()
        self.textChangeCombo = gtk.combo_box_new_text()
        self.textChangeCombo.append_text('----')
        self.textChangeCombo.append_text(_('Add to beginning'))
        self.textChangeCombo.append_text(_('Add to end'))
        self.textChangeCombo.append_text(_('Replace text'))
        self.textChangeCombo.connect('changed', self.textChangeComboChanged)
        pack(hbox, self.textChangeCombo)
        pack(hbox, gtk.Label(''), 1, 1)
        ## CheckButton(_('Regexp'))
        pack(self.textVbox, hbox)
        ###
        self.textInput1 = TextFrame()
        pack(self.textVbox, self.textInput1, 1, 1)
        ###
        hbox = gtk.HBox()
        pack(hbox, gtk.Label(_('with')))
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self.textVbox, hbox, 1, 1)
        self.withHbox = hbox
        ###
        self.textInput2 = TextFrame()
        pack(self.textVbox, self.textInput2, 1, 1)
        ####
        pack(self.vbox, self.textVbox, 1, 1)
        ####
        hbox = gtk.HBox()
        self.timeZoneChangeCombo = gtk.combo_box_new_text()
        self.timeZoneChangeCombo.append_text('----')
        self.timeZoneChangeCombo.append_text(_('Change'))
        self.timeZoneChangeCombo.append_text(_('Change if empty'))
        pack(hbox, self.timeZoneChangeCombo)
        pack(hbox, gtk.Label('  '))
        self.timeZoneInput = TimeZoneComboBoxEntry()
        pack(hbox, self.timeZoneInput)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self.vbox, hbox, 1, 1)
        self.timeZoneHbox = hbox
        ####
        self.vbox.show_all()
        self.iconRadio.set_active(True)
        self.iconChangeCombo.set_active(0)
        self.textChangeCombo.set_active(0)
        self.firstRadioChanged()
    def firstRadioChanged(self, w=None):
        if self.iconRadio.get_active():
            self.iconHbox.show()
            self.textVbox.hide()
            self.timeZoneHbox.hide()
        elif self.timeZoneRadio.get_active():
            self.iconHbox.hide()
            self.textVbox.hide()
            self.timeZoneHbox.show()
        elif self.summaryRadio.get_active() or self.descriptionRadio.get_active():
            self.iconHbox.hide()
            self.textChangeComboChanged()
            self.timeZoneHbox.hide()
    def textChangeComboChanged(self, w=None):
        self.textVbox.show_all()
        chType = self.textChangeCombo.get_active()
        if chType==0:
            self.textInput1.hide()
            self.withHbox.hide()
            self.textInput2.hide()
        elif chType in (1, 2):
            self.withHbox.hide()
            self.textInput2.hide()
    def doAction(self):
        group = self._group
        if self.iconRadio.get_active():
            chType = self.iconChangeCombo.get_active()
            if chType!=0:
                icon = self.iconSelect.get_filename()
                for event in group:
                    if not (chType==2 and event.icon):
                        event.icon = icon
                        event.afterModify()
                        event.save()
        elif self.timeZoneRadio.get_active():
            chType = self.timeZoneChangeCombo.get_active()
            timeZone = self.timeZoneInput.get_text()
            if chType!=0:
                try:
                    pytz.timezone(timeZone)
                except:
                    myRaise('Invalid Time Zone "%s"'%timeZone)
                else:
                    for event in group:
                        if not (chType==2 and event.timeZone):
                            event.timeZone = timeZone
                            event.afterModify()
                            event.save()
        else:
            chType = self.textChangeCombo.get_active()
            if chType!=0:
                text1 = self.textInput1.get_text()
                text2 = self.textInput2.get_text()
                if self.summaryRadio.get_active():
                    for event in group:
                        if chType==1:
                            event.summary = text1 + event.summary
                        elif chType==2:
                            event.summary = event.summary + text1
                        elif chType==3:
                            event.summary = event.summary.replace(text1, text2)
                        event.afterModify()
                        event.save()
                elif self.descriptionRadio.get_active():
                    for event in group:
                        if chType==1:
                            event.description = text1 + event.description
                        elif chType==2:
                            event.description = event.description + text1
                        elif chType==3:
                            event.description = event.description.replace(text1, text2)
                        event.afterModify()
                        event.save()
Example #5
0
 def __init__(self, group):
     self._group = group
     gtk.Dialog.__init__(self)
     self.set_title(_('Bulk Edit Events'))
     ####
     dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'), gtk.RESPONSE_CANCEL)
     dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.RESPONSE_OK)
     ##
     self.connect('response', lambda w, e: self.hide())
     ####
     label = gtk.Label(_('Here you are going to modify all events inside group "%s" at once. You better make a backup from you events before doing this. Just right click on group and select "Export" (or a full backup: menu File -> Export)')%group.title+'\n\n')
     label.set_line_wrap(True)
     pack(self.vbox, label)
     ####
     hbox = gtk.HBox()
     self.iconRadio = gtk.RadioButton(label=_('Icon'))
     pack(hbox, self.iconRadio, 1, 1)
     self.summaryRadio = gtk.RadioButton(label=_('Summary'), group=self.iconRadio)
     pack(hbox, self.summaryRadio, 1, 1)
     self.descriptionRadio = gtk.RadioButton(label=_('Description'), group=self.iconRadio)
     pack(hbox, self.descriptionRadio, 1, 1)
     self.timeZoneRadio = gtk.RadioButton(label=_('Time Zone'), group=self.iconRadio)
     pack(hbox, self.timeZoneRadio, 1, 1)
     pack(self.vbox, hbox)
     ###
     self.iconRadio.connect('clicked', self.firstRadioChanged)
     self.summaryRadio.connect('clicked', self.firstRadioChanged)
     self.descriptionRadio.connect('clicked', self.firstRadioChanged)
     self.timeZoneRadio.connect('clicked', self.firstRadioChanged)
     ####
     hbox = gtk.HBox()
     self.iconChangeCombo = gtk.combo_box_new_text()
     self.iconChangeCombo.append_text('----')
     self.iconChangeCombo.append_text(_('Change'))
     self.iconChangeCombo.append_text(_('Change if empty'))
     pack(hbox, self.iconChangeCombo)
     pack(hbox, gtk.Label('  '))
     self.iconSelect = IconSelectButton()
     self.iconSelect.set_filename(group.icon)
     pack(hbox, self.iconSelect)
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.vbox, hbox)
     self.iconHbox = hbox
     ####
     self.textVbox = gtk.VBox()
     ###
     hbox = gtk.HBox()
     self.textChangeCombo = gtk.combo_box_new_text()
     self.textChangeCombo.append_text('----')
     self.textChangeCombo.append_text(_('Add to beginning'))
     self.textChangeCombo.append_text(_('Add to end'))
     self.textChangeCombo.append_text(_('Replace text'))
     self.textChangeCombo.connect('changed', self.textChangeComboChanged)
     pack(hbox, self.textChangeCombo)
     pack(hbox, gtk.Label(''), 1, 1)
     ## CheckButton(_('Regexp'))
     pack(self.textVbox, hbox)
     ###
     self.textInput1 = TextFrame()
     pack(self.textVbox, self.textInput1, 1, 1)
     ###
     hbox = gtk.HBox()
     pack(hbox, gtk.Label(_('with')))
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.textVbox, hbox, 1, 1)
     self.withHbox = hbox
     ###
     self.textInput2 = TextFrame()
     pack(self.textVbox, self.textInput2, 1, 1)
     ####
     pack(self.vbox, self.textVbox, 1, 1)
     ####
     hbox = gtk.HBox()
     self.timeZoneChangeCombo = gtk.combo_box_new_text()
     self.timeZoneChangeCombo.append_text('----')
     self.timeZoneChangeCombo.append_text(_('Change'))
     self.timeZoneChangeCombo.append_text(_('Change if empty'))
     pack(hbox, self.timeZoneChangeCombo)
     pack(hbox, gtk.Label('  '))
     self.timeZoneInput = TimeZoneComboBoxEntry()
     pack(hbox, self.timeZoneInput)
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.vbox, hbox, 1, 1)
     self.timeZoneHbox = hbox
     ####
     self.vbox.show_all()
     self.iconRadio.set_active(True)
     self.iconChangeCombo.set_active(0)
     self.textChangeCombo.set_active(0)
     self.firstRadioChanged()
Example #6
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.SIZE_GROUP_HORIZONTAL)
		#####
		if not event.parent.courses:
			showError(event.parent.noCourseError)
			raise RuntimeError('No courses added')
		self.courseIds = []
		self.courseNames = []
		combo = gtk.combo_box_new_text()
		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.TEXT_DIR_LTR)
		#self.dayTimeEndCombo.get_child().set_direction(gtk.TEXT_DIR_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'), self)
			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
Example #7
0
	def __init__(self, event):## FIXME
		gtk.VBox.__init__(self)
		self.event = event
		assert event.parent.name == 'universityTerm' ## FIXME
		sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
		#####
		if not event.parent.courses:
			showError(event.parent.noCourseError)
			raise RuntimeError('No courses added')
		self.courseIds = []
		self.courseNames = []
		combo = gtk.combo_box_new_text()
		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.TEXT_DIR_LTR)
		#self.dayTimeEndCombo.get_child().set_direction(gtk.TEXT_DIR_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)
Example #8
0
 def __init__(self, group):
     from scal2.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
     gtk.VBox.__init__(self)
     self.group = group
     ########
     self.sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_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
Example #9
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.SIZE_GROUP_HORIZONTAL)
		#####
		if not event.parent.courses:
			showError(event.parent.noCourseError)
			raise RuntimeError('No courses added')
		self.courseIds = []
		self.courseNames = []
		combo = gtk.combo_box_new_text()
		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.TEXT_DIR_LTR)
		#self.dayTimeEndCombo.get_child().set_direction(gtk.TEXT_DIR_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'), self)
			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()
Example #10
0
 def __init__(self, event):## FIXME
     gtk.VBox.__init__(self)
     self.event = event
     assert event.parent.name == 'universityTerm' ## FIXME
     sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     #####
     if not event.parent.courses:
         showError(event.parent.noCourseError)
         raise RuntimeError('No courses added')
     self.courseIds = []
     self.courseNames = []
     combo = gtk.combo_box_new_text()
     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)
     hbox.pack_start(label, 0, 0)
     hbox.pack_start(combo, 0, 0)
     ##
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Week'))
     label.set_alignment(0, 0.5)
     sizeGroup.add_widget(label)
     hbox.pack_start(label, 0, 0)
     self.weekNumModeCombo = WeekNumModeRuleWidget(event['weekNumMode'])
     hbox.pack_start(self.weekNumModeCombo, 0, 0)
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Week Day'))
     label.set_alignment(0, 0.5)
     sizeGroup.add_widget(label)
     hbox.pack_start(label, 0, 0)
     self.weekDayCombo = WeekDayComboBox()
     #self.weekDayCombo.connect('changed', self.updateSummary)
     hbox.pack_start(self.weekDayCombo, 0, 0)
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Time'))
     label.set_alignment(0, 0.5)
     sizeGroup.add_widget(label)
     hbox.pack_start(label, 0, 0)
     ##
     self.dayTimeStartCombo = HourMinuteButtonOption()
     self.dayTimeEndCombo = HourMinuteButtonOption()
     ##
     #self.dayTimeStartCombo.child.set_direction(gtk.TEXT_DIR_LTR)
     #self.dayTimeEndCombo.child.set_direction(gtk.TEXT_DIR_LTR)
     ##
     hbox.pack_start(self.dayTimeStartCombo, 0, 0)
     hbox.pack_start(gtk.Label(' ' + _('to') + ' '), 0, 0)
     hbox.pack_start(self.dayTimeEndCombo, 0, 0)
     self.pack_start(hbox, 0, 0)
     ###########
     #hbox = gtk.HBox()
     #label = gtk.Label(_('Summary'))
     #label.set_alignment(0, 0.5)
     #sizeGroup.add_widget(label)
     #hbox.pack_start(label, 0, 0)
     #self.summaryEntry = gtk.Entry()
     #hbox.pack_start(self.summaryEntry, 1, 1)
     #self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Description'))
     label.set_alignment(0, 0.5)
     sizeGroup.add_widget(label)
     hbox.pack_start(label, 0, 0)
     self.descriptionInput = TextFrame()
     hbox.pack_start(self.descriptionInput, 1, 1)
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Icon'))
     label.set_alignment(0, 0.5)
     sizeGroup.add_widget(label)
     hbox.pack_start(label, 0, 0)
     self.iconSelect = common.IconSelectButton()
     #print join(pixDir, self.icon)
     hbox.pack_start(self.iconSelect, 0, 0)
     hbox.pack_start(gtk.Label(''), 1, 1)
     self.pack_start(hbox, 0, 0)
     ######
     self.notificationBox = common.NotificationBox(event)
     self.pack_start(self.notificationBox, 0, 0)
     ######
     #self.filesBox = common.FilesBox(self.event)
     #self.pack_start(self.filesBox, 0, 0)
     ######
     self.courseCombo.set_active(0)
Example #11
0
 def __init__(self, container):
     from scal2.ui_gtk.mywidgets.tz_combo import TimeZoneComboBoxEntry
     self._container = container
     gtk.Dialog.__init__(self)
     self.set_title(_('Bulk Edit Events'))
     ####
     dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'),
                       gtk.RESPONSE_CANCEL)
     dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.RESPONSE_OK)
     ##
     self.connect('response', lambda w, e: self.hide())
     ####
     try:
         title = container.title
     except AttributeError:
         event_count = len(container)
         msg = _('Here you are going to modify these %s events at once.'
                 ) % event_count
     else:
         msg = _(
             'Here you are going to modify all events inside group "%s" at once.'
         ) % title
     msg += ' '
     msg += _(
         'You better make a backup from your events before doing this. Just right click on group and select "Export" (or a full backup: menu File -> Export)'
     )
     msg += '\n\n'
     label = gtk.Label(msg)
     label.set_line_wrap(True)
     pack(self.vbox, label)
     ####
     hbox = gtk.HBox()
     self.iconRadio = gtk.RadioButton(label=_('Icon'))
     pack(hbox, self.iconRadio, 1, 1)
     self.summaryRadio = gtk.RadioButton(label=_('Summary'),
                                         group=self.iconRadio)
     pack(hbox, self.summaryRadio, 1, 1)
     self.descriptionRadio = gtk.RadioButton(label=_('Description'),
                                             group=self.iconRadio)
     pack(hbox, self.descriptionRadio, 1, 1)
     self.timeZoneRadio = gtk.RadioButton(label=_('Time Zone'),
                                          group=self.iconRadio)
     pack(hbox, self.timeZoneRadio, 1, 1)
     pack(self.vbox, hbox)
     ###
     self.iconRadio.connect('clicked', self.firstRadioChanged)
     self.summaryRadio.connect('clicked', self.firstRadioChanged)
     self.descriptionRadio.connect('clicked', self.firstRadioChanged)
     self.timeZoneRadio.connect('clicked', self.firstRadioChanged)
     ####
     hbox = gtk.HBox()
     self.iconChangeCombo = gtk.combo_box_new_text()
     self.iconChangeCombo.append_text('----')
     self.iconChangeCombo.append_text(_('Change'))
     self.iconChangeCombo.append_text(_('Change if empty'))
     pack(hbox, self.iconChangeCombo)
     pack(hbox, gtk.Label('  '))
     self.iconSelect = IconSelectButton()
     try:
         self.iconSelect.set_filename(container.icon)
     except AttributeError:
         pass
     pack(hbox, self.iconSelect)
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.vbox, hbox)
     self.iconHbox = hbox
     ####
     self.textVbox = gtk.VBox()
     ###
     hbox = gtk.HBox()
     self.textChangeCombo = gtk.combo_box_new_text()
     self.textChangeCombo.append_text('----')
     self.textChangeCombo.append_text(_('Add to beginning'))
     self.textChangeCombo.append_text(_('Add to end'))
     self.textChangeCombo.append_text(_('Replace text'))
     self.textChangeCombo.connect('changed', self.textChangeComboChanged)
     pack(hbox, self.textChangeCombo)
     pack(hbox, gtk.Label(''), 1, 1)
     ## CheckButton(_('Regexp'))
     pack(self.textVbox, hbox)
     ###
     self.textInput1 = TextFrame()
     pack(self.textVbox, self.textInput1, 1, 1)
     ###
     hbox = gtk.HBox()
     pack(hbox, gtk.Label(_('with')))
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.textVbox, hbox, 1, 1)
     self.withHbox = hbox
     ###
     self.textInput2 = TextFrame()
     pack(self.textVbox, self.textInput2, 1, 1)
     ####
     pack(self.vbox, self.textVbox, 1, 1)
     ####
     hbox = gtk.HBox()
     self.timeZoneChangeCombo = gtk.combo_box_new_text()
     self.timeZoneChangeCombo.append_text('----')
     self.timeZoneChangeCombo.append_text(_('Change'))
     self.timeZoneChangeCombo.append_text(_('Change if empty'))
     pack(hbox, self.timeZoneChangeCombo)
     pack(hbox, gtk.Label('  '))
     self.timeZoneInput = TimeZoneComboBoxEntry()
     pack(hbox, self.timeZoneInput)
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.vbox, hbox, 1, 1)
     self.timeZoneHbox = hbox
     ####
     self.vbox.show_all()
     self.iconRadio.set_active(True)
     self.iconChangeCombo.set_active(0)
     self.textChangeCombo.set_active(0)
     self.firstRadioChanged()
Example #12
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):
        from scal2.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
        from scal2.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.POLICY_AUTOMATIC, gtk.POLICY_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
Example #13
0
 def __init__(self, group):
     from scal2.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
     gtk.VBox.__init__(self)
     self.group = group
     ########
     self.sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_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
Example #14
0
	def __init__(self, showDesc=False):
		gtk.Window.__init__(self)
		self.initVars()
		ud.windowList.appendItem(self)
		###
		self.set_title(_('Search Events'))
		self.connect('delete-event', self.closed)
		self.connect('key-press-event', self.keyPress)
		###
		self.vbox = gtk.VBox()
		self.add(self.vbox)
		######
		frame = TextFrame()
		frame.set_label(_('Text'))
		frame.set_border_width(5)
		pack(self.vbox, frame)
		self.textInput = frame
		##
		hbox = gtk.HBox()
		self.textCSensCheck = gtk.CheckButton(_('Case Sensitive'))
		self.textCSensCheck.set_active(False) ## FIXME
		pack(hbox, self.textCSensCheck)
		pack(self.vbox, hbox)
		######
		jd = core.getCurrentJd()
		year, month, day = jd_to_primary(jd)
		######
		hbox = gtk.HBox()
		frame = gtk.Frame(_('Time'))
		frame.set_border_width(5)
		vboxIn = gtk.VBox()
		sgroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
		####
		hboxIn = gtk.HBox()
		##
		self.timeFromCheck = gtk.CheckButton(_('From'))
		sgroup.add_widget(self.timeFromCheck)
		pack(hboxIn, self.timeFromCheck)
		pack(hboxIn, gtk.Label('  '))
		##
		self.timeFromInput = DateTimeButton()
		self.timeFromInput.set_value(((year, 1, 1), (0, 0, 0)))
		pack(hboxIn, self.timeFromInput)
		##
		pack(vboxIn, hboxIn)
		####
		hboxIn = gtk.HBox()
		##
		self.timeToCheck = gtk.CheckButton(_('To'))
		sgroup.add_widget(self.timeToCheck)
		pack(hboxIn, self.timeToCheck)
		pack(hboxIn, gtk.Label('  '))
		##
		self.timeToInput = DateTimeButton()
		self.timeToInput.set_value(((year+1, 1, 1), (0, 0, 0)))
		pack(hboxIn, self.timeToInput)
		##
		pack(vboxIn, hboxIn)
		##
		self.timeFromCheck.connect('clicked', self.updateTimeFromSensitive)
		self.timeToCheck.connect('clicked', self.updateTimeToSensitive)
		self.updateTimeFromSensitive()
		self.updateTimeToSensitive()
		####
		vboxIn.set_border_width(5)
		frame.add(vboxIn)
		pack(hbox, frame)
		pack(hbox, gtk.Label(''), 1, 1)
		pack(self.vbox, hbox)
		######
		hbox = gtk.HBox()
		hbox.set_border_width(5)
		self.modifiedFromCheck = gtk.CheckButton(_('Modified From'))
		pack(hbox, self.modifiedFromCheck)
		pack(hbox, gtk.Label('  '))
		self.modifiedFromInput = DateTimeButton()
		self.modifiedFromInput.set_value(((year, 1, 1), (0, 0, 0)))
		pack(hbox, self.modifiedFromInput)
		##
		self.modifiedFromCheck.connect('clicked', self.updateModifiedFromSensitive)
		self.updateModifiedFromSensitive()
		pack(self.vbox, hbox)
		######
		hbox = gtk.HBox()
		hbox.set_border_width(5)
		self.typeCheck = gtk.CheckButton(_('Event Type'))
		pack(hbox, self.typeCheck)
		pack(hbox, gtk.Label('  '))
		##
		combo = gtk.combo_box_new_text()
		for cls in event_lib.classes.event:
			combo.append_text(cls.desc)
		combo.set_active(0)
		pack(hbox, combo)
		self.typeCombo = combo
		##
		self.typeCheck.connect('clicked', self.updateTypeSensitive)
		self.updateTypeSensitive()
		pack(self.vbox, hbox)
		######
		hbox = gtk.HBox()
		hbox.set_border_width(5)
		self.groupCheck = gtk.CheckButton(_('Group'))
		pack(hbox, self.groupCheck)
		pack(hbox, gtk.Label('  '))
		self.groupCombo = SingleGroupComboBox()
		pack(hbox, self.groupCombo)
		##
		self.groupCheck.connect('clicked', self.updateGroupSensitive)
		self.updateGroupSensitive()
		pack(self.vbox, hbox)
		######
		bbox = gtk.HButtonBox()
		bbox.set_layout(gtk.BUTTONBOX_START)
		bbox.set_border_width(5)
		searchButton = gtk.Button()
		searchButton.set_label(_('_Search'))
		searchButton.set_image(gtk.image_new_from_stock(gtk.STOCK_FIND, gtk.ICON_SIZE_BUTTON))
		searchButton.connect('clicked', self.searchClicked)
		bbox.add(searchButton)
		pack(self.vbox, bbox)
		######
		treev = gtk.TreeView()
		trees = gtk.TreeStore(int, int, str, gdk.Pixbuf, str, str)
		## gid, eid, group_name, icon, summary, description
		treev.set_model(trees)
		treev.connect('button-press-event', self.treevButtonPress)
		treev.connect('row-activated', self.rowActivated)
		treev.connect('key-press-event', self.treevKeyPress)
		treev.set_headers_clickable(True)
		###
		self.colGroup = gtk.TreeViewColumn(_('Group'), gtk.CellRendererText(), text=2)
		self.colGroup.set_resizable(True)
		self.colGroup.set_sort_column_id(2)
		treev.append_column(self.colGroup)
		###
		self.colIcon = gtk.TreeViewColumn()
		cell = gtk.CellRendererPixbuf()
		pack(self.colIcon, cell)
		self.colIcon.add_attribute(cell, 'pixbuf', 3)
		#self.colIcon.set_sort_column_id(3)## FIXME
		treev.append_column(self.colIcon)
		###
		self.colSummary = gtk.TreeViewColumn(_('Summary'), gtk.CellRendererText(), text=4)
		self.colSummary.set_resizable(True)
		self.colSummary.set_sort_column_id(4)
		treev.append_column(self.colSummary)
		###
		self.colDesc = gtk.TreeViewColumn(_('Description'), gtk.CellRendererText(), text=5)
		self.colDesc.set_sort_column_id(5)
		self.colDesc.set_visible(showDesc)
		treev.append_column(self.colDesc)
		###
		trees.set_sort_func(2, self.sort_func_group)
		######
		swin = gtk.ScrolledWindow()
		swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
		swin.add(treev)
		####
		vbox = gtk.VBox(spacing=5)
		vbox.set_border_width(5)
		###
		topHbox = gtk.HBox()
		self.resultLabel = gtk.Label('')
		pack(topHbox, self.resultLabel)
		pack(topHbox, gtk.Label(''), 1, 1)
		pack(vbox, topHbox)
		####
		columnBox = gtk.HBox(spacing=5)
		pack(columnBox, gtk.Label(_('Columns')+':    '))
		##
		check = gtk.CheckButton(_('Group'))
		check.set_active(True)
		check.connect('clicked', lambda w: self.colGroup.set_visible(w.get_active()))
		pack(columnBox, check)
		##
		check = gtk.CheckButton(_('Icon'))
		check.set_active(True)
		check.connect('clicked', lambda w: self.colIcon.set_visible(w.get_active()))
		pack(columnBox, check)
		##
		check = gtk.CheckButton(_('Summary'))
		check.set_active(True)
		check.connect('clicked', lambda w: self.colSummary.set_visible(w.get_active()))
		pack(columnBox, check)
		##
		check = gtk.CheckButton(_('Description'))
		check.set_active(showDesc)
		check.connect('clicked', lambda w: self.colDesc.set_visible(w.get_active()))
		pack(columnBox, check)
		##
		pack(vbox, columnBox)
		####
		pack(vbox, swin, 1, 1)
		##
		frame = gtk.Frame(_('Search Results'))
		frame.set_border_width(10)
		frame.add(vbox)
		##
		pack(self.vbox, frame, 1, 1)
		###
		bbox2 = gtk.HButtonBox()
		bbox2.set_layout(gtk.BUTTONBOX_END)
		bbox2.set_border_width(10)
		closeButton = gtk.Button()
		closeButton.set_label(_('_Close'))
		closeButton.set_image(gtk.image_new_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_BUTTON))
		closeButton.connect('clicked', self.closed)
		bbox2.add(closeButton)
		pack(self.vbox, bbox2)
		######
		self.treev = treev
		self.trees = trees
		self.vbox.show_all()
Example #15
0
 def __init__(self, event):  ## FIXME
     gtk.VBox.__init__(self)
     self.event = event
     assert event.parent.name == "universityTerm"  ## FIXME
     sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     #####
     if not event.parent.courses:
         showError(event.parent.noCourseError)
         raise RuntimeError("No courses added")
     self.courseIds = []
     self.courseNames = []
     combo = gtk.combo_box_new_text()
     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.TEXT_DIR_LTR)
     # self.dayTimeEndCombo.get_child().set_direction(gtk.TEXT_DIR_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)
Example #16
0
class WidgetClass(gtk.VBox):
    def __init__(self, event):
        from scal2.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo
        from scal2.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.POLICY_AUTOMATIC, gtk.POLICY_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
Example #17
0
class EventWidget(gtk.VBox):
    def __init__(self, event):## FIXME
        gtk.VBox.__init__(self)
        self.event = event
        assert event.parent.name == 'universityTerm' ## FIXME
        sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        #####
        if not event.parent.courses:
            showError(event.parent.noCourseError)
            raise RuntimeError('No courses added')
        self.courseIds = []
        self.courseNames = []
        combo = gtk.combo_box_new_text()
        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)
        hbox.pack_start(label, 0, 0)
        hbox.pack_start(combo, 0, 0)
        ##
        self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Date'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        self.dateInput = DateButton()
        hbox.pack_start(self.dateInput, 0, 0)
        self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Time'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        ##
        self.dayTimeStartCombo = HourMinuteButton()
        self.dayTimeEndCombo = HourMinuteButton()
        ##
        #self.dayTimeStartCombo.child.set_direction(gtk.TEXT_DIR_LTR)
        #self.dayTimeEndCombo.child.set_direction(gtk.TEXT_DIR_LTR)
        ##
        hbox.pack_start(self.dayTimeStartCombo, 0, 0)
        hbox.pack_start(gtk.Label(' ' + _('to') + ' '), 0, 0)
        hbox.pack_start(self.dayTimeEndCombo, 0, 0)
        self.pack_start(hbox, 0, 0)
        ###########
        #hbox = gtk.HBox()
        #label = gtk.Label(_('Summary'))
        #label.set_alignment(0, 0.5)
        #sizeGroup.add_widget(label)
        #hbox.pack_start(label, 0, 0)
        #self.summaryEntry = gtk.Entry()
        #hbox.pack_start(self.summaryEntry, 1, 1)
        #self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Description'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        self.descriptionInput = TextFrame()
        hbox.pack_start(self.descriptionInput, 1, 1)
        self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Icon'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        self.iconSelect = common.IconSelectButton()
        #print join(pixDir, self.icon)
        hbox.pack_start(self.iconSelect, 0, 0)
        hbox.pack_start(gtk.Label(''), 1, 1)
        self.pack_start(hbox, 0, 0)
        ######
        self.notificationBox = common.NotificationBox(event)
        self.pack_start(self.notificationBox, 0, 0)
        ######
        #self.filesBox = common.FilesBox(self.event)
        #self.pack_start(self.filesBox, 0, 0)
        ######
        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'), self)
            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.EventWidget
        newMode = self.modeCombo.get_active()
        self.dateInput.changeMode(self.event.mode, newMode)
        self.event.mode = newMode
Example #18
0
 def __init__(self, container):
     from scal2.ui_gtk.mywidgets.tz_combo import TimeZoneComboBoxEntry
     self._container = container
     gtk.Dialog.__init__(self)
     self.set_title(_('Bulk Edit Events'))
     ####
     dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'), gtk.RESPONSE_CANCEL)
     dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.RESPONSE_OK)
     ##
     self.connect('response', lambda w, e: self.hide())
     ####
     try:
         title = container.title
     except AttributeError:
         event_count = len(container)
         msg = _('Here you are going to modify these %s events at once.'%event_count)
     else:
         msg = _('Here you are going to modify all events inside group "%s" at once.'%title)
     msg += ' '
     msg += _('You better make a backup from you events before doing this. Just right click on group and select "Export" (or a full backup: menu File -> Export)')
     msg += '\n\n'
     label = gtk.Label(msg)
     label.set_line_wrap(True)
     pack(self.vbox, label)
     ####
     hbox = gtk.HBox()
     self.iconRadio = gtk.RadioButton(label=_('Icon'))
     pack(hbox, self.iconRadio, 1, 1)
     self.summaryRadio = gtk.RadioButton(label=_('Summary'), group=self.iconRadio)
     pack(hbox, self.summaryRadio, 1, 1)
     self.descriptionRadio = gtk.RadioButton(label=_('Description'), group=self.iconRadio)
     pack(hbox, self.descriptionRadio, 1, 1)
     self.timeZoneRadio = gtk.RadioButton(label=_('Time Zone'), group=self.iconRadio)
     pack(hbox, self.timeZoneRadio, 1, 1)
     pack(self.vbox, hbox)
     ###
     self.iconRadio.connect('clicked', self.firstRadioChanged)
     self.summaryRadio.connect('clicked', self.firstRadioChanged)
     self.descriptionRadio.connect('clicked', self.firstRadioChanged)
     self.timeZoneRadio.connect('clicked', self.firstRadioChanged)
     ####
     hbox = gtk.HBox()
     self.iconChangeCombo = gtk.combo_box_new_text()
     self.iconChangeCombo.append_text('----')
     self.iconChangeCombo.append_text(_('Change'))
     self.iconChangeCombo.append_text(_('Change if empty'))
     pack(hbox, self.iconChangeCombo)
     pack(hbox, gtk.Label('  '))
     self.iconSelect = IconSelectButton()
     try:
         self.iconSelect.set_filename(container.icon)
     except AttributeError:
         pass
     pack(hbox, self.iconSelect)
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.vbox, hbox)
     self.iconHbox = hbox
     ####
     self.textVbox = gtk.VBox()
     ###
     hbox = gtk.HBox()
     self.textChangeCombo = gtk.combo_box_new_text()
     self.textChangeCombo.append_text('----')
     self.textChangeCombo.append_text(_('Add to beginning'))
     self.textChangeCombo.append_text(_('Add to end'))
     self.textChangeCombo.append_text(_('Replace text'))
     self.textChangeCombo.connect('changed', self.textChangeComboChanged)
     pack(hbox, self.textChangeCombo)
     pack(hbox, gtk.Label(''), 1, 1)
     ## CheckButton(_('Regexp'))
     pack(self.textVbox, hbox)
     ###
     self.textInput1 = TextFrame()
     pack(self.textVbox, self.textInput1, 1, 1)
     ###
     hbox = gtk.HBox()
     pack(hbox, gtk.Label(_('with')))
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.textVbox, hbox, 1, 1)
     self.withHbox = hbox
     ###
     self.textInput2 = TextFrame()
     pack(self.textVbox, self.textInput2, 1, 1)
     ####
     pack(self.vbox, self.textVbox, 1, 1)
     ####
     hbox = gtk.HBox()
     self.timeZoneChangeCombo = gtk.combo_box_new_text()
     self.timeZoneChangeCombo.append_text('----')
     self.timeZoneChangeCombo.append_text(_('Change'))
     self.timeZoneChangeCombo.append_text(_('Change if empty'))
     pack(hbox, self.timeZoneChangeCombo)
     pack(hbox, gtk.Label('  '))
     self.timeZoneInput = TimeZoneComboBoxEntry()
     pack(hbox, self.timeZoneInput)
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.vbox, hbox, 1, 1)
     self.timeZoneHbox = hbox
     ####
     self.vbox.show_all()
     self.iconRadio.set_active(True)
     self.iconChangeCombo.set_active(0)
     self.textChangeCombo.set_active(0)
     self.firstRadioChanged()
Example #19
0
class EventWidget(gtk.VBox):
    def __init__(self, event):## FIXME
        gtk.VBox.__init__(self)
        self.event = event
        assert event.parent.name == 'universityTerm' ## FIXME
        sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        #####
        if not event.parent.courses:
            showError(event.parent.noCourseError)
            raise RuntimeError('No courses added')
        self.courseIds = []
        self.courseNames = []
        combo = gtk.combo_box_new_text()
        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)
        hbox.pack_start(label, 0, 0)
        hbox.pack_start(combo, 0, 0)
        ##
        self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Week'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        self.weekNumModeCombo = WeekNumModeRuleWidget(event['weekNumMode'])
        hbox.pack_start(self.weekNumModeCombo, 0, 0)
        self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Week Day'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        self.weekDayCombo = WeekDayComboBox()
        #self.weekDayCombo.connect('changed', self.updateSummary)
        hbox.pack_start(self.weekDayCombo, 0, 0)
        self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Time'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        ##
        self.dayTimeStartCombo = HourMinuteButtonOption()
        self.dayTimeEndCombo = HourMinuteButtonOption()
        ##
        #self.dayTimeStartCombo.child.set_direction(gtk.TEXT_DIR_LTR)
        #self.dayTimeEndCombo.child.set_direction(gtk.TEXT_DIR_LTR)
        ##
        hbox.pack_start(self.dayTimeStartCombo, 0, 0)
        hbox.pack_start(gtk.Label(' ' + _('to') + ' '), 0, 0)
        hbox.pack_start(self.dayTimeEndCombo, 0, 0)
        self.pack_start(hbox, 0, 0)
        ###########
        #hbox = gtk.HBox()
        #label = gtk.Label(_('Summary'))
        #label.set_alignment(0, 0.5)
        #sizeGroup.add_widget(label)
        #hbox.pack_start(label, 0, 0)
        #self.summaryEntry = gtk.Entry()
        #hbox.pack_start(self.summaryEntry, 1, 1)
        #self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Description'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        self.descriptionInput = TextFrame()
        hbox.pack_start(self.descriptionInput, 1, 1)
        self.pack_start(hbox, 0, 0)
        #####
        hbox = gtk.HBox()
        label = gtk.Label(_('Icon'))
        label.set_alignment(0, 0.5)
        sizeGroup.add_widget(label)
        hbox.pack_start(label, 0, 0)
        self.iconSelect = common.IconSelectButton()
        #print join(pixDir, self.icon)
        hbox.pack_start(self.iconSelect, 0, 0)
        hbox.pack_start(gtk.Label(''), 1, 1)
        self.pack_start(hbox, 0, 0)
        ######
        self.notificationBox = common.NotificationBox(event)
        self.pack_start(self.notificationBox, 0, 0)
        ######
        #self.filesBox = common.FilesBox(self.event)
        #self.pack_start(self.filesBox, 0, 0)
        ######
        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'), self)
            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()
Example #20
0
 def __init__(self, showDesc=False):
     gtk.Window.__init__(self)
     self.initVars()
     ud.windowList.appendItem(self)
     ###
     self.set_title(_('Search Events'))
     self.connect('delete-event', self.closed)
     self.connect('key-press-event', self.keyPress)
     ###
     self.vbox = gtk.VBox()
     self.add(self.vbox)
     ######
     frame = TextFrame()
     frame.set_label(_('Text'))
     frame.set_border_width(5)
     pack(self.vbox, frame)
     self.textInput = frame
     ##
     hbox = gtk.HBox()
     self.textCSensCheck = gtk.CheckButton(_('Case Sensitive'))
     self.textCSensCheck.set_active(False) ## FIXME
     pack(hbox, self.textCSensCheck)
     pack(self.vbox, hbox)
     ######
     jd = core.getCurrentJd()
     year, month, day = jd_to_primary(jd)
     ######
     hbox = gtk.HBox()
     frame = gtk.Frame(_('Time'))
     frame.set_border_width(5)
     vboxIn = gtk.VBox()
     sgroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     ####
     hboxIn = gtk.HBox()
     ##
     self.timeFromCheck = gtk.CheckButton(_('From'))
     sgroup.add_widget(self.timeFromCheck)
     pack(hboxIn, self.timeFromCheck)
     pack(hboxIn, gtk.Label('  '))
     ##
     self.timeFromInput = DateTimeButton()
     self.timeFromInput.set_value(((year, 1, 1), (0, 0, 0)))
     pack(hboxIn, self.timeFromInput)
     ##
     pack(vboxIn, hboxIn)
     ####
     hboxIn = gtk.HBox()
     ##
     self.timeToCheck = gtk.CheckButton(_('To'))
     sgroup.add_widget(self.timeToCheck)
     pack(hboxIn, self.timeToCheck)
     pack(hboxIn, gtk.Label('  '))
     ##
     self.timeToInput = DateTimeButton()
     self.timeToInput.set_value(((year+1, 1, 1), (0, 0, 0)))
     pack(hboxIn, self.timeToInput)
     ##
     pack(vboxIn, hboxIn)
     ##
     self.timeFromCheck.connect('clicked', self.updateTimeFromSensitive)
     self.timeToCheck.connect('clicked', self.updateTimeToSensitive)
     self.updateTimeFromSensitive()
     self.updateTimeToSensitive()
     ####
     vboxIn.set_border_width(5)
     frame.add(vboxIn)
     pack(hbox, frame)
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.vbox, hbox)
     ######
     hbox = gtk.HBox()
     hbox.set_border_width(5)
     self.modifiedFromCheck = gtk.CheckButton(_('Modified From'))
     pack(hbox, self.modifiedFromCheck)
     pack(hbox, gtk.Label('  '))
     self.modifiedFromInput = DateTimeButton()
     self.modifiedFromInput.set_value(((year, 1, 1), (0, 0, 0)))
     pack(hbox, self.modifiedFromInput)
     ##
     self.modifiedFromCheck.connect('clicked', self.updateModifiedFromSensitive)
     self.updateModifiedFromSensitive()
     pack(self.vbox, hbox)
     ######
     hbox = gtk.HBox()
     hbox.set_border_width(5)
     self.typeCheck = gtk.CheckButton(_('Event Type'))
     pack(hbox, self.typeCheck)
     pack(hbox, gtk.Label('  '))
     ##
     combo = gtk.combo_box_new_text()
     for cls in event_lib.classes.event:
         combo.append_text(cls.desc)
     combo.set_active(0)
     pack(hbox, combo)
     self.typeCombo = combo
     ##
     self.typeCheck.connect('clicked', self.updateTypeSensitive)
     self.updateTypeSensitive()
     pack(self.vbox, hbox)
     ######
     hbox = gtk.HBox()
     hbox.set_border_width(5)
     self.groupCheck = gtk.CheckButton(_('Group'))
     pack(hbox, self.groupCheck)
     pack(hbox, gtk.Label('  '))
     self.groupCombo = SingleGroupComboBox()
     pack(hbox, self.groupCombo)
     ##
     self.groupCheck.connect('clicked', self.updateGroupSensitive)
     self.updateGroupSensitive()
     pack(self.vbox, hbox)
     ######
     bbox = gtk.HButtonBox()
     bbox.set_layout(gtk.BUTTONBOX_START)
     bbox.set_border_width(5)
     searchButton = gtk.Button()
     searchButton.set_label(_('_Search'))
     searchButton.set_image(gtk.image_new_from_stock(gtk.STOCK_FIND, gtk.ICON_SIZE_BUTTON))
     searchButton.connect('clicked', self.searchClicked)
     bbox.add(searchButton)
     pack(self.vbox, bbox)
     ######
     treev = gtk.TreeView()
     trees = gtk.TreeStore(int, int, str, gdk.Pixbuf, str, str)
     ## gid, eid, group_name, icon, summary, description
     treev.set_model(trees)
     treev.connect('row-activated', self.rowActivated)
     treev.set_headers_clickable(True)
     ###
     self.colGroup = gtk.TreeViewColumn(_('Group'), gtk.CellRendererText(), text=2)
     self.colGroup.set_resizable(True)
     self.colGroup.set_sort_column_id(2)
     treev.append_column(self.colGroup)
     ###
     self.colIcon = gtk.TreeViewColumn()
     cell = gtk.CellRendererPixbuf()
     pack(self.colIcon, cell)
     self.colIcon.add_attribute(cell, 'pixbuf', 3)
     #self.colIcon.set_sort_column_id(3)## FIXME
     treev.append_column(self.colIcon)
     ###
     self.colSummary = gtk.TreeViewColumn(_('Summary'), gtk.CellRendererText(), text=4)
     self.colSummary.set_resizable(True)
     self.colSummary.set_sort_column_id(4)
     treev.append_column(self.colSummary)
     ###
     self.colDesc = gtk.TreeViewColumn(_('Description'), gtk.CellRendererText(), text=5)
     self.colDesc.set_sort_column_id(5)
     self.colDesc.set_visible(showDesc)
     treev.append_column(self.colDesc)
     ###
     trees.set_sort_func(2, self.sort_func_group)
     ######
     swin = gtk.ScrolledWindow()
     swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
     swin.add(treev)
     ####
     vbox = gtk.VBox(spacing=5)
     vbox.set_border_width(5)
     ###
     topHbox = gtk.HBox()
     self.resultLabel = gtk.Label('')
     pack(topHbox, self.resultLabel)
     pack(topHbox, gtk.Label(''), 1, 1)
     pack(vbox, topHbox)
     ####
     columnBox = gtk.HBox(spacing=5)
     pack(columnBox, gtk.Label(_('Columns')+':    '))
     ##
     check = gtk.CheckButton(_('Group'))
     check.set_active(True)
     check.connect('clicked', lambda w: self.colGroup.set_visible(w.get_active()))
     pack(columnBox, check)
     ##
     check = gtk.CheckButton(_('Icon'))
     check.set_active(True)
     check.connect('clicked', lambda w: self.colIcon.set_visible(w.get_active()))
     pack(columnBox, check)
     ##
     check = gtk.CheckButton(_('Summary'))
     check.set_active(True)
     check.connect('clicked', lambda w: self.colSummary.set_visible(w.get_active()))
     pack(columnBox, check)
     ##
     check = gtk.CheckButton(_('Description'))
     check.set_active(showDesc)
     check.connect('clicked', lambda w: self.colDesc.set_visible(w.get_active()))
     pack(columnBox, check)
     ##
     pack(vbox, columnBox)
     ####
     pack(vbox, swin, 1, 1)
     ##
     frame = gtk.Frame(_('Search Results'))
     frame.set_border_width(10)
     frame.add(vbox)
     ##
     pack(self.vbox, frame, 1, 1)
     ###
     bbox2 = gtk.HButtonBox()
     bbox2.set_layout(gtk.BUTTONBOX_END)
     bbox2.set_border_width(10)
     closeButton = gtk.Button()
     closeButton.set_label(_('_Close'))
     closeButton.set_image(gtk.image_new_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_BUTTON))
     closeButton.connect('clicked', self.closed)
     bbox2.add(closeButton)
     pack(self.vbox, bbox2)
     ######
     self.treev = treev
     self.trees = trees
     self.vbox.show_all()
Example #21
0
class EventsBulkEditDialog(gtk.Dialog):
    def __init__(self, container):
        from scal2.ui_gtk.mywidgets.tz_combo import TimeZoneComboBoxEntry
        self._container = container
        gtk.Dialog.__init__(self)
        self.set_title(_('Bulk Edit Events'))
        ####
        dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'),
                          gtk.RESPONSE_CANCEL)
        dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.RESPONSE_OK)
        ##
        self.connect('response', lambda w, e: self.hide())
        ####
        try:
            title = container.title
        except AttributeError:
            event_count = len(container)
            msg = _('Here you are going to modify these %s events at once.'
                    ) % event_count
        else:
            msg = _(
                'Here you are going to modify all events inside group "%s" at once.'
            ) % title
        msg += ' '
        msg += _(
            'You better make a backup from your events before doing this. Just right click on group and select "Export" (or a full backup: menu File -> Export)'
        )
        msg += '\n\n'
        label = gtk.Label(msg)
        label.set_line_wrap(True)
        pack(self.vbox, label)
        ####
        hbox = gtk.HBox()
        self.iconRadio = gtk.RadioButton(label=_('Icon'))
        pack(hbox, self.iconRadio, 1, 1)
        self.summaryRadio = gtk.RadioButton(label=_('Summary'),
                                            group=self.iconRadio)
        pack(hbox, self.summaryRadio, 1, 1)
        self.descriptionRadio = gtk.RadioButton(label=_('Description'),
                                                group=self.iconRadio)
        pack(hbox, self.descriptionRadio, 1, 1)
        self.timeZoneRadio = gtk.RadioButton(label=_('Time Zone'),
                                             group=self.iconRadio)
        pack(hbox, self.timeZoneRadio, 1, 1)
        pack(self.vbox, hbox)
        ###
        self.iconRadio.connect('clicked', self.firstRadioChanged)
        self.summaryRadio.connect('clicked', self.firstRadioChanged)
        self.descriptionRadio.connect('clicked', self.firstRadioChanged)
        self.timeZoneRadio.connect('clicked', self.firstRadioChanged)
        ####
        hbox = gtk.HBox()
        self.iconChangeCombo = gtk.combo_box_new_text()
        self.iconChangeCombo.append_text('----')
        self.iconChangeCombo.append_text(_('Change'))
        self.iconChangeCombo.append_text(_('Change if empty'))
        pack(hbox, self.iconChangeCombo)
        pack(hbox, gtk.Label('  '))
        self.iconSelect = IconSelectButton()
        try:
            self.iconSelect.set_filename(container.icon)
        except AttributeError:
            pass
        pack(hbox, self.iconSelect)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self.vbox, hbox)
        self.iconHbox = hbox
        ####
        self.textVbox = gtk.VBox()
        ###
        hbox = gtk.HBox()
        self.textChangeCombo = gtk.combo_box_new_text()
        self.textChangeCombo.append_text('----')
        self.textChangeCombo.append_text(_('Add to beginning'))
        self.textChangeCombo.append_text(_('Add to end'))
        self.textChangeCombo.append_text(_('Replace text'))
        self.textChangeCombo.connect('changed', self.textChangeComboChanged)
        pack(hbox, self.textChangeCombo)
        pack(hbox, gtk.Label(''), 1, 1)
        ## CheckButton(_('Regexp'))
        pack(self.textVbox, hbox)
        ###
        self.textInput1 = TextFrame()
        pack(self.textVbox, self.textInput1, 1, 1)
        ###
        hbox = gtk.HBox()
        pack(hbox, gtk.Label(_('with')))
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self.textVbox, hbox, 1, 1)
        self.withHbox = hbox
        ###
        self.textInput2 = TextFrame()
        pack(self.textVbox, self.textInput2, 1, 1)
        ####
        pack(self.vbox, self.textVbox, 1, 1)
        ####
        hbox = gtk.HBox()
        self.timeZoneChangeCombo = gtk.combo_box_new_text()
        self.timeZoneChangeCombo.append_text('----')
        self.timeZoneChangeCombo.append_text(_('Change'))
        self.timeZoneChangeCombo.append_text(_('Change if empty'))
        pack(hbox, self.timeZoneChangeCombo)
        pack(hbox, gtk.Label('  '))
        self.timeZoneInput = TimeZoneComboBoxEntry()
        pack(hbox, self.timeZoneInput)
        pack(hbox, gtk.Label(''), 1, 1)
        pack(self.vbox, hbox, 1, 1)
        self.timeZoneHbox = hbox
        ####
        self.vbox.show_all()
        self.iconRadio.set_active(True)
        self.iconChangeCombo.set_active(0)
        self.textChangeCombo.set_active(0)
        self.firstRadioChanged()

    def firstRadioChanged(self, w=None):
        if self.iconRadio.get_active():
            self.iconHbox.show()
            self.textVbox.hide()
            self.timeZoneHbox.hide()
        elif self.timeZoneRadio.get_active():
            self.iconHbox.hide()
            self.textVbox.hide()
            self.timeZoneHbox.show()
        elif self.summaryRadio.get_active(
        ) or self.descriptionRadio.get_active():
            self.iconHbox.hide()
            self.textChangeComboChanged()
            self.timeZoneHbox.hide()

    def textChangeComboChanged(self, w=None):
        self.textVbox.show_all()
        chType = self.textChangeCombo.get_active()
        if chType == 0:
            self.textInput1.hide()
            self.withHbox.hide()
            self.textInput2.hide()
        elif chType in (1, 2):
            self.withHbox.hide()
            self.textInput2.hide()

    def doAction(self):
        container = self._container
        if self.iconRadio.get_active():
            chType = self.iconChangeCombo.get_active()
            if chType != 0:
                icon = self.iconSelect.get_filename()
                for event in container:
                    if not (chType == 2 and event.icon):
                        event.icon = icon
                        event.afterModify()
                        event.save()
        elif self.timeZoneRadio.get_active():
            chType = self.timeZoneChangeCombo.get_active()
            timeZone = self.timeZoneInput.get_text()
            if chType != 0:
                try:
                    natz.timezone(timeZone)
                except:
                    myRaise('Invalid Time Zone "%s"' % timeZone)
                else:
                    for event in container:
                        if not (chType == 2 and event.timeZone):
                            event.timeZone = timeZone
                            event.afterModify()
                            event.save()
        else:
            chType = self.textChangeCombo.get_active()
            if chType != 0:
                text1 = self.textInput1.get_text()
                text2 = self.textInput2.get_text()
                if self.summaryRadio.get_active():
                    for event in container:
                        if chType == 1:
                            event.summary = text1 + event.summary
                        elif chType == 2:
                            event.summary = event.summary + text1
                        elif chType == 3:
                            event.summary = event.summary.replace(text1, text2)
                        event.afterModify()
                        event.save()
                elif self.descriptionRadio.get_active():
                    for event in container:
                        if chType == 1:
                            event.description = text1 + event.description
                        elif chType == 2:
                            event.description = event.description + text1
                        elif chType == 3:
                            event.description = event.description.replace(
                                text1, text2)
                        event.afterModify()
                        event.save()
Example #22
0
class EventWidget(gtk.VBox):
    def __init__(self, event):
        gtk.VBox.__init__(self)
        self.event = event
        ###########
        hbox = gtk.HBox()
        ###
        hbox.pack_start(gtk.Label(_('Calendar Type')+':'), 0, 0)
        combo = DateTypeCombo()
        combo.set_active(core.primaryMode)## overwritten in updateWidget()
        hbox.pack_start(combo, 0, 0)
        hbox.pack_start(gtk.Label(''), 1, 1)
        self.modeCombo = combo
        ###
        self.pack_start(hbox, 0, 0)
        ###########
        hbox = gtk.HBox()
        hbox.pack_start(gtk.Label(_('Summary')), 0, 0)
        self.summaryEntry = gtk.Entry()
        hbox.pack_start(self.summaryEntry, 1, 1)
        self.pack_start(hbox, 0, 0)
        ###########
        hbox = gtk.HBox()
        hbox.pack_start(gtk.Label(_('Description')), 0, 0)
        self.descriptionInput = TextFrame()
        hbox.pack_start(self.descriptionInput, 1, 1)
        self.pack_start(hbox, 0, 0)
        ###########
        hbox = gtk.HBox()
        hbox.pack_start(gtk.Label(_('Icon')+':'), 0, 0)
        self.iconSelect = IconSelectButton()
        #print join(pixDir, self.icon)
        hbox.pack_start(self.iconSelect, 0, 0)
        hbox.pack_start(gtk.Label(''), 1, 1)
        self.pack_start(hbox, 0, 0)
        ##########
        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)
        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()
        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
Example #23
0
 def __init__(self, group):
     gtk.VBox.__init__(self)
     self.group = group
     ########
     self.sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_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.showInTrayCheck = gtk.CheckButton(_("Tray"))
     pack(hbox, self.showInTimeLineCheck)
     pack(hbox, gtk.Label(""), 1, 1)
     pack(hbox, self.showInTrayCheck)
     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
Example #24
0
 def __init__(self, group):
     gtk.VBox.__init__(self)
     self.group = group
     ########
     self.sizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Title'))
     label.set_alignment(0, 0.5)
     hbox.pack_start(label, 0, 0)
     self.sizeGroup.add_widget(label)
     self.titleEntry = gtk.Entry()
     hbox.pack_start(self.titleEntry, 1, 1)
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Color'))
     label.set_alignment(0, 0.5)
     hbox.pack_start(label, 0, 0)
     self.sizeGroup.add_widget(label)
     self.colorButton = MyColorButton()
     self.colorButton.set_use_alpha(True) ## FIXME
     hbox.pack_start(self.colorButton, 0, 0)
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Default Icon'))## FIXME
     label.set_alignment(0, 0.5)
     hbox.pack_start(label, 0, 0)
     self.sizeGroup.add_widget(label)
     self.iconSelect = common.IconSelectButton()
     hbox.pack_start(self.iconSelect, 0, 0)
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Default Calendar Type'))
     label.set_alignment(0, 0.5)
     hbox.pack_start(label, 0, 0)
     self.sizeGroup.add_widget(label)
     combo = DateTypeCombo()
     hbox.pack_start(combo, 0, 0)
     hbox.pack_start(gtk.Label(''), 1, 1)
     self.modeCombo = combo
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Show in'))
     label.set_alignment(0, 0.5)
     hbox.pack_start(label, 0, 0)
     self.sizeGroup.add_widget(label)
     self.showInCalCheck = gtk.CheckButton(_('Calendar'))
     self.showInTimeLineCheck = gtk.CheckButton(_('Time Line'))
     hbox.pack_start(self.showInCalCheck, 0, 0)
     hbox.pack_start(gtk.Label(''), 1, 1)
     hbox.pack_start(self.showInTimeLineCheck, 0, 0)
     hbox.pack_start(gtk.Label(''), 1, 1)
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Event Cache Size'))
     label.set_alignment(0, 0.5)
     hbox.pack_start(label, 0, 0)
     self.sizeGroup.add_widget(label)
     self.cacheSizeSpin = IntSpinButton(0, 9999)
     hbox.pack_start(self.cacheSizeSpin, 0, 0)
     self.pack_start(hbox, 0, 0)
     #####
     hbox = gtk.HBox()
     label = gtk.Label(_('Event Text Seperator'))
     label.set_alignment(0, 0.5)
     hbox.pack_start(label, 0, 0)
     self.sizeGroup.add_widget(label)
     self.sepInput = TextFrame()
     hbox.pack_start(self.sepInput, 1, 1)
     self.pack_start(hbox, 0, 0)
     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)
     #hbox.pack_start(label, 0, 0)
     #self.sizeGroup.add_widget(label)
     #self.showFullEventDescCheck = gtk.CheckButton('')
     #hbox.pack_start(self.showFullEventDescCheck, 1, 1)
     #self.pack_start(hbox, 0, 0)
     ###
     self.modeCombo.connect('changed', self.modeComboChanged)## right place? before updateWidget? FIXME