Changeset 9463ca2 in sasview


Ignore:
Timestamp:
Aug 30, 2018 10:47:39 AM (7 months ago)
Author:
Torin Cooper-Bennun <torin.cooper-bennun@…>
Branches:
ESS_GUI, ESS_GUI_batch_fitting, ESS_GUI_iss879, ESS_GUI_ordering, ESS_GUI_sync_sascalc
Children:
eef298d4
Parents:
b8080e1
Message:

plotting fixes: appended plots now update; Show Plot no longer breaks if file's plot(s) have been appended to

Location:
src/sas/qtgui
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/MainWindow/DataExplorer.py

    rf7d39c9 r9463ca2  
    526526        # Now query the model item for available plots 
    527527        plots = GuiUtils.plotsFromFilename(filename, model) 
    528         ids = [list(self.active_plots.values())[id].data.id for id in range(len(self.active_plots))] 
    529         ids2 = [list(self.active_plots.keys())[id] for id in range(len(self.active_plots))] 
     528        ids_keys = list(self.active_plots.keys()) 
     529        ids_vals = [val.data.id for val in self.active_plots.values()] 
    530530 
    531531        new_plots = [] 
    532532        for item, plot in plots.items(): 
    533533            plot_id = plot.id 
    534             if plot_id in ids or plot_id in ids2: 
     534            if plot_id in ids_keys: 
    535535                self.active_plots[plot_id].replacePlot(plot_id, plot) 
     536            elif plot_id in ids_vals: 
     537                list(self.active_plots.values())[ids_vals.index(plot_id)].replacePlot(plot_id, plot) 
    536538            else: 
    537539                # Don't plot intermediate results, e.g. P(Q), S(Q) 
     
    666668                old_plot.data = plot_set 
    667669                old_plot.plot() 
     670                # need this for lookup - otherwise this plot will never update 
     671                self.active_plots[plot_set.id] = old_plot 
    668672 
    669673    def updatePlot(self, new_data): 
     
    674678        assert type(data).__name__ in ['Data1D', 'Data2D'] 
    675679 
    676         id = data.id 
    677         if data.id in list(self.active_plots.keys()): 
    678             self.active_plots[id].replacePlot(id, data) 
     680        ids_keys = list(self.active_plots.keys()) 
     681        ids_vals = [val.data.id for val in self.active_plots.values()] 
     682 
     683        data_id = data.id 
     684        if data_id in ids_keys: 
     685            self.active_plots[data_id].replacePlot(data_id, data) 
     686        elif data_id in ids_vals: 
     687            list(self.active_plots.values())[ids_vals.index(data_id)].replacePlot(data_id, data) 
    679688 
    680689    def chooseFiles(self): 
  • src/sas/qtgui/Perspectives/Fitting/FittingWidget.py

    r906e0c7 r9463ca2  
    22752275            pq_data.symbol = "Line" 
    22762276            self.createNewIndex(pq_data) 
     2277            # self.communicate.plotUpdateSignal.emit([pq_data]) 
    22772278            new_plots.append(pq_data) 
    22782279        if sq_data is not None: 
    22792280            sq_data.symbol = "Line" 
    22802281            self.createNewIndex(sq_data) 
     2282            # self.communicate.plotUpdateSignal.emit([sq_data]) 
    22812283            new_plots.append(sq_data) 
    22822284 
    22832285        if self.data_is_loaded: 
    22842286            GuiUtils.deleteRedundantPlots(self.all_data[self.data_index], new_plots) 
     2287 
     2288        for plot in new_plots: 
     2289            if hasattr(plot, "id") and "esidual" in plot.id: 
     2290                # TODO: fix updates to residuals plot 
     2291                pass 
     2292            else: 
     2293                self.communicate.plotUpdateSignal.emit([plot]) 
    22852294 
    22862295    def complete2D(self, return_data): 
     
    22942303    def calculateResiduals(self, fitted_data): 
    22952304        """ 
    2296         Calculate and print Chi2 and display chart of residuals 
     2305        Calculate and print Chi2 and display chart of residuals. Returns residuals plot object. 
    22972306        """ 
    22982307        # Create a new index for holding data 
     
    23092318        self.lblChi2Value.setText(chi2_repr) 
    23102319 
    2311         self.communicate.plotUpdateSignal.emit([fitted_data]) 
     2320        # self.communicate.plotUpdateSignal.emit([fitted_data]) 
    23122321 
    23132322        # Plot residuals if actual data 
  • src/sas/qtgui/Utilities/GuiUtils.py

    r0fe7e5b r9463ca2  
    335335        clone.__hash__ = self.__hash__ 
    336336        return clone 
    337  
    338337 
    339338def getMonospaceFont(): 
Note: See TracChangeset for help on using the changeset viewer.