Exemple #1
0
 def __init__(self, jd):
     self.eventsData = []
     self.eventsDataIsSet = False
     self.pluginsText = ''
     ###
     self.jd = jd
     date = core.jd_to(jd, core.primaryMode)
     self.year, self.month, self.day = date
     self.weekDay = core.jwday(jd)
     self.weekNum = core.getWeekNumber(self.year, self.month, self.day)
     self.holiday = (self.weekDay in core.holidayWeekDays)
     ###################
     self.dates = []
     for mode in range(len(calTypes)):
         if mode==core.primaryMode:
             self.dates.append((self.year, self.month, self.day))
         else:
             self.dates.append(core.jd_to(jd, mode))
     ###################
     for k in core.plugIndex:
         plug = core.allPlugList[k]
         if plug.enable:
             try:
                 plug.update_cell(self)
             except:
                 myRaiseTback()
     ###################
     self.eventsData = event_lib.getDayOccurrenceData(jd, eventGroups)
Exemple #2
0
	def updateWidget(self):
		BaseWidgetClass.updateWidget(self)
		self.startDateInput.set_value(jd_to(self.group.startJd, self.group.mode))
		self.endDateInput.set_value(jd_to(self.group.endJd, self.group.mode))
		###
		if self.group.remoteIds:
			aid, gid = self.group.remoteIds
		else:
			aid, gid = None, None
		self.accountCombo.set_active(aid)
		self.accountGroupCombo.set_active(gid)
Exemple #3
0
 def updateEndDates(self):
     (y, m, d) = self.startDateInput.get_value()
     jd0 = to_jd(y, m, d, self.altMode) - 1
     for row in self.trees:
         mLen = row[3]
         jd0 += mLen
         row[4] = dateLocale(*jd_to(jd0, self.altMode))
Exemple #4
0
 def updateWidget(self):
     #for index, module in enumerate(core.modules):
     #    if module.name != 'hijri':
     for item in ui.shownCals:
         mode = item['mode']
         modeDesc = moduleDescNames[mode]
         if not 'hijri' in modeDesc.lower():
             self.altMode = mode
             self.altModeDesc = modeDesc
             break
     self.topLabel.set_label(_('Start')+': '+dateLocale(*monthDb.startDate)+' '+_('Equals to')+' %s'%_(self.altModeDesc))
     self.startDateInput.set_value(jd_to(monthDb.startJd, self.altMode))
     ###########
     selectYm = getCurrentYm() - 1 ## previous month
     selectIndex = None
     self.trees.clear()
     for index, ym, mLen in monthDb.getMonthLenList():
         if ym == selectYm:
             selectIndex = index
         (year, month0) = divmod(ym, 12)
         self.trees.append([
             ym,
             _(year),
             _(monthName[month0]),
             mLen,
             '',
         ])
     self.updateEndDates()
     ########
     if selectIndex is not None:
         self.treev.scroll_to_cell(str(selectIndex))
         self.treev.set_cursor(str(selectIndex))
Exemple #5
0
 def updateWidget(self):
     BaseGroupWidget.updateWidget(self)
     self.startDateInput.set_value(jd_to(self.group.startJd, self.group.mode))
     self.endDateInput.set_value(jd_to(self.group.endJd, self.group.mode))
