Changeset a47d0c8 in sasview


Ignore:
Timestamp:
Aug 12, 2016 6:40:40 AM (8 years ago)
Author:
lewis
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, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
1925a8e
Parents:
2c627ad (diff), 2cff9db (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 'master' into corfunc

Files:
22 added
12 edited

Legend:

Unmodified
Added
Removed
  • build_tools/jenkins_win64_build.bat

    rab06de7 rb636c0ba  
    44set INNO="C:\util\inno\ISCC.exe" 
    55set GIT_SED=C:\"Program Files"\Git\bin\sed.exe 
    6  
    76set SAS_COMPILER=tinycc 
    8 set WORKSPACE=C:\build 
    97 
    108set PYTHONPATH=%WORKSPACE%\sasview\utils 
     
    2321%GIT_SED% -i.bak "s/GIT_COMMIT/%githash%/g" __init__.py 
    2422 
    25  
    26  
    2723:: MAKE DIR FOR EGGS ################################################## 
    2824cd %WORKSPACE% 
     
    3026MD sasview-install 
    3127MD utils 
     28 
     29:: TINYCC build #################################################### 
     30cd %WORKSPACE% 
     31cd tinycc 
     32%PYTHON% setup.py build 
     33xcopy /S build\lib\* %WORKSPACE%\sasview\utils\ 
    3234 
    3335 
     
    3739%PYTHON% setup.py build 
    3840 
    39  
    40  
    4141:: SASMODELS doc ###################################################### 
    4242cd doc 
    4343make html 
    44  
    4544 
    4645:: SASMODELS build egg ################################################ 
     
    4847cd sasmodels 
    4948%PYTHON% setup.py bdist_egg 
    50  
    5149 
    5250:: SASMODELS install egg ############################################## 
     
    7977 
    8078 
    81 :: TINYCC build #################################################### 
    82 cd %WORKSPACE% 
    83 cd tinycc 
    84 %PYTHON% setup.py build 
    85 xcopy /S build\lib\* %WORKSPACE%\sasview\utils\ 
    86  
    8779:: SASVIEW INSTALLER ################################################## 
    8880cd %WORKSPACE% 
  • sasview/setup_exe.py

    rc3e4e213 r98d89df  
    243243    data_files.append(('.', [f])) 
    244244 
    245 # atlas DLL required by matplotlib 11.1 
    246 # ** REVISIT WHEN MOVING TO ANACONDA ** 
    247 f = "c:\\python27\\lib\\site-packages\\numpy\\core\\numpy-atlas.dll" 
    248 if os.path.isfile(f): 
    249     data_files.append(('.', [f])) 
    250      
     245# numerical libraries 
     246def dll_check(dll_path, dlls): 
     247    dll_includes = [os.path.join(dll_path, dll+'.dll') for dll in dlls] 
     248    return [dll for dll in dll_includes if os.path.exists(dll)] 
     249 
     250python_root = os.path.dirname(os.path.abspath(sys.executable)) 
     251# Check for ATLAS 
     252dll_path = os.path.join(python_root, 'lib', 'site-packages', 'numpy', 'core') 
     253dlls = ['numpy-atlas'] 
     254atlas_dlls = dll_check(dll_path, dlls) 
     255 
     256# Check for MKL 
     257dll_path = os.path.join(python_root, 'Library', 'bin') 
     258dlls = ['mkl_core', 'mkl_def', 'libiomp5md'] 
     259mkl_dlls = dll_check(dll_path, dlls) 
     260 
     261if atlas_dlls: 
     262    data_files.append(('.', atlas_dlls)) 
     263elif mkl_dlls: 
     264    data_files.append(('.', mkl_dlls)) 
     265 
    251266if os.path.isfile("BUILD_NUMBER"): 
    252267    data_files.append(('.', ["BUILD_NUMBER"])) 
  • src/sas/sasgui/guiframe/local_perspectives/plotting/Plotter1D.py

    r5a54aa4 ra47d0c8  
    580580        self._slicerpop.set_graph(self.graph) 
    581581        ids = iter(self._menu_ids) 
    582         if not self.graph.selected_plottable in self.plots: 
    583             # Various plot options 
    584             wx_id = ids.next() 
    585             self._slicerpop.Append(wx_id, '&Save Image', 'Save image as PNG') 
    586             wx.EVT_MENU(self, wx_id, self.onSaveImage) 
    587             wx_id = ids.next() 
    588             self._slicerpop.Append(wx_id, '&Print Image', 'Print image ') 
    589             wx.EVT_MENU(self, wx_id, self.onPrint) 
    590  
    591             wx_id = ids.next() 
    592             self._slicerpop.Append(wx_id, '&Copy to Clipboard', 
    593                                    'Copy to the clipboard') 
    594             wx.EVT_MENU(self, wx_id, self.OnCopyFigureMenu) 
    595  
    596             self._slicerpop.AppendSeparator() 
     582 
     583        # Various plot options 
     584        wx_id = ids.next() 
     585        self._slicerpop.Append(wx_id, '&Save Image', 'Save image as PNG') 
     586        wx.EVT_MENU(self, wx_id, self.onSaveImage) 
     587        wx_id = ids.next() 
     588        self._slicerpop.Append(wx_id, '&Print Image', 'Print image ') 
     589        wx.EVT_MENU(self, wx_id, self.onPrint) 
     590 
     591        wx_id = ids.next() 
     592        self._slicerpop.Append(wx_id, '&Copy to Clipboard', 
     593                               'Copy to the clipboard') 
     594        wx.EVT_MENU(self, wx_id, self.OnCopyFigureMenu) 
     595 
     596        self._slicerpop.AppendSeparator() 
    597597 
    598598        for plot in self.plots.values(): 
     
    617617            item_list = self.parent.get_current_context_menu(self) 
    618618            if (not item_list == None) and (not len(item_list) == 0): 
    619                 # Note: reusing menu ids in submenu.  This code works because 
    620                 # IdItems is set up as a lazy iterator returning each id in 
    621                 # sequence, creating new ids as needed so it never runs out. 
    622                 # zip() is set up to stop when any iterator is empty, so it 
    623                 # only asks for the number of ids in item_list. 
    624                 for item, wx_id in zip(item_list, self._menu_ids): 
     619                for item, wx_id in zip(item_list, [ids.next() for i in range(len(item_list))]): 
    625620 
    626621                    try: 
     
    671666            # Option to hide 
    672667            # TODO: implement functionality to hide a plottable (legend click) 
    673         if not self.graph.selected_plottable in self.plots: 
     668 
     669        self._slicerpop.AppendSeparator() 
     670        loc_menu = wx.Menu() 
     671        for label in self._loc_labels: 
     672            wx_id = ids.next() 
     673            loc_menu.Append(wx_id, str(label), str(label)) 
     674            wx.EVT_MENU(self, wx_id, self.onChangeLegendLoc) 
     675 
     676        wx_id = ids.next() 
     677        self._slicerpop.Append(wx_id, '&Modify Graph Appearance', 
     678                               'Modify graph appearance') 
     679        wx.EVT_MENU(self, wx_id, self.modifyGraphAppearance) 
     680        self._slicerpop.AppendSeparator() 
     681 
     682 
     683        if self.position != None: 
     684            wx_id = ids.next() 
     685            self._slicerpop.Append(wx_id, '&Add Text') 
     686            wx.EVT_MENU(self, wx_id, self._on_addtext) 
     687            wx_id = ids.next() 
     688            self._slicerpop.Append(wx_id, '&Remove Text') 
     689            wx.EVT_MENU(self, wx_id, self._on_removetext) 
    674690            self._slicerpop.AppendSeparator() 
    675             loc_menu = wx.Menu() 
    676             for label in self._loc_labels: 
    677                 wx_id = ids.next() 
    678                 loc_menu.Append(wx_id, str(label), str(label)) 
    679                 wx.EVT_MENU(self, wx_id, self.onChangeLegendLoc) 
    680  
    681             wx_id = ids.next() 
    682             self._slicerpop.Append(wx_id, '&Modify Graph Appearance', 
    683                                    'Modify graph appearance') 
    684             wx.EVT_MENU(self, wx_id, self.modifyGraphAppearance) 
    685             self._slicerpop.AppendSeparator() 
    686  
    687  
    688             if self.position != None: 
    689                 wx_id = ids.next() 
    690                 self._slicerpop.Append(wx_id, '&Add Text') 
    691                 wx.EVT_MENU(self, wx_id, self._on_addtext) 
    692                 wx_id = ids.next() 
    693                 self._slicerpop.Append(wx_id, '&Remove Text') 
    694                 wx.EVT_MENU(self, wx_id, self._on_removetext) 
    695                 self._slicerpop.AppendSeparator() 
    696             wx_id = ids.next() 
    697             self._slicerpop.Append(wx_id, '&Change Scale') 
    698             wx.EVT_MENU(self, wx_id, self._onProperties) 
     691        wx_id = ids.next() 
     692        self._slicerpop.Append(wx_id, '&Change Scale') 
     693        wx.EVT_MENU(self, wx_id, self._onProperties) 
     694        self._slicerpop.AppendSeparator() 
     695        wx_id = ids.next() 
     696        self._slicerpop.Append(wx_id, '&Reset Graph Range') 
     697        wx.EVT_MENU(self, wx_id, self.onResetGraph) 
     698 
     699        if self.parent.ClassName.count('wxDialog') == 0: 
    699700            self._slicerpop.AppendSeparator() 
    700701            wx_id = ids.next() 
    701             self._slicerpop.Append(wx_id, '&Reset Graph Range') 
    702             wx.EVT_MENU(self, wx_id, self.onResetGraph) 
    703  
    704             if self.parent.ClassName.count('wxDialog') == 0: 
    705                 self._slicerpop.AppendSeparator() 
    706                 wx_id = ids.next() 
    707                 self._slicerpop.Append(wx_id, '&Window Title') 
    708                 wx.EVT_MENU(self, wx_id, self.onChangeCaption) 
     702            self._slicerpop.Append(wx_id, '&Window Title') 
     703            wx.EVT_MENU(self, wx_id, self.onChangeCaption) 
    709704        try: 
    710705            pos_evt = event.GetPosition() 
  • src/sas/sasgui/guiframe/local_perspectives/plotting/Plotter2D.py

    rd85c194 r1a696bf  
    293293 
    294294        wx_id = ids.next() 
    295         slicerpop.Append(wx_id, '&Save Image') 
     295        slicerpop.Append(wx_id, '&Save Image', 'Save image as png') 
    296296        wx.EVT_MENU(self, wx_id, self.onSaveImage) 
    297297 
     
    320320            if (not item_list == None) and (not len(item_list) == 0) and\ 
    321321                self.data2D.name.split(" ")[0] != 'Residuals': 
    322                 # The line above; Not for trunk 
    323                 # Note: reusing menu ids for the sub-menus.  See Plotter1D. 
    324                 for item, wx_id in zip(item_list, self._menu_ids): 
     322                for item, wx_id in zip(item_list, [ids.next() for i in range(len(item_list))]): 
    325323                    try: 
    326324                        slicerpop.Append(wx_id, item[0], item[1]) 
  • src/sas/sasgui/guiframe/local_perspectives/plotting/SimplePlot.py

    rd85c194 r25b9707a  
    188188    """ 
    189189    def __init__(self, parent, id, title, scale='log_{10}', 
    190                  size=wx.Size(550, 470)): 
     190                 size=wx.Size(550, 470), show_menu_icons=True): 
    191191        """ 
    192192        comment 
     
    202202        self._default_save_location = None 
    203203        self.scale = scale 
     204        self._show_menu_icons = show_menu_icons 
    204205        self.plotpanel = SimplePlotPanel(self, -1) 
    205206        self._build_menubar() 
     
    213214        quit_bmp = wx.ArtProvider.GetBitmap(wx.ART_QUIT, wx.ART_TOOLBAR, tsize) 
    214215        print_bmp = wx.ArtProvider.GetBitmap(wx.ART_PRINT, wx.ART_TOOLBAR, tsize) 
    215         preview_bmp = wx.ArtProvider.GetBitmap(wx.ART_REPORT_VIEW, wx.ART_TOOLBAR, tsize) 
    216216        copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR, tsize) 
    217217        menu_bar = wx.MenuBar() 
     
    219219        menu = wx.Menu() 
    220220        id = wx.NewId() 
    221         item = wx.MenuItem(menu, id, "&Save Image") 
    222         item.SetBitmap(save_bmp) 
    223         menu.AppendItem(item) 
     221        save_item = wx.MenuItem(menu, id, "&Save Image") 
     222        menu.AppendItem(save_item) 
    224223        wx.EVT_MENU(self, id, self.on_save_file) 
    225224 
    226225        id = wx.NewId() 
    227         item = wx.MenuItem(menu, id, "&Print Image") 
    228         item.SetBitmap(print_bmp) 
    229         menu.AppendItem(item) 
     226        print_item = wx.MenuItem(menu, id, "&Print Image") 
     227        menu.AppendItem(print_item) 
    230228        wx.EVT_MENU(self, id, self.on_print_image) 
    231229 
    232230        menu.AppendSeparator() 
    233231        id = wx.NewId() 
    234         item = wx.MenuItem(menu, id, "&Quit") 
    235         item.SetBitmap(quit_bmp) 
    236         menu.AppendItem(item) 
     232        quit_item = wx.MenuItem(menu, id, "&Quit") 
     233        menu.AppendItem(quit_item) 
    237234 
    238235        menu_bar.Append(menu, "&File") 
     
    241238        menu_edit = wx.Menu() 
    242239        id = wx.NewId() 
    243         item = wx.MenuItem(menu_edit, id, "&Copy") 
    244         item.SetBitmap(copy_bmp) 
    245         menu_edit.AppendItem(item) 
     240        copy_item = wx.MenuItem(menu_edit, id, "&Copy") 
     241        menu_edit.AppendItem(copy_item) 
    246242        wx.EVT_MENU(self, id, self.on_copy_image) 
     243 
     244        if self._show_menu_icons: 
     245            save_item.SetBitmap(save_bmp) 
     246            print_item.SetBitmap(print_bmp) 
     247            quit_item.SetBitmap(quit_bmp) 
     248            copy_item.SetBitmap(copy_bmp) 
    247249 
    248250        menu_bar.Append(menu_edit, "&Edit") 
     
    324326        except: 
    325327            self.Destroy() 
    326  
  • src/sas/sasgui/perspectives/calculator/data_operator.py

    re871a2d r0e760e9  
    1515from sas.sasgui.guiframe.documentation_window import DocumentationWindow 
    1616 
    17 #Control panel width  
     17#Control panel width 
    1818if sys.platform.count("win32") > 0: 
    1919    PANEL_TOP = 0 
     
    156156 
    157157        wx.EVT_TEXT_ENTER(self.data_namectr, -1, self.on_name) 
    158         wx.EVT_TEXT_ENTER(self.numberctr, -1, self.on_number) 
     158        wx.EVT_TEXT(self.numberctr, -1, self.on_number) 
    159159        wx.EVT_COMBOBOX(self.data1_cbox, -1, self.on_select_data1) 
    160160        wx.EVT_COMBOBOX(self.operator_cbox, -1, self.on_select_operator) 
     
    235235        self.name_sizer.Layout() 
    236236 
    237     def on_number(self, event=None): 
     237    def on_number(self, event=None, control=None): 
    238238        """ 
    239239        On selecting Number for Data2 
    240240        """ 
    241241        self.send_warnings('') 
    242         item = event.GetEventObject() 
     242        item = control 
     243        if item is None and event is not None: 
     244            item = event.GetEventObject() 
     245        elif item is None: 
     246            raise ValueError("Event or control must be supplied") 
    243247        text = item.GetValue().strip() 
    244248        if self.numberctr.IsShown(): 
     
    251255                except: 
    252256                    self._set_textctrl_color(self.numberctr, 'pink') 
    253                     msg = "DataOperation: Number requires a float number." 
    254                     self.send_warnings(msg, 'error') 
    255                     return 
     257                    if event is None: 
     258                        msg = "DataOperation: Number requires a float number." 
     259                        self.send_warnings(msg, 'error') 
     260                    return False 
    256261            else: 
    257262                self._set_textctrl_color(self.numberctr, self.color) 
     
    263268        self.draw_output(self.output) 
    264269        self.Refresh() 
     270        return True 
    265271 
    266272    def on_select_data1(self, event=None): 
     
    607613            wx.MessageBox(msg, 'Error') 
    608614            return 
     615        if self.numberctr.IsEnabled() and self.numberctr.IsShown(): 
     616            valid_num = self.on_number(control=self.numberctr) 
     617            if not valid_num: 
     618                return 
    609619        # send data to data manager 
    610620        self.output.name = name 
     
    731741        #add plot 
    732742        self.graph.add(plot) 
    733         #draw         
     743        #draw 
    734744        self.graph.render(self) 
    735745 
     
    985995    window = DataOperatorWindow(parent=None, data=[], title="Data Editor") 
    986996    app.MainLoop() 
    987  
  • src/sas/sasgui/perspectives/calculator/image_viewer.py

    rd0248bd r25b9707a  
    7373                    parent.put_icon(plot_frame) 
    7474            except: 
    75                 print "parent", parent 
    7675                err_msg += "Failed to load '%s'.\n" % basename 
    7776        if err_msg: 
     
    109108        """ 
    110109        # Initialize the Frame object 
    111         PlotFrame.__init__(self, parent, id, title, scale, size) 
     110        PlotFrame.__init__(self, parent, id, title, scale, size, 
     111            show_menu_icons=False) 
    112112        self.parent = parent 
    113113        self.data = image 
     
    437437    ImageView(None).load() 
    438438    app.MainLoop() 
    439  
  • src/sas/sasgui/plottools/PlotPanel.py

    rdd5bf63 r1ed6be7  
    713713                if dial.ShowModal() == wx.ID_OK: 
    714714                    self.xLabel, self.yLabel, self.viewModel = dial.getValues() 
    715                     if self.viewModel == "Linear y vs x": 
    716                         self.xLabel = "x" 
    717                         self.yLabel = "y" 
    718                         self.viewModel = "--" 
    719                         dial.setValues(self.xLabel, self.yLabel, self.viewModel) 
    720                     if self.viewModel == "Guinier lny vs x^(2)": 
    721                         self.xLabel = "x^(2)" 
    722                         self.yLabel = "ln(y)" 
    723                         self.viewModel = "--" 
    724                         dial.setValues(self.xLabel, self.yLabel, self.viewModel) 
    725                     if self.viewModel == "XS Guinier ln(y*x) vs x^(2)": 
    726                         self.xLabel = "x^(2)" 
    727                         self.yLabel = "ln(y*x)" 
    728                         self.viewModel = "--" 
    729                         dial.setValues(self.xLabel, self.yLabel, self.viewModel) 
    730                     if self.viewModel == "Porod y*x^(4) vs x^(4)": 
    731                         self.xLabel = "x^(4)" 
    732                         self.yLabel = "y*x^(4)" 
    733                         self.viewModel = "--" 
    734                         dial.setValues(self.xLabel, self.yLabel, self.viewModel) 
    735715                    self._onEVT_FUNC_PROPERTY() 
    736716                dial.Destroy() 
     
    12111191 
    12121192        # Properties defined by plot 
    1213          
     1193 
    12141194        # Ricardo: 
    1215         # A empty label "$$" will prevent the panel from displaying!  
    1216          
     1195        # A empty label "$$" will prevent the panel from displaying! 
    12171196        if prop["xlabel"]: 
    12181197            self.subplot.set_xlabel(r"$%s$"%prop["xlabel"]) 
     
    12201199            self.subplot.set_ylabel(r"$%s$"%prop["ylabel"]) 
    12211200        self.subplot.set_title(prop["title"]) 
    1222          
     1201 
    12231202 
    12241203    def clear(self): 
     
    15641543                                                  bins=[self.y_bins, self.x_bins], 
    15651544                                                  weights=self.data) 
    1566         # Now, normalize the image by weights only for weights>1:  
     1545        # Now, normalize the image by weights only for weights>1: 
    15671546        # If weight == 1, there is only one data point in the bin so 
    15681547        # that no normalization is required. 
     
    17601739        for item in list: 
    17611740            item.setLabel(self.xLabel, self.yLabel) 
    1762  
    17631741            # control axis labels from the panel itself 
    17641742            yname, yunits = item.get_yaxis() 
     
    17901768            if self.xLabel == "ln(x)": 
    17911769                item.transformX(transform.toLogX, transform.errToLogX) 
    1792                 self.graph._xaxis_transformed("\ln\\ %s" % xname, "%s" % xunits) 
     1770                self.graph._xaxis_transformed("\ln{(%s)}" % xname, "%s" % xunits) 
    17931771            if self.xLabel == "log10(x)": 
    17941772                item.transformX(transform.toX_pos, transform.errToX_pos) 
     
    18021780            if self.yLabel == "ln(y)": 
    18031781                item.transformY(transform.toLogX, transform.errToLogX) 
    1804                 self.graph._yaxis_transformed("\ln\\ %s" % yname, "%s" % yunits) 
     1782                self.graph._yaxis_transformed("\ln{(%s)}" % yname, "%s" % yunits) 
    18051783            if self.yLabel == "y": 
    18061784                item.transformY(transform.toX, transform.errToX) 
     
    18181796                yunits = convert_unit(-1, yunits) 
    18191797                self.graph._yaxis_transformed("1/%s" % yname, "%s" % yunits) 
     1798            if self.yLabel == "y*x^(2)": 
     1799                item.transformY(transform.toYX2, transform.errToYX2) 
     1800                xunits = convert_unit(2, self.xaxis_unit) 
     1801                self.graph._yaxis_transformed("%s \ \ %s^{2}" % (yname, xname), 
     1802                                              "%s%s" % (yunits, xunits)) 
    18201803            if self.yLabel == "y*x^(4)": 
    18211804                item.transformY(transform.toYX4, transform.errToYX4) 
     
    18311814            if self.yLabel == "ln(y*x)": 
    18321815                item.transformY(transform.toLogXY, transform.errToLogXY) 
    1833                 self.graph._yaxis_transformed("\ln (%s \ \ %s)" % (yname, xname), 
     1816                self.graph._yaxis_transformed("\ln{(%s \ \ %s)}" % (yname, xname), 
    18341817                                              "%s%s" % (yunits, self.xaxis_unit)) 
    18351818            if self.yLabel == "ln(y*x^(2))": 
     
    18471830                xunits = convert_unit(4, self.xaxis_unit) 
    18481831                _yscale = 'log' 
    1849                 self.graph._yaxis_transformed("%s \ \ %s^{4}" % (yname, xname), 
    1850                                               "%s%s" % (yunits, xunits)) 
    1851             if self.viewModel == "Guinier lny vs x^(2)": 
    1852                 item.transformX(transform.toX2, transform.errToX2) 
    1853                 xunits = convert_unit(2, xunits) 
    1854                 self.graph._xaxis_transformed("%s^{2}" % xname, "%s" % xunits) 
    1855                 item.transformY(transform.toLogX, transform.errToLogX) 
    1856                 self.graph._yaxis_transformed("\ln\ \ %s" % yname, "%s" % yunits) 
    1857             if self.viewModel == "Porod y*x^(4) vs x^(4)": 
    1858                 item.transformX(transform.toX4, transform.errToX4) 
    1859                 xunits = convert_unit(4, self.xaxis_unit) 
    1860                 self.graph._xaxis_transformed("%s^{4}" % xname, "%s" % xunits) 
    1861                 item.transformY(transform.toYX4, transform.errToYX4) 
    18621832                self.graph._yaxis_transformed("%s \ \ %s^{4}" % (yname, xname), 
    18631833                                              "%s%s" % (yunits, xunits)) 
  • src/sas/sasgui/plottools/PropertyDialog.py

    r3409a90 r5129686  
    2323        iy += 1 
    2424        ix = 1 
    25         self.xvalue = wx.ComboBox(self, -1) 
     25        self.xvalue = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
    2626        x_size += self.xvalue.GetSize()[0] 
    27         sizer.Add(self.xvalue, (iy, ix), (1, 1), wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     27        sizer.Add(self.xvalue, (iy, ix), (1, 1), wx.ADJUST_MINSIZE, 0) 
    2828 
    2929        ix += 2 
    30         self.yvalue = wx.ComboBox(self, -1) 
     30        self.yvalue = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
    3131        x_size += self.yvalue.GetSize()[0] 
    32         sizer.Add(self.yvalue, (iy, ix), (1, 1), wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     32        sizer.Add(self.yvalue, (iy, ix), (1, 1), wx.ADJUST_MINSIZE, 0) 
    3333 
    3434        ix += 2 
    35         self.view = wx.ComboBox(self, -1) 
     35        self.view = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
     36        self.view.Bind(wx.EVT_COMBOBOX, self.viewChanged) 
    3637        x_size += self.view.GetSize()[0] 
    3738        self.view.SetMinSize((160, 30)) 
     
    6465        self.yvalue.Insert("ln(y)", 2) 
    6566        self.yvalue.Insert("y^(2)", 3) 
    66         self.yvalue.Insert("y*x^(4)", 4) 
    67         self.yvalue.Insert("1/sqrt(y)", 5) 
    68         self.yvalue.Insert("log10(y)", 6) 
    69         self.yvalue.Insert("ln(y*x)", 7) 
    70         self.yvalue.Insert("ln(y*x^(2))", 8) 
    71         self.yvalue.Insert("ln(y*x^(4))", 9) 
    72         self.yvalue.Insert("log10(y*x^(4))", 10) 
     67        self.yvalue.Insert("y*x^(2)", 4) 
     68        self.yvalue.Insert("y*x^(4)", 5) 
     69        self.yvalue.Insert("1/sqrt(y)", 6) 
     70        self.yvalue.Insert("log10(y)", 7) 
     71        self.yvalue.Insert("ln(y*x)", 8) 
     72        self.yvalue.Insert("ln(y*x^(2))", 9) 
     73        self.yvalue.Insert("ln(y*x^(4))", 10) 
     74        self.yvalue.Insert("log10(y*x^(4))", 11) 
    7375        # type of view or model used 
    7476        self.view.SetValue("--") 
     
    7880        self.view.Insert("XS Guinier ln(y*x) vs x^(2)", 3) 
    7981        self.view.Insert("Porod y*x^(4) vs x^(4)", 4) 
    80         # This did not work in 3.1.2 and does not work now. 
    81         # prefer to fix (should not be too hard) but for the moment 
    82         # am removing as an option the user sees so they don't get 
    83         # disappointed.    PDB 7/10/2016  
    84         # self.view.Insert("Kratky y*x^(2) vs x", 5) 
     82        self.view.Insert("Kratky y*x^(2) vs x", 5) 
    8583        self.SetSizer(vbox) 
    8684        self.Fit() 
    8785        self.Centre() 
     86 
     87    def viewChanged(self, event): 
     88        event.Skip() 
     89        view = self.view.GetValue() 
     90        if view == "Linear y vs x": 
     91            self.xvalue.SetValue("x") 
     92            self.yvalue.SetValue("y") 
     93        elif view == "Guinier lny vs x^(2)": 
     94            self.xvalue.SetValue("x^(2)") 
     95            self.yvalue.SetValue("ln(y)") 
     96        elif view == "XS Guinier ln(y*x) vs x^(2)": 
     97            self.xvalue.SetValue("x^(2)") 
     98            self.yvalue.SetValue("ln(y*x)") 
     99        elif view == "Porod y*x^(4) vs x^(4)": 
     100            self.xvalue.SetValue("x^(4)") 
     101            self.yvalue.SetValue("y*x^(4)") 
     102        elif view == "Kratky y*x^(2) vs x": 
     103            self.xvalue.SetValue("x") 
     104            self.yvalue.SetValue("y*x^(2)") 
    88105 
    89106    def setValues(self, x, y, view): 
  • src/sas/sasgui/plottools/transform.py

    rd7bb526 r8abd96d  
    291291 
    292292 
    293 def errToYX2(x, y, dx=None, dy=None): 
     293def errToYX2(y, x, dy=None, dx=None): 
    294294    """ 
    295295    """ 
     
    325325 
    326326 
    327 def errToLogYX2(x, y, dx=None, dy=None): 
     327def errToLogYX2(y, x, dy=None, dx=None): 
    328328    """ 
    329329    calculate error of Log(yx**2) 
     
    375375 
    376376 
    377 def errToLogYX4(x, y=None, dx=None, dy=None): 
     377def errToLogYX4(y, x, dy=None, dx=None): 
    378378    """ 
    379379    error for ln(y*x^(4)) 
     
    396396 
    397397 
    398 def errToYX4(x, y=None, dx=None, dy=None): 
     398def errToYX4(y, x, dy=None, dx=None): 
    399399    """ 
    400400    error for (y*x^(4)) 
  • docs/sphinx-docs/source/user/analysis.rst

    r8f46df7 r0390040  
    66.. toctree:: 
    77   :maxdepth: 1 
    8     
     8 
    99   Model Fitting <sasgui/perspectives/fitting/fitting> 
    10     
     10 
    1111   P(r) Inversion <sasgui/perspectives/pr/pr_help> 
    12     
     12 
    1313   Invariant Calculation <sasgui/perspectives/invariant/invariant_help> 
     14 
     15   Correlation Function <sasgui/perspectives/corfunc/corfunc_help> 
  • sasview/sasview.py

    r1be5202 rc23f303  
    8181#Always use private .matplotlib setup to avoid conflicts with other 
    8282#uses of matplotlib 
    83 #Have to check if .sasview exists first  
     83#Have to check if .sasview exists first 
    8484sasdir = os.path.join(os.path.expanduser("~"),'.sasview') 
    8585if not os.path.exists(sasdir): 
     
    119119        # Fitting perspective 
    120120        try: 
    121             import sas.sasgui.perspectives.fitting as module     
     121            import sas.sasgui.perspectives.fitting as module 
    122122            fitting_plug = module.Plugin() 
    123123            self.gui.add_perspective(fitting_plug) 
     
    145145            logging.error(traceback.format_exc()) 
    146146 
    147         #Calculator perspective    
     147        # Corfunc perspective 
     148        try: 
     149            import sas.sasgui.perspectives.corfunc as module 
     150            corfunc_plug = module.Plugin() 
     151            self.gui.add_perspective(corfunc_plug) 
     152        except: 
     153            logging.error("Unable to load corfunc module") 
     154 
     155        #Calculator perspective 
    148156        try: 
    149157            import sas.sasgui.perspectives.calculator as module 
     
    191199if __name__ == "__main__": 
    192200    run() 
    193  
Note: See TracChangeset for help on using the changeset viewer.