Exemplo n.º 1
0
 def __init__(self, **kwargs):
     gtk.Dialog.__init__(self, **kwargs)
     self.set_title(_('Export'))
     self.vbox.set_spacing(10)
     ####
     dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'),
                       gtk.ResponseType.CANCEL)
     dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.ResponseType.OK)
     ####
     hbox = gtk.HBox()
     frame = gtk.Frame()
     frame.set_label(_('Format'))
     radioBox = gtk.VBox()
     ##
     self.radioIcs = gtk.RadioButton(label='iCalendar')
     self.radioJsonCompact = gtk.RadioButton(
         label=_('Compact JSON (StarCalendar)'), group=self.radioIcs)
     self.radioJsonPretty = gtk.RadioButton(
         label=_('Pretty JSON (StarCalendar)'), group=self.radioIcs)
     ##
     pack(radioBox, self.radioJsonCompact)
     pack(radioBox, self.radioJsonPretty)
     pack(radioBox, self.radioIcs)
     ##
     self.radioJsonCompact.set_active(True)
     self.radioIcs.connect('clicked', self.formatRadioChanged)
     self.radioJsonCompact.connect('clicked', self.formatRadioChanged)
     self.radioJsonPretty.connect('clicked', self.formatRadioChanged)
     ##
     frame.add(radioBox)
     pack(hbox, frame)
     pack(hbox, gtk.Label(''), 1, 1)
     pack(self.vbox, hbox)
     ########
     hbox = gtk.HBox(spacing=2)
     pack(hbox, gtk.Label(_('File') + ':'))
     self.fpathEntry = gtk.Entry()
     self.fpathEntry.set_text(
         join(deskDir,
              'events-%.4d-%.2d-%.2d' % core.getSysDate(DATE_GREG)))
     pack(hbox, self.fpathEntry, 1, 1)
     pack(self.vbox, hbox)
     ####
     self.groupSelect = GroupsTreeCheckList()
     swin = gtk.ScrolledWindow()
     swin.add(self.groupSelect)
     swin.set_policy(gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC)
     pack(self.vbox, swin, 1, 1)
     ####
     self.vbox.show_all()
     self.formatRadioChanged()
     self.resize(600, 600)
Exemplo n.º 2
0
	def __init__(self, **kwargs):
		gtk.Dialog.__init__(self, **kwargs)
		self.set_title(_('Export'))
		self.vbox.set_spacing(10)
		####
		dialog_add_button(self, gtk.STOCK_CANCEL, _('_Cancel'), gtk.ResponseType.CANCEL)
		dialog_add_button(self, gtk.STOCK_OK, _('_OK'), gtk.ResponseType.OK)
		####
		hbox = gtk.HBox()
		frame = gtk.Frame()
		frame.set_label(_('Format'))
		radioBox = gtk.VBox()
		##
		self.radioIcs = gtk.RadioButton(label='iCalendar')
		self.radioJsonCompact = gtk.RadioButton(label=_('Compact JSON (StarCalendar)'), group=self.radioIcs)
		self.radioJsonPretty = gtk.RadioButton(label=_('Pretty JSON (StarCalendar)'), group=self.radioIcs)
		##
		pack(radioBox, self.radioJsonCompact)
		pack(radioBox, self.radioJsonPretty)
		pack(radioBox, self.radioIcs)
		##
		self.radioJsonCompact.set_active(True)
		self.radioIcs.connect('clicked', self.formatRadioChanged)
		self.radioJsonCompact.connect('clicked', self.formatRadioChanged)
		self.radioJsonPretty.connect('clicked', self.formatRadioChanged)
		##
		frame.add(radioBox)
		pack(hbox, frame)
		pack(hbox, gtk.Label(''), 1, 1)
		pack(self.vbox, hbox)
		########
		hbox = gtk.HBox(spacing=2)
		pack(hbox, gtk.Label(_('File')+':'))
		self.fpathEntry = gtk.Entry()
		self.fpathEntry.set_text(join(deskDir, 'events-%.4d-%.2d-%.2d'%core.getSysDate(DATE_GREG)))
		pack(hbox, self.fpathEntry, 1, 1)
		pack(self.vbox, hbox)
		####
		self.groupSelect = GroupsTreeCheckList()
		swin = gtk.ScrolledWindow()
		swin.add(self.groupSelect)
		swin.set_policy(gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC)
		pack(self.vbox, swin, 1, 1)
		####
		self.vbox.show_all()
		self.formatRadioChanged()
		self.resize(600, 600)
