Move RecentFilesSetting to appsettings.py, change MCESettingsOption to accept "json" as a type.

RecentFilesSetting now has a default value
This commit is contained in:
David Vierra 2015-03-22 16:59:16 -10:00
parent d3e1f4c9c8
commit 1b29350f36
3 changed files with 27 additions and 9 deletions

View File

@ -0,0 +1,10 @@
"""
appsettings
"""
from __future__ import absolute_import, division, print_function
import logging
from mcedit2.util.settings import Settings
log = logging.getLogger(__name__)
RecentFilesSetting = Settings().getOption('open_world_dialog/recent_files', "json", [])

View File

@ -8,6 +8,7 @@ from PySide import QtGui, QtCore, QtNetwork
from PySide.QtCore import Qt
import gc
import numpy
from mcedit2.appsettings import RecentFilesSetting
from mcedit2.library import LibraryWidget
from mcedit2.util import minecraftinstall
@ -454,7 +455,7 @@ class MCEditApp(QtGui.QApplication):
# --- Recent files ---
def updateRecentFilesMenu(self):
recentFiles = RecentFilesSetting.jsonValue([])
recentFiles = RecentFilesSetting.value()
recentWorldsMenu = self.mainWindow.menuRecent_Worlds
for i, child in enumerate(recentWorldsMenu.children()):
if i < 2:
@ -489,14 +490,14 @@ class MCEditApp(QtGui.QApplication):
action.__triggered = triggered
def addRecentFile(self, filename):
recentFiles = RecentFilesSetting.jsonValue([])
recentFiles = RecentFilesSetting.value()
if filename in recentFiles:
return
recentFiles.insert(0, filename)
if len(recentFiles) > self.recentFileLimit:
recentFiles = recentFiles[1:]
RecentFilesSetting.setJsonValue(recentFiles)
RecentFilesSetting.setValue(recentFiles)
self.updateRecentFilesMenu()
# --- Tabs and sessions ---
@ -676,4 +677,4 @@ class MCEditApp(QtGui.QApplication):
def hideWorldList(self):
self.tabWidget.removeTab(self.tabWidget.indexOf(self.worldList))
RecentFilesSetting = Settings().getOption('open_world_dialog/recent_files')

View File

@ -33,13 +33,19 @@ class MCESettingsOption(QtCore.QObject):
if default is None:
default = self.default
value = self.settings.value(self.key, default)
if self.type:
value = self.type(value)
if self.type == "json":
value = self.settings.jsonValue(self.key, default)
else:
value = self.settings.value(self.key, default)
if self.type:
value = self.type(value)
return value
def setValue(self, value):
return self.settings.setValue(self.key, value)
if self.type == "json":
return self.settings.setJsonValue(self.key, value)
else:
return self.settings.setValue(self.key, value)
valueChanged = QtCore.Signal(object)
@ -119,7 +125,8 @@ class MCESettings(QtCore.QSettings):
if value is not None:
try:
return json.loads(value)
except ValueError: # No JSON object could be decoded
except ValueError as e: # No JSON object could be decoded
log.error("Failed to decode setting %s: %s", key, e)
return default
else:
return default