Move RecentFilesSetting to appsettings.py, change MCESettingsOption to accept "json" as a type.
RecentFilesSetting now has a default value
This commit is contained in:
parent
d3e1f4c9c8
commit
1b29350f36
10
src/mcedit2/appsettings.py
Normal file
10
src/mcedit2/appsettings.py
Normal 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", [])
|
@ -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')
|
||||
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user