Changeset d3b0c77 in sasview for src/sas/sasgui/guiframe


Ignore:
Timestamp:
Sep 23, 2017 4:24:27 PM (7 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
b963b20, fca1f50
Parents:
9706d88 (diff), dba8557 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'ticket-887-reorg' into ticket-853-fit-gui-to-calc

Location:
src/sas/sasgui/guiframe
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/guiframe/CategoryInstaller.py

    r65f3930 rd3b0c77  
    1515from collections import defaultdict, OrderedDict 
    1616 
     17from sas.sasgui import get_user_dir 
     18 
    1719USER_FILE = 'categories.json' 
    1820 
     
    2527    Note - class is entirely static! 
    2628    """ 
    27  
    28     def __init__(self): 
    29         """ initialization """ 
    3029 
    3130    @staticmethod 
     
    104103        returns the user data file, eg .sasview/categories.json.json 
    105104        """ 
    106         return os.path.join(CategoryInstaller._get_home_dir(), USER_FILE) 
     105        return os.path.join(get_user_dir(), USER_FILE) 
    107106 
    108107    @staticmethod 
  • src/sas/sasgui/guiframe/__init__.py

    r959eb01 r5a405bd  
    1414    # Check for data path next to exe/zip file. 
    1515    # If we are inside a py2exe zip file, we need to go up 
    16     # to get to the directory containing  
     16    # to get to the directory containing 
    1717    # the media for this module 
    1818    path = os.path.dirname(__file__) 
     
    2727                return module_media_path 
    2828            return media_path 
    29     
     29 
    3030    raise RuntimeError('Could not find guiframe images files') 
    3131 
     
    4040    # Check for data path next to exe/zip file. 
    4141    # If we are inside a py2exe zip file, we need to go up 
    42     # to get to the directory containing  
     42    # to get to the directory containing 
    4343    # the media for this module 
    4444    path = os.path.dirname(__file__) 
     
    5858    """ 
    5959    Return the data files associated with guiframe images . 
    60      
     60 
    6161    The format is a list of (directory, [files...]) pairs which can be 
    6262    used directly in setup(...,data_files=...) for setup.py. 
     
    6464    """ 
    6565    data_files = [] 
    66     path = get_data_path(media="images") 
    67     for f in findall(path): 
    68         data_files.append(('images/icons', [f])) 
    69     path = get_media_path(media="media") 
    70     for f in findall(path): 
    71         data_files.append(('media/guiframe_media', [f])) 
     66    data_files.append(('images/icons', findall(get_data_path("images")))) 
     67    data_files.append(('media/guiframe_media', findall(get_data_path("media")))) 
    7268 
    7369    return data_files 
  • src/sas/sasgui/guiframe/aboutbox.py

    rf2ea95a r724af06  
    2424import os.path 
    2525import os 
    26 try: 
    27     # Try to find a local config 
    28     import imp 
    29     path = os.getcwd() 
    30     if(os.path.isfile("%s/%s.py" % (path, 'local_config'))) or \ 
    31       (os.path.isfile("%s/%s.pyc" % (path, 'local_config'))): 
    32         fObj, path, descr = imp.find_module('local_config', [path]) 
    33         config = imp.load_module('local_config', fObj, path, descr) 
    34     else: 
    35         # Try simply importing local_config 
    36         import local_config as config 
    37 except: 
    38     # Didn't find local config, load the default 
    39     import config 
     26 
     27from sas.sasgui import get_local_config 
     28config = get_local_config() 
    4029 
    4130def launchBrowser(url): 
  • src/sas/sasgui/guiframe/acknowledgebox.py

    r74c8cd0 r914ba0a  
    1212import wx.lib.hyperlink 
    1313from wx.lib.expando import ExpandoTextCtrl 
    14 import random 
    15 import os.path 
    16 import os 
    17 try: 
    18     # Try to find a local config 
    19     import imp 
    20     path = os.getcwd() 
    21     if(os.path.isfile("%s/%s.py" % (path, 'local_config'))) or \ 
    22       (os.path.isfile("%s/%s.pyc" % (path, 'local_config'))): 
    23         fObj, path, descr = imp.find_module('local_config', [path]) 
    24         config = imp.load_module('local_config', fObj, path, descr) 
    25     else: 
    26         # Try simply importing local_config 
    27         import local_config as config 
    28 except: 
    29     # Didn't find local config, load the default 
    30     import config 
    3114 
     15from sas.sasgui import get_local_config 
     16config = get_local_config() 
    3217 
    3318class DialogAcknowledge(wx.Dialog): 
  • src/sas/sasgui/guiframe/config.py

    rf80b416e r724af06  
    11""" 
    2     Application settings 
     2Application settings 
    33""" 
    44from __future__ import print_function 
     
    66import time 
    77import os 
     8import logging 
     9 
    810from sas.sasgui.guiframe.gui_style import GUIFRAME 
    911import sas.sasview 
    10 import logging 
    11  
    1212 
    1313logger = logging.getLogger(__name__) 
     
    7575_ansto_logo = os.path.join(icon_path, "ansto_logo.png") 
    7676_tudelft_logo = os.path.join(icon_path, "tudelft_logo.png") 
     77_dls_logo = os.path.join(icon_path, "dls_logo.png") 
    7778_nsf_logo = os.path.join(icon_path, "nsf_logo.png") 
    7879_danse_logo = os.path.join(icon_path, "danse_logo.png") 
     
    147148SAS_OPENCL = None 
    148149 
     150# Time out for updating sasview 
     151UPDATE_TIMEOUT = 2 
     152 
    149153def printEVT(message): 
    150154    if __EVT_DEBUG__: 
  • src/sas/sasgui/guiframe/customdir.py

    r959eb01 rc6bdb3b  
    11# Setup and find Custom config dir 
     2from __future__ import print_function 
     3 
    24import os.path 
     5import logging 
    36import shutil 
    47 
    5 CONF_DIR = 'config'  
    6 APPLICATION_NAME = 'sasview' 
     8from sasmodels.custom import load_module_from_path 
    79 
    8 def _find_usersasview_dir(): 
    9     """ 
    10     Find and return user/.sasview dir 
    11     """ 
    12     return os.path.join(os.path.expanduser("~"), ("." + APPLICATION_NAME)) 
     10from sas.sasgui import get_custom_config_path, get_app_dir 
    1311 
    14 def _find_customconf_dir(): 
    15     """ 
    16     Find path of the config directory. 
    17     The plugin directory is located in the user's home directory. 
    18     """ 
    19     u_dir = _find_usersasview_dir() 
    20     return os.path.join(u_dir, CONF_DIR) 
     12logger = logging.getLogger(__name__) 
    2113 
    22 def _setup_conf_dir(path): 
     14_config_cache = None 
     15def setup_custom_config(): 
    2316    """ 
    2417    Setup the custom config dir and cat file 
    2518    """ 
    26     conf_dir = _find_customconf_dir() 
    27     # If the plugin directory doesn't exist, create it 
    28     if not os.path.isdir(conf_dir): 
    29         os.makedirs(conf_dir) 
    30     config_file = os.path.join(conf_dir, "custom_config.py") 
    31  
    32     # Place example user models as needed 
    33     try: 
    34         if not os.path.isfile(config_file): 
    35             shutil.copyfile(os.path.join(path, "custom_config.py"), config_file) 
    36  
    37         #Adding SAS_OPENCL if it doesn't exist in the config file 
    38         # - to support backcompability 
    39         if not "SAS_OPENCL" in open(config_file).read(): 
    40             open(config_file,"a+").write("SAS_OPENCL = \"None\"\n") 
    41     except: 
    42         # Check for data path next to exe/zip file. 
    43         #Look for maximum n_dir up of the current dir to find plugins dir 
    44         n_dir = 12 
    45         is_dir = False 
    46         f_dir = path 
    47         for i in range(n_dir): 
    48             if i > 1: 
    49                 f_dir, _ = os.path.split(f_dir) 
    50             temp_path = os.path.join(f_dir, "custom_config.py") 
    51             if os.path.isfile(temp_path): 
    52                 shutil.copyfile(temp_path, config_file) 
    53                 is_dir = True 
    54                 break 
    55         if not is_dir: 
    56             raise 
    57     return conf_dir 
     19    global _config_cache 
     20    if not _config_cache: 
     21        _config_cache = _setup_custom_config() 
     22    return _config_cache 
    5823 
    5924 
    60 class SetupCustom(object): 
    61     """ 
    62     implement custom config dir 
    63     """ 
    64     def find_dir(self): 
    65         return _find_customconf_dir() 
    66      
    67     def setup_dir(self, path): 
    68         return _setup_conf_dir(path) 
     25def _setup_custom_config(): 
     26    path = get_custom_config_path() 
     27    if not os.path.isfile(path): 
     28        try: 
     29            # if the custom config file does not exist, copy the default from 
     30            # the app dir 
     31            shutil.copyfile(os.path.join(get_app_dir(), "custom_config.py"), 
     32                            path) 
     33        except Exception: 
     34            logger.error("Could not copy default custom config.") 
     35 
     36    #Adding SAS_OPENCL if it doesn't exist in the config file 
     37    # - to support backcompability 
     38    if not "SAS_OPENCL" in open(path).read(): 
     39        try: 
     40            open(config_file, "a+").write("SAS_OPENCL = \"None\"\n") 
     41        except Exception: 
     42            logger.error("Could not update custom config with SAS_OPENCL.") 
     43 
     44    custom_config = _load_config(path) 
     45    return custom_config 
     46 
     47 
     48def _load_config(path): 
     49    if os.path.exists(path): 
     50        try: 
     51            module = load_module_from_path('sas.sasview.custom_config', path) 
     52            logger.info("GuiManager loaded %s", path) 
     53            return module 
     54        except Exception as exc: 
     55            logger.error("Error loading %s: %s", path, exc) 
     56 
     57    from sas.sasview import custom_config 
     58    logger.info("GuiManager custom_config defaults to sas.sasview.custom_config") 
     59    return custom_config 
  • src/sas/sasgui/guiframe/data_panel.py

    ra1b8fee rc6bdb3b  
    3333from sas.sasgui.guiframe.local_perspectives.plotting.SimplePlot \ 
    3434    import PlotFrame as QucikPlotDialog 
    35 import sas.sasgui.guiframe.config as config 
     35from sas.sasgui import get_local_config 
     36 
     37config = get_local_config() 
    3638 
    3739# Check version 
  • src/sas/sasgui/guiframe/documentation_window.py

    rf80b416e r724af06  
    2727    WX_SUPPORTS_HTML2 = False 
    2828 
    29 from .gui_manager import get_app_dir 
     29from sas.sasgui import get_app_dir 
    3030 
    3131# Don't use wx html renderer on windows. 
  • src/sas/sasgui/guiframe/gui_manager.py

    r2f22db9 r914ba0a  
    2222import re 
    2323import logging 
    24 import httplib 
    2524import traceback 
    2625import urllib 
    27 import urllib2 
    2826import json 
    2927 
     28from matplotlib import _pylab_helpers 
     29 
     30from sas.sasgui import get_local_config, get_app_dir, get_user_dir 
    3031from sas.sasgui.guiframe.events import EVT_CATEGORY 
    3132from sas.sasgui.guiframe.events import EVT_STATUS 
     
    4647from sas.sascalc.dataloader.loader import Loader 
    4748from sas.sasgui.guiframe.proxy import Connection 
    48 from matplotlib import _pylab_helpers 
     49from sas.sasgui.guiframe.customdir import setup_custom_config 
    4950 
    5051logger = logging.getLogger(__name__) 
    51  
    5252warnings.simplefilter("ignore") 
    5353 
    54 def get_app_dir(): 
    55     """ 
    56         The application directory is the one where the default custom_config.py 
    57         file resides. 
    58  
    59         :returns: app_path - the path to the applicatin directory 
    60     """ 
    61     # First, try the directory of the executable we are running 
    62     app_path = sys.path[0] 
    63     if os.path.isfile(app_path): 
    64         app_path = os.path.dirname(app_path) 
    65     if os.path.isfile(os.path.join(app_path, "custom_config.py")): 
    66         app_path = os.path.abspath(app_path) 
    67         logger.info("Using application path: %s", app_path) 
    68         return app_path 
    69  
    70     # Next, try the current working directory 
    71     if os.path.isfile(os.path.join(os.getcwd(), "custom_config.py")): 
    72         logger.info("Using application path: %s", os.getcwd()) 
    73         return os.path.abspath(os.getcwd()) 
    74  
    75     # Finally, try the directory of the sasview module 
    76     # TODO: gui_manager will have to know about sasview until we 
    77     # clean all these module variables and put them into a config class 
    78     # that can be passed by sasview.py. 
    79     logger.debug(sys.executable) 
    80     logger.debug(str(sys.argv)) 
    81     from sas import sasview as sasview 
    82     app_path = os.path.dirname(sasview.__file__) 
    83     logger.debug("Using application path: %s", app_path) 
    84     return app_path 
    85  
    86  
    87 def get_user_directory(): 
    88     """ 
    89         Returns the user's home directory 
    90     """ 
    91     userdir = os.path.join(os.path.expanduser("~"), ".sasview") 
    92     if not os.path.isdir(userdir): 
    93         os.makedirs(userdir) 
    94     return userdir 
    95  
    96  
    97 def _find_local_config(file, path): 
    98     """ 
    99         Find configuration file for the current application 
    100     """ 
    101     config_module = None 
    102     fObj = None 
    103     try: 
    104         fObj, path_config, descr = imp.find_module(file, [path]) 
    105         config_module = imp.load_module(file, fObj, path_config, descr) 
    106     except: 
    107         logger.error("Error loading %s/%s: %s" % (path, file, sys.exc_value)) 
    108     finally: 
    109         if fObj is not None: 
    110             fObj.close() 
    111     logger.debug("GuiManager loaded %s/%s" % (path, file)) 
    112     return config_module 
    113  
    114 # Get APP folder 
    115 PATH_APP = get_app_dir() 
    116 DATAPATH = PATH_APP 
    117  
    118 # GUI always starts from the App folder 
    119 # os.chdir(PATH_APP) 
    120 # Read in the local config, which can either be with the main 
    121 # application or in the installation directory 
    122 config = _find_local_config('local_config', PATH_APP) 
    123 if config is None: 
    124     config = _find_local_config('local_config', os.getcwd()) 
    125     if config is None: 
    126         # Didn't find local config, load the default 
    127         import sas.sasgui.guiframe.config as config 
    128         logger.debug("using default local_config") 
    129     else: 
    130         logger.debug("found local_config in %s" % os.getcwd()) 
    131 else: 
    132     logger.debug("found local_config in %s" % PATH_APP) 
    133  
    134 from sas.sasgui.guiframe.customdir import SetupCustom 
    135 c_conf_dir = SetupCustom().setup_dir(PATH_APP) 
    136 custom_config = _find_local_config('custom_config', c_conf_dir) 
    137 if custom_config is None: 
    138     custom_config = _find_local_config('custom_config', os.getcwd()) 
    139     if custom_config is None: 
    140         msgConfig = "Custom_config file was not imported" 
    141         logger.debug(msgConfig) 
    142     else: 
    143         logger.debug("using custom_config in %s" % os.getcwd()) 
    144 else: 
    145     logger.debug("using custom_config from %s" % c_conf_dir) 
     54config = get_local_config() 
     55custom_config = setup_custom_config() 
    14656 
    14757# read some constants from config 
     
    17787        DEFAULT_OPEN_FOLDER = os.path.abspath(open_folder) 
    17888    else: 
    179         DEFAULT_OPEN_FOLDER = PATH_APP 
     89        DEFAULT_OPEN_FOLDER = get_app_dir() 
    18090    SAS_OPENCL = custom_config.SAS_OPENCL 
    18191except: 
     
    192102    DEFAULT_PERSPECTIVE = None 
    193103    CLEANUP_PLOT = False 
     104    DEFAULT_OPEN_FOLDER = get_app_dir() 
    194105    DEFAULT_OPEN_FOLDER = PATH_APP 
    195106    SAS_OPENCL = None 
     
    265176                if os.path.isfile(ico_file): 
    266177                    self.SetIcon(wx.Icon(ico_file, wx.BITMAP_TYPE_ICO)) 
    267         self.path = PATH_APP 
     178        self.path = get_app_dir() 
    268179        self.application_name = APPLICATION_NAME 
    269180        # Application manager 
     
    540451        try: 
    541452            fd = open(file_name, 'w') 
    542         except: 
     453        except Exception: 
    543454            # On Permission denied: IOError 
    544             temp_dir = get_user_directory() 
     455            temp_dir = get_user_dir() 
    545456            temp_file_name = os.path.join(temp_dir, name) 
    546457            fd = open(temp_file_name, 'w') 
     
    15321443            # want Analysis.  This is NOT an issue on the Mac which does not 
    15331444            # have the extra Window menu item. 
    1534             #      March 2016 Code Camp  -- PDB  
     1445            #      March 2016 Code Camp  -- PDB 
    15351446            Tools_pos = self._menubar.FindMenu("Tools") 
    15361447            self._menubar.Insert(Tools_pos+1, self._applications_menu, 
     
    21632074                logger.info("Failed to connect to www.sasview.org") 
    21642075        self._process_version(version_info, standalone=event is None) 
     2076 
    21652077 
    21662078    def _process_version(self, version_info, standalone=True): 
     
    33513263                if basename.lower() in [app_py, app_exe, app_app, app_base]: 
    33523264                    data_base = sys.argv[1] 
    3353                     input_file = os.path.normpath(os.path.join(DATAPATH, 
     3265                    input_file = os.path.normpath(os.path.join(get_app_dir(), 
    33543266                                                               data_base)) 
    33553267        if input_file is None: 
     
    33663278        # do it only the first time app loaded 
    33673279        # delete unused model folder 
    3368         model_folder = os.path.join(PATH_APP, path) 
     3280        model_folder = os.path.join(get_app_dir(), path) 
    33693281        if os.path.exists(model_folder) and os.path.isdir(model_folder): 
    33703282            if len(os.listdir(model_folder)) > 0: 
  • src/sas/sasgui/guiframe/local_perspectives/data_loader/data_loader.py

    rdcb91cf r759a8ab  
    1212from sas.sascalc.dataloader.loader import Loader 
    1313from sas.sascalc.dataloader.loader_exceptions import NoKnownLoaderException 
     14 
     15from sas.sasgui import get_local_config 
    1416from sas.sasgui.guiframe.plugin_base import PluginBase 
    1517from sas.sasgui.guiframe.events import StatusEvent 
    1618from sas.sasgui.guiframe.gui_style import GUIFRAME 
    1719from sas.sasgui.guiframe.gui_manager import DEFAULT_OPEN_FOLDER 
    18 try: 
    19     # Try to find a local config 
    20     import imp 
    21     path = os.getcwd() 
    22     if(os.path.isfile("%s/%s.py" % (path, 'local_config'))) or \ 
    23         (os.path.isfile("%s/%s.pyc" % (path, 'local_config'))): 
    24         fObj, path, descr = imp.find_module('local_config', [path]) 
    25         config = imp.load_module('local_config', fObj, path, descr) 
    26     else: 
    27         # Try simply importing local_config 
    28         import local_config as config 
    29 except: 
    30     # Didn't find local config, load the default 
    31     import sas.sasgui.guiframe.config as config 
    32  
    33 if config is None: 
    34     import sas.sasgui.guiframe.config as config 
    35  
    36  
     20 
     21config = get_local_config() 
    3722extension_list = [] 
    3823if config.APPLICATION_STATE_EXTENSION is not None: 
  • src/sas/sasgui/guiframe/startup_configuration.py

    r7432acb r914ba0a  
    1  
    21################################################################################ 
    32#This software was developed by the University of Tennessee as part of the 
    43#Distributed Data Analysis of Neutron Scattering Experiments (DANSE) 
    5 #project funded by the US National Science Foundation.  
     4#project funded by the US National Science Foundation. 
    65# 
    76#See the license text in license.txt 
     
    98#copyright 2009, University of Tennessee 
    109################################################################################ 
     10import os 
     11import copy 
     12 
    1113import wx 
    12 import os 
    13 import sys 
    14 import copy 
    15 #import sas.sasgui.guiframe.gui_manager as gui 
    16 from sas.sasgui.guiframe.events import StatusEvent   
     14 
     15from sas.sasgui import get_custom_config_path 
     16from sas.sasgui.guiframe.events import StatusEvent 
    1717from sas.sasgui.guiframe.gui_style import GUIFRAME 
    1818from sas.sasgui.guiframe import gui_manager as CURRENT 
    19 from sas.sasgui.guiframe.customdir  import SetupCustom 
     19 
     20 
    2021# default configuration 
    2122DEFAULT_STRINGS = {'GUIFRAME_WIDTH':-1, 
     
    6263    """ 
    6364    def __init__(self, parent, gui, id=-1, title="Startup Setting"): 
    64         wx.Dialog.__init__(self, parent, id, title,  
     65        wx.Dialog.__init__(self, parent, id, title, 
    6566                           size=(PANEL_WIDTH, PANEL_HEIGHT)) 
    6667        # parent 
    6768        self.parent = parent 
    68         self.path = SetupCustom().find_dir() 
    6969        self._gui = gui 
    70         # font size  
     70        # font size 
    7171        self.SetWindowVariant(variant=FONT_VARIANT) 
    7272        self.current_string = copy.deepcopy(CURRENT_STRINGS) 
     
    7676        title_text = wx.StaticText(self, id=wx.NewId(), label='Set interface configuration') 
    7777 
    78         default_bt = wx.RadioButton(self, -1, 'Default View', (15, 30),  
     78        default_bt = wx.RadioButton(self, -1, 'Default View', (15, 30), 
    7979                                    style=wx.RB_GROUP) 
    8080        default_bt.Bind(wx.EVT_RADIOBUTTON, self.OnDefault) 
     
    8787        note_txt = wx.StaticText(self, -1, msg, (15, 75)) 
    8888        note_txt.SetForegroundColour("black") 
    89          
     89 
    9090        hbox = wx.BoxSizer(wx.HORIZONTAL) 
    9191        okButton = wx.Button(self, wx.ID_OK, 'Set', size=(70, 25)) 
    92         closeButton = wx.Button(self,wx.ID_CANCEL, 'Cancel', size=(70, 25)) 
     92        closeButton = wx.Button(self, wx.ID_CANCEL, 'Cancel', size=(70, 25)) 
    9393        hbox.Add(closeButton, 1, wx.RIGHT, 5) 
    9494        hbox.Add(okButton, 1, wx.RIGHT, 5) 
     
    102102        self.SetSizer(vbox) 
    103103 
    104          
     104 
    105105    def OnDefault(self, event=None): 
    106106        """ 
     
    111111        self.return_string = copy.deepcopy(DEFAULT_STRINGS) 
    112112        return self.return_string 
    113          
     113 
    114114    def OnCurrent(self, event=None): 
    115115        """ 
     
    134134                p_size = CURRENT_STRINGS['PLOPANEL_WIDTH'] 
    135135            self.current_string['PLOPANEL_WIDTH'] = p_size 
    136              
     136 
    137137            try: 
    138138                control_frame = self.parent.get_current_perspective().frame 
     
    143143                self.current_string['CONTROL_WIDTH'] = -1 
    144144                self.current_string['CONTROL_HEIGHT'] = -1 
    145                  
     145 
    146146            data_pw, _ = self.parent.panels["data_panel"].frame.GetSizeTuple() 
    147147            if data_pw is None: 
    148148                data_pw = CURRENT_STRINGS['DATAPANEL_WIDTH'] 
    149149            self.current_string['DATAPANEL_WIDTH'] = data_pw 
    150              
     150 
    151151            #label = self.parent._data_panel_menu.GetText() 
    152152            label = self.parent.panels['data_panel'].frame.IsShown() 
     
    155155            else: 
    156156                self.current_string['DATALOADER_SHOW'] = False 
    157                  
     157 
    158158            if self.parent._toolbar.IsShown(): 
    159159                self.current_string['TOOLBAR_SHOW'] = True 
    160160            else: 
    161161                self.current_string['TOOLBAR_SHOW'] = False 
    162                  
     162 
    163163            style = self._gui & GUIFRAME.FLOATING_PANEL 
    164             if style == GUIFRAME.FLOATING_PANEL:  
     164            if style == GUIFRAME.FLOATING_PANEL: 
    165165                self.current_string['FIXED_PANEL'] = False 
    166166            else: 
    167167                self.current_string['FIXED_PANEL'] = True 
    168                  
     168 
    169169            if self.parent.panels['default'].frame.IsShown(): 
    170170                self.current_string['WELCOME_PANEL_SHOW'] = True 
     
    182182            self.current_string['DEFAULT_OPEN_FOLDER'] = location 
    183183                        #self.parent._default_save_location.ascii_letters 
    184              
     184 
    185185        except: 
    186186            raise 
     
    188188        self.return_string = self.current_string 
    189189        return self.return_string 
    190      
     190 
     191 
    191192    def write_custom_config(self): 
    192193        """ 
    193             Write custom configuration 
    194         """ 
    195         fname = os.path.join(self.path, 'custom_config.py') 
    196         self.write_string(fname, self.return_string) 
    197  
    198     def write_string(self, fname, strings): 
    199         """ 
    200         Write and Save file 
    201         """ 
    202          
    203         try: 
    204             out_f =  open(fname,'w') 
    205         except : 
    206             raise  #RuntimeError, "Error: Can not change the configuration..." 
    207         out_f.write("#Application appearance custom configuration\n" ) 
    208         for key, item in strings.iteritems(): 
    209             if (key == 'DEFAULT_PERSPECTIVE') or \ 
    210                 (key == 'DEFAULT_OPEN_FOLDER' and item is not None): 
    211                 out_f.write("%s = \"%s\"\n" % (key,str(item))) 
    212             else: 
    213                 out_f.write("%s = %s\n" % (key,str(item))) 
    214      
    215         out_f.close()  
    216          
     194        Write custom configuration 
     195        """ 
     196        path = get_custom_config_path() 
     197        with open(path, 'w') as out_f: 
     198            out_f.write("#Application appearance custom configuration\n") 
     199            for key, item in self.return_string.iteritems(): 
     200                if (key == 'DEFAULT_PERSPECTIVE') or \ 
     201                    (key == 'DEFAULT_OPEN_FOLDER' and item != None): 
     202                    out_f.write("%s = \"%s\"\n" % (key, str(item))) 
     203                else: 
     204                    out_f.write("%s = %s\n" % (key, str(item))) 
Note: See TracChangeset for help on using the changeset viewer.