Exemplo n.º 1
0
    def _configure_data_controls(self, composer_data_source):
        """
        Configure the data source and data field controls based on the composer data
        source configuration.
        """
        if not self.stdmDataSourceDock().widget() is None:
            #Set data source
            dataSourceWidget = self.stdmDataSourceDock().widget()
            dataSourceWidget.setCategory(composer_data_source.category())
            dataSourceWidget.setSelectedSource(composer_data_source.name())
            dataSourceWidget.set_referenced_table(
                composer_data_source.referenced_table_name)

            #Set data field controls
            for composerId in composer_data_source.dataFieldMappings().reverse:
                #Use composer item id since the uuid is stripped off
                composerItem = self.composition().getComposerItemById(
                    composerId)

                if not composerItem is None:
                    compFieldSelector = ComposerFieldSelector(
                        self, composerItem, self.composerView())
                    compFieldSelector.selectFieldName(
                        composer_data_source.dataFieldName(composerId))

                    #Add widget to the collection but now use the current uuid of the composition item
                    self.addWidgetMapping(composerItem.uuid(),
                                          compFieldSelector)
Exemplo n.º 2
0
    def _configure_data_controls(self, composer_data_source):
        """
        Configure the data source and data field controls based on the composer data
        source configuration.
        """
        if not self.stdmDataSourceDock().widget() is None:
            #Set data source
            dataSourceWidget = self.stdmDataSourceDock().widget()
            dataSourceWidget.setCategory(composer_data_source.category())
            dataSourceWidget.setSelectedSource(composer_data_source.name())
            dataSourceWidget.set_referenced_table(
                composer_data_source.referenced_table_name
            )

            #Set data field controls
            for composerId in composer_data_source.dataFieldMappings().reverse:
                #Use composer item id since the uuid is stripped off
                composerItem = self.composition().getComposerItemById(composerId)

                if not composerItem is None:
                    compFieldSelector = ComposerFieldSelector(self, composerItem, self.composerView())
                    compFieldSelector.selectFieldName(composer_data_source.dataFieldName(composerId))

                    #Add widget to the collection but now use the current uuid of the composition item
                    self.addWidgetMapping(composerItem.uuid(), compFieldSelector)
Exemplo n.º 3
0
    def apply(self, label, composerWrapper, fromTemplate=False):
        if not isinstance(label,QgsComposerLabel):
            return
        
        if not fromTemplate:
            #Set display text
            label.setText(QApplication.translate("DataLabelFormatter","[STDM Data Field]"))
        
            #Adjust width
            label.adjustSizeToText()
            
            fieldSelector = ComposerFieldSelector(composerWrapper, label)
            stdmDock = composerWrapper.stdmItemDock()
            stdmDock.setWidget(fieldSelector)
            
            #Add widget to the composer wrapper widget mapping collection
            composerWrapper.addWidgetMapping(label.uuid(), fieldSelector)

        #Set ID to match UUID
        label.setId(label.uuid())
        
        #Get the editor widget for the label
        labelEditor = composerWrapper.itemDock().widget()
        
        #Remove some of the editing controls
        if labelEditor != None:
            
            expressionBtn = labelEditor.findChild(
                QPushButton,"mInsertExpressionButton"
            )
            if expressionBtn != None:
                expressionBtn.setVisible(False)