Ignore:
Timestamp:
Dec 5, 2016 8:48:42 AM (8 years ago)
Author:
wojciech
Children:
7feb69d
Parents:
8f02f7f
Message:

Interactive response to SAS_OPENCL enviroment

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/perspectives/fitting/gpu_options.py

    r8f02f7f r71ac835  
    3636        self.option_button = {} 
    3737        self.buttons = [] 
     38        #Check if SAS_OPENCL is already set 
     39        self.sas_opencl = os.environ.get("SAS_OPENCL","") 
    3840        for index, clopt in enumerate(clinfo): 
    3941            button = wx.CheckBox(self.panel1, -1, label=clopt, name=clopt) 
     42 
    4043            if clopt != "No OpenCL": 
    4144                self.option_button[clopt] = str(index) 
     45                if self.sas_opencl == str(index): 
     46                    button.SetValue(1) 
    4247            else: 
    4348                self.option_button[clopt] = "None" 
     49                if self.sas_opencl.lower() == "none" : 
     50                    button.SetValue(1) 
     51 
    4452            self.Bind(wx.EVT_CHECKBOX, self.on_check, id=button.GetId()) 
    4553            self.buttons.append(button) 
     
    5563 
    5664        accept_btn = wx.Button(self, wx.ID_OK) 
    57         accept_btn.SetToolTipString("Accept OpenCL settings") 
     65        accept_btn.SetToolTipString("Accept new OpenCL settings. This will" 
     66                                    "overwrite SAS_OPENCL variable if set") 
    5867 
    5968        help_id = wx.NewId() 
     
    6170        help_btn.SetToolTipString("Help on the GPU options") 
    6271 
     72        reset_id = wx.NewId() 
     73        reset_btn = wx.Button(self, reset_id, 'Reset') 
     74        reset_btn.SetToolTipString("Restore initial settings") 
     75 
    6376        self.Bind(wx.EVT_BUTTON, self.on_OK, accept_btn) 
     77        self.Bind(wx.EVT_BUTTON, self.on_reset, reset_btn) 
    6478        self.Bind(wx.EVT_BUTTON, self.on_help, help_btn) 
    6579 
     
    6781        btn_sizer.Add((10, 20), 1) # stretchable whitespace 
    6882        btn_sizer.Add(accept_btn, 0) 
     83        btn_sizer.Add((10, 20), 0) # non-stretchable whitespace 
     84        btn_sizer.Add(reset_btn, 0) 
    6985        btn_sizer.Add((10, 20), 0) # non-stretchable whitespace 
    7086        btn_sizer.Add(help_btn, 0) 
     
    8096    def _get_clinfo(self): 
    8197        clinfo = [] 
    82  
    8398        try: 
    8499            import pyopencl as cl 
     
    102117            if btn != selected_button: 
    103118                btn.SetValue(0) 
    104         os.environ["SAS_OPENCL"] = self.option_button[selected_button.Name] 
     119        self.sas_opencl = self.option_button[selected_button.Name] 
    105120 
    106121    def on_OK(self, event): 
     
    109124        """ 
    110125        import sasmodels 
     126        #If statement added to handle Reset 
     127        if self.sas_opencl: 
     128            os.environ["SAS_OPENCL"] = self.sas_opencl 
     129        else: 
     130            if "SAS_OPENCL" in os.environ: 
     131                del(os.environ["SAS_OPENCL"]) 
    111132        sasmodels.kernelcl.ENV = None 
    112133        #Need to reload sasmodels.core module to account SAS_OPENCL = "None" 
    113134        reload(sasmodels.core) 
    114135        event.Skip() 
     136 
     137    def on_reset(self, event): 
     138        """ 
     139        Close window on accpetance 
     140        """ 
     141        for btn in self.buttons: 
     142            btn.SetValue(0) 
     143        self.sas_opencl=None 
    115144 
    116145    def on_help(self, event): 
Note: See TracChangeset for help on using the changeset viewer.