Skip to content

Qt6 (QGIS 4) compatibility #1036

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions QgisModelBaker/gui/basket_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def _add_basket(self):
self, self.db_connector, self.datasetname
)
if create_basket_dialog.baskets_can_be_created():
create_basket_dialog.exec_()
create_basket_dialog.exec()

# Refresh existing baskets in basket manager after creation
self._refresh_baskets()
Expand All @@ -105,7 +105,7 @@ def _add_basket(self):
f"The dataset '{self.datasetname}' already contains one basket for each topic.\n\n"
f"No additional baskets can be created."
),
QMessageBox.Close,
QMessageBox.StandardButton.Close,
)

def _edit_basket(self) -> None:
Expand All @@ -114,7 +114,7 @@ def _edit_basket(self) -> None:
edit_basket_dialog = EditBasketDialog(
self, self.db_connector, selected_basket_settings
)
edit_basket_dialog.exec_()
edit_basket_dialog.exec()

# Refresh existing baskets in basket manager after edition
self._refresh_baskets()
Expand All @@ -128,7 +128,7 @@ def _delete_basket(self) -> None:
self.tr(
"Delete baskets is only available for database schemas created with --createBasketCol parameter."
),
QMessageBox.Close,
QMessageBox.StandardButton.Close,
)
return

Expand All @@ -139,9 +139,9 @@ def _delete_basket(self) -> None:
self.tr(
"Deleting a Basket will also delete all the data it contains. This operation cannot be reverted.\n\nAre you sure you want to proceed?"
),
QMessageBox.No | QMessageBox.Yes,
QMessageBox.StandardButton.No | QMessageBox.StandardButton.Yes,
)
== QMessageBox.Yes
== QMessageBox.StandardButton.Yes
):
basket_config = self.baskets_panel.selected_basket_settings()
res, msg = self._do_delete_basket(basket_config)
Expand All @@ -155,11 +155,11 @@ def _delete_basket(self) -> None:

warning_box = QMessageBox(self)
warning_box.setIcon(
QMessageBox.Information if res else QMessageBox.Warning
QMessageBox.Icon.Information if res else QMessageBox.Icon.Warning
)
warning_box.setWindowTitle(self.tr("Delete Basket"))
warning_box.setText(msg)
warning_box.exec_()
warning_box.exec()

def _refresh_map_layers(self):
# Refresh layer data sources and also their symbology (including feature count)
Expand Down Expand Up @@ -224,4 +224,6 @@ def _do_delete_basket(self, basket_config):
return res, msg

def _log_on_delete_dataset_error(self, log):
QgsMessageLog.logMessage(log, self.tr("Delete dataset from DB"), Qgis.Critical)
QgsMessageLog.logMessage(
log, self.tr("Delete dataset from DB"), Qgis.MessageLevel.Critical
)
4 changes: 2 additions & 2 deletions QgisModelBaker/gui/create_baskets.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def _accepted(self):
]
if negative_feedbacks:
warning_box = QMessageBox(self)
warning_box.setIcon(QMessageBox.Critical)
warning_box.setIcon(QMessageBox.Icon.Critical)
warning_title = self.tr("Creating baskets failed")
warning_box.setWindowTitle(warning_title)
warning_box.setText(
Expand All @@ -65,7 +65,7 @@ def _accepted(self):
"\n(The problem is often an incorrectly formatted BID)",
)
)
warning_box.exec_()
warning_box.exec()
self.close()

def _rejected(self):
Expand Down
6 changes: 5 additions & 1 deletion QgisModelBaker/gui/custom_model_dir.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,11 @@ def browse_dir(self):
)

def set_flags(self, item):
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEditable | Qt.ItemIsEnabled)
item.setFlags(
Qt.ItemFlag.ItemIsSelectable
| Qt.ItemFlag.ItemIsEditable
| Qt.ItemFlag.ItemIsEnabled
)

def on_selection_changed(self):
enable = len(self.model_dir_list.selectedItems()) == 1
Expand Down
40 changes: 22 additions & 18 deletions QgisModelBaker/gui/dataset_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,20 @@ def __init__(self, iface, parent=None, wizard_embedded=False):
self.setupUi(self)
self.buttonBox.accepted.connect(self._accepted)
self.bar = QgsMessageBar()
self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding)
self.info_layout.addWidget(self.bar, 0, Qt.AlignTop)
self.bar.setSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.info_layout.addWidget(self.bar, 0, Qt.AlignmentFlag.AlignTop)

