def __init__(self, actions, parent=None):
    
        super(ActionEditorDialog, self).__init__(parent)
        self.actions = actions

        help = QLabel(translate("Shortcut Settings", '<b>Double click a cell in the Shortcut Column' \
            ' to <br />modify the key sequence.</b>'))
        
        self.actionTable = QTableWidget(self)
        self.actionTable.setSelectionBehavior(QTableWidget.SelectRows)
        self.actionTable.setEditTriggers(QTableWidget.DoubleClicked)
        self.actionTable.setColumnCount(2)
        self.actionTable.setHorizontalHeaderLabels(
            [translate("Shortcut Settings", "Description"),
            translate("Shortcut Settings", "Shortcut")]
            )
        self.actionTable.horizontalHeader().setStretchLastSection(True)
        self.actionTable.verticalHeader().hide()
        self.actionTable.setItemDelegate(ActionEditorDelegate(self))
        
        self.connect(self.actionTable, SIGNAL("cellChanged(int, int)"),
                     self.validateAction)
        
        row = 0
        for action in self.actions:
        
            if action.text().isEmpty():
                continue
            
            self.actionTable.insertRow(self.actionTable.rowCount())
            
            item = QTableWidgetItem()
            item.setText(action.text())
            item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
            self.actionTable.setItem(row, 0, item)
            
            item = QTableWidgetItem()
            item.setText(action.shortcut().toString())
            item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable | Qt.ItemIsSelectable)
            item.oldShortcutText = item.text()
            self.actionTable.setItem(row, 1, item)
            
            row += 1
        
        self.actionTable.resizeColumnsToContents()
                
        mainLayout = QVBoxLayout()
        mainLayout.addWidget(help)
        mainLayout.setMargin(8)
        mainLayout.setSpacing(8)
        mainLayout.addWidget(self.actionTable)
        self.setLayout(mainLayout)
        self._model = self.actionTable.model()
        self._model.edited = False
        self.actionTable.model().edited = False
        
        self.setWindowTitle(translate("Shortcut Settings", "Edit Shortcuts"))
Beispiel #2
0
    def load(self, error=True):
        s = QSettings("norBIT", "norGIS-ALKIS-Erweiterung")
        s.setValue("service", self.leSERVICE.text())
        s.setValue("host", self.leHOST.text())
        s.setValue("port", self.lePORT.text())
        s.setValue("dbname", self.leDBNAME.text())
        s.setValue("uid", self.leUID.text())
        s.setValue("pwd", self.lePWD.text())

        modelle = s.value("modellarten", ['DLKM', 'DKKM1000'])
        (db, conninfo) = self.plugin.opendb()
        if db:
            qry = QSqlQuery(db)
            if qry.exec_("""
SELECT modell,count(*)
FROM (
        SELECT unnest(modell) AS modell FROM po_points   UNION ALL
        SELECT unnest(modell) AS modell FROM po_lines    UNION ALL
        SELECT unnest(modell) AS modell FROM po_polygons UNION ALL
        SELECT unnest(modell) AS modell from po_lines    UNION ALL
        SELECT unnest(modell) AS modell from po_labels
) AS foo
GROUP BY modell
ORDER BY count(*) DESC
"""):
                self.twModellarten.clearContents()
                res = {}
                while qry.next():
                    res[qry.value(0)] = qry.value(1)

                self.twModellarten.setRowCount(len(res))
                i = 0
                for k, n in sorted(res.iteritems(),
                                   key=operator.itemgetter(1),
                                   reverse=True):
                    item = QTableWidgetItem(k)
                    item.setCheckState(Qt.Checked if (
                        item.text() in modelle) else Qt.Unchecked)
                    self.twModellarten.setItem(i, 0, item)

                    item = QTableWidgetItem(str(n))
                    self.twModellarten.setItem(i, 1, item)
                    i += 1
                self.twModellarten.resizeColumnsToContents()
            elif error:
                modelle = []
                self.twModellarten.clearContents()
                self.twModellarten.setDisabled(True)
            else:
                modelle = []
        elif error:
            QMessageBox.critical(None, "ALKIS",
                                 u"Datenbankverbindung schlug fehl.")