Exemple #6
0
def calcTimeLineData(timeStart, timeWidth, pixelPerSec, borderTm):
    timeEnd = timeStart + timeWidth
    jd0 = getJdFromEpoch(timeStart)
    jd1 = getJdFromEpoch(timeEnd)
    widthDays = float(timeWidth) / dayLen
    dayPixel = dayLen * pixelPerSec ## px
    #print 'dayPixel = %s px'%dayPixel
    getEPos = lambda epoch: (epoch-timeStart)*pixelPerSec
    getJPos = lambda jd: (getEpochFromJd(jd)-timeStart)*pixelPerSec
    ######################## Holidays
    holidays = []
    if changeHolidayBg and changeHolidayBgMinDays < widthDays < changeHolidayBgMaxDays:
        for jd in getHolidaysJdList(jd0, jd1+1):
            holidays.append(getJPos(jd))
    ######################## Ticks
    ticks = []
    tickEpochList = []
    minStep = minorStepMin / pixelPerSec ## second
    #################
    year0, month0, day0 = jd_to(jd0, core.primaryMode)
    year1, month1, day1 = jd_to(jd1, core.primaryMode)
    ############ Year
    minStepYear = minStep // minYearLenSec ## years ## int or iceil?
    yearPixel = minYearLenSec * pixelPerSec ## pixels
    for (year, size) in getYearRangeTickValues(year0, year1+1, minStepYear):
        tmEpoch = getEpochFromDate(year, 1, 1, core.primaryMode)
        if tmEpoch in tickEpochList:
            continue
        unitSize = size * yearPixel
        label = formatYear(year) if unitSize >= majorStepMin else ''
        ticks.append(Tick(
            tmEpoch,
            getEPos(tmEpoch),
            unitSize,
            label,
        ))
        tickEpochList.append(tmEpoch)
    ############ Month
    monthPixel = avgMonthLen * pixelPerSec ## px
    minMonthUnit = float(minStep) / avgMonthLen ## month
    if minMonthUnit <= 3:
        for ym in range(year0*12+month0-1, year1*12+month1-1+1):## +1 FIXME
            if ym%3==0:
                monthUnit = 3
            else:
                monthUnit = 1
            if monthUnit < minMonthUnit:
                continue
            y, m = divmod(ym, 12) ; m+=1
            tmEpoch = getEpochFromDate(y, m, 1, core.primaryMode)
            if tmEpoch in tickEpochList:
                continue
            unitSize = monthPixel * monthUnit
            ticks.append(Tick(
                tmEpoch,
                getEPos(tmEpoch),
                unitSize,
                getMonthName(core.primaryMode, m) if unitSize >= majorStepMin else '',
            ))
            tickEpochList.append(tmEpoch)
    ################
    if showWeekStart and showWeekStartMinDays < widthDays < showWeekStartMaxDays:
        wd0 = jwday(jd0)
        jdw0 = jd0 + (core.firstWeekDay - wd0) % 7
        unitSize = dayPixel * 7
        if unitSize < majorStepMin:
            label = ''
        else:
            label = core.weekDayNameAb[core.firstWeekDay]
        for jd in range(jdw0, jd1+1, 7):
            tmEpoch = getEpochFromJd(jd)
            ticks.append(Tick(
                tmEpoch,
                getEPos(tmEpoch),
                unitSize,
                label,
                color=weekStartTickColor,
            ))
            #tickEpochList.append(tmEpoch)
    ############ Day of Month
    hasMonthName = timeWidth < 5 * dayLen
    minDayUnit = float(minStep) / dayLen ## days
    if minDayUnit <= 15:
        for jd in range(jd0, jd1+1):
            tmEpoch = getEpochFromJd(jd)
            if tmEpoch in tickEpochList:
                continue
            year, month, day = jd_to(jd, core.primaryMode)
            if day==16:
                dayUnit = 15
            elif day in (6, 11, 21, 26):
                dayUnit = 5
            else:
                dayUnit = 1
            if dayUnit < minDayUnit:
                continue
            unitSize = dayPixel*dayUnit
            if unitSize < majorStepMin:
                label = ''
            elif hasMonthName:
                label = _(day) + ' ' + getMonthName(core.primaryMode, month)
            else:
                label = _(day)
            ticks.append(Tick(
                tmEpoch,
                getEPos(tmEpoch),
                unitSize,
                label,
            ))
            tickEpochList.append(tmEpoch)
    ############ Hour, Minute, Second
    for stepUnit, stepValue in unitSteps:
        stepSec = stepUnit*stepValue
        if stepSec < minStep:
            break
        unitSize = stepSec*pixelPerSec
        firstEpoch = iceil(timeStart/stepSec)*stepSec
        for tmEpoch in range(firstEpoch, iceil(timeEnd), stepSec):
            if tmEpoch in tickEpochList:
                continue
            if unitSize < majorStepMin:
                label = ''
            else:
                jd, h, m, s = getJhmsFromEpoch(tmEpoch)
                if s==0:
                    label = '%s:%s'%(
                        _(h),
                        _(m, fillZero=2),
                    )
                else:# elif timeWidth < 60 or stepSec < 30:
                    label = LRM + '%s"'%_(s, fillZero=2)
                #else:
                #    label = '%s:%s:%s'%(
                #        _(h),
                #        _(m, fillZero=2),
                #        _(s, fillZero=2),
                #    )
            ticks.append(Tick(
                tmEpoch,
                getEPos(tmEpoch),
                unitSize,
                label,
            ))
            tickEpochList.append(tmEpoch)
    ######################## Event Boxes
    return {
        'holidays': holidays,
        'ticks': ticks,
        'boxes': calcEventBoxes(
            timeStart,
            timeEnd,
            pixelPerSec,
            borderTm,
        ),
    }