Exemplo n.º 3
0
class MultiGroupExportDialog(gtk.Dialog, MyDialog):
    def __init__(self, **kwargs):
        gtk.Dialog.__init__(self, **kwargs)
        self.set_title(_("Export"))
        self.vbox.set_spacing(10)
        ####
        dialog_add_button(
            self,
            gtk.STOCK_CANCEL,
            _("_Cancel"),
            gtk.ResponseType.CANCEL,
        )
        dialog_add_button(
            self,
            gtk.STOCK_OK,
            _("_OK"),
            gtk.ResponseType.OK,
        )
        ####
        hbox = gtk.HBox()
        frame = gtk.Frame()
        frame.set_label(_("Format"))
        radioBox = gtk.VBox()
        ##
        self.radioIcs = gtk.RadioButton(label="iCalendar", )
        self.radioJsonCompact = gtk.RadioButton(
            label=_("Compact JSON (StarCalendar)"),
            group=self.radioIcs,
        )
        self.radioJsonPretty = gtk.RadioButton(
            label=_("Pretty JSON (StarCalendar)"),
            group=self.radioIcs,
        )
        ##
        pack(radioBox, self.radioJsonCompact)
        pack(radioBox, self.radioJsonPretty)
        pack(radioBox, self.radioIcs)
        ##
        self.radioJsonCompact.set_active(True)
        self.radioIcs.connect("clicked", self.formatRadioChanged)
        self.radioJsonCompact.connect("clicked", self.formatRadioChanged)
        self.radioJsonPretty.connect("clicked", self.formatRadioChanged)
        ##
        frame.add(radioBox)
        pack(hbox, frame)
        pack(hbox, gtk.Label(""), 1, 1)
        pack(self.vbox, hbox)
        ########
        hbox = gtk.HBox(spacing=2)
        pack(hbox, gtk.Label(_("File") + ":"))
        self.fpathEntry = gtk.Entry()
        self.fpathEntry.set_text(
            join(
                deskDir,
                "events-%.4d-%.2d-%.2d" % core.getSysDate(DATE_GREG),
            ))
        pack(hbox, self.fpathEntry, 1, 1)
        pack(self.vbox, hbox)
        ####
        self.groupSelect = GroupsTreeCheckList()
        swin = gtk.ScrolledWindow()
        swin.add(self.groupSelect)
        swin.set_policy(gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC)
        pack(self.vbox, swin, 1, 1)
        ####
        self.vbox.show_all()
        self.formatRadioChanged()
        self.resize(600, 600)

    def formatRadioChanged(self, widget=None):
        #self.dateRangeBox.set_visible(self.radioIcs.get_active())
        ###
        fpath = self.fpathEntry.get_text()
        if fpath:
            fpath_nox, ext = splitext(fpath)
            if fpath_nox:
                if self.radioIcs.get_active():
                    if ext != ".ics":
                        ext = ".ics"
                else:
                    if ext != ".json":
                        ext = ".json"
                self.fpathEntry.set_text(fpath_nox + ext)

    def save(self):
        fpath = self.fpathEntry.get_text()
        activeGroupIds = self.groupSelect.getValue()
        if self.radioIcs.get_active():
            ui.eventGroups.exportToIcs(fpath, activeGroupIds)
        else:
            data = ui.eventGroups.exportData(activeGroupIds)
            ## what to do with all groupData["info"] s? FIXME
            if self.radioJsonCompact.get_active():
                text = dataToCompactJson(data)
            elif self.radioJsonPretty.get_active():
                text = dataToPrettyJson(data)
            else:
                raise RuntimeError
            open(fpath, "w", encoding="utf-8").write(text)

    def run(self):
        if gtk.Dialog.run(self) == gtk.ResponseType.OK:
            self.waitingDo(self.save)
        self.destroy()
