Skip to content

Commit a4aa339

Browse files
author
Axel Hörteborn
committed
Major update to fix qt5/qt6 issues
1 parent 67462ff commit a4aa339

25 files changed

Lines changed: 1696 additions & 2271 deletions

GeoDataFarm.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
from .import_data.convert_harvest_to_area import ConvertToAreas
6969
from .import_data.satellite_data import SatelliteData
7070
from .support_scripts.__init__ import isint, TR
71+
from .support_scripts.qt_data import _check_state, _item_flag
7172
from .support_scripts.add_field import AddField
7273
from .support_scripts.add_layer_to_canvas import AddLayerToCanvas
7374
from .support_scripts.create_layer import CreateLayer
@@ -426,8 +427,8 @@ def add_crop(self: Self) -> None:
426427
return
427428
_name = QApplication.translate("qadashboard", crop_name, None)
428429
item = QListWidgetItem(_name, self.dock_widget.LWCrops)
429-
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
430-
item.setCheckState(QtCore.Qt.Unchecked)
430+
item.setFlags(item.flags() | _item_flag('ItemIsUserCheckable'))
431+
item.setCheckState(_check_state('Unchecked'))
431432
self.populate.reload_crops()
432433

433434
def remove_crop_name(self: Self) -> None:

GeoDataFarm_dockwidget_base.ui

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3992,7 +3992,14 @@ If you are missing a report / something in a report please send a e-mail to geod
39923992
<item>
39933993
<widget class="QLabel" name="labelRecipeIntro">
39943994
<property name="text">
3995-
<string>Welcome to GeoDataFarm Taskdata file generator</string>
3995+
<string>Welcome to the GeoDataFarm ISOXML Taskdata Generator!
3996+
3997+
This tool helps you create ISOXML taskdata files for precision agriculture equipment. You can create recipes to define your task structure, then generate taskdata files ready for use with compatible farm machinery.
3998+
3999+
Note: This feature is experimental. If you encounter any issues or have suggestions for improvements, please send an email to geodatafarm@gmail.com</string>
4000+
</property>
4001+
<property name="wordWrap">
4002+
<bool>true</bool>
39964003
</property>
39974004
</widget>
39984005
</item>

database_scripts/mean_analyse.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
QRadioButton, QCheckBox, QGroupBox, QComboBox, QVBoxLayout)
1717
from ..widgets.run_analyse import RunAnalyseDialog
1818
from ..support_scripts.__init__ import isfloat, isint, TR
19+
from ..support_scripts.qt_data import _check_state, _item_data_role, _item_flag
1920
from ..support_scripts.add_field import AddField
2021

2122
__author__ = 'Axel Horteborn'
@@ -307,8 +308,8 @@ def _set_checkbox_layout(self, qbox, analyse_params, col, nbr):
307308
item = QStandardItem(name)
308309
name_text += name + ' '
309310
item.setFlags(
310-
Qt.ItemFlag.ItemIsUserCheckable | Qt.ItemFlag.ItemIsEnabled)
311-
item.setData(Qt.CheckState.Checked, Qt.ItemDataRole.CheckStateRole)
311+
_item_flag('ItemIsUserCheckable') | _item_flag('ItemIsEnabled'))
312+
item.setData(_check_state('Checked'), _item_data_role('CheckStateRole'))
312313
self.layout_dict[col]['checked'].append(name)
313314
self.layout_dict[col]['checked_items'].append(item)
314315
model.setItem(i + 1, 0, item)
@@ -406,8 +407,8 @@ def _update_layout(self, analyse_params, col):
406407
item = QStandardItem(name)
407408
name_text += name + ' '
408409
item.setFlags(
409-
Qt.ItemFlag.ItemIsUserCheckable | Qt.ItemFlag.ItemIsEnabled)
410-
item.setData(Qt.CheckState.Checked, Qt.ItemDataRole.CheckStateRole)
410+
_item_flag('ItemIsUserCheckable') | _item_flag('ItemIsEnabled'))
411+
item.setData(_check_state('Checked'), _item_data_role('CheckStateRole'))
411412
self.layout_dict[col]['checked'].append(name)
412413
self.layout_dict[col]['checked_items'].append(item)
413414
model.setItem(i, 0, item)