self.db_simple_factory = DbSimpleFactory()

self.dataset_model = DatasetModel()
self.dataset_tableview.horizontalHeader().setSectionResizeMode(
QHeaderView.Stretch
QHeaderView.ResizeMode.Stretch
)
self.dataset_tableview.horizontalHeader().hide()
self.dataset_tableview.verticalHeader().hide()
self.dataset_tableview.setSelectionMode(QTableView.SingleSelection)
self.dataset_tableview.setSelectionMode(
QTableView.SelectionMode.SingleSelection
)
self.dataset_tableview.setModel(self.dataset_model)

self.add_button.clicked.connect(self._add_dataset)
Expand Down Expand Up @@ -92,22 +94,22 @@ def __init__(self, iface, parent=None, wizard_embedded=False):
def _close_editing(self):
editable_layers = []
for layer in QgsProject.instance().mapLayers().values():
if layer.type() == QgsMapLayer.VectorLayer:
if layer.type() == QgsMapLayer.LayerType.VectorLayer:
self.iface.vectorLayerTools().stopEditing(layer)
if layer.isEditable():
editable_layers.append(layer)
if editable_layers:
# in case it could not close it automatically
warning_box = QMessageBox(self)
warning_box.setIcon(QMessageBox.Warning)
warning_box.setIcon(QMessageBox.Icon.Warning)
warning_title = self.tr("Layers still editable")
warning_box.setWindowTitle(warning_title)
warning_box.setText(
self.tr(
"You still have layers in edit mode.\nIn case you modify datasets on the database of those layers, it could lead to database locks.\nEditable layers are:\n - {}"
).format("\n - ".join([layer.name() for layer in editable_layers]))
)
warning_box.exec_()
warning_box.exec()

def _valid_selection(self):
"""
Expand Down Expand Up @@ -142,7 +144,7 @@ def _add_dataset(self):
db_connector = db_utils.get_db_connector(self.configuration)
if db_connector and db_connector.get_basket_handling():
edit_dataset_dialog = EditDatasetDialog(self, db_connector)
edit_dataset_dialog.exec_()
edit_dataset_dialog.exec()
self._refresh_datasets()
self._jump_to_entry(edit_dataset_dialog.dataset_line_edit.text())

Expand All @@ -159,7 +161,7 @@ def _edit_dataset(self):
),
)
edit_dataset_dialog = EditDatasetDialog(self, db_connector, dataset)
edit_dataset_dialog.exec_()
edit_dataset_dialog.exec()
self._refresh_datasets()
self._jump_to_entry(edit_dataset_dialog.dataset_line_edit.text())

Expand All @@ -173,7 +175,7 @@ def _delete_dataset(self):
self.tr(
"Delete datasets is only available for database schemas created with --createBasketCol parameter."
),
QMessageBox.Close,
QMessageBox.StandardButton.Close,
)
return

Expand All @@ -184,9 +186,9 @@ def _delete_dataset(self):
self.tr(
"Deleting a Dataset will also delete children baskets and all the data they contain. This operation cannot be reverted.\n\nAre you sure you want to proceed?"
),
QMessageBox.No | QMessageBox.Yes,
QMessageBox.StandardButton.No | QMessageBox.StandardButton.Yes,
)
== QMessageBox.Yes
== QMessageBox.StandardButton.Yes
):
dataset = self.dataset_tableview.selectedIndexes()[0].data(
int(DatasetModel.Roles.DATASETNAME)
Expand All @@ -203,14 +205,16 @@ def _delete_dataset(self):

warning_box = QMessageBox(self)
warning_box.setIcon(
QMessageBox.Information if res else QMessageBox.Warning
QMessageBox.Icon.Information if res else QMessageBox.Icon.Warning
)
warning_box.setWindowTitle(self.tr("Delete Dataset"))
warning_box.setText(msg)
warning_box.exec_()
warning_box.exec()

def _log_on_delete_dataset_error(self, log):
QgsMessageLog.logMessage(log, self.tr("Delete dataset from DB"), Qgis.Critical)
QgsMessageLog.logMessage(
log, self.tr("Delete dataset from DB"), Qgis.MessageLevel.Critical
)

def _refresh_map_layers(self):
# Refresh layer data sources and also their symbology (including feature count)
Expand All @@ -230,15 +234,15 @@ def _open_basket_manager(self):
basket_manager_dialog = BasketManagerDialog(
self.iface, self, db_connector, datasetname, self.configuration
)
basket_manager_dialog.exec_()
basket_manager_dialog.exec()

def _jump_to_entry(self, datasetname):
matches = self.dataset_model.match(
self.dataset_model.index(0, 0),
Qt.DisplayRole,
Qt.ItemDataRole.DisplayRole,
datasetname,
1,
Qt.MatchExactly,
Qt.MatchFlag.MatchExactly,
)
if matches:
self.dataset_tableview.setCurrentIndex(matches[0])
Expand Down
3 changes: 1 addition & 2 deletions QgisModelBaker/gui/drop_message.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,8 @@
"""
import os

