class Ui_SextanteToolbox(object): def setupUi(self, SextanteToolbox): SextanteToolbox.setObjectName(_fromUtf8("SextanteToolbox")) SextanteToolbox.resize(289, 438) self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.externalAppsButton = QtGui.QPushButton(self.dockWidgetContents) self.externalAppsButton.setObjectName(_fromUtf8("externalAppsButton")) self.verticalLayout.addWidget(self.externalAppsButton) self.searchBox = QgsFilterLineEdit(self.dockWidgetContents) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout.addWidget(self.searchBox) self.algorithmTree = QtGui.QTreeWidget(self.dockWidgetContents) self.algorithmTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.algorithmTree.setHeaderHidden(True) self.algorithmTree.setObjectName(_fromUtf8("algorithmTree")) self.algorithmTree.headerItem().setText(0, _fromUtf8("1")) self.verticalLayout.addWidget(self.algorithmTree) self.modeComboBox = QtGui.QComboBox(self.dockWidgetContents) self.modeComboBox.setObjectName(_fromUtf8("modeComboBox")) self.verticalLayout.addWidget(self.modeComboBox) SextanteToolbox.setWidget(self.dockWidgetContents) self.retranslateUi(SextanteToolbox) QtCore.QMetaObject.connectSlotsByName(SextanteToolbox) def retranslateUi(self, SextanteToolbox): SextanteToolbox.setWindowTitle(QtGui.QApplication.translate("SextanteToolbox", "SEXTANTE Toolbox", None, QtGui.QApplication.UnicodeUTF8)) self.externalAppsButton.setText(QtGui.QApplication.translate("SextanteToolbox", "Click here to learn more\n" "about SEXTANTE", None, QtGui.QApplication.UnicodeUTF8)) self.searchBox.setToolTip(QtGui.QApplication.translate("SextanteToolbox", "Enter algorithm name to filter list", None, QtGui.QApplication.UnicodeUTF8))
class Ui_DlgConfig(object): def setupUi(self, DlgConfig): DlgConfig.setObjectName(_fromUtf8("DlgConfig")) DlgConfig.resize(640, 450) self.verticalLayout = QtGui.QVBoxLayout(DlgConfig) self.verticalLayout.setSpacing(6) self.verticalLayout.setMargin(9) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.searchBox = QgsFilterLineEdit(DlgConfig) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout.addWidget(self.searchBox) self.tree = QtGui.QTreeView(DlgConfig) self.tree.setAlternatingRowColors(True) self.tree.setSelectionBehavior(QtGui.QAbstractItemView.SelectItems) self.tree.setObjectName(_fromUtf8("tree")) self.verticalLayout.addWidget(self.tree) self.buttonBox = QtGui.QDialogButtonBox(DlgConfig) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(DlgConfig) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), DlgConfig.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), DlgConfig.reject) QtCore.QMetaObject.connectSlotsByName(DlgConfig) def retranslateUi(self, DlgConfig): DlgConfig.setWindowTitle(_translate("DlgConfig", "Processing options", None)) self.searchBox.setToolTip(_translate("DlgConfig", "Enter setting name to filter list", None))
class Ui_ProcessingToolbox(object): def setupUi(self, ProcessingToolbox): ProcessingToolbox.setObjectName(_fromUtf8("ProcessingToolbox")) ProcessingToolbox.resize(289, 438) self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.searchBox = QgsFilterLineEdit(self.dockWidgetContents) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout.addWidget(self.searchBox) self.algorithmTree = QtGui.QTreeWidget(self.dockWidgetContents) self.algorithmTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.algorithmTree.setHeaderHidden(True) self.algorithmTree.setObjectName(_fromUtf8("algorithmTree")) self.algorithmTree.headerItem().setText(0, _fromUtf8("1")) self.verticalLayout.addWidget(self.algorithmTree) self.modeComboBox = QtGui.QComboBox(self.dockWidgetContents) self.modeComboBox.setObjectName(_fromUtf8("modeComboBox")) self.verticalLayout.addWidget(self.modeComboBox) ProcessingToolbox.setWidget(self.dockWidgetContents) self.retranslateUi(ProcessingToolbox) QtCore.QMetaObject.connectSlotsByName(ProcessingToolbox) def retranslateUi(self, ProcessingToolbox): ProcessingToolbox.setWindowTitle(QtGui.QApplication.translate("ProcessingToolbox", "Processing Toolbox", None, QtGui.QApplication.UnicodeUTF8)) self.searchBox.setToolTip(QtGui.QApplication.translate("ProcessingToolbox", "Enter algorithm name to filter list", None, QtGui.QApplication.UnicodeUTF8))
class Ui_QuickGeocodingToolbox(object): def setupUi(self, QuickGeocodingToolbox): QuickGeocodingToolbox.setObjectName(_fromUtf8("QuickGeocodingToolbox")) QuickGeocodingToolbox.resize(255, 379) self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.cmbGeocoder = QtGui.QComboBox(self.dockWidgetContents) self.cmbGeocoder.setObjectName(_fromUtf8("cmbGeocoder")) self.verticalLayout.addWidget(self.cmbGeocoder) self.txtSearch = QgsFilterLineEdit(self.dockWidgetContents) self.txtSearch.setObjectName(_fromUtf8("txtSearch")) self.verticalLayout.addWidget(self.txtSearch) self.lstSearchResult = QtGui.QListWidget(self.dockWidgetContents) self.lstSearchResult.setObjectName(_fromUtf8("lstSearchResult")) self.verticalLayout.addWidget(self.lstSearchResult) QuickGeocodingToolbox.setWidget(self.dockWidgetContents) self.retranslateUi(QuickGeocodingToolbox) QtCore.QMetaObject.connectSlotsByName(QuickGeocodingToolbox) def retranslateUi(self, QuickGeocodingToolbox): QuickGeocodingToolbox.setWindowTitle(_translate("QuickGeocodingToolbox", "Quick geocoding", None)) self.txtSearch.setToolTip(_translate("QuickGeocodingToolbox", "Enter address for geocoding", None))
class Ui_DlgConfig(object): def setupUi(self, DlgConfig): DlgConfig.setObjectName(_fromUtf8("DlgConfig")) DlgConfig.resize(640, 450) self.verticalLayout = QtGui.QVBoxLayout(DlgConfig) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.searchBox = QgsFilterLineEdit(DlgConfig) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout.addWidget(self.searchBox) self.tree = QtGui.QTreeWidget(DlgConfig) self.tree.setAlternatingRowColors(True) self.tree.setObjectName(_fromUtf8("tree")) self.verticalLayout.addWidget(self.tree) self.buttonBox = QtGui.QDialogButtonBox(DlgConfig) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(DlgConfig) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), DlgConfig.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), DlgConfig.reject) QtCore.QMetaObject.connectSlotsByName(DlgConfig) def retranslateUi(self, DlgConfig): DlgConfig.setWindowTitle(QtGui.QApplication.translate("DlgConfig", "SEXTANTE options", None, QtGui.QApplication.UnicodeUTF8)) self.searchBox.setToolTip(QtGui.QApplication.translate("DlgConfig", "Enter setting name to filter list", None, QtGui.QApplication.UnicodeUTF8)) self.tree.headerItem().setText(0, QtGui.QApplication.translate("DlgConfig", "Setting", None, QtGui.QApplication.UnicodeUTF8)) self.tree.headerItem().setText(1, QtGui.QApplication.translate("DlgConfig", "Value", None, QtGui.QApplication.UnicodeUTF8))
class Ui_DlgConfig(object): def setupUi(self, DlgConfig): DlgConfig.setObjectName(_fromUtf8("DlgConfig")) DlgConfig.resize(640, 450) self.verticalLayout = QtGui.QVBoxLayout(DlgConfig) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.searchBox = QgsFilterLineEdit(DlgConfig) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout.addWidget(self.searchBox) self.tree = QtGui.QTreeWidget(DlgConfig) self.tree.setAlternatingRowColors(True) self.tree.setObjectName(_fromUtf8("tree")) self.verticalLayout.addWidget(self.tree) self.buttonBox = QtGui.QDialogButtonBox(DlgConfig) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(DlgConfig) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), DlgConfig.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), DlgConfig.reject) QtCore.QMetaObject.connectSlotsByName(DlgConfig) def retranslateUi(self, DlgConfig): DlgConfig.setWindowTitle(QtGui.QApplication.translate("DlgConfig", "SEXTANTE options", None, QtGui.QApplication.UnicodeUTF8)) self.searchBox.setToolTip(QtGui.QApplication.translate("DlgConfig", "Enter setting name to filter list", None, QtGui.QApplication.UnicodeUTF8)) self.tree.headerItem().setText(0, QtGui.QApplication.translate("DlgConfig", "Setting", None, QtGui.QApplication.UnicodeUTF8)) self.tree.headerItem().setText(1, QtGui.QApplication.translate("DlgConfig", "Value", None, QtGui.QApplication.UnicodeUTF8))
class Ui_SextanteToolbox(object): def setupUi(self, SextanteToolbox): SextanteToolbox.setObjectName(_fromUtf8("SextanteToolbox")) SextanteToolbox.resize(289, 438) self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.externalAppsButton = QtGui.QPushButton(self.dockWidgetContents) self.externalAppsButton.setObjectName(_fromUtf8("externalAppsButton")) self.verticalLayout.addWidget(self.externalAppsButton) self.searchBox = QgsFilterLineEdit(self.dockWidgetContents) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout.addWidget(self.searchBox) self.algorithmTree = QtGui.QTreeWidget(self.dockWidgetContents) self.algorithmTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.algorithmTree.setHeaderHidden(True) self.algorithmTree.setObjectName(_fromUtf8("algorithmTree")) self.algorithmTree.headerItem().setText(0, _fromUtf8("1")) self.verticalLayout.addWidget(self.algorithmTree) self.modeComboBox = QtGui.QComboBox(self.dockWidgetContents) self.modeComboBox.setObjectName(_fromUtf8("modeComboBox")) self.verticalLayout.addWidget(self.modeComboBox) SextanteToolbox.setWidget(self.dockWidgetContents) self.retranslateUi(SextanteToolbox) QtCore.QMetaObject.connectSlotsByName(SextanteToolbox) def retranslateUi(self, SextanteToolbox): SextanteToolbox.setWindowTitle( QtGui.QApplication.translate("SextanteToolbox", "SEXTANTE Toolbox", None, QtGui.QApplication.UnicodeUTF8)) self.externalAppsButton.setText( QtGui.QApplication.translate( "SextanteToolbox", "Click here to learn more\n" "about SEXTANTE", None, QtGui.QApplication.UnicodeUTF8)) self.searchBox.setToolTip( QtGui.QApplication.translate( "SextanteToolbox", "Enter algorithm name to filter list", None, QtGui.QApplication.UnicodeUTF8))
class Ui_DlgConfig(object): def setupUi(self, DlgConfig): DlgConfig.setObjectName(_fromUtf8("DlgConfig")) DlgConfig.resize(640, 450) self.verticalLayout = QtGui.QVBoxLayout(DlgConfig) self.verticalLayout.setSpacing(6) self.verticalLayout.setMargin(9) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.searchBox = QgsFilterLineEdit(DlgConfig) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout.addWidget(self.searchBox) self.tree = QtGui.QTreeView(DlgConfig) self.tree.setAlternatingRowColors(True) self.tree.setSelectionBehavior(QtGui.QAbstractItemView.SelectItems) self.tree.setObjectName(_fromUtf8("tree")) self.verticalLayout.addWidget(self.tree) self.buttonBox = QtGui.QDialogButtonBox(DlgConfig) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(DlgConfig) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), DlgConfig.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), DlgConfig.reject) QtCore.QMetaObject.connectSlotsByName(DlgConfig) def retranslateUi(self, DlgConfig): DlgConfig.setWindowTitle( _translate("DlgConfig", "Processing options", None)) self.searchBox.setToolTip( _translate("DlgConfig", "Enter setting name to filter list", None))
class Ui_DlgModeler(object): def setupUi(self, DlgModeler): DlgModeler.setObjectName(_fromUtf8("DlgModeler")) DlgModeler.resize(1000, 600) self.verticalLayout = QtGui.QVBoxLayout(DlgModeler) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.splitter = QtGui.QSplitter(DlgModeler) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName(_fromUtf8("splitter")) self.tabWidget = QtGui.QTabWidget(self.splitter) self.tabWidget.setMinimumSize(QtCore.QSize(300, 0)) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tab = QtGui.QWidget() self.tab.setObjectName(_fromUtf8("tab")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.tab) self.verticalLayout_2.setSpacing(2) self.verticalLayout_2.setMargin(0) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.inputsTree = QtGui.QTreeWidget(self.tab) self.inputsTree.setAlternatingRowColors(True) self.inputsTree.setObjectName(_fromUtf8("inputsTree")) self.inputsTree.headerItem().setText(0, _fromUtf8("1")) self.inputsTree.header().setVisible(False) self.verticalLayout_2.addWidget(self.inputsTree) self.tabWidget.addTab(self.tab, _fromUtf8("")) self.tab_2 = QtGui.QWidget() self.tab_2.setObjectName(_fromUtf8("tab_2")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.tab_2) self.verticalLayout_3.setSpacing(2) self.verticalLayout_3.setMargin(0) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.searchBox = QgsFilterLineEdit(self.tab_2) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout_3.addWidget(self.searchBox) self.algorithmTree = QtGui.QTreeWidget(self.tab_2) self.algorithmTree.setAlternatingRowColors(True) self.algorithmTree.setObjectName(_fromUtf8("algorithmTree")) self.algorithmTree.headerItem().setText(0, _fromUtf8("1")) self.algorithmTree.header().setVisible(False) self.verticalLayout_3.addWidget(self.algorithmTree) self.tabWidget.addTab(self.tab_2, _fromUtf8("")) self.layoutWidget = QtGui.QWidget(self.splitter) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.gridLayout = QtGui.QGridLayout(self.layoutWidget) self.gridLayout.setSpacing(2) self.gridLayout.setMargin(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.textName = QtGui.QLineEdit(self.layoutWidget) self.textName.setObjectName(_fromUtf8("textName")) self.gridLayout.addWidget(self.textName, 0, 0, 1, 1) self.textGroup = QtGui.QLineEdit(self.layoutWidget) self.textGroup.setObjectName(_fromUtf8("textGroup")) self.gridLayout.addWidget(self.textGroup, 0, 1, 1, 1) self.view = QtGui.QGraphicsView(self.layoutWidget) self.view.setObjectName(_fromUtf8("view")) self.gridLayout.addWidget(self.view, 1, 0, 1, 2) self.verticalLayout.addWidget(self.splitter) self.buttonBox = QtGui.QDialogButtonBox(DlgModeler) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Close) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(DlgModeler) self.tabWidget.setCurrentIndex(1) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), DlgModeler.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), DlgModeler.reject) QtCore.QMetaObject.connectSlotsByName(DlgModeler) def retranslateUi(self, DlgModeler): DlgModeler.setWindowTitle(QtGui.QApplication.translate("DlgModeler", "Processing modeler", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QtGui.QApplication.translate("DlgModeler", "Inputs", None, QtGui.QApplication.UnicodeUTF8)) self.searchBox.setToolTip(QtGui.QApplication.translate("DlgModeler", "Enter algorithm name to filter list", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QtGui.QApplication.translate("DlgModeler", "Algorithms", None, QtGui.QApplication.UnicodeUTF8)) self.textName.setToolTip(QtGui.QApplication.translate("DlgModeler", "Enter model name here", None, QtGui.QApplication.UnicodeUTF8)) self.textGroup.setToolTip(QtGui.QApplication.translate("DlgModeler", "Enter group name here", None, QtGui.QApplication.UnicodeUTF8))
class Ui_DlgModeler(object): def setupUi(self, DlgModeler): DlgModeler.setObjectName(_fromUtf8("DlgModeler")) DlgModeler.resize(1000, 600) self.verticalLayout = QtGui.QVBoxLayout(DlgModeler) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setSpacing(-1) self.horizontalLayout.setMargin(3) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.btnOpen = QtGui.QToolButton(DlgModeler) self.btnOpen.setObjectName(_fromUtf8("btnOpen")) self.horizontalLayout.addWidget(self.btnOpen) self.btnSave = QtGui.QToolButton(DlgModeler) self.btnSave.setObjectName(_fromUtf8("btnSave")) self.horizontalLayout.addWidget(self.btnSave) self.btnSaveAs = QtGui.QToolButton(DlgModeler) self.btnSaveAs.setObjectName(_fromUtf8("btnSaveAs")) self.horizontalLayout.addWidget(self.btnSaveAs) self.line = QtGui.QFrame(DlgModeler) self.line.setFrameShape(QtGui.QFrame.VLine) self.line.setFrameShadow(QtGui.QFrame.Sunken) self.line.setObjectName(_fromUtf8("line")) self.horizontalLayout.addWidget(self.line) self.btnExportImage = QtGui.QToolButton(DlgModeler) self.btnExportImage.setObjectName(_fromUtf8("btnExportImage")) self.horizontalLayout.addWidget(self.btnExportImage) self.line_2 = QtGui.QFrame(DlgModeler) self.line_2.setFrameShape(QtGui.QFrame.VLine) self.line_2.setFrameShadow(QtGui.QFrame.Sunken) self.line_2.setObjectName(_fromUtf8("line_2")) self.horizontalLayout.addWidget(self.line_2) self.btnEditHelp = QtGui.QToolButton(DlgModeler) self.btnEditHelp.setObjectName(_fromUtf8("btnEditHelp")) self.horizontalLayout.addWidget(self.btnEditHelp) self.line_3 = QtGui.QFrame(DlgModeler) self.line_3.setFrameShape(QtGui.QFrame.VLine) self.line_3.setFrameShadow(QtGui.QFrame.Sunken) self.line_3.setObjectName(_fromUtf8("line_3")) self.horizontalLayout.addWidget(self.line_3) self.btnRun = QtGui.QToolButton(DlgModeler) self.btnRun.setObjectName(_fromUtf8("btnRun")) self.horizontalLayout.addWidget(self.btnRun) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.verticalLayout.addLayout(self.horizontalLayout) self.splitter = QtGui.QSplitter(DlgModeler) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName(_fromUtf8("splitter")) self.tabWidget = QtGui.QTabWidget(self.splitter) self.tabWidget.setMinimumSize(QtCore.QSize(300, 0)) self.tabWidget.setTabPosition(QtGui.QTabWidget.South) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tab = QtGui.QWidget() self.tab.setObjectName(_fromUtf8("tab")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.tab) self.verticalLayout_2.setSpacing(2) self.verticalLayout_2.setMargin(0) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.inputsTree = QtGui.QTreeWidget(self.tab) self.inputsTree.setAlternatingRowColors(True) self.inputsTree.setObjectName(_fromUtf8("inputsTree")) self.inputsTree.headerItem().setText(0, _fromUtf8("1")) self.inputsTree.header().setVisible(False) self.verticalLayout_2.addWidget(self.inputsTree) self.tabWidget.addTab(self.tab, _fromUtf8("")) self.tab_2 = QtGui.QWidget() self.tab_2.setObjectName(_fromUtf8("tab_2")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.tab_2) self.verticalLayout_3.setSpacing(2) self.verticalLayout_3.setMargin(0) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.searchBox = QgsFilterLineEdit(self.tab_2) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout_3.addWidget(self.searchBox) self.algorithmTree = QtGui.QTreeWidget(self.tab_2) self.algorithmTree.setAlternatingRowColors(True) self.algorithmTree.setObjectName(_fromUtf8("algorithmTree")) self.algorithmTree.headerItem().setText(0, _fromUtf8("1")) self.algorithmTree.header().setVisible(False) self.verticalLayout_3.addWidget(self.algorithmTree) self.tabWidget.addTab(self.tab_2, _fromUtf8("")) self.layoutWidget = QtGui.QWidget(self.splitter) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.gridLayout = QtGui.QGridLayout(self.layoutWidget) self.gridLayout.setSpacing(2) self.gridLayout.setMargin(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.textName = QtGui.QLineEdit(self.layoutWidget) self.textName.setObjectName(_fromUtf8("textName")) self.gridLayout.addWidget(self.textName, 0, 0, 1, 1) self.textGroup = QtGui.QLineEdit(self.layoutWidget) self.textGroup.setObjectName(_fromUtf8("textGroup")) self.gridLayout.addWidget(self.textGroup, 0, 1, 1, 1) self.view = QtGui.QGraphicsView(self.layoutWidget) self.view.setObjectName(_fromUtf8("view")) self.gridLayout.addWidget(self.view, 1, 0, 1, 2) self.verticalLayout.addWidget(self.splitter) self.retranslateUi(DlgModeler) self.tabWidget.setCurrentIndex(1) QtCore.QMetaObject.connectSlotsByName(DlgModeler) def retranslateUi(self, DlgModeler): DlgModeler.setWindowTitle(QtGui.QApplication.translate("DlgModeler", "Processing modeler", None, QtGui.QApplication.UnicodeUTF8)) self.btnOpen.setToolTip(QtGui.QApplication.translate("DlgModeler", "Open model", None, QtGui.QApplication.UnicodeUTF8)) self.btnOpen.setText(QtGui.QApplication.translate("DlgModeler", "...", None, QtGui.QApplication.UnicodeUTF8)) self.btnSave.setToolTip(QtGui.QApplication.translate("DlgModeler", "Save", None, QtGui.QApplication.UnicodeUTF8)) self.btnSave.setText(QtGui.QApplication.translate("DlgModeler", "...", None, QtGui.QApplication.UnicodeUTF8)) self.btnSaveAs.setToolTip(QtGui.QApplication.translate("DlgModeler", "Save as...", None, QtGui.QApplication.UnicodeUTF8)) self.btnSaveAs.setText(QtGui.QApplication.translate("DlgModeler", "...", None, QtGui.QApplication.UnicodeUTF8)) self.btnExportImage.setToolTip(QtGui.QApplication.translate("DlgModeler", "Export as image", None, QtGui.QApplication.UnicodeUTF8)) self.btnExportImage.setText(QtGui.QApplication.translate("DlgModeler", "...", None, QtGui.QApplication.UnicodeUTF8)) self.btnEditHelp.setToolTip(QtGui.QApplication.translate("DlgModeler", "Edit model help", None, QtGui.QApplication.UnicodeUTF8)) self.btnEditHelp.setText(QtGui.QApplication.translate("DlgModeler", "...", None, QtGui.QApplication.UnicodeUTF8)) self.btnRun.setToolTip(QtGui.QApplication.translate("DlgModeler", "Run model", None, QtGui.QApplication.UnicodeUTF8)) self.btnRun.setText(QtGui.QApplication.translate("DlgModeler", "...", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QtGui.QApplication.translate("DlgModeler", "Inputs", None, QtGui.QApplication.UnicodeUTF8)) self.searchBox.setToolTip(QtGui.QApplication.translate("DlgModeler", "Enter algorithm name to filter list", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QtGui.QApplication.translate("DlgModeler", "Algorithms", None, QtGui.QApplication.UnicodeUTF8)) self.textName.setToolTip(QtGui.QApplication.translate("DlgModeler", "Enter model name here", None, QtGui.QApplication.UnicodeUTF8)) self.textGroup.setToolTip(QtGui.QApplication.translate("DlgModeler", "Enter group name here", None, QtGui.QApplication.UnicodeUTF8))
class Ui_DlgModeler(object): def setupUi(self, DlgModeler): DlgModeler.setObjectName(_fromUtf8("DlgModeler")) DlgModeler.resize(1000, 600) self.verticalLayout = QtGui.QVBoxLayout(DlgModeler) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.splitter = QtGui.QSplitter(DlgModeler) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName(_fromUtf8("splitter")) self.tabWidget = QtGui.QTabWidget(self.splitter) self.tabWidget.setMinimumSize(QtCore.QSize(300, 0)) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tab = QtGui.QWidget() self.tab.setObjectName(_fromUtf8("tab")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.tab) self.verticalLayout_2.setSpacing(2) self.verticalLayout_2.setMargin(0) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.inputsTree = QtGui.QTreeWidget(self.tab) self.inputsTree.setAlternatingRowColors(True) self.inputsTree.setObjectName(_fromUtf8("inputsTree")) self.inputsTree.headerItem().setText(0, _fromUtf8("1")) self.inputsTree.header().setVisible(False) self.verticalLayout_2.addWidget(self.inputsTree) self.tabWidget.addTab(self.tab, _fromUtf8("")) self.tab_2 = QtGui.QWidget() self.tab_2.setObjectName(_fromUtf8("tab_2")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.tab_2) self.verticalLayout_3.setSpacing(2) self.verticalLayout_3.setMargin(0) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.searchBox = QgsFilterLineEdit(self.tab_2) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout_3.addWidget(self.searchBox) self.algorithmTree = QtGui.QTreeWidget(self.tab_2) self.algorithmTree.setAlternatingRowColors(True) self.algorithmTree.setObjectName(_fromUtf8("algorithmTree")) self.algorithmTree.headerItem().setText(0, _fromUtf8("1")) self.algorithmTree.header().setVisible(False) self.verticalLayout_3.addWidget(self.algorithmTree) self.tabWidget.addTab(self.tab_2, _fromUtf8("")) self.layoutWidget = QtGui.QWidget(self.splitter) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.gridLayout = QtGui.QGridLayout(self.layoutWidget) self.gridLayout.setSpacing(2) self.gridLayout.setMargin(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.textName = QtGui.QLineEdit(self.layoutWidget) self.textName.setObjectName(_fromUtf8("textName")) self.gridLayout.addWidget(self.textName, 0, 0, 1, 1) self.textGroup = QtGui.QLineEdit(self.layoutWidget) self.textGroup.setObjectName(_fromUtf8("textGroup")) self.gridLayout.addWidget(self.textGroup, 0, 1, 1, 1) self.view = QtGui.QGraphicsView(self.layoutWidget) self.view.setObjectName(_fromUtf8("view")) self.gridLayout.addWidget(self.view, 1, 0, 1, 2) self.verticalLayout.addWidget(self.splitter) self.buttonBox = QtGui.QDialogButtonBox(DlgModeler) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Close) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(DlgModeler) self.tabWidget.setCurrentIndex(1) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), DlgModeler.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), DlgModeler.reject) QtCore.QMetaObject.connectSlotsByName(DlgModeler) def retranslateUi(self, DlgModeler): DlgModeler.setWindowTitle( _translate("DlgModeler", "SEXTANTE modeler", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("DlgModeler", "Inputs", None)) self.searchBox.setToolTip( _translate("DlgModeler", "Enter algorithm name to filter list", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("DlgModeler", "Algorithms", None)) self.textName.setToolTip( _translate("DlgModeler", "Enter model name here", None)) self.textGroup.setToolTip( _translate("DlgModeler", "Enter group name here", None))
class Ui_CustomToolbarDialog(object): def setupUi(self, CustomToolbarDialog): CustomToolbarDialog.setObjectName(_fromUtf8("CustomToolbarDialog")) CustomToolbarDialog.resize(833, 443) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/img/images/icon.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) CustomToolbarDialog.setWindowIcon(icon) CustomToolbarDialog.setAccessibleDescription(_fromUtf8("")) self.verticalLayout_2 = QtGui.QVBoxLayout(CustomToolbarDialog) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.help_btn = QtGui.QPushButton(CustomToolbarDialog) self.help_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.help_btn.setStyleSheet(_fromUtf8("text-align:left;")) self.help_btn.setFlat(True) self.help_btn.setObjectName(_fromUtf8("help_btn")) self.horizontalLayout.addWidget(self.help_btn) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.verticalLayout_2.addLayout(self.horizontalLayout) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setContentsMargins(-1, 6, -1, -1) self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) self.verticalLayout_6 = QtGui.QVBoxLayout() self.verticalLayout_6.setObjectName(_fromUtf8("verticalLayout_6")) spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_6.addItem(spacerItem1) self.pushButton = QtGui.QPushButton(CustomToolbarDialog) self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.pushButton.setText(_fromUtf8("")) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/img/images/expand.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.pushButton.setIcon(icon1) self.pushButton.setAutoDefault(False) self.pushButton.setFlat(True) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.verticalLayout_6.addWidget(self.pushButton) self.pushButton_2 = QtGui.QPushButton(CustomToolbarDialog) self.pushButton_2.setCursor(QtGui.QCursor( QtCore.Qt.PointingHandCursor)) self.pushButton_2.setText(_fromUtf8("")) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/img/images/collapse.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.pushButton_2.setIcon(icon2) self.pushButton_2.setAutoDefault(False) self.pushButton_2.setFlat(True) self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) self.verticalLayout_6.addWidget(self.pushButton_2) spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_6.addItem(spacerItem2) self.horizontalLayout_4.addLayout(self.verticalLayout_6) self.groupBox = QtGui.QGroupBox(CustomToolbarDialog) self.groupBox.setAlignment(QtCore.Qt.AlignCenter) self.groupBox.setFlat(True) self.groupBox.setObjectName(_fromUtf8("groupBox")) self.verticalLayout_4 = QtGui.QVBoxLayout(self.groupBox) self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4")) self.searchBox = QgsFilterLineEdit(self.groupBox) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout_4.addWidget(self.searchBox) self.ToolBars = QtGui.QTreeWidget(self.groupBox) self.ToolBars.setStyleSheet(_fromUtf8("")) self.ToolBars.setDragEnabled(True) self.ToolBars.setDragDropOverwriteMode(False) self.ToolBars.setDragDropMode(QtGui.QAbstractItemView.DragOnly) self.ToolBars.setDefaultDropAction(QtCore.Qt.CopyAction) self.ToolBars.setAlternatingRowColors(True) self.ToolBars.setSelectionBehavior(QtGui.QAbstractItemView.SelectItems) self.ToolBars.setItemsExpandable(True) self.ToolBars.setAllColumnsShowFocus(False) self.ToolBars.setWordWrap(False) self.ToolBars.setObjectName(_fromUtf8("ToolBars")) self.ToolBars.header().setVisible(False) self.ToolBars.header().setSortIndicatorShown(False) self.ToolBars.header().setStretchLastSection(True) self.verticalLayout_4.addWidget(self.ToolBars) self.horizontalLayout_4.addWidget(self.groupBox) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem3) self.new_btn = QtGui.QPushButton(CustomToolbarDialog) self.new_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.new_btn.setStyleSheet( _fromUtf8("border:1px solid #6E6E6E;\n" "border-style: outset;\n" "border-width: 1px;\n" "border-radius: 3px;\n" "min-width: 3em;\n" "padding: 2px;\n" "")) self.new_btn.setFlat(True) self.new_btn.setObjectName(_fromUtf8("new_btn")) self.verticalLayout.addWidget(self.new_btn) self.rename_btn = QtGui.QPushButton(CustomToolbarDialog) self.rename_btn.setEnabled(False) self.rename_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.rename_btn.setStyleSheet( _fromUtf8("border:1px solid #6E6E6E;\n" "border-style: outset;\n" "border-width: 1px;\n" "border-radius: 3px;\n" "min-width: 3em;\n" "padding: 2px;")) self.rename_btn.setFlat(True) self.rename_btn.setObjectName(_fromUtf8("rename_btn")) self.verticalLayout.addWidget(self.rename_btn) spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem4) self.delete_btn = QtGui.QPushButton(CustomToolbarDialog) self.delete_btn.setEnabled(False) self.delete_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.delete_btn.setStyleSheet( _fromUtf8("border:1px solid #6E6E6E;\n" "border-style: outset;\n" "border-width: 1px;\n" "border-radius: 3px;\n" "min-width: 3em;\n" "padding: 2px;")) self.delete_btn.setFlat(True) self.delete_btn.setObjectName(_fromUtf8("delete_btn")) self.verticalLayout.addWidget(self.delete_btn) spacerItem5 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem5) self.Save_btn = QtGui.QPushButton(CustomToolbarDialog) self.Save_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.Save_btn.setStyleSheet( _fromUtf8("border:1px solid #6E6E6E;\n" "border-style: outset;\n" "border-width: 1px;\n" "border-radius: 3px;\n" "padding: 2px;\n" "")) self.Save_btn.setFlat(True) self.Save_btn.setObjectName(_fromUtf8("Save_btn")) self.verticalLayout.addWidget(self.Save_btn) self.horizontalLayout_4.addLayout(self.verticalLayout) self.groupBox_2 = QtGui.QGroupBox(CustomToolbarDialog) self.groupBox_2.setAlignment(QtCore.Qt.AlignCenter) self.groupBox_2.setFlat(True) self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.groupBox_2) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.MyToolsBars = QtGui.QTreeWidget(self.groupBox_2) self.MyToolsBars.setEnabled(False) self.MyToolsBars.setStyleSheet(_fromUtf8("")) self.MyToolsBars.setDragEnabled(False) self.MyToolsBars.setDragDropOverwriteMode(False) self.MyToolsBars.setDragDropMode(QtGui.QAbstractItemView.DragDrop) self.MyToolsBars.setDefaultDropAction(QtCore.Qt.IgnoreAction) self.MyToolsBars.setAlternatingRowColors(True) self.MyToolsBars.setSelectionBehavior( QtGui.QAbstractItemView.SelectItems) self.MyToolsBars.setAutoExpandDelay(-1) self.MyToolsBars.setRootIsDecorated(True) self.MyToolsBars.setItemsExpandable(True) self.MyToolsBars.setObjectName(_fromUtf8("MyToolsBars")) self.MyToolsBars.header().setVisible(False) self.verticalLayout_3.addWidget(self.MyToolsBars) self.horizontalLayout_4.addWidget(self.groupBox_2) self.verticalLayout_8 = QtGui.QVBoxLayout() self.verticalLayout_8.setObjectName(_fromUtf8("verticalLayout_8")) spacerItem6 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_8.addItem(spacerItem6) self.My_expand = QtGui.QPushButton(CustomToolbarDialog) self.My_expand.setEnabled(False) self.My_expand.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.My_expand.setText(_fromUtf8("")) self.My_expand.setIcon(icon1) self.My_expand.setAutoDefault(False) self.My_expand.setFlat(True) self.My_expand.setObjectName(_fromUtf8("My_expand")) self.verticalLayout_8.addWidget(self.My_expand) self.My_Collapse = QtGui.QPushButton(CustomToolbarDialog) self.My_Collapse.setEnabled(False) self.My_Collapse.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.My_Collapse.setText(_fromUtf8("")) self.My_Collapse.setIcon(icon2) self.My_Collapse.setAutoDefault(False) self.My_Collapse.setFlat(True) self.My_Collapse.setObjectName(_fromUtf8("My_Collapse")) self.verticalLayout_8.addWidget(self.My_Collapse) spacerItem7 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_8.addItem(spacerItem7) self.horizontalLayout_4.addLayout(self.verticalLayout_8) self.verticalLayout_2.addLayout(self.horizontalLayout_4) self.retranslateUi(CustomToolbarDialog) QtCore.QObject.connect( self.ToolBars, QtCore.SIGNAL(_fromUtf8("itemPressed(QTreeWidgetItem*,int)")), CustomToolbarDialog.QgisToolsClick) QtCore.QObject.connect( self.MyToolsBars, QtCore.SIGNAL(_fromUtf8("itemClicked(QTreeWidgetItem*,int)")), CustomToolbarDialog.MyToolsClick) QtCore.QObject.connect(self.rename_btn, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.RenameToolBar) QtCore.QObject.connect(self.new_btn, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.NewToolBar) QtCore.QObject.connect(self.delete_btn, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.DeleteToolBar) QtCore.QObject.connect(self.Save_btn, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.SaveTools) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.ExpandQgis) QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.CollapseQgis) QtCore.QObject.connect(self.My_expand, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.ExpandMyTools) QtCore.QObject.connect(self.My_Collapse, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.CollapseMyTools) QtCore.QObject.connect( self.searchBox, QtCore.SIGNAL(_fromUtf8("textChanged(QString)")), CustomToolbarDialog.Search) QtCore.QObject.connect(self.help_btn, QtCore.SIGNAL(_fromUtf8("clicked()")), CustomToolbarDialog.about) QtCore.QMetaObject.connectSlotsByName(CustomToolbarDialog) def retranslateUi(self, CustomToolbarDialog): CustomToolbarDialog.setWindowTitle( _translate("CustomToolbarDialog", "Create customs ToolBars", None)) self.help_btn.setText(_translate("CustomToolbarDialog", "About", None)) self.pushButton.setToolTip( _translate("CustomToolbarDialog", "Expand all", None)) self.pushButton_2.setToolTip( _translate("CustomToolbarDialog", "Collapse all", None)) self.groupBox.setTitle( _translate("CustomToolbarDialog", "Qgis Tools", None)) self.searchBox.setToolTip( _translate("CustomToolbarDialog", "Enter algorithm name to filter list", None)) self.ToolBars.setSortingEnabled(False) self.new_btn.setText( _translate("CustomToolbarDialog", "New ToolBar", None)) self.rename_btn.setText( _translate("CustomToolbarDialog", "Rename ToolBar", None)) self.delete_btn.setText( _translate("CustomToolbarDialog", "Delete ToolBar or Tool", None)) self.Save_btn.setText( _translate("CustomToolbarDialog", "Save Changes", None)) self.groupBox_2.setTitle( _translate("CustomToolbarDialog", "My ToolBars", None)) self.My_expand.setToolTip( _translate("CustomToolbarDialog", "Expand all", None)) self.My_Collapse.setToolTip( _translate("CustomToolbarDialog", "Collapse all", None))
class Ui_DlgModeler(object): def setupUi(self, DlgModeler): DlgModeler.setObjectName(_fromUtf8("DlgModeler")) DlgModeler.resize(1000, 600) self.verticalLayout = QtGui.QVBoxLayout(DlgModeler) self.verticalLayout.setSpacing(6) self.verticalLayout.setMargin(9) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setSpacing(6) self.horizontalLayout.setMargin(3) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.btnOpen = QtGui.QToolButton(DlgModeler) self.btnOpen.setAutoRaise(True) self.btnOpen.setObjectName(_fromUtf8("btnOpen")) self.horizontalLayout.addWidget(self.btnOpen) self.btnSave = QtGui.QToolButton(DlgModeler) self.btnSave.setAutoRaise(True) self.btnSave.setObjectName(_fromUtf8("btnSave")) self.horizontalLayout.addWidget(self.btnSave) self.btnSaveAs = QtGui.QToolButton(DlgModeler) self.btnSaveAs.setAutoRaise(True) self.btnSaveAs.setObjectName(_fromUtf8("btnSaveAs")) self.horizontalLayout.addWidget(self.btnSaveAs) self.line = QtGui.QFrame(DlgModeler) self.line.setFrameShape(QtGui.QFrame.VLine) self.line.setFrameShadow(QtGui.QFrame.Sunken) self.line.setObjectName(_fromUtf8("line")) self.horizontalLayout.addWidget(self.line) self.btnExportImage = QtGui.QToolButton(DlgModeler) self.btnExportImage.setAutoRaise(True) self.btnExportImage.setObjectName(_fromUtf8("btnExportImage")) self.horizontalLayout.addWidget(self.btnExportImage) self.line_2 = QtGui.QFrame(DlgModeler) self.line_2.setFrameShape(QtGui.QFrame.VLine) self.line_2.setFrameShadow(QtGui.QFrame.Sunken) self.line_2.setObjectName(_fromUtf8("line_2")) self.horizontalLayout.addWidget(self.line_2) self.btnEditHelp = QtGui.QToolButton(DlgModeler) self.btnEditHelp.setAutoRaise(True) self.btnEditHelp.setObjectName(_fromUtf8("btnEditHelp")) self.horizontalLayout.addWidget(self.btnEditHelp) self.line_3 = QtGui.QFrame(DlgModeler) self.line_3.setFrameShape(QtGui.QFrame.VLine) self.line_3.setFrameShadow(QtGui.QFrame.Sunken) self.line_3.setObjectName(_fromUtf8("line_3")) self.horizontalLayout.addWidget(self.line_3) self.btnRun = QtGui.QToolButton(DlgModeler) self.btnRun.setAutoRaise(True) self.btnRun.setObjectName(_fromUtf8("btnRun")) self.horizontalLayout.addWidget(self.btnRun) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.verticalLayout.addLayout(self.horizontalLayout) self.splitter = QtGui.QSplitter(DlgModeler) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName(_fromUtf8("splitter")) self.tabWidget = QtGui.QTabWidget(self.splitter) self.tabWidget.setMinimumSize(QtCore.QSize(300, 0)) self.tabWidget.setTabPosition(QtGui.QTabWidget.South) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tab = QtGui.QWidget() self.tab.setObjectName(_fromUtf8("tab")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.tab) self.verticalLayout_2.setSpacing(2) self.verticalLayout_2.setMargin(0) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.inputsTree = QtGui.QTreeWidget(self.tab) self.inputsTree.setAlternatingRowColors(True) self.inputsTree.setObjectName(_fromUtf8("inputsTree")) self.inputsTree.headerItem().setText(0, _fromUtf8("1")) self.inputsTree.header().setVisible(False) self.verticalLayout_2.addWidget(self.inputsTree) self.tabWidget.addTab(self.tab, _fromUtf8("")) self.tab_2 = QtGui.QWidget() self.tab_2.setObjectName(_fromUtf8("tab_2")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.tab_2) self.verticalLayout_3.setSpacing(2) self.verticalLayout_3.setMargin(0) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.searchBox = QgsFilterLineEdit(self.tab_2) self.searchBox.setObjectName(_fromUtf8("searchBox")) self.verticalLayout_3.addWidget(self.searchBox) self.algorithmTree = QtGui.QTreeWidget(self.tab_2) self.algorithmTree.setAlternatingRowColors(True) self.algorithmTree.setObjectName(_fromUtf8("algorithmTree")) self.algorithmTree.headerItem().setText(0, _fromUtf8("1")) self.algorithmTree.header().setVisible(False) self.verticalLayout_3.addWidget(self.algorithmTree) self.tabWidget.addTab(self.tab_2, _fromUtf8("")) self.layoutWidget = QtGui.QWidget(self.splitter) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.gridLayout = QtGui.QGridLayout(self.layoutWidget) self.gridLayout.setSpacing(2) self.gridLayout.setMargin(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.textName = QtGui.QLineEdit(self.layoutWidget) self.textName.setObjectName(_fromUtf8("textName")) self.gridLayout.addWidget(self.textName, 0, 0, 1, 1) self.textGroup = QtGui.QLineEdit(self.layoutWidget) self.textGroup.setObjectName(_fromUtf8("textGroup")) self.gridLayout.addWidget(self.textGroup, 0, 1, 1, 1) self.view = QtGui.QGraphicsView(self.layoutWidget) self.view.setObjectName(_fromUtf8("view")) self.gridLayout.addWidget(self.view, 1, 0, 1, 2) self.verticalLayout.addWidget(self.splitter) self.retranslateUi(DlgModeler) self.tabWidget.setCurrentIndex(1) QtCore.QMetaObject.connectSlotsByName(DlgModeler) def retranslateUi(self, DlgModeler): DlgModeler.setWindowTitle( _translate("DlgModeler", "Processing modeler", None)) self.btnOpen.setToolTip(_translate("DlgModeler", "Open model", None)) self.btnOpen.setText(_translate("DlgModeler", "...", None)) self.btnOpen.setShortcut(_translate("DlgModeler", "Ctrl+O", None)) self.btnSave.setToolTip(_translate("DlgModeler", "Save", None)) self.btnSave.setText(_translate("DlgModeler", "...", None)) self.btnSave.setShortcut(_translate("DlgModeler", "Ctrl+S", None)) self.btnSaveAs.setToolTip(_translate("DlgModeler", "Save as...", None)) self.btnSaveAs.setText(_translate("DlgModeler", "...", None)) self.btnSaveAs.setShortcut( _translate("DlgModeler", "Ctrl+Shift+S", None)) self.btnExportImage.setToolTip( _translate("DlgModeler", "Export as image", None)) self.btnExportImage.setText(_translate("DlgModeler", "...", None)) self.btnEditHelp.setToolTip( _translate("DlgModeler", "Edit model help", None)) self.btnEditHelp.setText(_translate("DlgModeler", "...", None)) self.btnRun.setToolTip(_translate("DlgModeler", "Run model", None)) self.btnRun.setText(_translate("DlgModeler", "...", None)) self.btnRun.setShortcut(_translate("DlgModeler", "F5", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("DlgModeler", "Inputs", None)) self.searchBox.setToolTip( _translate("DlgModeler", "Enter algorithm name to filter list", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("DlgModeler", "Algorithms", None)) self.textName.setToolTip( _translate("DlgModeler", "Enter model name here", None)) self.textGroup.setToolTip( _translate("DlgModeler", "Enter group name here", None))
class DiviPluginDockWidget(QDockWidget, FORM_CLASS): closingPlugin = pyqtSignal() transform2mercator = QgsCoordinateTransform( QgsCoordinateReferenceSystem('EPSG:4326'), QgsCoordinateReferenceSystem('EPSG:3857'), QgsProject.instance() ) def __init__(self, plugin, parent=None): """Constructor.""" super(DiviPluginDockWidget, self).__init__(parent) # Set up the user interface from Designer. # After setupUI you can access any designer object by doing # self.<objectname>, and you can use autoconnect slots - see # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html # #widgets-and-dialogs-with-auto-connect self.plugin = plugin self.iface = plugin.iface self.token = QSettings().value('%s/token' % CONFIG_NAME, None) self.user = QSettings().value('%s/email' % CONFIG_NAME, None) self.setupUi(self) self.initGui() proxyModel = DiviProxyModel() proxyModel.setSourceModel( DiviModel() ) proxyModel.setDynamicSortFilter( True ) self.tvData.setModel( proxyModel ) self.tvData.setSortingEnabled(True) self.setLogginStatus(bool(self.token)) #Signals self.btnConnect.clicked.connect(self.diviConnection) self.eSearch.textChanged.connect(self.searchData) self.tvData.activated.connect(self.addLayer) self.tvData.customContextMenuRequested.connect(self.showMenu) self.tvData.selectionModel().currentChanged.connect(self.treeSelectionChanged) QgsProject.instance().layersWillBeRemoved.connect( self.layersRemoved ) self.gbFilters.collapsedStateChanged.connect(self.toggleFilters) self.cbVectors.stateChanged.connect(self.setSearchFilter) self.cbTables.stateChanged.connect(self.setSearchFilter) self.cbRasters.stateChanged.connect(self.setSearchFilter) self.cbWms.stateChanged.connect(self.setSearchFilter) self.cbBasemaps.stateChanged.connect(self.setSearchFilter) self.setSearchFilter(None) def initGui(self): self.eSearch = QgsFilterLineEdit(self.dockWidgetContents) self.eSearch.setObjectName(u"eSearch") self.eSearch.setPlaceholderText(self.tr("Search...")) self.editLayout.addWidget(self.eSearch) #Toolbar self.btnAddLayer.setIcon( QgsApplication.getThemeIcon('/mActionAddMap.svg') ) menu = QMenu() menu.aboutToShow.connect(self.addMenuShow) self.btnAddLayer.setMenu(menu) self.btnAddLayer.clicked.connect( self.addItems ) self.btnRefresh.clicked.connect(lambda checked: self.refreshItems( self.tvData.selectedIndexes()[0] if self.tvData.selectedIndexes() else None )) self.btnRefresh.setIcon( QgsApplication.getThemeIcon('/mActionReload.svg') ) #Filters settings = QSettings() self.gbFilters.setCollapsed( not settings.value( '{}/filters/filters'.format(CONFIG_NAME), False, bool ) ) self.cbVectors.setChecked( settings.value( '{}/filters/vectors'.format(CONFIG_NAME), True, bool ) ) self.cbTables.setChecked( settings.value( '{}/filters/tables'.format(CONFIG_NAME), True, bool ) ) self.cbRasters.setChecked( settings.value( '{}/filters/rasters'.format(CONFIG_NAME), True, bool ) ) self.cbWms.setChecked( settings.value( '{}/filters/wms'.format(CONFIG_NAME), True, bool ) ) self.cbBasemaps.setChecked( settings.value( '{}/filters/basmeaps'.format(CONFIG_NAME), True, bool ) ) def getConnector(self, auto_login=True): connector = DiviConnector(iface=self.iface, auto_login=auto_login) connector.diviLogged.connect(self.setUserData) return connector def closeEvent(self, event): self.closingPlugin.emit() event.accept() def diviConnection(self, checked, auto_login=True): model = self.tvData.model().sourceModel() connector = self.getConnector(auto_login) if checked: #Connect model.showLoading() data = connector.diviFeatchData() if data is not None: model.addData( *data ) self.setLogginStatus(True) items = self.getLoadedDiviLayers() #Refresh data after connect for item in items: self.refreshData( item ) return else: model.removeAll() else: #Disconnect layers = [ layer for layer in QgsProject.instance().mapLayers().values() if layer.customProperty('DiviId') is not None ] if any(layer.isModified() for layer in layers if layer.isEditable()): result = QMessageBox.question(None, self.tr('Edited layers'), self.tr('Some layers are modified. You need to save changes or rollback to continue. Do you want to revert all edits?'), QMessageBox.Yes | QMessageBox.No) if result==QMessageBox.No: self.btnConnect.setChecked(True) return for layer in layers: if layer.isEditable(): layer.rollBack() connector.diviLogout() self.btnAddLayer.setEnabled(False) self.btnRefresh.setEnabled(False) settings = QSettings() settings.remove('%s/token' % CONFIG_NAME) settings.remove('%s/id' % CONFIG_NAME) settings.remove('%s/status' % CONFIG_NAME) self.setLogginStatus(False) def setLogginStatus(self, logged): if logged: self.setWindowTitle( 'DIVI QGIS Plugin - %s' % self.user ) self.btnConnect.setText(self.tr('Disconnect')) self.btnConnect.setChecked(True) else: self.tvData.model().sourceModel().removeAll() self.setWindowTitle( 'DIVI QGIS Plugin' ) self.btnConnect.setText(self.tr('Connect')) self.btnConnect.setChecked(False) self.token = None self.plugin.setEnabled( logged ) QgsMessageLog.logMessage(str(self.token), 'DIVI') def setUserData(self, user, token): self.user = user self.token = token if token: self.setLogginStatus(True) def getLoadedDiviLayers(self, layers=None): if layers is None: layers = [ layer for layer in QgsProject.instance().mapLayers().values() if layer.customProperty('DiviId') is not None ] model = self.tvData.model().sourceModel() items = set() for layer in layers: divi_id = layer.customProperty('DiviId') item_type = self.plugin.getItemType(layer) layerIndex = model.findItem(divi_id, item_type, True) if layerIndex is not None: layerItem = layerIndex.data(role=Qt.UserRole) items.add(layerItem) if layer not in layerItem.items: fields = [] if isinstance(layer, QgsRasterLayer) else layerItem.fields layerItem.items.append(layer) model.dataChanged.emit(layerIndex, layerIndex) if isinstance(layerItem, RasterItem): self.plugin.updateRasterToken( layer, layerItem.getUri(self.token) ) return items #SLOTS def addMenuShow(self): menu = self.sender() menu.clear() indexes = self.tvData.selectedIndexes() if not indexes: return item = indexes[0].data(Qt.UserRole) add_text = self.tr('Add layer') if isinstance(item, LayerItem) else self.tr(u'Add all layers from project') add = menu.addAction(QgsApplication.getThemeIcon('/mActionAddMap.svg'), add_text, lambda: self.addLayer(indexes[0])) f = add.font() f.setBold(True) add.setFont(f) if not isinstance(item, VectorItem): return sep = menu.addSeparator() sep.setText(self.tr('Add as...')) sep.setEnabled(False) load_layer_as = partial(self.plugin.loadLayerType, item=item) menu.addAction(QgsApplication.getThemeIcon('/mIconPointLayer.svg'), self.tr('Points'), lambda: load_layer_as(geom_type='MultiPoint')) menu.addAction(QgsApplication.getThemeIcon('/mIconLineLayer.svg'), self.tr('Linestring'), lambda: load_layer_as(geom_type='MultiLineString')) menu.addAction(QgsApplication.getThemeIcon('/mIconPolygonLayer.svg'), self.tr('Polygons'), lambda: load_layer_as(geom_type='MultiPolygon')) def treeSelectionChanged(self, new, old): item = new.data(Qt.UserRole) self.btnAddLayer.setEnabled( isinstance(item, (LayerItem, ProjectItem)) ) self.btnRefresh.setEnabled( (not isinstance(item, LayerItem)) or (isinstance(item, TableItem)) ) def addItems(self): indexes = self.tvData.selectedIndexes() if not indexes: return index = indexes[0] item = index.data(Qt.UserRole) if isinstance(item, LayerItem): self.addLayer(index) elif isinstance(item, ProjectItem): self.addProjectData(index) def addLayer(self, index, old=None, addToMap=True): item = index.data(role=Qt.UserRole) if not isinstance(item, LayerItem): return if not self.plugin.setLoading(True): return addedData = [] if isinstance(item, VectorItem): connector = self.getConnector() self.plugin.msgBar = ProgressMessageBar(self.iface, self.tr("Downloading layer '%s'...")%item.name, connector=connector) self.plugin.msgBar.setValue(10) connector.downloadingProgress.connect(self.plugin.updateDownloadProgress) data = connector.diviGetLayerFeatures(item.id) layers = [] if data: permissions = connector.getUserPermission(item.id, 'layer') self.plugin.msgBar.setBoundries(50, 50) #Disable rendering for changing symbology self.iface.mapCanvas().setRenderFlag(False) layers = self.plugin.addLayer(data['features'], item, permissions, addToMap=addToMap) for layer in layers: #Set symbols based on layer geometry type item.setQgisStyle(layer) self.iface.layerTreeView().refreshLayerSymbology(layer.id()) self.iface.mapCanvas().setRenderFlag(True) addedData.extend( layers ) item.items.extend( addedData ) self.plugin.msgBar.setValue(100) aborted = self.plugin.msgBar.aborted self.plugin.msgBar.close() self.plugin.msgBar = None if aborted: # fix_print_with_import print('Aborted') elif not layers: #User can select geometry type in message bar widget = self.iface.messageBar().createMessage( self.tr("Warning"), self.tr(u"Layer '%s' is empty. To open it in QGIS you need to select geometry type.") % item.name ) button = QToolButton(widget) button.setText(self.tr("Add layer as...")) button.setPopupMode(QToolButton.InstantPopup) menu = QMenu(button) def load_layer_as(geom_type): self.plugin.loadLayerType(item = item, geom_type = geom_type) self.iface.messageBar().clearWidgets() menu.addAction(QgsApplication.getThemeIcon('/mIconPointLayer.svg'), self.tr('Points'), lambda: load_layer_as(geom_type='MultiPoint')) menu.addAction(QgsApplication.getThemeIcon('/mIconLineLayer.svg'), self.tr('Linestring'), lambda: load_layer_as(geom_type='MultiLineString')) menu.addAction(QgsApplication.getThemeIcon('/mIconPolygonLayer.svg'), self.tr('Polygons'), lambda: load_layer_as(geom_type='MultiPolygon')) button.setMenu( menu ) widget.layout().addWidget(button) self.iface.messageBar().pushWidget(widget, Qgis.Warning) elif isinstance(item, TableItem): if Qgis.QGIS_VERSION_INT < 21400: self.iface.messageBar().pushMessage('DIVI', self.tr(u'QGIS 2.14 or later is required for loading DIVI tables.'), Qgis.Critical, duration = 3 ) else: self.plugin.msgBar = ProgressMessageBar(self.iface, self.tr("Downloading table '%s'...")%item.name) self.plugin.msgBar.setValue(10) connector = self.getConnector() connector.downloadingProgress.connect(self.plugin.updateDownloadProgress) data = connector.diviGetTableRecords(item.id) if data: permissions = connector.getUserPermission(item.id, 'table') self.plugin.msgBar.setBoundries(50, 50) addedData.append( self.plugin.addTable(data['header'], data['data'], item, permissions, addToMap=addToMap) ) item.items.extend( addedData ) self.plugin.msgBar.setValue(100) self.plugin.msgBar.close() self.plugin.msgBar = None elif isinstance(item, RasterItem): if Qgis.QGIS_VERSION_INT < 21800: self.iface.messageBar().pushMessage('DIVI', self.tr(u'QGIS 2.18 or later is required for loading DIVI rasters.'), Qgis.Critical, duration = 3 ) else: uri = item.getUri(self.token) uri = uri.replace("b'", "").replace("'", "") QgsMessageLog.logMessage( uri, 'DIVI') r = QgsRasterLayer(uri, item.name, 'wms') r.setCustomProperty('DiviId', item.id) if item.extent is not None: #Set extent for raster layer bbox = self.transform2mercator.transformBoundingBox( QgsRectangle( item.extent['st_xmin'], item.extent['st_ymin'], item.extent['st_xmax'], item.extent['st_ymax'] )) r.setExtent( bbox ) addedData.append( r ) item.items.extend( addedData ) if addToMap: QgsProject.instance().addMapLayer(r) elif isinstance(item, WmsItem): uri = item.getUri() QgsMessageLog.logMessage( uri, 'DIVI') r = QgsRasterLayer(uri, item.name, 'wms') r.setCustomProperty('DiviId', item.id) addedData.append( r ) item.items.extend( addedData ) if addToMap: QgsProject.instance().addMapLayer(r) elif isinstance(item, BasemapItem): uri = item.getUri() QgsMessageLog.logMessage( uri, 'DIVI') r = QgsRasterLayer(uri, item.name, 'wms') r.setCustomProperty('DiviId', item.id) addedData.append( r ) item.items.extend( addedData ) if addToMap: QgsProject.instance().addMapLayer(r) else: return index.model().dataChanged.emit(index.parent().parent(), index) self.plugin.setLoading(False) return addedData def refreshData(self, item): layers = item.items[:] for l in layers: if l.VectorLayer: if l.isEditable(): self.iface.messageBar().pushMessage('DIVI', self.tr(u'One of related layers is in edit mode. End edit mode of that layer to continue.'), Qgis.Critical, duration = 3 ) return with Cache(self.plugin): for lyr in layers: if lyr.RasterLayer: try: lyr.reload() except: self.iface.messageBar().pushMessage('Error', self.tr('Raster data was deleted from the view.'), Qgis.Critical, duration = 3 ) return else: lyr.dataProvider().deleteFeatures(lyr.allFeatureIds()) try: self.plugin.unregisterLayer(lyr) except TypeError: pass layer_meta = self.plugin.loadLayer(lyr) lyr.triggerRepaint() item.items = layers[:] item.updateData(layer_meta) def showMenu(self, point): index = self.tvData.indexAt(point) item = index.data(role=Qt.UserRole) menu = QMenu(self) if isinstance(item, LayerItem): #Layer menu if isinstance(item, TableItem): menu.addAction(QgsApplication.getThemeIcon('/mActionAddMap.png'), self.tr('Add layer'), lambda: self.addLayer(index)) if type(item) is VectorItem: open_as_menu = menu.addMenu(QgsApplication.getThemeIcon('/mActionAddOgrLayer.svg'), self.tr("Add layer as...")) load_layer_as = partial(self.plugin.loadLayerType, item=item) open_as_menu.addAction(QgsApplication.getThemeIcon('/mIconPointLayer.svg'), self.tr('Points'), lambda: load_layer_as(geom_type='MultiPoint')) open_as_menu.addAction(QgsApplication.getThemeIcon('/mIconLineLayer.svg'), self.tr('Linestring'), lambda: load_layer_as(geom_type='MultiLineString')) open_as_menu.addAction(QgsApplication.getThemeIcon('/mIconPolygonLayer.svg'), self.tr('Polygons'), lambda: load_layer_as(geom_type='MultiPolygon')) elif isinstance(item, RasterItem): menu.addAction(QgsApplication.getThemeIcon('/mActionAddMap.png'), self.tr('Download raster'), lambda: self.downloadRaster(index)) menu.addAction(QgsApplication.getThemeIcon('/mActionToggleEditing.svg'), self.tr('Change layer name...'), lambda: self.editLayerName(index)) if item.items: menu.addAction(QgsApplication.getThemeIcon('/mActionDraw.svg'), self.tr('Reload data'), lambda: self.refreshData(item)) elif isinstance(item, ProjectItem): menu.addAction(QgsApplication.getThemeIcon('/mActionAddGroup.png'), self.tr(u'Add all layers from project'), lambda: self.addProjectData(index)) menu.addAction(QgsApplication.getThemeIcon('/mActionDraw.svg'), self.tr(u'Refresh items'), lambda: self.refreshItems(index)) menu.popup(self.tvData.viewport().mapToGlobal(point)) def layersRemoved(self, layers): removed_ids = set([]) model = self.tvData.model().sourceModel() for lid in layers: layer = QgsProject.instance().mapLayer(lid) divi_id = layer.customProperty('DiviId') if divi_id is None: continue QgsMessageLog.logMessage(self.tr('Removing layer %s')%layer.name(), 'DIVI') item_type = self.plugin.getItemType(layer) layerIndex = model.findItem(divi_id, item_type, True) if layerIndex is None: continue layerItem = layerIndex.data(role=Qt.UserRole) if layer in layerItem.items: layerItem.items.remove(layer) self.plugin.unregisterLayer(layer) model.dataChanged.emit(layerIndex, layerIndex) def searchData(self, text): self.tvData.model().setFilterRegExp(QRegExp(text, Qt.CaseInsensitive, QRegExp.FixedString)) if text: self.tvData.expandAll() else: self.tvData.collapseAll() def setSearchFilter(self, value): settings = QSettings() settings.setValue( '{}/filters/vectors'.format(CONFIG_NAME), self.cbVectors.isChecked() ) settings.setValue( '{}/filters/tables'.format(CONFIG_NAME), self.cbTables.isChecked() ) settings.setValue( '{}/filters/rasters'.format(CONFIG_NAME), self.cbRasters.isChecked() ) settings.setValue( '{}/filters/wms'.format(CONFIG_NAME), self.cbWms.isChecked() ) settings.setValue( '{}/filters/basmeaps'.format(CONFIG_NAME), self.cbBasemaps.isChecked() ) filters = ['loading'] if self.cbVectors.isChecked(): filters.append('vector') if self.cbTables.isChecked(): filters.append('table') if self.cbRasters.isChecked(): filters.append('raster') if self.cbWms.isChecked(): filters.append('wms') if self.cbBasemaps.isChecked(): filters.append('basemap') self.tvData.model().types = filters self.tvData.model().invalidateFilter() def toggleFilters(self, collapsed): # fix_print_with_import print(collapsed) QSettings().setValue( '{}/filters/filters'.format(CONFIG_NAME), not collapsed ) def editLayerName(self, index): item = index.data(role=Qt.UserRole) name, status = QInputDialog.getText(self, self.tr('Change name'), self.tr('Enter new layer name for %s') % item.name, text = item.name) if status and name != item.name: result = self.editLayerMetadata(item, {'name':name}) if result['layer']['name'] == name: self.iface.messageBar().pushMessage('DIVI', self.tr('Name of layer %s was changed to %s.') % (item.name, name), duration = 3 ) item.name = name index.model().dataChanged.emit(index, index) else: self.iface.messageBar().pushMessage('DIVI', self.tr('Error occured while changing name.'), Qgis.Critical, duration = 3 ) def editLayerMetadata(self, item, data): connector = self.getConnector() if type(item) is TableItem: item_type = 'table' else: item_type = 'vector' return connector.updateLayer(item.id, data, item_type=item_type) def addProjectData(self, index): item = index.data( role=Qt.UserRole ) layers = [] for i, data in enumerate(item.childItems): if isinstance(data, LayerItem): layers.extend( self.addLayer( index.child(i, 0), addToMap=False ) ) if layers: idx2 = QgsProject.instance().layerTreeRoot().addGroup(item.name) #idx = self.iface.legendInterface().addGroup(item.name, True) #for layer in reversed(layers): #self.iface.legendInterface().moveLayer(layer, idx) for layer in layers: idx2.addLayer(layer) def refreshItems(self, index): if index is None: return index = self.tvData.model().mapToSource(index) item = index.data( role=Qt.UserRole ) if isinstance(item, TableItem): self.plugin.loadLayers(item.items) return elif isinstance(item, LayerItem): return connector = self.getConnector() model = self.tvData.model().sourceModel() self.unregisterLayers(item) model.removeRows(0, item.childCount(),index) layers, tables = connector.diviGetProjectItems(projectid=item.id) model.addProjectItems(item, layers, tables) self.getLoadedDiviLayers() def downloadRaster(self, index): item = index.data(Qt.UserRole) filePath = getSavePath( '%s.tiff' % item.name ) if filePath is None: return connector = self.getConnector() fileData = connector.downloadRaster( item.id ) filePath = str(filePath).split(',')[0].replace("'", "").replace("(", "")\ +str(str(filePath).split(',')[1]).strip().replace("'", "").replace(")", "") try: with open(filePath, 'wb') as f: f.write(fileData) except: pass def unregisterLayers(self, item): for child in item.childItems: for layer in child.items: self.plugin.unregisterLayer(layer)