def importEvent(gevent, group): #open('/tmp/gevent.js', 'a').write('%s\n\n'%pformat(gevent)) icsData = [ ('DTSTART', encodeIcsStartEnd(gevent['start'])), ('DTEND', encodeIcsStartEnd(gevent['end'])), ] ## recurring = False if 'recurrence' in gevent: recurring = True for recStr in gevent['recurrence']: key, value = recStr.upper().split(':')## multi line? FIXME icsData.append((key, value)) try: eventType = gevent['extendedProperties']['shared']['starcal_type'] except KeyError: if recurring: eventType = 'custom' else: eventType = 'task' ## event = group.createEvent(eventType) event.mode = DATE_GREG ## FIXME if not event.setIcsData(dict(icsData)): return event.summary = toBytes(gevent['summary']) event.description = toBytes(gevent.get('description', '')) if 'reminders' in gevent: try: minutes = gevent['reminders']['overrides']['minutes'] except KeyError: myRaise()## FIXME else: self.notifyBefore = (minutes, 60) return event
def importEvent(gevent, group): # open("/tmp/gevent.js", "a").write("%s\n\n"%pformat(gevent)) icsData = [ ("DTSTART", encodeIcsStartEnd(gevent["start"])), ("DTEND", encodeIcsStartEnd(gevent["end"])), ] recurring = False if "recurrence" in gevent: recurring = True for recStr in gevent["recurrence"]: key, value = recStr.upper().split(":") # multi line? FIXME icsData.append((key, value)) try: eventType = gevent["extendedProperties"]["shared"]["starcal_type"] except KeyError: if recurring: eventType = "custom" else: eventType = "task" event = group.createEvent(eventType) event.mode = DATE_GREG # FIXME if not event.setIcsData(dict(icsData)): return event.summary = toBytes(gevent["summary"]) event.description = toBytes(gevent.get("description", "")) if "reminders" in gevent: try: minutes = gevent["reminders"]["overrides"]["minutes"] except KeyError: myRaise() # FIXME else: self.notifyBefore = (minutes, 60) return event
def importEvent(gevent, group): #open('/tmp/gevent.js', 'a').write('%s\n\n'%pformat(gevent)) icsData = [ ('DTSTART', encodeIcsStartEnd(gevent['start'])), ('DTEND', encodeIcsStartEnd(gevent['end'])), ] ## recurring = False if 'recurrence' in gevent: recurring = True for recStr in gevent['recurrence']: key, value = recStr.upper().split(':') ## multi line? FIXME icsData.append((key, value)) try: eventType = gevent['extendedProperties']['shared']['starcal_type'] except KeyError: if recurring: eventType = 'custom' else: eventType = 'task' ## event = group.createEvent(eventType) event.mode = DATE_GREG ## FIXME if not event.setIcsData(dict(icsData)): return event.summary = toBytes(gevent['summary']) event.description = toBytes(gevent.get('description', '')) if 'reminders' in gevent: try: minutes = gevent['reminders']['overrides']['minutes'] except KeyError: myRaise() ## FIXME else: self.notifyBefore = (minutes, 60) return event
def addClicked(self, button): fcd = gtk.FileChooserDialog( buttons=( toBytes(_("_OK")), gtk.ResponseType.OK, toBytes(_("_Cancel")), gtk.ResponseType.CANCEL, ), title=_("Add File"), ) fcd.set_local_only(True) fcd.connect("response", lambda w, e: fcd.hide()) if fcd.run() == gtk.ResponseType.OK: from shutil import copy fpath = fcd.get_filename() fname = split(fpath)[-1] dstDir = self.event.filesDir ## os.makedirs(dstDir, exist_ok=True)## only on new pythons FIXME try: os.makedirs(dstDir) except: myRaise() copy(fpath, join(dstDir, fname)) self.event.files.append(fname) self.newFiles.append(fname) self.showFile(fname)
def setClipboard(text, clipboard=None): if not clipboard: clipboard = gtk.Clipboard.get(gdk.SELECTION_CLIPBOARD) clipboard.set_text( toStr(text), len(toBytes(text)), )
def statusIconUpdateIcon(self, ddate):## FIXME from scal3.utils import toBytes imagePath = ui.statusIconImageHoli if ui.todayCell.holiday else ui.statusIconImage ext = os.path.splitext(imagePath)[1][1:].lower() loader = GdkPixbuf.PixbufLoader.new_with_type(ext) if ui.statusIconFixedSizeEnable: try: width, height = ui.statusIconFixedSizeWH loader.set_size(width, height) except: myRaise() data = open(imagePath, 'rb').read() if ext == 'svg': dayNum = locale_man.numEncode( ddate[2], mode=calTypes.primary, # FIXME ) if ui.statusIconFontFamilyEnable: if ui.statusIconFontFamily: family = ui.statusIconFontFamily else: family = ui.getFont()[0] dayNum = '<tspan style="font-family:%s">%s</tspan>'%(family, dayNum) data = data.replace( b'TX', toBytes(dayNum), ) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() self.sicon.set_from_pixbuf(pixbuf)
def statusIconUpdateIcon(self, ddate):## FIXME from scal3.utils import toBytes imagePath = ui.statusIconImageHoli if ui.todayCell.holiday else ui.statusIconImage ext = os.path.splitext(imagePath)[1][1:].lower() loader = GdkPixbuf.PixbufLoader.new_with_type(ext) if ui.statusIconFixedSizeEnable: try: width, height = ui.statusIconFixedSizeWH loader.set_size(width, height) except: myRaise() data = open(imagePath).read() if ext == 'svg': dayNum = _(ddate[2]) if ui.statusIconFontFamilyEnable: if ui.statusIconFontFamily: family = ui.statusIconFontFamily else: family = ui.getFont()[0] dayNum = '<tspan style="font-family:%s">%s</tspan>'%(family, dayNum) data = data.replace( 'TX', dayNum, ) data = toBytes(data) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() self.sicon.set_from_pixbuf(pixbuf)
def duplicateGroupTitle(group): title = toBytes(group.title) titleList = [toBytes(g.title) for g in eventGroups] parts = title.split("#") try: index = int(parts[-1]) title = "#".join(parts[:-1]) except: # myRaise() index = 1 index += 1 while True: newTitle = title + "#%d" % index if newTitle not in titleList: group.title = newTitle return index += 1
def newDndFontNamePixbuf(name): imagePath = join(rootDir, 'svg', 'dnd-font.svg') loader = GdkPixbuf.PixbufLoader.new_with_type('svg') data = open(imagePath).read() data = data.replace('FONTNAME', name) data = toBytes(data) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() return pixbuf
def newDndFontNamePixbuf(name): imagePath = join(rootDir, "svg", "dnd-font.svg") loader = GdkPixbuf.PixbufLoader.new_with_type("svg") data = open(imagePath).read() data = data.replace("FONTNAME", name) data = toBytes(data) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() return pixbuf
def newDndDatePixbuf(ymd): imagePath = join(rootDir, "svg", "dnd-date.svg") loader = GdkPixbuf.PixbufLoader.new_with_type("svg") data = open(imagePath).read() data = data.replace("YYYY", "%.4d" % ymd[0]) data = data.replace("MM", "%.2d" % ymd[1]) data = data.replace("DD", "%.2d" % ymd[2]) data = toBytes(data) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() return pixbuf
def newDndDatePixbuf(ymd): imagePath = join(rootDir, 'svg', 'dnd-date.svg') loader = GdkPixbuf.PixbufLoader.new_with_type('svg') data = open(imagePath).read() data = data.replace('YYYY', '%.4d'%ymd[0]) data = data.replace('MM', '%.2d'%ymd[1]) data = data.replace('DD', '%.2d'%ymd[2]) data = toBytes(data) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() return pixbuf
def newColorCheckPixbuf(color, size, checked): loader = GdkPixbuf.PixbufLoader.new_with_type("svg") if checked: data = colorCheckSvgTextChecked else: data = colorCheckSvgTextUnchecked data = data.replace( "fill:#000000;", "fill:%s;" % rgbToHtmlColor(*color[:3]), ) data = toBytes(data) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() return pixbuf
def addClicked(self, button): fcd = gtk.FileChooserDialog( buttons=( toBytes(_('_OK')), gtk.ResponseType.OK, toBytes(_('_Cancel')), gtk.ResponseType.CANCEL, ), title=_('Add File'), ) fcd.set_local_only(True) fcd.connect('response', lambda w, e: fcd.hide()) if fcd.run() == gtk.ResponseType.OK: from shutil import copy fpath = fcd.get_filename() fname = split(fpath)[-1] dstDir = self.event.filesDir ## os.makedirs(dstDir, exist_ok=True)## only on new pythons FIXME try: os.makedirs(dstDir) except: myRaise() copy(fpath, join(dstDir, fname)) self.event.files.append(fname) self.newFiles.append(fname) self.showFile(fname)
def newColorCheckPixbuf(color, size, checked): loader = GdkPixbuf.PixbufLoader.new_with_type('svg') if checked: data = colorCheckSvgTextChecked else: data = colorCheckSvgTextUnchecked data = data.replace( 'fill:#000000;', 'fill:%s;'%rgbToHtmlColor(*color[:3]), ) data = toBytes(data) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() return pixbuf
def statusIconUpdateIcon(self, ddate): # FIXME from scal3.utils import toBytes imagePath = ( ui.statusIconImageHoli if ui.todayCell.holiday else ui.statusIconImage ) ext = os.path.splitext(imagePath)[1][1:].lower() loader = GdkPixbuf.PixbufLoader.new_with_type(ext) if ui.statusIconFixedSizeEnable: try: width, height = ui.statusIconFixedSizeWH loader.set_size(width, height) except: myRaise() data = open(imagePath, "rb").read() if ext == "svg": dayNum = locale_man.numEncode( ddate[2], mode=calTypes.primary, # FIXME ) if ui.statusIconFontFamilyEnable: if ui.statusIconFontFamily: family = ui.statusIconFontFamily else: family = ui.getFont()[0] dayNum = "<tspan style=\"font-family:%s\">%s</tspan>" % ( family, dayNum, ) data = data.replace( b"TX", toBytes(dayNum), ) loader.write(data) loader.close() pixbuf = loader.get_pixbuf() self.sicon.set_from_pixbuf(pixbuf)