Skip to content

Commit 7422079

Browse files
committed
config: Apply configured paths if defined
1 parent 8fe3f75 commit 7422079

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

Orange/canvas/config.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616
import requests
1717

1818
from AnyQt.QtGui import QPainter, QFont, QFontMetrics, QColor, QPixmap, QIcon
19-
from AnyQt.QtCore import Qt, QPoint, QRect
19+
from AnyQt.QtCore import Qt, QPoint, QRect, QSettings
2020

2121
from orangecanvas import config as occonfig
2222
from orangecanvas.utils.settings import config_slot
2323
from orangewidget.workflow import config
24+
from orangewidget.settings import set_widget_settings_dir_components
2425

2526
import Orange
27+
from Orange.misc import environ
2628

2729
# generated from biolab/orange3-addons repository
2830
OFFICIAL_ADDON_LIST = "https://orange.biolab.si/addons/list"
@@ -68,6 +70,21 @@ class Config(config.Config):
6870

6971
def init(self):
7072
super().init()
73+
widget_settings_dir_cfg = environ.get_path("widget_settings_dir", "")
74+
if widget_settings_dir_cfg:
75+
# widget_settings_dir is configured via config file
76+
set_widget_settings_dir_components(
77+
widget_settings_dir_cfg, self.ApplicationVersion
78+
)
79+
80+
canvas_settings_dir_cfg = environ.get_path("canvas_settings_dir", "")
81+
if canvas_settings_dir_cfg:
82+
# canvas_settings_dir is configured via config file
83+
QSettings.setPath(
84+
QSettings.IniFormat, QSettings.UserScope,
85+
canvas_settings_dir_cfg
86+
)
87+
7188
for t in spec:
7289
occonfig.register_setting(*t)
7390

@@ -197,7 +214,6 @@ def data_dir():
197214
Return the Orange application data directory. If the directory path
198215
does not yet exists then create it.
199216
"""
200-
from Orange.misc import environ
201217
path = os.path.join(environ.data_dir(), "canvas")
202218
try:
203219
os.makedirs(path, exist_ok=True)
@@ -211,7 +227,6 @@ def cache_dir():
211227
Return the Orange application cache directory. If the directory path
212228
does not yet exists then create it.
213229
"""
214-
from Orange.misc import environ
215230
path = os.path.join(environ.cache_dir(), "canvas")
216231
try:
217232
os.makedirs(path, exist_ok=True)
@@ -230,6 +245,8 @@ def log_dir():
230245
else:
231246
logdir = data_dir()
232247

248+
logdir = environ.get_path("log_dir", logdir)
249+
233250
try:
234251
os.makedirs(logdir, exist_ok=True)
235252
except OSError:

0 commit comments

Comments
 (0)