Changes in / [44880ac:f331852] in sasview


Ignore:
Location:
src/sas/qtgui
Files:
3 added
8 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/GUITests.py

    r01cda57 rd5c5d3d  
    3838from Calculators.UnitTesting import SlitSizeCalculatorTest 
    3939from Calculators.UnitTesting import ResolutionCalculatorPanelTest 
     40from Calculators.UnitTesting import DataOperationUtilityTest 
    4041 
    4142# Utilities 
     
    9495        unittest.makeSuite(SlitSizeCalculatorTest.SlitSizeCalculatorTest, 'test'), 
    9596        unittest.makeSuite(ResolutionCalculatorPanelTest.ResolutionCalculatorPanelTest, 'test'), 
     97        unittest.makeSuite(DataOperationUtilityTest.DataOperationUtilityTest, 'test'), 
    9698 
    9799        # Perspectives 
  • src/sas/qtgui/MainWindow/DataExplorer.py

    r7d8bebf r1420066  
    9393        self.communicator.activeGraphName.connect(self.updatePlotName) 
    9494        self.communicator.plotUpdateSignal.connect(self.updatePlot) 
     95 
    9596        self.cbgraph.editTextChanged.connect(self.enableGraphCombo) 
    9697        self.cbgraph.currentIndexChanged.connect(self.enableGraphCombo) 
     
    280281        # Use 'while' so the row count is forced at every iteration 
    281282        deleted_indices = [] 
     283        deleted_names = [] 
    282284        while ind < self.model.rowCount(): 
    283285            ind += 1 
    284286            item = self.model.item(ind) 
     287 
    285288            if item and item.isCheckable() and item.checkState() == QtCore.Qt.Checked: 
    286289                # Delete these rows from the model 
     290                deleted_names.append(str(self.model.item(ind).text())) 
    287291                deleted_indices.append(item) 
     292 
    288293                self.model.removeRow(ind) 
    289294                # Decrement index since we just deleted it 
     
    292297        # Let others know we deleted data 
    293298        self.communicator.dataDeletedSignal.emit(deleted_indices) 
     299 
     300        # update stored_data 
     301        self.manager.update_stored_data(deleted_names) 
    294302 
    295303    def deleteTheory(self, event): 
     
    869877        self.txt_widget.setWindowIcon(QtGui.QIcon(":/res/ball.ico")) 
    870878        self.txt_widget.setWindowTitle("Data Info: %s" % data.filename) 
     879        self.txt_widget.clear() 
    871880        self.txt_widget.insertPlainText(text_to_show) 
    872881 
     
    10121021        self.model.appendRow(checkbox_item) 
    10131022 
    1014  
    10151023    def updateModelFromPerspective(self, model_item): 
    10161024        """ 
  • src/sas/qtgui/MainWindow/DataManager.py

    rdc5ef15 r1420066  
    275275                del self.stored_data[id] 
    276276 
    277  
    278277    def get_by_name(self, name_list=None): 
    279278        """ 
     
    295294                if data_state.data.name == selected_name: 
    296295                    del self.stored_data[id] 
     296 
     297    def update_stored_data(self, name_list=None): 
     298        """ update stored data after deleting files in Data Explorer """ 
     299        for selected_name in name_list: 
     300            for idx in self.stored_data.keys(): 
     301                if str(selected_name) in str(idx): 
     302                    print selected_name, idx 
     303                    del self.stored_data[idx] 
    297304 
    298305    def get_data_state(self, data_id): 
  • src/sas/qtgui/MainWindow/GuiManager.py

    r01cda57 rf0bb711  
    3131from sas.qtgui.Calculators.GenericScatteringCalculator import GenericScatteringCalculator 
    3232from sas.qtgui.Calculators.ResolutionCalculatorPanel import ResolutionCalculatorPanel 
    33  
     33from sas.qtgui.Calculators.DataOperationUtilityPanel import DataOperationUtilityPanel 
    3434 
    3535# Perspectives 
     
    4747    Main SasView window functionality 
    4848    """ 
     49 
    4950    def __init__(self, parent=None): 
    5051        """ 
     
    142143        self.GENSASCalculator = GenericScatteringCalculator(self) 
    143144        self.ResolutionCalculator = ResolutionCalculatorPanel(self) 
     145        self.DataOperation = DataOperationUtilityPanel(self) 
    144146 
    145147    def statusBarSetup(self): 
     
    337339        self.communicate.updateTheoryFromPerspectiveSignal.connect(self.updateTheoryFromPerspective) 
    338340        self.communicate.plotRequestedSignal.connect(self.showPlot) 
     341        self.communicate.updateModelFromDataOperationPanelSignal.connect(self.updateModelFromDataOperationPanel) 
    339342 
    340343    def addTriggers(self): 
     
    531534        """ 
    532535        """ 
    533         print("actionData_Operation TRIGGERED") 
    534         pass 
     536        self.communicate.sendDataToPanelSignal.emit(self._data_manager.get_all_data()) 
     537 
     538        self.DataOperation.show() 
    535539 
    536540    def actionSLD_Calculator(self): 
     
    731735        self.filesWidget.updateTheoryFromPerspective(index) 
    732736 
     737    def updateModelFromDataOperationPanel(self, new_item, new_datalist_item): 
     738        """ 
     739        :param new_item: item to be added to list of loaded files 
     740        :param new_datalist_item: 
     741        """ 
     742        if not isinstance(new_item, QtGui.QStandardItem) or \ 
     743                not isinstance(new_datalist_item, dict): 
     744            msg = "Wrong data type returned from calculations." 
     745            raise AttributeError, msg 
     746 
     747        self.filesWidget.model.appendRow(new_item) 
     748        self._data_manager.add_data(new_datalist_item) 
     749 
    733750    def showPlot(self, plot): 
    734751        """ 
     
    737754        if hasattr(self, "filesWidget"): 
    738755            self.filesWidget.displayData(plot) 
    739  
  • src/sas/qtgui/Plotting/Plotter.py

    rfef38e8 rf0bb711  
    145145 
    146146        # Now add the legend with some customizations. 
     147 
    147148        self.legend = ax.legend(loc='upper right', shadow=True) 
    148149        if self.legend: 
  • src/sas/qtgui/Plotting/Plotter2D.py

    r01cda57 rd5c5d3d  
    8787        self._item = item 
    8888 
    89     def plot(self, data=None, marker=None): 
     89    def plot(self, data=None, marker=None, show_colorbar=True): 
    9090        """ 
    9191        Plot 2D self._data 
     
    109109                      ymin=self.ymin, ymax=self.ymax, 
    110110                      cmap=self.cmap, zmin=zmin_2D_temp, 
    111                       zmax=zmax_2D_temp) 
     111                      zmax=zmax_2D_temp, show_colorbar=show_colorbar) 
    112112 
    113113    def calculateDepth(self): 
     
    379379 
    380380    def showPlot(self, data, qx_data, qy_data, xmin, xmax, ymin, ymax, 
    381                  zmin, zmax, label='data2D', cmap=DEFAULT_CMAP): 
     381                 zmin, zmax, label='data2D', cmap=DEFAULT_CMAP, show_colorbar=True): 
    382382        """ 
    383383        Render and show the current data 
     
    457457            self.vmax = cb.vmax 
    458458 
     459            if show_colorbar is False: 
     460                cb.remove() 
     461 
    459462        else: 
    460463            # clear the previous 2D from memory 
  • src/sas/qtgui/Utilities/GuiUtils.py

    re694f0f rf0bb711  
    144144    # custom open_path 
    145145    open_folder = custom_config.DEFAULT_OPEN_FOLDER 
    146     if open_folder != None and os.path.isdir(open_folder): 
     146    if open_folder is not None and os.path.isdir(open_folder): 
    147147        DEFAULT_OPEN_FOLDER = os.path.abspath(open_folder) 
    148148    else: 
     
    230230    dataDeletedSignal = QtCore.pyqtSignal(list) 
    231231 
     232    # Send data to Data Operation Utility panel 
     233    sendDataToPanelSignal = QtCore.pyqtSignal(dict) 
     234 
     235    # Send result of Data Operation Utility panel to Data Explorer 
     236    updateModelFromDataOperationPanelSignal = QtCore.pyqtSignal(QtGui.QStandardItem, dict) 
    232237 
    233238def updateModelItemWithPlot(item, update_data, name=""): 
     
    430435    text += 'X_min = %s:  X_max = %s\n' % (xmin, max(data.x)) 
    431436    text += 'Y_min = %s:  Y_max = %s\n' % (ymin, max(data.y)) 
    432     if data.dy != None: 
     437    if data.dy is not None: 
    433438        text += 'dY_min = %s:  dY_max = %s\n' % (min(data.dy), max(data.dy)) 
    434439    text += '\nData Points:\n' 
    435440    x_st = "X" 
    436441    for index in range(len(data.x)): 
    437         if data.dy != None and len(data.dy) > index: 
     442        if data.dy is not None and len(data.dy) > index: 
    438443            dy_val = data.dy[index] 
    439444        else: 
    440445            dy_val = 0.0 
    441         if data.dx != None and len(data.dx) > index: 
     446        if data.dx is not None and len(data.dx) > index: 
    442447            dx_val = data.dx[index] 
    443448        else: 
    444449            dx_val = 0.0 
    445         if data.dxl != None and len(data.dxl) > index: 
     450        if data.dxl is not None and len(data.dxl) > index: 
    446451            if index == 0: 
    447452                x_st = "Xl" 
    448453            dx_val = data.dxl[index] 
    449         elif data.dxw != None and len(data.dxw) > index: 
     454        elif data.dxw is not None and len(data.dxw) > index: 
    450455            if index == 0: 
    451456                x_st = "Xw" 
     
    486491        y_val = data.qy_data[index] 
    487492        i_val = data.data[index] 
    488         if data.err_data != None: 
     493        if data.err_data is not None: 
    489494            di_val = data.err_data[index] 
    490         if data.dqx_data != None: 
     495        if data.dqx_data is not None: 
    491496            dx_val = data.dqx_data[index] 
    492         if data.dqy_data != None: 
     497        if data.dqy_data is not None: 
    493498            dy_val = data.dqy_data[index] 
    494499 
     
    523528                has_errors = False 
    524529        if has_errors: 
    525             if data.dx != None and data.dx != []: 
     530            if data.dx is not None and data.dx != []: 
    526531                out.write("<X>   <Y>   <dY>   <dX>\n") 
    527532            else: 
     
    532537        for i in range(len(data.x)): 
    533538            if has_errors: 
    534                 if data.dx != None and data.dx != []: 
     539                if data.dx is not None and data.dx != []: 
    535540                    if  data.dx[i] != None: 
    536541                        out.write("%g  %g  %g  %g\n" % (data.x[i], 
  • src/sas/qtgui/Utilities/UnitTesting/GuiUtilsTest.py

    r464cd07 rf0bb711  
    6969            'progressBarUpdateSignal', 
    7070            'activeGraphName', 
     71            'sendDataToPanelSignal', 
     72            'updateModelFromDataOperationPanelSignal' 
    7173        ] 
    7274 
     
    412414        self.assertEqual(yscale, "log") 
    413415 
     416 
    414417class FormulaValidatorTest(unittest.TestCase): 
    415418    """ Test the formula validator """ 
Note: See TracChangeset for help on using the changeset viewer.