Ignore:
Timestamp:
Jan 8, 2019 3:44:06 AM (5 years ago)
Author:
Piotr Rozyczko <piotr.rozyczko@…>
Branches:
ESS_GUI, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_opencl, ESS_GUI_sync_sascalc
Children:
bbcf9f0
Parents:
10786bc2
Message:

Be careful with standard item lifetime. SASVIEW-1231

File:
1 edited

Legend:

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

    r04a884a rd1ad101  
    640640        # Figure out which rows are checked 
    641641        ind = -1 
    642         # Use 'while' so the row count is forced at every iteration 
     642 
     643        deleted_items = [] 
     644        deleted_names = [] 
    643645        while ind < self.theory_model.rowCount(): 
    644646            ind += 1 
    645647            item = self.theory_model.item(ind) 
     648 
    646649            if item and item.isCheckable() and item.checkState() == QtCore.Qt.Checked: 
    647650                # Delete these rows from the model 
     651                deleted_names.append(str(self.theory_model.item(ind).text())) 
     652                deleted_items.append(item) 
     653 
    648654                self.theory_model.removeRow(ind) 
    649655                # Decrement index since we just deleted it 
    650656                ind -= 1 
    651657 
    652         # pass temporarily kept as a breakpoint anchor 
    653         pass 
     658        # Let others know we deleted data 
     659        self.communicator.dataDeletedSignal.emit(deleted_items) 
     660 
     661        # update stored_data 
     662        self.manager.update_stored_data(deleted_names) 
    654663 
    655664    def sendData(self, event=None): 
     
    18101819            raise AttributeError(msg) 
    18111820 
    1812         # Check if there are any other items for this tab 
    1813         # If so, delete them 
     1821        # Check if there exists an item for this tab 
     1822        # If so, replace it 
    18141823        current_tab_name = model_item.text() 
    18151824        for current_index in range(self.theory_model.rowCount()): 
    1816             if current_tab_name == self.theory_model.item(current_index).text(): 
    1817                 self.theory_model.removeRow(current_index) 
    1818                 break 
    1819         # send in the new item 
     1825            current_item = self.theory_model.item(current_index) 
     1826            if current_tab_name == current_item.text(): 
     1827                # replace data instead 
     1828                new_data = GuiUtils.dataFromItem(model_item) 
     1829                current_item.child(0).setData(new_data) 
     1830                return current_item 
     1831 
     1832        # add the new item to the model 
    18201833        self.theory_model.appendRow(model_item) 
     1834        return model_item 
    18211835 
    18221836    def deleteIntermediateTheoryPlotsByModelID(self, model_id): 
Note: See TracChangeset for help on using the changeset viewer.