Skip to content
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
16 changes: 13 additions & 3 deletions DesignSPHysics.FCMacro
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,17 @@ import sys
import os

""" Disables some types of FreeCAD warnings """
from PySide2.QtCore import qInstallMessageHandler, QtMsgType
try:
from PySide6.QtCore import qInstallMessageHandler
except ImportError:
from PySide2.QtCore import qInstallMessageHandler

def customMessageHandler(type, context, message):
if "QWindowsWindow::setMouseGrabEnabled" not in message:
ignored_messages = (
"QWindowsWindow::setMouseGrabEnabled",
"QWindowsWindow::setGeometry: Unable to set geometry"
)
if not any(m in message for m in ignored_messages):
print(message)
qInstallMessageHandler(customMessageHandler)
os.environ["QT_LOGGING_RULES"] = "*.debug=false;*.warning=false"
Expand All @@ -20,7 +28,9 @@ os.environ["QT_LOGGING_RULES"] = "*.debug=false;*.warning=false"
import logging
class IgnoreMouseGrabWarning(logging.Filter):
def filter(self, record):
return "QWindowsWindow::setMouseGrabEnabled" not in record.getMessage()
msg = record.getMessage()
return "QWindowsWindow::setMouseGrabEnabled" not in msg and \
"QWindowsWindow::setGeometry: Unable to set geometry" not in msg
logger = logging.getLogger()
logger.addFilter(IgnoreMouseGrabWarning)
# --------------------
Expand Down
2 changes: 1 addition & 1 deletion mod/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

import FreeCADGui

from PySide2 import QtCore, QtWidgets
from mod.tools.qt_compat import QtCore, QtWidgets

from mod.constants import APP_NAME, VERSION, REVISION, DEFAULT_WORKBENCH, GITHUB_MASTER_CONSTANTS_URL, \
DAMPING_GROUP_NAME, SIMULATION_DOMAIN_NAME
Expand Down
4 changes: 2 additions & 2 deletions mod/tools/dialog_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"""DesignSPHysics Dialog Tools.
Contains general use standard dialogs. """
from PySide2.QtWidgets import QDialog
from mod.tools.qt_compat import QDialog

from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets

from mod.tools.translation_tools import __

Expand Down
2 changes: 1 addition & 1 deletion mod/tools/executable_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import json

# from PySide2import QtCore
from PySide2 import QtCore
from mod.tools.qt_compat import QtCore

import FreeCADGui

Expand Down
2 changes: 1 addition & 1 deletion mod/tools/freecad_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import Draft
import Part

from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets

from mod.dataobjects.gauges.flow_gauge import FlowGauge
from mod.dataobjects.gauges.gauge_base import Gauge
Expand Down
2 changes: 1 addition & 1 deletion mod/tools/gui_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

import os

from PySide2 import QtWidgets,QtGui
from mod.tools.qt_compat import QtWidgets,QtGui


def h_line_generator() -> QtWidgets.QFrame:
Expand Down
4 changes: 2 additions & 2 deletions mod/tools/main_loop_tools.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import time
import sys
from PySide2.QtCore import Signal, Slot, QObject
from PySide2 import QtCore
from mod.tools.qt_compat import Signal, Slot, QObject
from mod.tools.qt_compat import QtCore

from mod.constants import DIVIDER, CASE_LIMITS_OBJ_NAME, GAUGES_GROUP_NAME, VRES_BOXES_GROUP_NAME, \
IO_ZONES_GROUP_NAME, OUTFILTERS_GROUP_NAME, VARIABLES_SHEET_NAME, DAMPING_GROUP_NAME, SIMULATION_DOMAIN_NAME, HELPER_FOLDER_GROUP_NAME
Expand Down
2 changes: 1 addition & 1 deletion mod/tools/numvalidator_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
""" General number validators to be used in DesingSPHysics."""

from PySide2 import QtCore,QtGui
from mod.tools.qt_compat import QtCore,QtGui

class FloatValidator(QtGui.QValidator):
""" Validates float numbers """
Expand Down
2 changes: 1 addition & 1 deletion mod/tools/post_processing_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os
import subprocess

from PySide2 import QtCore
from mod.tools.qt_compat import QtCore
from mod.tools.script_tools import generate_ext_script

from mod.tools.translation_tools import __
Expand Down
57 changes: 57 additions & 0 deletions mod/tools/qt_compat.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
"""Qt compatibility helpers for FreeCAD environments.

This module prefers PySide6 (used by newer FreeCAD versions) and
falls back to PySide2 for older releases.
"""

try:
from PySide6 import QtCore, QtGui, QtWidgets # type: ignore
from PySide6.QtCore import QObject, Signal, Slot # type: ignore
from PySide6.QtGui import QAction, QValidator # type: ignore
from PySide6.QtWidgets import QDialog, QDoubleSpinBox, QHBoxLayout, QWidget # type: ignore
except ImportError:
from mod.tools.qt_compat import QtCore, QtGui, QtWidgets # type: ignore
from PySide2.QtCore import QObject, Signal, Slot # type: ignore
from mod.tools.qt_compat import QValidator # type: ignore
from mod.tools.qt_compat import QAction, QDialog, QDoubleSpinBox, QHBoxLayout, QWidget # type: ignore


