From f2b79e55fd7aa683aa77cc4bbaba2f14a710e296 Mon Sep 17 00:00:00 2001 From: Ales Erjavec Date: Wed, 10 Jan 2018 11:40:25 +0100 Subject: [PATCH] OWWidget: Store quicktip displayed state in non versioned settings dir --- Orange/misc/environ.py | 16 ++++++++++------ Orange/widgets/widget.py | 8 +++++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Orange/misc/environ.py b/Orange/misc/environ.py index d47da3ac172..e5e5164350d 100644 --- a/Orange/misc/environ.py +++ b/Orange/misc/environ.py @@ -45,23 +45,27 @@ def data_dir_base(): return base -def data_dir(): +def data_dir(versioned=True): """ Return the platform dependent Orange data directory. - This is ``data_dir_base()``/Orange/__VERSION__/ directory. + This is ``data_dir_base()``/Orange/__VERSION__/ directory if versioned is + `True` and ``data_dir_base()``/Orange/ otherwise. """ base = data_dir_base() - return os.path.join(base, "Orange", Orange.__version__) + if versioned: + return os.path.join(base, "Orange", Orange.__version__) + else: + return os.path.join(base, "Orange") -def widget_settings_dir(): +def widget_settings_dir(versioned=True): """ Return the platform dependent directory where widgets save their settings. - This a subdirectory of ``data_dir()`` named "widgets" + This a subdirectory of ``data_dir(versioned)`` named "widgets" """ - return os.path.join(data_dir(), "widgets") + return os.path.join(data_dir(versioned=versioned), "widgets") def cache_dir(*args): diff --git a/Orange/widgets/widget.py b/Orange/widgets/widget.py index d630dd67cf4..d70c42e6dff 100644 --- a/Orange/widgets/widget.py +++ b/Orange/widgets/widget.py @@ -821,7 +821,13 @@ def __quicktip(self): self.__showMessage(message) def __quicktipOnce(self): - filename = os.path.join(settings.widget_settings_dir(), + dirpath = settings.widget_settings_dir(versioned=False) + try: + os.makedirs(dirpath, exist_ok=True) + except OSError: # EPERM, EEXISTS, ... + pass + + filename = os.path.join(settings.widget_settings_dir(versioned=False), "user-session-state.ini") namespace = ("user-message-history/{0.__module__}.{0.__qualname__}" .format(type(self)))