database_scripts/table_managment.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
try:
77
from widgets.table_managment_dialog import TableMgmtDialog
88
from support_scripts.__init__ import TR
9+
from support_scripts.qt_data import _check_state, _item_flag, _match_flag
910
except ModuleNotFoundError:
1011
from ..widgets.table_managment_dialog import TableMgmtDialog
1112
from ..support_scripts.__init__ import TR
13+
from ..support_scripts.qt_data import _check_state, _item_flag, _match_flag
1214
__author__ = 'Axel Horteborn'
1315

1416

@@ -140,13 +142,13 @@ def retrieve_params(self):
140142
item_name = str(param_name)
141143
testcase_name = QCoreApplication.translate("qadashboard", item_name, None)
142144
item = QListWidgetItem(testcase_name, self.TMD.SAParams)
143-
item.setFlags(item.flags() | Qt.ItemFlag.ItemIsUserCheckable)
145+
item.setFlags(item.flags() | _item_flag('ItemIsUserCheckable'))
144146
if param_name in checked_params:
145-
item.setCheckState(Qt.CheckState.Checked)
147+
item.setCheckState(_check_state('Checked'))
146148
else:
147-
item.setCheckState(Qt.CheckState.Unchecked)
149+
item.setCheckState(_check_state('Unchecked'))
148150
self.params_in_list += 1
149-
self.params_in_table = self.TMD.SAParams.findItems('', Qt.MatchFlag.MatchContains)
151+
self.params_in_table = self.TMD.SAParams.findItems('', _match_flag('MatchContains'))
150152

151153
def save_table(self):
152154
"""Updates the attribute indexes that are checked in the list widget"""
@@ -234,10 +236,10 @@ def update_table_list(self: Self) -> None:
234236
item_name = schema + '.' + str(name)
235237
testcase_name = QCoreApplication.translate("qadashboard", item_name, None)
236238
item = QListWidgetItem(testcase_name, self.TMD.SATables)
237-
item.setFlags(item.flags() | Qt.ItemFlag.ItemIsUserCheckable)
238-
item.setCheckState(Qt.CheckState.Unchecked)
239+
item.setFlags(item.flags() | _item_flag('ItemIsUserCheckable'))
240+
item.setCheckState(_check_state('Unchecked'))
239241
self.tables_in_db += 1
240-
self.items_in_table = self.TMD.SATables.findItems('', Qt.MatchFlag.MatchContains)
242+
self.items_in_table = self.TMD.SATables.findItems('', _match_flag('MatchContains'))
241243

242244
def remove_table_from_db(self: Self) -> None:
243245
"""Removes the selected tables from the database"""
@@ -258,7 +260,7 @@ def remove_table_from_db(self: Self) -> None:
258260
qIndex = self.TMD.SATables.indexFromItem(item)
259261
model.removeRow(qIndex.row())
260262
self.tables_in_db -= 1
261-
self.items_in_table = self.TMD.SATables.findItems('', Qt.MatchFlag.MatchContains)
263+
self.items_in_table = self.TMD.SATables.findItems('', _match_flag('MatchContains'))
262264

263265
def make_rows(self: Self) -> None:
264266
suc, s_table = self.check_multiple()

import_data/convert_harvest_to_area.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from ..support_scripts.radio_box import RadioComboBox
1212
from ..support_scripts.create_layer import CreateLayer
1313
from ..support_scripts import (TR, check_text, isfloat, isint, error_in_sign)
14+
from ..support_scripts.qt_data import _check_state, _enum_select_rows, _item_flag
1415
from ..import_data.insert_manual_from_file import ManualFromFile
1516
__author__ = 'Axel Horteborn'
1617

