From 0c56c1fe107072adb3e05dbfd1322b1f72f0c099 Mon Sep 17 00:00:00 2001 From: Sayon Dey Date: Sat, 17 Jan 2026 14:48:44 +0000 Subject: [PATCH] Fix AttributeError: 'NoneType' object has no attribute 'COLOR' for Python 3.13/3.14 - Change QtCore.Qt.black to QtGui.QColor('black') in DataType.COLOR and editor.py - Handle None datatype in key_item method --- mslib/msui/editor.py | 2 +- mslib/support/qt_json_view/datatypes.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mslib/msui/editor.py b/mslib/msui/editor.py index b083815ba..04aca4674 100644 --- a/mslib/msui/editor.py +++ b/mslib/msui/editor.py @@ -613,7 +613,7 @@ def problem_in_map_sections(self): key = "predefined_map_sections" source_model = self.json_model # set default color - color = QtCore.Qt.black + color = QtGui.QColor("black") self.set_key_color(source_model, key, color) data = source_model.serialize() diff --git a/mslib/support/qt_json_view/datatypes.py b/mslib/support/qt_json_view/datatypes.py index fbc216281..1c831a360 100644 --- a/mslib/support/qt_json_view/datatypes.py +++ b/mslib/support/qt_json_view/datatypes.py @@ -13,7 +13,7 @@ class DataType: """Base class for data types.""" # (mss) - COLOR = QtCore.Qt.black + COLOR = QtGui.QColor("black") def matches(self, data): """Logic to define whether the given data matches this type.""" @@ -54,9 +54,13 @@ def key_item(self, key, model, datatype=None, editable=True): """Create an item for the key column for this data type.""" key_item = QtGui.QStandardItem(key) key_item.setData(datatype, TypeRole) - key_item.setData(datatype.__class__.__name__, QtCore.Qt.ToolTipRole) - key_item.setData( - QtGui.QBrush(datatype.COLOR), QtCore.Qt.ForegroundRole) + if datatype: + key_item.setData(datatype.__class__.__name__, QtCore.Qt.ToolTipRole) + color = datatype.COLOR + else: + key_item.setData("None", QtCore.Qt.ToolTipRole) + color = QtGui.QColor("black") + key_item.setData(QtGui.QBrush(color), QtCore.Qt.ForegroundRole) key_item.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) if editable and model.editable_keys: