Exemple #1
0
 def __init__(self):
     super(DialogResult, self).__init__()
     self.ui = Ui_tablePreviewDialog()        
     self.ui.setupUi(self)
     
     self.ui.table_result.setSelectionMode(QAbstractItemView.SingleSelection)
     self.ui.table_result.setSortingEnabled(True)
     
     # connect slots (ui event)
     self.ui.btn_ok.clicked.connect(self.accept)
 
     self.settings = QSettings(SIDD_COMPANY, '%s %s' %(SIDD_APP_NAME, SIDD_VERSION));
     self.restoreGeometry(self.settings.value(self.UI_WINDOW_GEOM).toByteArray());
Exemple #2
0
class DialogResult(Ui_tablePreviewDialog, QDialog):
    """
    dialog for visualize result details
    """
    
    # CONSTANTS
    #############################    
    UI_WINDOW_GEOM = 'dlg_result/geometry'
        
    # constructor
    ###############################     
    def __init__(self):
        super(DialogResult, self).__init__()
        self.ui = Ui_tablePreviewDialog()        
        self.ui.setupUi(self)
        
        self.ui.table_result.setSelectionMode(QAbstractItemView.SingleSelection)
        self.ui.table_result.setSortingEnabled(True)
        
        # connect slots (ui event)
        self.ui.btn_ok.clicked.connect(self.accept)
    
        self.settings = QSettings(SIDD_COMPANY, '%s %s' %(SIDD_APP_NAME, SIDD_VERSION));
        self.restoreGeometry(self.settings.value(self.UI_WINDOW_GEOM).toByteArray());
    
    # window event handler overrides
    #############################
    def resizeEvent(self, event):
        """ handle window resize """        
        self.ui.table_result.resize(self.width()-2*UI_PADDING,
                                    self.height() - self.ui.table_result.y()-self.ui.btn_ok.height()-2*UI_PADDING)                        
        below_table = self.height() - self.ui.btn_ok.height() - UI_PADDING
        self.ui.lb_bldgcount.move(UI_PADDING, below_table)        
        self.ui.txt_bldgcount.move(self.ui.lb_bldgcount.width()+(2*UI_PADDING), below_table)
        self.ui.btn_ok.move(self.width()-UI_PADDING-self.ui.btn_ok.width(), below_table)

    @pyqtSlot(QCloseEvent)
    def closeEvent(self, event):
        self.settings.setValue(self.UI_WINDOW_GEOM, self.saveGeometry());
        super(DialogResult, self).closeEvent(event)
        
    # public method
    ###############################     
    
    @logUICall
    def showExposureData(self, header, selected):
        """
        display selected rows with header
        """
        fnames =[]      # retrieve field name as table headers
        cnt_sum = 0     # total number of buildings 
                
        # find index for building count field
        cnt_idx = -1
        for i, f in header.iteritems():
            fnames.append(f.name())
            if f.name() == CNT_FIELD_NAME:
                cnt_idx = i        
        if cnt_idx <> -1:   # building count index is found
            # increment building count
            for s in selected:
                cnt_sum  += s[cnt_idx].toDouble()[0]
                
        # display result 
        self.resultDetailModel = ResultDetailTableModel(header.values(), selected)        
        self.ui.table_result.setModel(self.resultDetailModel)
        self.ui.table_result.sortByColumn(3, Qt.AscendingOrder)        
        # display exposure specific ui elements         
        self.ui.txt_bldgcount.setVisible(True) 
        self.ui.lb_bldgcount.setVisible(True)
        self.ui.txt_bldgcount.setText('%d'% round(cnt_sum))
        self.ui.txt_bldgcount.setReadOnly(True)        

    @logUICall
    def showInfoData(self, header, selected):
        # sync UI 
        self.resultDetailModel = ResultDetailTableModel(header.values(), selected)        
        self.ui.table_result.setModel(self.resultDetailModel)                
        # hide exposure specific ui elements 
        self.ui.txt_bldgcount.setVisible(False) 
        self.ui.lb_bldgcount.setVisible(False)