@@ -148,21 +149,21 @@ def set_column_list(self):
148149
self.combo = []
149150
self.IIHD.TWColumnNames.setRowCount(len(heading_row))
150151
self.IIHD.TWColumnNames.setColumnCount(3)
151-
self.IIHD.TWColumnNames.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
152+
self.IIHD.TWColumnNames.setSelectionBehavior(_enum_select_rows())
152153
for i, row in enumerate(heading_row):
153154
item1 = QTableWidgetItem(row)
154-
item1.setFlags(xor(item1.flags(), Qt.ItemFlag.ItemIsEditable))
155+
item1.setFlags(xor(item1.flags(), _item_flag('ItemIsEditable')))
155156
item2 = QTableWidgetItem(second_row[i])
156-
item2.setFlags(xor(item2.flags(), Qt.ItemFlag.ItemIsEditable))
157+
item2.setFlags(xor(item2.flags(), _item_flag('ItemIsEditable')))
157158
self.combo.append(RadioComboBox())
158159
for nr, t in enumerate(combo_box_options):
159160
self.combo[i].addItem(t)
160161
item = self.combo[i].model().item(nr, 0)
161162
if self.col_types[i] == nr:
162-
item.setCheckState(Qt.CheckState.Checked)
163+
item.setCheckState(_check_state('Checked'))
163164
self.combo[i].setCurrentIndex(nr)
164165
else:
165-
item.setCheckState(Qt.CheckState.Unchecked)
166+
item.setCheckState(_check_state('Unchecked'))
166167
self.combo[i].currentTextChanged.connect(self.change_col_type)
167168
self.IIHD.TWColumnNames.setItem(i, 0, item1)
168169
self.IIHD.TWColumnNames.setItem(i, 1, item2)

import_data/handle_db_file_data.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from collections import OrderedDict
88
# Import the code for the dialog
99
from ..widgets.import_db_file_dialog import ImportDBFileDialog
10+
from ..support_scripts.qt_data import _enum_select_rows, _item_flag
1011
__author__ = 'Axel Horteborn'
1112

1213

@@ -78,7 +79,7 @@ def _change_example(self, mi):
7879
self.IDB.TWExamples.setRowCount(10)
7980
self.IDB.TWExamples.setColumnCount(len(colums))
8081
self.IDB.TWExamples.setSelectionBehavior(
81-
QAbstractItemView.SelectionBehavior.SelectRows)
82+
_enum_select_rows())
8283
self.IDB.TWExamples.setHorizontalHeaderLabels([str(x) for x in colums])
8384
for i, row in enumerate(data_example):
8485
for j, col in enumerate(row):
@@ -89,10 +90,10 @@ def fill_first_tlb(self):
8990
self.IDB.TWTableNames.setRowCount(len(self.tbl_names))
9091
self.IDB.TWTableNames.setColumnCount(1)
9192
self.IDB.TWTableNames.setSelectionBehavior(
92-
QAbstractItemView.SelectionBehavior.SelectRows)
93+
_enum_select_rows())
9394
for i, row in enumerate(self.tbl_names):
9495
item1 = QTableWidgetItem(row)
95-
item1.setFlags(xor(item1.flags(), Qt.ItemFlag.ItemIsEditable))
96+
item1.setFlags(xor(item1.flags(), _item_flag('ItemIsEditable')))
9697
self.IDB.TWTableNames.setItem(i, 0, item1)
9798
#self.combo[i].view().pressed.connect(self.change_col_type)
9899
self.IDB.TWTableNames.itemDoubleClicked.connect(self._change_example)
@@ -105,7 +106,7 @@ def _selected_main(self, mi):
105106
self.IDB.TWFinalExample.setRowCount(len(data_example) + 3)
106107
self.IDB.TWFinalExample.setColumnCount(len(colums))
107108
self.IDB.TWFinalExample.setSelectionBehavior(
108-
QAbstractItemView.SelectionBehavior.SelectRows)
109+
_enum_select_rows())
109110
self.IDB.TWFinalExample.setHorizontalHeaderLabels([str(x) for x in colums])
110111
other_tbls = self.tbl_names
111112
other_tbls.remove(self.tbl_names[tbl])

import_data/handle_input_shp_data.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from ..widgets.import_shp_dialog import ImportShpDialog
1212
from ..support_scripts.create_layer import CreateLayer
1313
from ..support_scripts.__init__ import check_text, check_date_format, TR
14+
from ..support_scripts.qt_data import _enum_select_rows, _item_flag
1415
from ..import_data.insert_manual_from_file import ManualFromFile
1516
q_info = QMessageBox.information
1617

@@ -115,12 +116,12 @@ def get_columns_names(self):
115116
self.ISD.TWColumnNames.setRowCount(len(self.col_names))
116117
self.ISD.TWColumnNames.setColumnCount(2)
117118
self.ISD.TWColumnNames.setSelectionBehavior(
118-
QAbstractItemView.SelectionBehavior.SelectRows)
119+
_enum_select_rows())
119120
for i, row in enumerate(self.col_names):
120121
item1 = QTableWidgetItem(row)
121-
item1.setFlags(xor(item1.flags(), Qt.ItemFlag.ItemIsEditable))
122+
item1.setFlags(xor(item1.flags(), _item_flag('ItemIsEditable')))
122123
item2 = QTableWidgetItem(str(second_row[i]))
123-
item2.setFlags(xor(item2.flags(), Qt.ItemFlag.ItemIsEditable))
124+
item2.setFlags(xor(item2.flags(), _item_flag('ItemIsEditable')))
124125
self.ISD.TWColumnNames.setItem(i, 0, item1)
125126
self.ISD.TWColumnNames.setItem(i, 1, item2)
126127
self.column_count = i
@@ -144,7 +145,7 @@ def add_to_param_list(self):
144145
row_count += 1
145146
self.ISD.TWtoParam.setRowCount(row_count)
146147
item1 = QTableWidgetItem(item)
147-
item1.setFlags(xor(item1.flags(), Qt.ItemFlag.ItemIsEditable))
148+
item1.setFlags(xor(item1.flags(), _item_flag('ItemIsEditable')))
148149
self.ISD.TWtoParam.setItem(i, 0, item1)
149150
self.param_row_count = row_count
150151
self.ISD.pButContinue.setEnabled(True)

