def parseApr(self, fileName=None): aprFile = fileName try: self.aprreader = Apr(aprFile) self.aprreader.parse() for view in self.aprreader.views(): viewItem = QTreeWidgetItem(self.treeWidget) viewItem.setText(0, view.value('Name')) self.treeWidget.addTopLevelItem(viewItem) for th in view.refs('Theme'): try: layerItem = QTreeWidgetItem(viewItem) viewItem.addChild(layerItem) layerItem.setText(0, th.value('Name')) layerItem.setDisabled(True) layerItem.setTextColor(QColor(255, 0, 0, 127)) except: pass except: QMessageBox.information(None, 'Error', 'Error while reading APR-File')
class AprImportDialog(QDialog, Ui_AprImport): """ Class documentation goes here. """ def __init__(self, iface, parent = None): """ Constructor """ QDialog.__init__(self, parent) self.setupUi(self) self.iface = iface self.fileName = '' self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint) @pyqtSignature("") def on_toolButton_clicked(self): """ Slot documentation goes here. """ # TODO: not implemented yet self.treeWidget.clear() settings = QSettings() mySettings = "ArcView-Import-Plugin" myDir = settings.value(mySettings+"/lastDirectory").toString() self.fileName = QFileDialog.getOpenFileName(None, 'Open APR-File',myDir, 'ArcView-Project (*.apr)' ) settings.setValue(mySettings+"/lastDirectory", QFileInfo(self.fileName).dir().path()) self.lneAprFileName.setText(self.fileName) QApplication.setOverrideCursor(Qt.WaitCursor) self.parseApr(self.fileName) QApplication.restoreOverrideCursor() @pyqtSignature("QModelIndex") def on_treeWidget_doubleClicked(self, index): """ Slot documentation goes here. """ # TODO: not implemented yet raise NotImplementedError @pyqtSignature("") def on_buttonBox_accepted(self): """ Slot documentation goes here. """ self.loadLayers() @pyqtSignature("") def on_buttonBox_rejected(self): """ Slot documentation goes here. """ # TODO: not implemented yet QApplication.restoreOverrideCursor() self.close() def parseApr(self, fileName=None): aprFile = fileName try: self.aprreader = Apr(aprFile) self.aprreader.parse() for view in self.aprreader.views(): viewItem = QTreeWidgetItem(self.treeWidget) viewItem.setText(0, view.value('Name')) self.treeWidget.addTopLevelItem(viewItem) for th in view.refs('Theme'): try: layerItem = QTreeWidgetItem(viewItem) viewItem.addChild(layerItem) layerItem.setText(0, th.value('Name')) layerItem.setDisabled(True) layerItem.setTextColor(QColor(255, 0, 0, 127)) except: pass except: QMessageBox.information(None, 'Error', 'Error while reading APR-File') def loadLayers(self): layerList = [] error = False for view in self.aprreader.views(): itemList = self.treeWidget.selectedItems() if view.value('Name')== itemList[0].text(0): for theTheme in view.refs('Theme'): print theTheme.value('Name') try: themeType = theTheme.ref('Source').ref('Name').value('OwnerClass') fileName = theTheme.ref('Source').ref('Name').ref('FileName').value('Path') layerName = theTheme.value('Name') except: themeType = None if themeType == 'ShpSrc': vLayer = QgsVectorLayer(fileName, layerName, "ogr") if not vLayer.isValid(): print "Layer failed to load!" error = True else: layerList.append(vLayer) elif themeType == 'GSrc': fileInfo = QFileInfo(fileName) baseName = fileInfo.baseName() rlayer = QgsRasterLayer(fileName, baseName) if not rlayer.isValid(): print "Layer failed to load!" error = True else: layerList.append(vLayer) layerList.reverse() for layer in layerList: QgsMapLayerRegistry.instance().addMapLayer(layer) if error: QMessageBox.information(None, 'Error', 'Es konnten nicht alle Layer geladen werden. Eine Liste der fehlerhaften Layer folgt in der nächsten Version')