Check-in [fdc2e9e4c4]
Overview
| Comment: | Support file open dialog |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
fdc2e9e4c4a871b62dbbea555fe65d23 |
| User & Date: | mario on 2016-12-11 19:16:52 |
| Other Links: | manifest | tags |
Context
|
2016-12-14
| ||
| 15:57 | new plugin: theme installer for Gtk2 and Windows; fixed for support of JSON format; gtk_reset_styles -- Oliver check-in: ec7df3c333 user: mario tags: trunk | |
|
2016-12-11
| ||
| 19:16 | Support file open dialog check-in: fdc2e9e4c4 user: mario tags: trunk | |
| 19:16 | Update manual .chm version check-in: 697f62158c user: mario tags: trunk | |
Changes
Modified contrib/prefstore.py from [744b6117ce] to [e5b03874ae].
1 2 3 4 | # encoding: UTF-8 # api: streamtuner2 # title: Config save/import/reset # description: Allows to store, reimport or delete all preferences | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # encoding: UTF-8 # api: streamtuner2 # title: Config save/import/reset # description: Allows to store, reimport or delete all preferences # version: 0.2 # type: feature # category: config # priority: optional # # Adds a context menu "Staton > Extensions > Config ...", which allows # to save or restore settings, or reset them to defaults. from config import * from channels import * import ahttp from uikit import uikit, gtk import action import re import json # hooks three functions to the main extension menu class prefstore(): |
| ︙ | ︙ | |||
33 34 35 36 37 38 39 |
self.parent = parent
uikit.add_menu([parent.extensions], "Config save", self.save)
uikit.add_menu([parent.extensions], "Config restore", self.restore)
uikit.add_menu([parent.extensions], "Config delete", self.reset)
# Save conf.
def save(self, *w):
| | | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
self.parent = parent
uikit.add_menu([parent.extensions], "Config save", self.save)
uikit.add_menu([parent.extensions], "Config restore", self.restore)
uikit.add_menu([parent.extensions], "Config delete", self.reset)
# Save conf.
def save(self, *w):
fn = uikit.save_file(title="Export streamtuner2 config", fn="streatuner2-config.json", formats=[("*.json", "*.json")])
if not fn:
return
data = vars(conf)
del data["args"]
with open(fn, "w") as f:
f.write(json.dumps(data, indent=4, sort_keys=True))
self.parent.status("Settings saved to " + fn)
# Save conf.
def restore(self, *w):
fn = uikit.save_file(title="Import streamtuner2 config", fn="streatuner2-config.json", formats=[("*.json", "*.json")], action=gtk.FILE_CHOOSER_ACTION_OPEN, action_btn=gtk.STOCK_OPEN)
if not fn:
return
with open(fn, "r") as f:
conf.update(json.load(f))
conf.save()
self.parent.status("Restart streamtuner2 for changes to take effect.")
|
| ︙ | ︙ |
Modified uikit.py from [bb85fd7f1b] to [bd76b93be8].
| ︙ | ︙ | |||
361 362 363 364 365 366 367 368 |
w.set_current_page(pos)
pass
#-- Save-As dialog
#
@staticmethod
| > | > | < | | 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 |
w.set_current_page(pos)
pass
#-- Save-As dialog
#
save_formats = [("*.pls", "*.pls"), ("*.xspf", "*.xpsf"), ("*.m3u", "*.m3u"), ("*.jspf", "*.jspf"), ("*.asx", "*.asx"), ("*.json", "*.json"), ("*.smil", "*.smil"), ("*.desktop", "*.desktop"), ("*","*")]
@staticmethod
def save_file(title="Save As", parent=None, fn="", formats=None, action=gtk.FILE_CHOOSER_ACTION_SAVE, action_btn=gtk.STOCK_SAVE):
# With overwrite confirmation
buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, action_btn, gtk.RESPONSE_OK)
c = gtk.FileChooserDialog(title, parent, action=action, buttons=buttons)
c.set_do_overwrite_confirmation(True)
# Params
if fn:
c.set_current_name(fn)
fn = ""
for fname,ftype in (formats or self.save_formats):
f = gtk.FileFilter()
f.set_name(fname)
f.add_pattern(ftype)
c.add_filter(f)
# Yes, that's how to retrieve signals for changed filter selections
try:
filterbox = c.get_children()[0].get_children()[0]
|
| ︙ | ︙ |