Exemplo n.º 4
0
class MultiGroupExportDialog(gtk.Dialog, MyDialog):
	def __init__(self, **kwargs):
		gtk.Dialog.__init__(self, **kwargs)
		self.set_title(_("Export"))
		self.vbox.set_spacing(10)
		####
		dialog_add_button(
			self,
			gtk.STOCK_CANCEL,
			_("_Cancel"),
			gtk.ResponseType.CANCEL,
		)
		dialog_add_button(
			self,
			gtk.STOCK_OK,
			_("_OK"),
			gtk.ResponseType.OK,
		)
		####
		hbox = gtk.HBox()
		frame = gtk.Frame()
		frame.set_label(_("Format"))
		radioBox = gtk.VBox()
		##
		self.radioIcs = gtk.RadioButton(
			label="iCalendar",
		)
		self.radioJsonCompact = gtk.RadioButton(
			label=_("Compact JSON (StarCalendar)"),
			group=self.radioIcs,
		)
		self.radioJsonPretty = gtk.RadioButton(
			label=_("Pretty JSON (StarCalendar)"),
			group=self.radioIcs,
		)
		##
		pack(radioBox, self.radioJsonCompact)
		pack(radioBox, self.radioJsonPretty)
		pack(radioBox, self.radioIcs)
		##
		self.radioJsonCompact.set_active(True)
		self.radioIcs.connect("clicked", self.formatRadioChanged)
		self.radioJsonCompact.connect("clicked", self.formatRadioChanged)
		self.radioJsonPretty.connect("clicked", self.formatRadioChanged)
		##
		frame.add(radioBox)
		pack(hbox, frame)
		pack(hbox, gtk.Label(""), 1, 1)
		pack(self.vbox, hbox)
		########
		hbox = gtk.HBox(spacing=2)
		pack(hbox, gtk.Label(_("File") + ":"))
		self.fpathEntry = gtk.Entry()
		self.fpathEntry.set_text(join(
			deskDir,
			"events-%.4d-%.2d-%.2d" % core.getSysDate(DATE_GREG),
		))
		pack(hbox, self.fpathEntry, 1, 1)
		pack(self.vbox, hbox)
		####
		self.groupSelect = GroupsTreeCheckList()
		swin = gtk.ScrolledWindow()
		swin.add(self.groupSelect)
		swin.set_policy(gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC)
		pack(self.vbox, swin, 1, 1)
		####
		self.vbox.show_all()
		self.formatRadioChanged()
		self.resize(600, 600)

	def formatRadioChanged(self, widget=None):
		#self.dateRangeBox.set_visible(self.radioIcs.get_active())
		###
		fpath = self.fpathEntry.get_text()
		if fpath:
			fpath_nox, ext = splitext(fpath)
			if fpath_nox:
				if self.radioIcs.get_active():
					if ext != ".ics":
						ext = ".ics"
				else:
					if ext != ".json":
						ext = ".json"
				self.fpathEntry.set_text(fpath_nox + ext)

	def save(self):
		fpath = self.fpathEntry.get_text()
		activeGroupIds = self.groupSelect.getValue()
		if self.radioIcs.get_active():
			ui.eventGroups.exportToIcs(fpath, activeGroupIds)
		else:
			data = ui.eventGroups.exportData(activeGroupIds)
			## what to do with all groupData["info"] s? FIXME
			if self.radioJsonCompact.get_active():
				text = dataToCompactJson(data)
			elif self.radioJsonPretty.get_active():
				text = dataToPrettyJson(data)
			else:
				raise RuntimeError
			open(fpath, "w", encoding="utf-8").write(text)

	def run(self):
		if gtk.Dialog.run(self) == gtk.ResponseType.OK:
			self.waitingDo(self.save)
		self.destroy()