1616import requests
1717
1818from 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
2121from orangecanvas import config as occonfig
2222from orangecanvas .utils .settings import config_slot
2323from orangewidget .workflow import config
24+ from orangewidget .settings import set_widget_settings_dir_components
2425
2526import Orange
27+ from Orange .misc import environ
2628
2729# generated from biolab/orange3-addons repository
2830OFFICIAL_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