示例#1
0
 def export_theme(cls, *args):
     'Export the active theme to tar-compressed file'
     cur_theme = exposong.themeselect.themeselect.get_active()
     
     dlg = gtk.FileChooserDialog(_("Export Theme"), exposong.main.main,
                                 gtk.FILE_CHOOSER_ACTION_SAVE,
                                 (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
                                 gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
     dlg.add_filter(_FILTER)
     dlg.set_do_overwrite_confirmation(True)
     dlg.set_current_folder(config.get("open-save-dialogs", "export-theme"))
     dlg.set_current_name(_("theme_%s.expo")%title_to_filename(
                                     os.path.basename(cur_theme.get_title())))
     if dlg.run() == gtk.RESPONSE_ACCEPT:
         fname = dlg.get_filename()
         if not fname.endswith(".expo"):
             fname += ".expo"
         exposong.log.info('Exporting theme "%s" to "%s".',
                           cur_theme.get_title(), fname)
         tar = tarfile.open(fname, "w:gz")
         
         tar.add(os.path.join(DATA_PATH, 'theme', cur_theme.filename),
                 os.path.join('theme', cur_theme.filename))
         for bg in cur_theme.backgrounds:
             if isinstance(bg, exposong.theme.ImageBackground):
                 tar.add(os.path.join(DATA_PATH, 'theme', 'res', bg.src),
                         os.path.join('theme', 'res', bg.src))
         tar.close()
         config.set("open-save-dialogs", "export-theme", os.path.dirname(fname))
     dlg.destroy()
示例#2
0
 def export_sched(cls, *args):
     'Export a single schedule with belonging presentations to file.'
     sched = exposong.schedlist.schedlist.get_active_item()
     if not sched:
         return False
     dlg = gtk.FileChooserDialog(_("Export Current Schedule"),
                                 exposong.main.main,
                                 gtk.FILE_CHOOSER_ACTION_SAVE,
                                 (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
                                 gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
     dlg.add_filter(_FILTER)
     dlg.set_do_overwrite_confirmation(True)
     dlg.set_current_folder(config.get("open-save-dialogs", "export-sched"))
     dlg.set_current_name(os.path.basename(title_to_filename(sched.title))+".expo")
     if dlg.run() == gtk.RESPONSE_ACCEPT:
         os.chdir(DATA_PATH)
         fname = dlg.get_filename()
         if not fname.endswith(".expo"):
             fname += ".expo"
         exposong.log.info('Exporting schedule "%s" to "%s".',
                           sched.title, fname)
         tar = tarfile.open(fname, "w:gz")
         for item in cls._get_sched_list():
             tar.add(item[0], item[1])
         tar.close()
         config.set("open-save-dialogs", "export-sched", os.path.dirname(fname))
     dlg.destroy()
示例#3
0
 def _save_changes(self, *args):
     """
     Saves the theme to a new file if it didn't exist,
     updates the file according to the theme name if it existed before.
     """
     #Metadata
     for key, value in self._meta.iteritems():
         if value.get_text() != "":
             self.theme.meta[key] = value.get_text()
     name = self._title_entry.get_text()
     self.theme.meta['title'] = name
     if not self.theme.filename:
         self.theme.filename = find_freefile(os.path.join(
                 DATA_PATH, 'theme', title_to_filename(name)+'.xml'))
     else:
         self.theme.filename = check_filename(name, os.path.join(
                 DATA_PATH, 'theme', self.theme.filename))
     self.theme.save()
     self._set_changed(False)