def setupUi(self): self.resize(600, 350) self.setWindowTitle("Publish Group") vertlayout = QtGui.QVBoxLayout(self) vertlayout.setSpacing(2) vertlayout.setMargin(6) horizlayout = QtGui.QHBoxLayout(self) # horizlayout.setSpacing(30) horizlayout.setMargin(0) self.nameLabel = QtGui.QLabel("Group name") self.nameLabel.setSizePolicy( QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Preferred)) self.nameBox = GSNameWidget( name=xmlNameFixUp(self.groupname), nameregex=xmlNameRegex(), nameregexmsg=xmlNameRegexMsg(), names=self.groupnames, unique=not self.overwritegrp) self.nameBox.setSizePolicy( QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)) horizlayout.addWidget(self.nameLabel) horizlayout.addWidget(self.nameBox) vertlayout.addLayout(horizlayout) self.lyrstable = PublishLayersDialog( {0: self.catalog}, self.layers, workspace=self.workspace, overwrite=self.overwritelyrs) self.lyrstable.buttonBox.setVisible(False) vertlayout.addWidget(self.lyrstable) self.buttonBox = QtGui.QDialogButtonBox( QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) self.okButton = self.buttonBox.button(QtGui.QDialogButtonBox.Ok) self.cancelButton = self.buttonBox.button(QtGui.QDialogButtonBox.Cancel) vertlayout.addWidget(self.buttonBox) self.setLayout(vertlayout) self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed) self.nameBox.nameValidityChanged.connect(self.okButton.setEnabled) self.nameBox.overwritingChanged.connect(self.updateButtons) self.okButton.setEnabled(self.nameBox.isValid()) self.updateButtons(self.nameBox.overwritingName()) self.lyrstable.itemValidityChanged.connect(self.okButton.setEnabled) self.okButton.setEnabled(self.lyrstable.layerNamesValid())
def setupUi(self): self.resize(600, 350) self.setWindowTitle("Publish Group") vertlayout = QtGui.QVBoxLayout(self) vertlayout.setSpacing(2) vertlayout.setMargin(6) horizlayout = QtGui.QHBoxLayout(self) # horizlayout.setSpacing(30) horizlayout.setMargin(0) self.nameLabel = QtGui.QLabel("Group name") self.nameLabel.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Preferred)) self.nameBox = GSNameWidget( name=xmlNameFixUp(self.groupname), nameregex=xmlNameRegex(), nameregexmsg=xmlNameRegexMsg(), names=self.groupnames, unique=not self.overwritegrp, ) self.nameBox.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)) horizlayout.addWidget(self.nameLabel) horizlayout.addWidget(self.nameBox) vertlayout.addLayout(horizlayout) self.lyrstable = PublishLayersDialog( {0: self.catalog}, self.layers, workspace=self.workspace, overwrite=self.overwritelyrs ) self.lyrstable.buttonBox.setVisible(False) vertlayout.addWidget(self.lyrstable) self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) self.okButton = self.buttonBox.button(QtGui.QDialogButtonBox.Ok) self.cancelButton = self.buttonBox.button(QtGui.QDialogButtonBox.Cancel) vertlayout.addWidget(self.buttonBox) self.setLayout(vertlayout) self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed) self.nameBox.nameValidityChanged.connect(self.okButton.setEnabled) self.nameBox.overwritingChanged.connect(self.updateButtons) self.okButton.setEnabled(self.nameBox.isValid()) self.updateButtons(self.nameBox.overwritingName()) self.lyrstable.itemValidityChanged.connect(self.okButton.setEnabled) self.okButton.setEnabled(self.lyrstable.layerNamesValid())
class PublishLayerGroupDialog(QtGui.QDialog): def __init__(self, catalog, groupname, layers, workspace=None, overwritegroup=True, overwritelayers=True, parent = None): QtGui.QDialog.__init__(self) self.catalog = catalog # GS catalog self.groupname = groupname self.layers = layers self.workspace = workspace self.overwritegrp = overwritegroup self.overwritelyrs = overwritelayers self.groupnames = [grp.name for grp in catalog.get_layergroups()] self.definedname = None self.topublish = None self.setModal(True) self.setupUi() # noinspection PyAttributeOutsideInit def setupUi(self): self.resize(600, 350) self.setWindowTitle("Publish Group") vertlayout = QtGui.QVBoxLayout(self) vertlayout.setSpacing(2) vertlayout.setMargin(6) horizlayout = QtGui.QHBoxLayout(self) # horizlayout.setSpacing(30) horizlayout.setMargin(0) self.nameLabel = QtGui.QLabel("Group name") self.nameLabel.setSizePolicy( QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Preferred)) self.nameBox = GSNameWidget( name=xmlNameFixUp(self.groupname), nameregex=xmlNameRegex(), nameregexmsg=xmlNameRegexMsg(), names=self.groupnames, unique=not self.overwritegrp) self.nameBox.setSizePolicy( QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)) horizlayout.addWidget(self.nameLabel) horizlayout.addWidget(self.nameBox) vertlayout.addLayout(horizlayout) self.lyrstable = PublishLayersDialog( {0: self.catalog}, self.layers, workspace=self.workspace, overwrite=self.overwritelyrs) self.lyrstable.buttonBox.setVisible(False) vertlayout.addWidget(self.lyrstable) self.buttonBox = QtGui.QDialogButtonBox( QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) self.okButton = self.buttonBox.button(QtGui.QDialogButtonBox.Ok) self.cancelButton = self.buttonBox.button(QtGui.QDialogButtonBox.Cancel) vertlayout.addWidget(self.buttonBox) self.setLayout(vertlayout) self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed) self.nameBox.nameValidityChanged.connect(self.okButton.setEnabled) self.nameBox.overwritingChanged.connect(self.updateButtons) self.okButton.setEnabled(self.nameBox.isValid()) self.updateButtons(self.nameBox.overwritingName()) self.lyrstable.itemValidityChanged.connect(self.okButton.setEnabled) self.okButton.setEnabled(self.lyrstable.layerNamesValid()) @QtCore.pyqtSlot(bool) def updateButtons(self, overwriting): txt = "Overwrite" if overwriting else "OK" self.okButton.setText(txt) self.okButton.setDefault(not overwriting) self.cancelButton.setDefault(overwriting) def okPressed(self): self.definedname = self.nameBox.definedName() self.topublish = self.lyrstable.layersToPublish() self.close() def cancelPressed(self): self.definedname = None self.topublish = None self.close()
class PublishLayerGroupDialog(QtGui.QDialog): def __init__( self, catalog, groupname, layers, workspace=None, overwritegroup=True, overwritelayers=True, parent=None ): QtGui.QDialog.__init__(self) self.catalog = catalog # GS catalog self.groupname = groupname self.layers = layers self.workspace = workspace self.overwritegrp = overwritegroup self.overwritelyrs = overwritelayers self.groupnames = [grp.name for grp in catalog.get_layergroups()] self.definedname = None self.topublish = None self.setModal(True) self.setupUi() # noinspection PyAttributeOutsideInit def setupUi(self): self.resize(600, 350) self.setWindowTitle("Publish Group") vertlayout = QtGui.QVBoxLayout(self) vertlayout.setSpacing(2) vertlayout.setMargin(6) horizlayout = QtGui.QHBoxLayout(self) # horizlayout.setSpacing(30) horizlayout.setMargin(0) self.nameLabel = QtGui.QLabel("Group name") self.nameLabel.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Preferred)) self.nameBox = GSNameWidget( name=xmlNameFixUp(self.groupname), nameregex=xmlNameRegex(), nameregexmsg=xmlNameRegexMsg(), names=self.groupnames, unique=not self.overwritegrp, ) self.nameBox.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)) horizlayout.addWidget(self.nameLabel) horizlayout.addWidget(self.nameBox) vertlayout.addLayout(horizlayout) self.lyrstable = PublishLayersDialog( {0: self.catalog}, self.layers, workspace=self.workspace, overwrite=self.overwritelyrs ) self.lyrstable.buttonBox.setVisible(False) vertlayout.addWidget(self.lyrstable) self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) self.okButton = self.buttonBox.button(QtGui.QDialogButtonBox.Ok) self.cancelButton = self.buttonBox.button(QtGui.QDialogButtonBox.Cancel) vertlayout.addWidget(self.buttonBox) self.setLayout(vertlayout) self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed) self.nameBox.nameValidityChanged.connect(self.okButton.setEnabled) self.nameBox.overwritingChanged.connect(self.updateButtons) self.okButton.setEnabled(self.nameBox.isValid()) self.updateButtons(self.nameBox.overwritingName()) self.lyrstable.itemValidityChanged.connect(self.okButton.setEnabled) self.okButton.setEnabled(self.lyrstable.layerNamesValid()) @QtCore.pyqtSlot(bool) def updateButtons(self, overwriting): txt = "Overwrite" if overwriting else "OK" self.okButton.setText(txt) self.okButton.setDefault(not overwriting) self.cancelButton.setDefault(overwriting) def okPressed(self): self.definedname = self.nameBox.definedName() self.topublish = self.lyrstable.layersToPublish() self.close() def cancelPressed(self): self.definedname = None self.topublish = None self.close()