diff --git a/build.py b/build.py index 24f7cc8..3cc924c 100644 --- a/build.py +++ b/build.py @@ -7,12 +7,14 @@ from pathlib import Path from fnmatch import fnmatch +from geocatbridge.utils.meta import getVersion + OUTPUT_DIRNAME = 'build' def package(): ap = argparse.ArgumentParser(description='Package GeoCat Bridge plugin') - ap.add_argument('--filename', help='ZIP file name', default='GeoCat_Bridge') + ap.add_argument('--filename', help='ZIP file name', default=f'GeoCat_Bridge_v{getVersion()}') ns = ap.parse_args() file_name = f'{ns.filename}.zip' diff --git a/geocatbridge/libs/bridgestyle b/geocatbridge/libs/bridgestyle index def2a3d..3e96c6e 160000 --- a/geocatbridge/libs/bridgestyle +++ b/geocatbridge/libs/bridgestyle @@ -1 +1 @@ -Subproject commit def2a3d09e246b7120e4db94b82d791d4583aa21 +Subproject commit 3e96c6e28f6e3d6bd939c45ba83a48938535af8c diff --git a/geocatbridge/ui/publishwidget.py b/geocatbridge/ui/publishwidget.py index c6e8e94..18f667f 100644 --- a/geocatbridge/ui/publishwidget.py +++ b/geocatbridge/ui/publishwidget.py @@ -17,6 +17,7 @@ QWidget, QHBoxLayout, QCheckBox, + QListWidget, QListWidgetItem, QTableWidgetItem, QFileDialog @@ -92,7 +93,6 @@ def _setupUi(self): self.listLayers.setContextMenuPolicy(Qt.CustomContextMenu) self.listLayers.customContextMenuRequested.connect(self.showContextMenu) self.listLayers.currentRowChanged.connect(self.currentRowChanged) - self.listLayers.itemClicked.connect(self.rowClicked) self.comboGeodataServer.currentIndexChanged.connect(self.geodataServerChanged) self.comboMetadataServer.currentIndexChanged.connect(self.metadataServerChanged) self.txtExportFolder.textChanged.connect(self.exportFolderChanged) @@ -250,10 +250,6 @@ def toggleLayers(self, state: bool): item = self.listLayers.item(i) self.listLayers.itemWidget(item).setCheckbox(state) - def rowClicked(self, item: QListWidgetItem): - """ Called whenever the user clicks on a layer item. """ - self.listLayers.itemWidget(item).toggleCheckbox() - def currentRowChanged(self, current_row: int): """ Called whenever the user selects another layer item. """ if self.currentRow == current_row: @@ -361,7 +357,7 @@ def populateLayers(self): self.updateOnlineLayersPublicationStatus() def addLayerListItem(self, layer): - widget = LayerItemWidget(layer) + widget = LayerItemWidget(layer, self.listLayers) item = QListWidgetItem(self.listLayers) item.setSizeHint(widget.sizeHint()) self.listLayers.addItem(item) @@ -854,11 +850,14 @@ def getPublishTask(self, parent: QWidget, to_publish: List[str]): class LayerItemWidget(QWidget): - def __init__(self, layer: BridgeLayer): + def __init__(self, layer: BridgeLayer, list_widget: QListWidget = None): super(LayerItemWidget, self).__init__() # noqa + self._list_widget = list_widget + self._position = list_widget.count() if list_widget else 0 self._name = layer.name() self._id = layer.id() self._checkbox = QCheckBox(self._name, self) + self._checkbox.clicked.connect(self._checkbox_clicked) if layer.is_vector: self._checkbox.setIcon(QgsApplication.getThemeIcon('mIconVector.svg')) elif layer.is_raster: @@ -915,6 +914,10 @@ def setDataPublished(self, server): self._datalabel.setToolTip('') self.update() + def _checkbox_clicked(self, *args): + if isinstance(self._list_widget, QListWidget): + self._list_widget.item(self._position).setSelected(True) + @property def checked(self) -> bool: """ Returns True if the list widget item checkbox is in a checked state. """ @@ -922,6 +925,3 @@ def checked(self) -> bool: def setCheckbox(self, state: bool): self._checkbox.setCheckState(Qt.Checked if state else Qt.Unchecked) - - def toggleCheckbox(self): - self._checkbox.toggle()