import_data/handle_iso11783.py

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
from ..database_scripts.db import DB
1212
from ..import_data.handle_text_data import create_table, create_polygons
1313
from ..support_scripts.__init__ import (TR, check_text)
14+
from ..support_scripts.qt_data import (_check_state, _enum_select_rows, _file_dialog_option,
15+
_header_view_resize_mode, _item_flag)
1416
from ..support_scripts.create_layer import CreateLayer, add_background
1517
from ..support_scripts.radio_box import RadioComboBox
1618
from ..support_scripts.pyagriculture.agriculture import PyAgriculture
@@ -102,7 +104,7 @@ def open_input_folder(self: Self, path=False) -> None:
102104
pass
103105
else:
104106
path = QFileDialog.getExistingDirectory(None, self.tr("Open a folder"), '',
105-
QFileDialog.ShowDirsOnly)
107+
_file_dialog_option('ShowDirsOnly'))
106108
if path != '':
107109
self.initiate_pyAgriculture(path)
108110
self.populate_first_table()
@@ -169,16 +171,16 @@ def populate_first_table(self: Self) -> None:
169171
self.IXB.TWISODataAll.setRowCount(len(task_names))
170172
self.IXB.TWISODataAll.setColumnCount(3)
171173
self.IXB.TWISODataAll.setHorizontalHeaderLabels([self.tr('Get more info'), self.tr('Task name'), self.tr('File name')])
172-
self.IXB.TWISODataAll.setSelectionBehavior(QAbstractItemView.SelectRows)
174+
self.IXB.TWISODataAll.setSelectionBehavior(_enum_select_rows())
173175
for i, row in enumerate(task_names):
174176
item1 = QTableWidgetItem('Include')
175-
item1.setFlags(Qt.ItemFlag.ItemIsUserCheckable | Qt.ItemFlag.ItemIsEnabled)
176-
item1.setCheckState(Qt.CheckState.Unchecked)
177+
item1.setFlags(_item_flag('ItemIsUserCheckable') | _item_flag('ItemIsEnabled'))
178+
item1.setCheckState(_check_state('Unchecked'))
177179
self.checkboxes1.append([item1, row, file_names[i]])
178180
item2 = QTableWidgetItem(row)
179-
item2.setFlags(xor(item2.flags(), Qt.ItemFlag.ItemIsEditable))
181+
item2.setFlags(xor(item2.flags(), _item_flag('ItemIsEditable')))
180182
item3 = QTableWidgetItem(file_names[i])
181-
item3.setFlags(xor(item3.flags(), Qt.ItemFlag.ItemIsEditable))
183+
item3.setFlags(xor(item3.flags(), _item_flag('ItemIsEditable')))
182184
self.IXB.TWISODataAll.setItem(i, 0, item1)
183185
self.IXB.TWISODataAll.setItem(i, 1, item2)
184186
self.IXB.TWISODataAll.setItem(i, 2, item3)
@@ -237,22 +239,22 @@ def populate2(self: Self, res: str="", values: str="") -> None:
237239
self.IXB.TWISODataSelect.setHorizontalHeaderLabels([self.tr('To include'), self.tr('Date'), self.tr('Field'),
238240
self.tr('Crops')])
239241
header = self.IXB.TWISODataSelect.horizontalHeader()
240-
header.setSectionResizeMode(0, QHeaderView.ResizeToContents)
241-
header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
242-
header.setSectionResizeMode(2, QHeaderView.Stretch)
243-
header.setSectionResizeMode(3, QHeaderView.ResizeToContents)
244-
self.IXB.TWISODataSelect.setSelectionBehavior(QAbstractItemView.SelectRows)
242+
header.setSectionResizeMode(0, _header_view_resize_mode('ResizeToContents'))
243+
header.setSectionResizeMode(1, _header_view_resize_mode('ResizeToContents'))
244+
header.setSectionResizeMode(2, _header_view_resize_mode('Stretch'))
245+
header.setSectionResizeMode(3, _header_view_resize_mode('ResizeToContents'))
246+
self.IXB.TWISODataSelect.setSelectionBehavior(_enum_select_rows())
245247
j = -1 # How may checkboxes that is added
246248
for i, row in enumerate(task_names.values()):
247249
if len(row) == 0:
248250
continue
249251
j += 1
250252
item1 = QTableWidgetItem('Include')
251-
item1.setFlags(Qt.ItemFlag.ItemIsUserCheckable | Qt.ItemFlag.ItemIsEnabled)
252-
item1.setCheckState(Qt.CheckState.Checked)
253+
item1.setFlags(_item_flag('ItemIsUserCheckable') | _item_flag('ItemIsEnabled'))
254+
item1.setCheckState(_check_state('Checked'))
253255
self.checkboxes2.append([j, j, item1])
254256
item2 = QTableWidgetItem(row[0][1])
255-
item2.setFlags(Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsEditable)
257+
item2.setFlags(_item_flag('ItemIsSelectable') | _item_flag('ItemIsEnabled') | _item_flag('ItemIsEditable'))
256258
field_column = RadioComboBox()
257259
self.combo.append(field_column)
258260
for field, _ in row:
@@ -291,7 +293,7 @@ def add_to_param_list(self: Self) -> None:
291293
for i, item in enumerate(items_to_add):
292294
self.IXB.TWtoParam.setRowCount(rows_in_table + i + 1)
293295
item1 = QTableWidgetItem(item)
294-
item1.setFlags(xor(item1.flags(), Qt.ItemFlag.ItemIsEditable))
296+
item1.setFlags(xor(item1.flags(), _item_flag('ItemIsEditable')))
295297
self.IXB.TWtoParam.setItem(i + rows_in_table, 0, item1)
296298
self.IXB.PBInsert.setEnabled(True)
297299

@@ -336,11 +338,11 @@ def set_column_list(self: Self) -> None:
336338
# Populate the table with data
337339
self.IXB.TWColumnNames.setRowCount(len(valid_columns))
338340
self.unit_boxes = {}
339-
self.IXB.TWColumnNames.setSelectionBehavior(QAbstractItemView.SelectRows)
341+
self.IXB.TWColumnNames.setSelectionBehavior(_enum_select_rows())
340342

341343
for i, row in enumerate(valid_columns):
342344
item1 = QTableWidgetItem(row)
343-
item1.setFlags(xor(item1.flags(), Qt.ItemFlag.ItemIsEditable))
345+
item1.setFlags(xor(item1.flags(), _item_flag('ItemIsEditable')))
344346
self.IXB.TWColumnNames.setItem(i, 0, item1)
345347

346348
try:

0 commit comments

Comments
 (0)