# Qt6 removed several Qt5 aliases commonly used by legacy plugins.
if not hasattr(QtWidgets.QHeaderView, "setResizeMode") and hasattr(QtWidgets.QHeaderView, "setSectionResizeMode"):
def _set_resize_mode(self, *args):
return self.setSectionResizeMode(*args)

try:
QtWidgets.QHeaderView.setResizeMode = _set_resize_mode # type: ignore[attr-defined]
except (AttributeError, TypeError):
pass


if not hasattr(QtWidgets.QDialog, "exec_") and hasattr(QtWidgets.QDialog, "exec"):
try:
QtWidgets.QDialog.exec_ = QtWidgets.QDialog.exec # type: ignore[attr-defined]
except (AttributeError, TypeError):
pass


if hasattr(QtWidgets, "QApplication") and not hasattr(QtWidgets.QApplication, "exec_") and hasattr(QtWidgets.QApplication, "exec"):
try:
QtWidgets.QApplication.exec_ = QtWidgets.QApplication.exec # type: ignore[attr-defined]
except (AttributeError, TypeError):
pass


__all__ = [
"QtCore",
"QtGui",
"QtWidgets",
"Signal",
"Slot",
"QObject",
"QAction",
"QDialog",
"QDoubleSpinBox",
"QHBoxLayout",
"QValidator",
"QWidget",
]
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/acceleration_input.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import re

from PySide2 import QtWidgets, QtCore
from mod.tools.qt_compat import QtWidgets, QtCore

import FreeCADGui
import FreeCAD
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/base_units_input.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import re

from PySide2 import QtWidgets, QtCore
from mod.tools.qt_compat import QtWidgets, QtCore

import FreeCADGui
import FreeCAD
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/error_report_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from platform import platform

import FreeCAD
from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets

from mod.tools.gui_tools import h_line_generator

Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/focusable_combo_box.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
""" DesignSPHysics Focusable ComboBox implementation. """

from mod.constants import DEFAULT_MIN_WIDGET_WIDTH, DEFAULT_MAX_WIDGET_WIDTH
from PySide2 import QtCore, QtWidgets
from mod.tools.qt_compat import QtCore, QtWidgets


class FocusableComboBox(QtWidgets.QComboBox):
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/information_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
"""DesignSPHysics General Information Dialog"""

from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets


from mod.enums import InformationDetailsMode
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/int_value_input.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from PySide2 import QtWidgets, QtCore
from mod.tools.qt_compat import QtWidgets, QtCore

import FreeCADGui
import FreeCAD
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/mk_select_input_with_names.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env python3.7
# -*- coding: utf-8 -*-
"""DesignSPHysics MK selector widget"""
from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets
from mod.constants import DEFAULT_MIN_WIDGET_WIDTH, DEFAULT_MAX_WIDGET_WIDTH
from mod.dataobjects.case import Case
from mod.enums import ObjectType
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/time_input.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import re

from PySide2 import QtWidgets, QtCore
from mod.tools.qt_compat import QtWidgets, QtCore

import FreeCADGui
import FreeCAD
Expand Down
4 changes: 2 additions & 2 deletions mod/widgets/custom_widgets/unit_spin_box.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from PySide2.QtWidgets import QDoubleSpinBox
from PySide2.QtGui import QValidator
from mod.tools.qt_compat import QDoubleSpinBox
from mod.tools.qt_compat import QValidator

from mod.tools.stdout_tools import debug

Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/value_input.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import re

from PySide2 import QtWidgets, QtCore
from mod.tools.qt_compat import QtWidgets, QtCore

import FreeCADGui

Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/custom_widgets/velocity_input.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import re

from PySide2 import QtWidgets, QtCore
from mod.tools.qt_compat import QtWidgets, QtCore

import FreeCADGui
import FreeCAD
Expand Down
4 changes: 2 additions & 2 deletions mod/widgets/designsphysics_dock.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
# -*- coding: utf-8 -*-
"""Main DesignSPHysics Dock Widget """

from PySide2 import QtWidgets, QtCore
from PySide2 import QtCore, QtWidgets
from mod.tools.qt_compat import QtWidgets, QtCore
from mod.tools.qt_compat import QtCore, QtWidgets

from mod.constants import MAIN_WIDGET_INTERNAL_NAME, APP_NAME, VERSION, VER_DATE
from mod.dataobjects.case import Case
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/dock/dock_configuration_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
"""DesignSPHysics Dock Configuration Widget. """

from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets


from mod.dataobjects.case import Case
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/dock/dock_dp_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""DesignSPHysics Dock DP Intro Widget """


from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets

from mod.tools.translation_tools import __

Expand Down
4 changes: 2 additions & 2 deletions mod/widgets/dock/dock_logo_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import webbrowser


from PySide2 import QtWidgets,QtGui
from mod.tools.qt_compat import QtWidgets,QtGui


from mod.enums import HelpURL
Expand All @@ -24,7 +24,7 @@ def __init__(self, parent=None):
self.main_layout.setContentsMargins(0, 0, 0, 0)

self.logo_label = QtWidgets.QLabel()
self.logo_label.setPixmap(get_icon(file_name="logo.png", return_only_path=True))
self.logo_label.setPixmap(QtGui.QPixmap(get_icon(file_name="logo.png", return_only_path=True)))

self.help_button = QtWidgets.QPushButton("Help")
self.help_button.setToolTip(__("Push this button to open a browser with help\non how to use this tool."))
Expand Down
4 changes: 2 additions & 2 deletions mod/widgets/dock/dock_object_list_table_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
"""DesignSPHysics Object List Table Widget."""

from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets
from mod.constants import CASE_LIMITS_OBJ_NAME
from mod.dataobjects.case import Case
from mod.tools.freecad_tools import get_fc_object
Expand All @@ -25,7 +25,7 @@ def __init__(self, parent=None):
self.objectlist_table = QtWidgets.QTableWidget(0, 1)
self.objectlist_table.verticalHeader().setVisible(False)
self.objectlist_table.horizontalHeader().setVisible(False)
self.objectlist_table.horizontalHeader().setResizeMode(0, QtWidgets.QHeaderView.Stretch)
self.objectlist_table.horizontalHeader().setSectionResizeMode(0, QtWidgets.QHeaderView.Stretch)

self.objectlist_layout.addWidget(self.objectlist_label)
self.objectlist_layout.addWidget(self.objectlist_table)
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/dock/dock_post_processing_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
"""DesignSPHysics Dock Post Processing Widget """

from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets
from mod.tools.translation_tools import __
from mod.widgets.dock.postprocessing.computeforces_dialog import ComputeForcesDialog
from mod.widgets.dock.postprocessing.floatinginfo_dialog import FloatingInfoDialog
Expand Down
4 changes: 2 additions & 2 deletions mod/widgets/dock/dock_pre_processing_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import FreeCADGui


from PySide2 import QtCore, QtWidgets,QtGui
from PySide2.QtWidgets import QAction
from mod.tools.qt_compat import QtCore, QtWidgets,QtGui
from mod.tools.qt_compat import QAction

from mod.appmode import AppMode
from mod.constants import CASE_LIMITS_OBJ_NAME, CASE_LIMITS_2D_LABEL, CASE_LIMITS_3D_LABEL, WIDTH_2D
Expand Down
4 changes: 2 additions & 2 deletions mod/widgets/dock/dock_simulation_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import re
from sys import platform

from PySide2 import QtWidgets, QtCore
from PySide2.QtWidgets import QAction
from mod.tools.qt_compat import QtWidgets, QtCore
from mod.tools.qt_compat import QAction

from mod.dataobjects.case import Case
from mod.dataobjects.configuration.application_settings import ApplicationSettings
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/dock/dock_widgets/add_bathymetry_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from tempfile import gettempdir
from uuid import uuid4

from PySide2 import QtCore, QtWidgets
from mod.tools.qt_compat import QtCore, QtWidgets
from mod.dataobjects.case import Case
from mod.tools.dialog_tools import error_dialog, WaitDialog, warning_dialog
from mod.tools.executable_tools import ensure_process_is_executable_or_fail
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/dock/dock_widgets/add_geo_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from tempfile import gettempdir
from uuid import uuid4

from PySide2 import QtCore, QtWidgets
from mod.tools.qt_compat import QtCore, QtWidgets
from mod.dataobjects.case import Case
from mod.tools.dialog_tools import error_dialog, WaitDialog, warning_dialog
from mod.tools.executable_tools import ensure_process_is_executable_or_fail
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/dock/dock_widgets/case_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
""" DesignsSPHysics Case Summary Dialog """


from PySide2 import QtWidgets
from mod.tools.qt_compat import QtWidgets

from mod.constants import CASE_LIMITS_OBJ_NAME, MKFLUID_LIMIT, MKFLUID_OFFSET
from mod.dataobjects.case import Case
Expand Down
2 changes: 1 addition & 1 deletion mod/widgets/dock/dock_widgets/constants_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""DesignSPHysics Constants Configuration Dialog."""


from PySide2 import QtCore, QtWidgets
from mod.tools.qt_compat import QtCore, QtWidgets
from mod.dataobjects.case import Case
from mod.dataobjects.configuration.application_settings import ApplicationSettings
from mod.enums import HelpText
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
"""DesignSPHysics Execution Parameters Configuration Dialog."""
import FreeCADGui
from PySide2 import QtCore, QtWidgets
from mod.tools.qt_compat import QtCore, QtWidgets

from mod.dataobjects.configuration.application_settings import ApplicationSettings
from mod.tools.dialog_tools import warning_dialog
Expand Down
Loading