class Ui_PostNAS_SearchDialogBase(object): def setupUi(self, PostNAS_SearchDialogBase): PostNAS_SearchDialogBase.setObjectName( _fromUtf8("PostNAS_SearchDialogBase")) PostNAS_SearchDialogBase.resize(501, 337) self.gridLayout = QGridLayout(PostNAS_SearchDialogBase) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.treeWidget = QTreeWidget(PostNAS_SearchDialogBase) self.treeWidget.setSelectionMode(QAbstractItemView.ExtendedSelection) self.treeWidget.setHeaderHidden(True) self.treeWidget.setObjectName(_fromUtf8("treeWidget")) self.treeWidget.headerItem().setText(0, _fromUtf8("1")) self.gridLayout.addWidget(self.treeWidget, 1, 0, 1, 3) self.lineEdit = QLineEdit(PostNAS_SearchDialogBase) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 3) self.showButton = QToolButton(PostNAS_SearchDialogBase) self.showButton.setEnabled(False) icon = QtGui.QIcon() icon.addPixmap( QPixmap(_fromUtf8(":/plugins/PostNAS_Search/search_16x16.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.showButton.setIcon(icon) self.showButton.setObjectName(_fromUtf8("showButton")) self.gridLayout.addWidget(self.showButton, 2, 2, 1, 1) self.resetButton = QToolButton(PostNAS_SearchDialogBase) self.resetButton.setEnabled(False) icon1 = QIcon() icon1.addPixmap( QtGui.QPixmap( _fromUtf8(":/plugins/PostNAS_Search/marker-delete.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.resetButton.setIcon(icon1) self.resetButton.setObjectName(_fromUtf8("resetButton")) self.gridLayout.addWidget(self.resetButton, 2, 1, 1, 1) self.retranslateUi(PostNAS_SearchDialogBase) QtCore.QMetaObject.connectSlotsByName(PostNAS_SearchDialogBase) def retranslateUi(self, PostNAS_SearchDialogBase): PostNAS_SearchDialogBase.setWindowTitle( _translate("PostNAS_SearchDialogBase", "KU_Search", None)) self.showButton.setToolTip( _translate("PostNAS_SearchDialogBase", "Auswahl anzeigen", None)) self.showButton.setText( _translate("PostNAS_SearchDialogBase", "Anzeigen", None)) self.resetButton.setToolTip( _translate("PostNAS_SearchDialogBase", "Ergebnis löschen", None)) self.resetButton.setText( _translate("PostNAS_SearchDialogBase", "Reset", None))
class Ui_PostNAS_SearchDialogBase(object): def setupUi(self, PostNAS_SearchDialogBase): PostNAS_SearchDialogBase.setObjectName(_fromUtf8("PostNAS_SearchDialogBase")) PostNAS_SearchDialogBase.resize(501, 337) self.gridLayout = QGridLayout(PostNAS_SearchDialogBase) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.treeWidget = QTreeWidget(PostNAS_SearchDialogBase) self.treeWidget.setSelectionMode(QAbstractItemView.ExtendedSelection) self.treeWidget.setHeaderHidden(True) self.treeWidget.setObjectName(_fromUtf8("treeWidget")) self.treeWidget.headerItem().setText(0, _fromUtf8("1")) self.gridLayout.addWidget(self.treeWidget, 1, 0, 1, 3) self.lineEdit = QLineEdit(PostNAS_SearchDialogBase) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 3) self.showButton = QToolButton(PostNAS_SearchDialogBase) self.showButton.setEnabled(False) icon = QtGui.QIcon() icon.addPixmap(QPixmap(_fromUtf8(":/plugins/PostNAS_Search/search_16x16.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.showButton.setIcon(icon) self.showButton.setObjectName(_fromUtf8("showButton")) self.gridLayout.addWidget(self.showButton, 2, 2, 1, 1) self.resetButton = QToolButton(PostNAS_SearchDialogBase) self.resetButton.setEnabled(False) icon1 = QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/plugins/PostNAS_Search/marker-delete.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.resetButton.setIcon(icon1) self.resetButton.setObjectName(_fromUtf8("resetButton")) self.gridLayout.addWidget(self.resetButton, 2, 1, 1, 1) self.retranslateUi(PostNAS_SearchDialogBase) QtCore.QMetaObject.connectSlotsByName(PostNAS_SearchDialogBase) def retranslateUi(self, PostNAS_SearchDialogBase): PostNAS_SearchDialogBase.setWindowTitle(_translate("PostNAS_SearchDialogBase", "KU_Search", None)) self.showButton.setToolTip(_translate("PostNAS_SearchDialogBase", "Auswahl anzeigen", None)) self.showButton.setText(_translate("PostNAS_SearchDialogBase", "Anzeigen", None)) self.resetButton.setToolTip(_translate("PostNAS_SearchDialogBase", "Ergebnis löschen", None)) self.resetButton.setText(_translate("PostNAS_SearchDialogBase", "Reset", None))
class ConfigDialog(QDialog): def __init__(self, namespace): self.settings = pluginSettings(namespace) self.namespace = namespace QDialog.__init__(self, iface.mainWindow()) self.setupUi() if hasattr(self.searchBox, 'setPlaceholderText'): self.searchBox.setPlaceholderText(self.tr("Search...")) self.searchBox.textChanged.connect(self.filterTree) self.fillTree() self.tree.expandAll() def setupUi(self): self.setMinimumWidth(500) self.setMinimumHeight(400) self.resize(640, 450) self.verticalLayout = QVBoxLayout(self) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.searchBox = QgsFilterLineEdit(self) self.verticalLayout.addWidget(self.searchBox) self.tree = QTreeWidget(self) self.tree.setAlternatingRowColors(True) self.verticalLayout.addWidget(self.tree) self.horizontalLayout = QHBoxLayout(self) self.resetButton = QPushButton("Reset default values") self.resetButton.clicked.connect(self.resetDefault) self.horizontalLayout.addWidget(self.resetButton) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok) self.horizontalLayout.addWidget(self.buttonBox) self.verticalLayout.addLayout(self.horizontalLayout) self.setWindowTitle("Configuration options") self.searchBox.setToolTip("Enter setting name to filter list") self.tree.headerItem().setText(0, "Setting") self.tree.headerItem().setText(1, "Value") def saveValues(): iterator = QTreeWidgetItemIterator(self.tree) value = iterator.value() while value: if hasattr(value, 'saveValue'): try: value.saveValue() except WrongValueException: return iterator += 1 value = iterator.value() QDialog.accept(self) self.close() self.buttonBox.accepted.connect(saveValues) self.buttonBox.rejected.connect(self.reject) def resetDefault(self): root = self.tree.invisibleRootItem() for i in range(root.childCount()): item = root.child(i) for j in range(item.childCount()): subitem = item.child(j) subitem.resetDefault() def filterTree(self): text = unicode(self.searchBox.text()) for i in range(self.tree.topLevelItemCount()): item = self.tree.topLevelItem(i) visible = False for j in range(item.childCount()): subitem = item.child(j) itemText = subitem.text(0) if (text.strip() == ""): subitem.setHidden(False) visible = True else: hidden = text not in itemText item.setHidden(hidden) visible = visible or not hidden item.setHidden(not visible) item.setExpanded(visible and text.strip() != "") def fillTree(self): self.items = {} self.tree.clear() grouped = defaultdict(list) for setting in self.settings: grouped[setting["group"]].append(setting) for groupName, group in grouped.items(): item = self._getGroupItem(groupName, group) self.tree.addTopLevelItem(item) self.tree.setColumnWidth(0, 400) def _getGroupItem(self, groupName, params): item = QTreeWidgetItem() item.setText(0, groupName) icon = QIcon(os.path.join(os.path.dirname(__file__), "setting.png")) item.setIcon(0, icon) for param in params: value = pluginSetting(param["name"], self.namespace) subItem = TreeSettingItem(item, self.tree, param, self.namespace, value) item.addChild(subItem) return item
class ConfigDialog(QDialog): versioIcon = QIcon( os.path.dirname(__file__) + "/../../ui/resources/geogig-16.png") def __init__(self): QDialog.__init__(self) self.setupUi() if hasattr(self.searchBox, 'setPlaceholderText'): self.searchBox.setPlaceholderText(self.tr("Search...")) self.searchBox.textChanged.connect(self.filterTree) self.fillTree() def setupUi(self): self.resize(640, 450) self.verticalLayout = QVBoxLayout() self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.searchBox = QgsFilterLineEdit(self) self.verticalLayout.addWidget(self.searchBox) self.tree = QTreeWidget(self) self.tree.setAlternatingRowColors(True) self.verticalLayout.addWidget(self.tree) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.verticalLayout.addWidget(self.buttonBox) self.setWindowTitle("Configuration options") self.searchBox.setToolTip("Enter setting name to filter list") self.tree.headerItem().setText(0, "Setting") self.tree.headerItem().setText(1, "Value") self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) self.setLayout(self.verticalLayout) def filterTree(self): text = str(self.searchBox.text()) for i in range(self.tree.topLevelItemCount()): item = self.tree.topLevelItem(i) visible = False for j in range(item.childCount()): subitem = item.child(j) itemText = subitem.text(0) if (text.strip() == ""): subitem.setHidden(False) visible = True else: hidden = text not in itemText item.setHidden(hidden) visible = visible or not hidden item.setHidden(not visible) item.setExpanded(visible and text.strip() != "") def fillTree(self): self.items = {} self.tree.clear() generalItem = self._getItem(config.GENERAL, self.versioIcon, config.generalParams) self.tree.addTopLevelItem(generalItem) self.tree.setColumnWidth(0, 400) def _getItem(self, name, icon, params): item = QTreeWidgetItem() item.setText(0, name) item.setIcon(0, icon) for param in params: paramName = "/GeoGig/Settings/" + name + "/" + param[0] subItem = TreeSettingItem(self.tree, item, paramName, *param[1:]) item.addChild(subItem) return item def accept(self): iterator = QTreeWidgetItemIterator(self.tree) value = iterator.value() while value: if hasattr(value, 'checkValue'): if value.checkValue(): value.setBackgroundColor(1, Qt.white) else: value.setBackgroundColor(1, Qt.yellow) return iterator += 1 value = iterator.value() iterator = QTreeWidgetItemIterator(self.tree) value = iterator.value() while value: if hasattr(value, 'saveValue'): value.saveValue() iterator += 1 value = iterator.value() QDialog.accept(self)
class ConfigDialog(QDialog): NO_BASE_LAYER = "Do not add base layer" def __init__(self): QDialog.__init__(self) self.setupUi() self.fillTree() self.tree.expandAll() def setupUi(self): self.setMinimumWidth(500) self.setMinimumHeight(400) self.resize(640, 450) self.verticalLayout = QVBoxLayout(self) self.verticalLayout.setSpacing(2) self.verticalLayout.setMargin(0) self.bar = QgsMessageBar() self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.verticalLayout.addWidget(self.bar) self.tree = QTreeWidget(self) self.tree.setAlternatingRowColors(True) self.verticalLayout.addWidget(self.tree) self.horizontalLayout = QHBoxLayout(self) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok) self.horizontalLayout.addWidget(self.buttonBox) self.verticalLayout.addLayout(self.horizontalLayout) self.setWindowTitle("Configuration options") self.tree.headerItem().setText(0, "Setting") self.tree.headerItem().setText(1, "Value") self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) def fillTree(self): self.items = {} self.tree.clear() _layers = [self.NO_BASE_LAYER] _layers.extend([lay.name for lay in layers()]) generalParams = [ConfigParameter("AddLayerToNewProjects", "Automatically add base layer to new projects", _layers)] icon = QIcon(os.path.dirname(__file__) + "/../../images/geoserver.png") generalItem = self._getItem("General", icon, generalParams) self.tree.addTopLevelItem(generalItem) for provider in providers: providerItem = self._getItem(provider.name, provider.icon, provider.options()) self.tree.addTopLevelItem(providerItem) self.tree.setColumnWidth(0, 400) def _getItem(self, name, icon, params): icon = QIcon(icon) item = QTreeWidgetItem() item.setText(0, name) item.setIcon(0, icon) for param in params: subItem = TreeSettingItem(item, self.tree, name, param) item.addChild(subItem) return item def saveSettings(self): iterator = QTreeWidgetItemIterator(self.tree) value = iterator.value() while value: if hasattr(value, 'saveValue'): try: value.saveValue() except Exception as e: self.bar.pushMessage("Error for parameter '%s':" % value.param.description, str(e), level=QgsMessageBar.WARNING) return False iterator += 1 value = iterator.value() return True def accept(self): if self.saveSettings(): QDialog.accept(self)