Beispiel #3
0
        def load(self, error=True):
                s = QSettings( "norBIT", "norGIS-ALKIS-Erweiterung" )
                s.setValue( "service", self.leSERVICE.text() )
                s.setValue( "host", self.leHOST.text() )
                s.setValue( "port", self.lePORT.text() )
                s.setValue( "dbname", self.leDBNAME.text() )
                s.setValue( "uid", self.leUID.text() )
                s.setValue( "pwd", self.lePWD.text() )

                modelle = s.value( "modellarten", ['DLKM','DKKM1000'] )
                (db,conninfo) = self.plugin.opendb()
                if db:
                        qry = QSqlQuery(db)
                        if qry.exec_( """
SELECT modell,count(*)
FROM (
        SELECT unnest(modell) AS modell FROM po_points   UNION ALL
        SELECT unnest(modell) AS modell FROM po_lines    UNION ALL
        SELECT unnest(modell) AS modell FROM po_polygons UNION ALL
        SELECT unnest(modell) AS modell from po_lines    UNION ALL
        SELECT unnest(modell) AS modell from po_labels
) AS foo
GROUP BY modell
ORDER BY count(*) DESC
""" ):
                                self.twModellarten.clearContents()
                                res = {}
                                while qry.next():
                                        res[ qry.value(0) ] = qry.value(1)

                                self.twModellarten.setRowCount( len(res) )
                                i = 0
                                for k,n in sorted(res.iteritems(), key=operator.itemgetter(1), reverse=True):
                                        item = QTableWidgetItem( k )
                                        item.setCheckState( Qt.Checked if (item.text() in modelle) else Qt.Unchecked )
                                        self.twModellarten.setItem( i, 0, item )

                                        item = QTableWidgetItem( str(n) )
                                        self.twModellarten.setItem( i, 1, item )
                                        i += 1
                                self.twModellarten.resizeColumnsToContents()
                        elif error:
                                modelle = []
                                self.twModellarten.clearContents()
                                self.twModellarten.setDisabled( True )
                        else:
                                modelle = []
                elif error:
                        QMessageBox.critical( None, "ALKIS", u"Datenbankverbindung schlug fehl." )
Beispiel #4
0
 def initActions(self, actions, delegate):
     table = self.actionTable
     table.horizontalHeader().setStretchLastSection(True)
     table.verticalHeader().hide()
     table.setItemDelegate(delegate)
     for row, action in enumerate(actions):
         table.insertRow(table.rowCount())
         text = unicode(action.text()).replace('&', '')
         item = QTableWidgetItem(action.icon(), text)
         item.setFlags(Qt.ItemIsEnabled)
         table.setItem(row, 0, item)
         item = QTableWidgetItem()
         item.setText(action.shortcut().toString())
         item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable)
         item.oldShortcutText = item.text()
         table.setItem(row, 1, item)
     table.resizeColumnsToContents()
     self.connect(table, Signals.cellChanged, self.validateAction)
Beispiel #5
0
        def load(self, error=True):
                s = QSettings( "norBIT", "norGIS-ALKIS-Erweiterung" )
                s.setValue( "service", self.leSERVICE.text() )
                s.setValue( "host", self.leHOST.text() )
                s.setValue( "port", self.lePORT.text() )
                s.setValue( "dbname", self.leDBNAME.text() )
                s.setValue( "uid", self.leUID.text() )
                s.setValue( "pwd", self.lePWD.text() )

                if hasattr(qgis.gui,'QgsAuthConfigSelect'):
                    s.setValue( "authcfg", self.authCfgSelect.configId() )

                self.twModellarten.clearContents()
                self.cbxSignaturkatalog.clear()

                modelle = s.value( "modellarten", ['DLKM','DKKM1000'] )
                if modelle is None:
                    modelle = ['DLKM','DKKM1000']
                (db,conninfo) = self.plugin.opendb()
                if not db:
                    if error:
                        QMessageBox.critical( None, "ALKIS", u"Datenbankverbindung schlug fehl." )

                    return

                qry = QSqlQuery(db)
                if qry.exec_( """
SELECT modell,count(*)
FROM (
        SELECT unnest(modell) AS modell FROM po_points   UNION ALL
        SELECT unnest(modell) AS modell FROM po_lines    UNION ALL
        SELECT unnest(modell) AS modell FROM po_polygons UNION ALL
        SELECT unnest(modell) AS modell from po_lines    UNION ALL
        SELECT unnest(modell) AS modell from po_labels
) AS foo
GROUP BY modell
ORDER BY count(*) DESC
""" ):
                        res = {}
                        while qry.next():
                            res[ qry.value(0) ] = qry.value(1)

                        self.twModellarten.setRowCount( len(res) )
                        i = 0
                        for k,n in sorted(res.iteritems(), key=operator.itemgetter(1), reverse=True):
                            item = QTableWidgetItem( k )
                            item.setCheckState( Qt.Checked if (item.text() in modelle) else Qt.Unchecked )
                            self.twModellarten.setItem( i, 0, item )

                            item = QTableWidgetItem( str(n) )
                            self.twModellarten.setItem( i, 1, item )
                            i += 1
                        self.twModellarten.resizeColumnsToContents()
                        self.twModellarten.setEnabled( True )
                else:
                        modelle = []
                        self.twModellarten.clearContents()
                        self.twModellarten.setDisabled( True )

                if qry.exec_( "SELECT id,name FROM alkis_signaturkataloge" ):
                    while qry.next():
                        self.cbxSignaturkatalog.addItem( qry.value(1), int(qry.value(0)) )
                    self.cbxSignaturkatalog.setEnabled( True )
                else:
                    self.cbxSignaturkatalog.addItem( u"Farbe", -1 )

                self.cbxSignaturkatalog.setCurrentIndex( max( [ 0, self.cbxSignaturkatalog.findData( s.value( "signaturkatalog", -1 ) ) ] ) )