Exemple #7
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)
     self.vbox.pack_start(frame, 0, 0)
     self.textInput = frame
     ######
     jd = core.getCurrentJd()
     year, month, day = jd_to(jd, core.primaryMode)
     ######
     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)
     hboxIn.pack_start(self.timeFromCheck, 0, 0)
     hboxIn.pack_start(gtk.Label('  '), 0, 0)
     ##
     self.timeFromInput = DateTimeButton()
     self.timeFromInput.set_value(((year, 1, 1), (0, 0, 0)))
     hboxIn.pack_start(self.timeFromInput, 0, 0)
     ##
     vboxIn.pack_start(hboxIn, 0, 0)
     ####
     hboxIn = gtk.HBox()
     ##
     self.timeToCheck = gtk.CheckButton(_('To'))
     sgroup.add_widget(self.timeToCheck)
     hboxIn.pack_start(self.timeToCheck, 0, 0)
     hboxIn.pack_start(gtk.Label('  '), 0, 0)
     ##
     self.timeToInput = DateTimeButton()
     self.timeToInput.set_value(((year+1, 1, 1), (0, 0, 0)))
     hboxIn.pack_start(self.timeToInput, 0, 0)
     ##
     vboxIn.pack_start(hboxIn, 0, 0)
     ##
     self.timeFromCheck.connect('clicked', self.updateTimeFromSensitive)
     self.timeToCheck.connect('clicked', self.updateTimeToSensitive)
     self.updateTimeFromSensitive()
     self.updateTimeToSensitive()
     ####
     vboxIn.set_border_width(5)
     frame.add(vboxIn)
     hbox.pack_start(frame, 0, 0)
     hbox.pack_start(gtk.Label(''), 1, 1)
     self.vbox.pack_start(hbox, 0, 0)
     ######
     hbox = gtk.HBox()
     hbox.set_border_width(5)
     self.modifiedFromCheck = gtk.CheckButton(_('Modified From'))
     hbox.pack_start(self.modifiedFromCheck, 0, 0)
     hbox.pack_start(gtk.Label('  '), 0, 0)
     self.modifiedFromInput = DateTimeButton()
     self.modifiedFromInput.set_value(((year, 1, 1), (0, 0, 0)))
     hbox.pack_start(self.modifiedFromInput, 0, 0)
     ##
     self.modifiedFromCheck.connect('clicked', self.updateModifiedFromSensitive)
     self.updateModifiedFromSensitive()
     self.vbox.pack_start(hbox, 0, 0)
     ######
     hbox = gtk.HBox()
     hbox.set_border_width(5)
     self.typeCheck = gtk.CheckButton(_('Event Type'))
     hbox.pack_start(self.typeCheck, 0, 0)
     hbox.pack_start(gtk.Label('  '), 0, 0)
     ##
     combo = gtk.combo_box_new_text()
     for cls in event_lib.classes.event:
         combo.append_text(cls.desc)
     combo.set_active(0)
     hbox.pack_start(combo, 0, 0)
     self.typeCombo = combo
     ##
     self.typeCheck.connect('clicked', self.updateTypeSensitive)
     self.updateTypeSensitive()
     self.vbox.pack_start(hbox, 0, 0)
     ######
     hbox = gtk.HBox()
     hbox.set_border_width(5)
     self.groupCheck = gtk.CheckButton(_('Group'))
     hbox.pack_start(self.groupCheck, 0, 0)
     hbox.pack_start(gtk.Label('  '), 0, 0)
     self.groupCombo = SingleGroupComboBox()
     hbox.pack_start(self.groupCombo, 0, 0)
     ##
     self.groupCheck.connect('clicked', self.updateGroupSensitive)
     self.updateGroupSensitive()
     self.vbox.pack_start(hbox, 0, 0)
     ######
     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)
     self.vbox.pack_start(bbox, 0, 0)
     ######
     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()
     self.colIcon.pack_start(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('')
     topHbox.pack_start(self.resultLabel, 0, 0)
     topHbox.pack_start(gtk.Label(''), 1, 1)
     vbox.pack_start(topHbox, 0, 0)
     ####
     columnBox = gtk.HBox(spacing=5)
     columnBox.pack_start(gtk.Label(_('Columns')+':    '), 0, 0)
     ##
     check = gtk.CheckButton(_('Group'))
     check.set_active(True)
     check.connect('clicked', lambda w: self.colGroup.set_visible(w.get_active()))
     columnBox.pack_start(check, 0, 0)
     ##
     check = gtk.CheckButton(_('Icon'))
     check.set_active(True)
     check.connect('clicked', lambda w: self.colIcon.set_visible(w.get_active()))
     columnBox.pack_start(check, 0, 0)
     ##
     check = gtk.CheckButton(_('Summary'))
     check.set_active(True)
     check.connect('clicked', lambda w: self.colSummary.set_visible(w.get_active()))
     columnBox.pack_start(check, 0, 0)
     ##
     check = gtk.CheckButton(_('Description'))
     check.set_active(showDesc)
     check.connect('clicked', lambda w: self.colDesc.set_visible(w.get_active()))
     columnBox.pack_start(check, 0, 0)
     ##
     vbox.pack_start(columnBox, 0, 0)
     ####
     vbox.pack_start(swin, 1, 1)
     ##
     frame = gtk.Frame(_('Search Results'))
     frame.set_border_width(10)
     frame.add(vbox)
     ##
     self.vbox.pack_start(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)
     self.vbox.pack_start(bbox2, 0, 0)
     ######
     self.treev = treev
     self.trees = trees
     self.vbox.show_all()