from PyQt5.QtCore import QSize
from qgis.gui import QgsGui
from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtCore import QSettings, QSize
from qgis.PyQt.QtWidgets import QDialog

from QgisModelBaker.utils import gui_utils
Expand Down
12 changes: 8 additions & 4 deletions QgisModelBaker/gui/edit_basket.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@
* *
***************************************************************************/
"""
from PyQt5.QtWidgets import QMessageBox
from qgis.PyQt.QtCore import Qt
from qgis.PyQt.QtWidgets import QDialog, QWidget
from qgis.PyQt.QtWidgets import QDialog, QMessageBox, QWidget

from QgisModelBaker.libs.modelbaker.dbconnector.db_connector import DBConnector
from QgisModelBaker.utils import gui_utils
Expand Down Expand Up @@ -49,7 +48,9 @@ def __init__(
if not dataset_data["enabled"]:
model = self.cboDatasets.model()
item = model.item(self.cboDatasets.count() - 1)
item.setFlags(item.flags() & ~Qt.ItemIsEnabled) # Disable mirror item
item.setFlags(
item.flags() & ~Qt.ItemFlag.ItemIsEnabled
) # Disable mirror item

# Select the current basket's dataset
self.cboDatasets.setCurrentIndex(
Expand Down Expand Up @@ -99,5 +100,8 @@ def _save_edited_basket(self) -> None:
res, msg = self.db_connector.edit_basket(basket_config)
if not res:
QMessageBox.warning(
self, self.tr("Edit Basket Failed"), msg, QMessageBox.Close
self,
self.tr("Edit Basket Failed"),
msg,
QMessageBox.StandardButton.Close,
)
4 changes: 3 additions & 1 deletion QgisModelBaker/gui/edit_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,6 @@ def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.setupUi(self)
QgsGui.instance().enableAutoGeometryRestore(self)
self.button_box.button(QDialogButtonBox.Ok).setText(self.tr("Run"))
self.button_box.button(QDialogButtonBox.StandardButton.Ok).setText(
self.tr("Run")
)
4 changes: 2 additions & 2 deletions QgisModelBaker/gui/edit_dataset_name.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ def accepted(self):
status, message = self.database_command(new_dataset_name)
if not status:
warning_box = QMessageBox(self)
warning_box.setIcon(QMessageBox.Critical)
warning_box.setIcon(QMessageBox.Icon.Critical)
warning_title = (
self.tr("Rename Dataset") if self.tid else self.tr("Create Dataset")
)
warning_box.setWindowTitle(warning_title)
warning_box.setText(message)
warning_box.exec_()
warning_box.exec()
self.close()

def database_command(self, new_dataset_name):
Expand Down
6 changes: 3 additions & 3 deletions QgisModelBaker/gui/ili2db_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,8 @@ def __init__(self, parent=None, remove_create_tid_group=True):
)

self.bar = QgsMessageBar()
self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
self.layout().addWidget(self.bar, 0, 0, Qt.AlignTop)
self.bar.setSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.layout().addWidget(self.bar, 0, 0, Qt.AlignmentFlag.AlignTop)

def accepted(self):
"""Save settings before accepting the dialog"""
Expand All @@ -168,7 +168,7 @@ def accepted(self):
]:
if (
line_edit.validator().validate(line_edit.text().strip(), 0)[0]
!= QValidator.Acceptable
!= QValidator.State.Acceptable
):
self.bar.pushWarning(
self.tr("Warning"),
Expand Down
2 changes: 1 addition & 1 deletion QgisModelBaker/gui/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ def accepted(self):

def show_custom_model_dir(self):
dlg = CustomModelDirDialog(self.custom_model_directories_line_edit.text(), self)
dlg.exec_()
dlg.exec()

def help_requested(self):
os_language = QLocale(QSettings().value("locale/userLocale")).name()[:2]
Expand Down
Loading