|
17 | 17 | import json |
18 | 18 | import importlib.util |
19 | 19 | import traceback |
| 20 | +from pathlib import Path |
20 | 21 |
|
21 | 22 | from JsonSettingsWidgets import * |
22 | 23 | from ExtensionCore import find_extension_subdir |
23 | | -from gi.repository import Gtk, Gio, XApp |
| 24 | +from gi.repository import Gtk, Gio, XApp, GLib |
24 | 25 |
|
25 | 26 | # i18n |
26 | 27 | gettext.install("cinnamon", "/usr/share/locale") |
27 | 28 |
|
28 | 29 | home = os.path.expanduser("~") |
| 30 | +settings_dir = os.path.join(GLib.get_user_config_dir(), 'cinnamon', 'spices') |
| 31 | +old_settings_dir = '%s/.cinnamon/configs/' % home |
29 | 32 |
|
30 | 33 | translations = {} |
31 | 34 |
|
@@ -283,9 +286,12 @@ def check_sizing(widget, data=None): |
283 | 286 |
|
284 | 287 | def load_instances(self): |
285 | 288 | self.instance_info = [] |
286 | | - path = "%s/.cinnamon/configs/%s" % (home, self.uuid) |
| 289 | + path = Path(os.path.join(settings_dir, self.uuid)) |
| 290 | + old_path = Path("%s/.cinnamon/configs/%s" % (home, self.uuid)) |
287 | 291 | instances = 0 |
288 | | - dir_items = sorted(os.listdir(path)) |
| 292 | + new_items = os.listdir(path) if path.exists() else [] |
| 293 | + old_items = os.listdir(old_path) if old_path.exists() else [] |
| 294 | + dir_items = sorted(new_items + old_items) |
289 | 295 | try: |
290 | 296 | multi_instance = int(self.xlet_meta["max-instances"]) != 1 |
291 | 297 | except (KeyError, ValueError): |
@@ -317,7 +323,7 @@ def load_instances(self): |
317 | 323 | if not instance_exists: |
318 | 324 | continue |
319 | 325 |
|
320 | | - settings = JSONSettingsHandler(os.path.join(path, item), self.notify_dbus) |
| 326 | + settings = JSONSettingsHandler(os.path.join(path if item in new_items else old_path, item), self.notify_dbus) |
321 | 327 | settings.instance_id = instance_id |
322 | 328 | instance_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) |
323 | 329 | self.instance_stack.add_named(instance_box, instance_id) |
|
0 commit comments