From 7a36d05a3705044203be101b1dd1900df0a5568e Mon Sep 17 00:00:00 2001 From: Damiano Lombardi Date: Tue, 30 Sep 2025 10:52:46 +0200 Subject: [PATCH] Move enum DevToolsNodeRole to Qgis namespace --- python/PyQt6/core/auto_additions/qgis.py | 19 +++++++++++++++++++ python/PyQt6/core/auto_generated/qgis.sip.in | 9 +++++++++ python/core/auto_additions/qgis.py | 19 +++++++++++++++++++ python/core/auto_generated/qgis.sip.in | 9 +++++++++ .../querylogger/qgsappquerylogger.cpp | 10 +++++----- .../qgsdatabasequeryloggernode.cpp | 8 ++++---- .../querylogger/qgsqueryloggerpanelwidget.cpp | 4 ++-- src/core/qgis.h | 14 ++++++++++++++ .../networklogger/qgsnetworklogger.cpp | 2 +- .../networklogger/qgsnetworkloggernode.cpp | 4 ++-- src/gui/devtools/qgsdevtoolsmodelnode.h | 12 +----------- 11 files changed, 85 insertions(+), 25 deletions(-) diff --git a/python/PyQt6/core/auto_additions/qgis.py b/python/PyQt6/core/auto_additions/qgis.py index 75ff90bf4e1..a5383a83a57 100644 --- a/python/PyQt6/core/auto_additions/qgis.py +++ b/python/PyQt6/core/auto_additions/qgis.py @@ -11742,6 +11742,25 @@ Qgis.RasterProcessingParameterCapability.baseClass = Qgis Qgis.RasterProcessingParameterCapabilities = lambda flags=0: Qgis.RasterProcessingParameterCapability(flags) Qgis.RasterProcessingParameterCapabilities.baseClass = Qgis RasterProcessingParameterCapabilities = Qgis # dirty hack since SIP seems to introduce the flags in module +# monkey patching scoped based enum +Qgis.DevToolsNodeRole.Status.__doc__ = "Request status role" +Qgis.DevToolsNodeRole.Id.__doc__ = "Request ID role" +Qgis.DevToolsNodeRole.ElapsedTime.__doc__ = "Elapsed time" +Qgis.DevToolsNodeRole.MaximumTime.__doc__ = "Maximum encountered elapsed time" +Qgis.DevToolsNodeRole.Sort.__doc__ = "Sort order role" +Qgis.DevToolsNodeRole.__doc__ = """Dev tools node custom data roles. + +.. versionadded:: 4.0 + +* ``Status``: Request status role +* ``Id``: Request ID role +* ``ElapsedTime``: Elapsed time +* ``MaximumTime``: Maximum encountered elapsed time +* ``Sort``: Sort order role + +""" +# -- +Qgis.DevToolsNodeRole.baseClass = Qgis try: Qgis.__attribute_docs__ = {'QGIS_DEV_VERSION': 'The development version', 'DEFAULT_SEARCH_RADIUS_MM': 'Identify search radius in mm', 'DEFAULT_MAPTOPIXEL_THRESHOLD': 'Default threshold between map coordinates and device coordinates for map2pixel simplification', 'DEFAULT_HIGHLIGHT_COLOR': 'Default highlight color. The transparency is expected to only be applied to polygon\nfill. Lines and outlines are rendered opaque.', 'DEFAULT_HIGHLIGHT_BUFFER_MM': 'Default highlight buffer in mm.', 'DEFAULT_HIGHLIGHT_MIN_WIDTH_MM': 'Default highlight line/stroke minimum width in mm.', 'SCALE_PRECISION': 'Fudge factor used to compare two scales. The code is often going from scale to scale\ndenominator. So it looses precision and, when a limit is inclusive, can lead to errors.\nTo avoid that, use this factor instead of using <= or >=.\n\n.. deprecated:: 3.40\n\n No longer used by QGIS and will be removed in QGIS 4.0.', 'DEFAULT_Z_COORDINATE': 'Default Z coordinate value.\nThis value have to be assigned to the Z coordinate for the vertex.', 'DEFAULT_M_COORDINATE': 'Default M coordinate value.\nThis value have to be assigned to the M coordinate for the vertex.\n\n.. versionadded:: 3.20', 'UI_SCALE_FACTOR': 'UI scaling factor. This should be applied to all widget sizes obtained from font metrics,\nto account for differences in the default font sizes across different platforms.', 'DEFAULT_SNAP_TOLERANCE': 'Default snapping distance tolerance.', 'DEFAULT_SNAP_UNITS': 'Default snapping distance units.', 'USER_CRS_START_ID': 'Minimum ID number for a user-defined projection.', 'DEFAULT_POINT_SIZE': 'The default size (in millimeters) for point marker symbols', 'DEFAULT_LINE_WIDTH': 'The default width (in millimeters) for line symbols', 'DEFAULT_SEGMENT_EPSILON': 'Default snapping tolerance for segments'} Qgis.__annotations__ = {'QGIS_DEV_VERSION': str, 'DEFAULT_SEARCH_RADIUS_MM': float, 'DEFAULT_MAPTOPIXEL_THRESHOLD': float, 'DEFAULT_HIGHLIGHT_COLOR': 'QColor', 'DEFAULT_HIGHLIGHT_BUFFER_MM': float, 'DEFAULT_HIGHLIGHT_MIN_WIDTH_MM': float, 'SCALE_PRECISION': float, 'DEFAULT_Z_COORDINATE': float, 'DEFAULT_M_COORDINATE': float, 'UI_SCALE_FACTOR': float, 'DEFAULT_SNAP_TOLERANCE': float, 'DEFAULT_SNAP_UNITS': 'Qgis.MapToolUnit', 'USER_CRS_START_ID': int, 'DEFAULT_POINT_SIZE': float, 'DEFAULT_LINE_WIDTH': float, 'DEFAULT_SEGMENT_EPSILON': float} diff --git a/python/PyQt6/core/auto_generated/qgis.sip.in b/python/PyQt6/core/auto_generated/qgis.sip.in index 854583c888b..205ed790733 100644 --- a/python/PyQt6/core/auto_generated/qgis.sip.in +++ b/python/PyQt6/core/auto_generated/qgis.sip.in @@ -3446,6 +3446,15 @@ The development version typedef QFlags RasterProcessingParameterCapabilities; + enum class DevToolsNodeRole + { + Status, + Id, + ElapsedTime, + MaximumTime, + Sort, + }; + static const double DEFAULT_SEARCH_RADIUS_MM; static const float DEFAULT_MAPTOPIXEL_THRESHOLD; diff --git a/python/core/auto_additions/qgis.py b/python/core/auto_additions/qgis.py index 25cf99f9255..1456b7da900 100644 --- a/python/core/auto_additions/qgis.py +++ b/python/core/auto_additions/qgis.py @@ -11645,6 +11645,25 @@ Qgis.RasterProcessingParameterCapability.__doc__ = """Capabilities of a raster l Qgis.RasterProcessingParameterCapability.baseClass = Qgis Qgis.RasterProcessingParameterCapabilities.baseClass = Qgis RasterProcessingParameterCapabilities = Qgis # dirty hack since SIP seems to introduce the flags in module +# monkey patching scoped based enum +Qgis.DevToolsNodeRole.Status.__doc__ = "Request status role" +Qgis.DevToolsNodeRole.Id.__doc__ = "Request ID role" +Qgis.DevToolsNodeRole.ElapsedTime.__doc__ = "Elapsed time" +Qgis.DevToolsNodeRole.MaximumTime.__doc__ = "Maximum encountered elapsed time" +Qgis.DevToolsNodeRole.Sort.__doc__ = "Sort order role" +Qgis.DevToolsNodeRole.__doc__ = """Dev tools node custom data roles. + +.. versionadded:: 4.0 + +* ``Status``: Request status role +* ``Id``: Request ID role +* ``ElapsedTime``: Elapsed time +* ``MaximumTime``: Maximum encountered elapsed time +* ``Sort``: Sort order role + +""" +# -- +Qgis.DevToolsNodeRole.baseClass = Qgis from enum import Enum diff --git a/python/core/auto_generated/qgis.sip.in b/python/core/auto_generated/qgis.sip.in index 2d4c685ce22..81fad1afa1d 100644 --- a/python/core/auto_generated/qgis.sip.in +++ b/python/core/auto_generated/qgis.sip.in @@ -3446,6 +3446,15 @@ The development version typedef QFlags RasterProcessingParameterCapabilities; + enum class DevToolsNodeRole + { + Status, + Id, + ElapsedTime, + MaximumTime, + Sort, + }; + static const double DEFAULT_SEARCH_RADIUS_MM; static const float DEFAULT_MAPTOPIXEL_THRESHOLD; diff --git a/src/app/devtools/querylogger/qgsappquerylogger.cpp b/src/app/devtools/querylogger/qgsappquerylogger.cpp index 04ac8b77cad..0191e546c6a 100644 --- a/src/app/devtools/querylogger/qgsappquerylogger.cpp +++ b/src/app/devtools/querylogger/qgsappquerylogger.cpp @@ -141,7 +141,7 @@ void QgsAppQueryLogger::removeRequestRows( const QList &rows ) for ( int row : std::as_const( res ) ) { - int popId = data( index( row, 0, QModelIndex() ), static_cast( QgsDevToolsModelNode::Roles::RoleId ) ).toInt(); + int popId = data( index( row, 0, QModelIndex() ), static_cast( Qgis::DevToolsNodeRole::Id ) ).toInt(); mQueryGroups.remove( popId ); beginRemoveRows( QModelIndex(), row, row ); @@ -217,11 +217,11 @@ QVariant QgsAppQueryLogger::data( const QModelIndex &index, int role ) const switch ( role ) { case Qt::DisplayRole: - case static_cast( QgsDevToolsModelNode::Roles::RoleElapsedTime ): - case static_cast( QgsDevToolsModelNode::Roles::RoleSort ): - return node->data( static_cast( QgsDevToolsModelNode::Roles::RoleElapsedTime ) ); + case static_cast( Qgis::DevToolsNodeRole::ElapsedTime ): + case static_cast( Qgis::DevToolsNodeRole::Sort ): + return node->data( static_cast( Qgis::DevToolsNodeRole::ElapsedTime ) ); - case static_cast( QgsDevToolsModelNode::Roles::RoleMaximumTime ): + case static_cast( Qgis::DevToolsNodeRole::MaximumTime ): return mMaxCost; default: diff --git a/src/app/devtools/querylogger/qgsdatabasequeryloggernode.cpp b/src/app/devtools/querylogger/qgsdatabasequeryloggernode.cpp index 5e045d17151..cc284406312 100644 --- a/src/app/devtools/querylogger/qgsdatabasequeryloggernode.cpp +++ b/src/app/devtools/querylogger/qgsdatabasequeryloggernode.cpp @@ -88,7 +88,7 @@ QVariant QgsDatabaseQueryLoggerQueryGroup::data( int role ) const case Qt::DisplayRole: return QStringLiteral( "%1 %2" ).arg( QString::number( mQueryId ), mSql ); - case static_cast( QgsDevToolsModelNode::Roles::RoleSort ): + case static_cast( Qgis::DevToolsNodeRole::Sort ): return mQueryId; case Qt::ToolTipRole: @@ -118,13 +118,13 @@ QVariant QgsDatabaseQueryLoggerQueryGroup::data( int role ) const #endif } - case static_cast( Roles::RoleStatus ): + case static_cast( Qgis::DevToolsNodeRole::Status ): return static_cast( mStatus ); - case static_cast( Roles::RoleId ): + case static_cast( Qgis::DevToolsNodeRole::Id ): return mQueryId; - case static_cast( Roles::RoleElapsedTime ): + case static_cast( Qgis::DevToolsNodeRole::ElapsedTime ): return mElapsed; case Qt::ForegroundRole: diff --git a/src/app/devtools/querylogger/qgsqueryloggerpanelwidget.cpp b/src/app/devtools/querylogger/qgsqueryloggerpanelwidget.cpp index 77a365675c2..1dbdfffdc75 100644 --- a/src/app/devtools/querylogger/qgsqueryloggerpanelwidget.cpp +++ b/src/app/devtools/querylogger/qgsqueryloggerpanelwidget.cpp @@ -48,7 +48,7 @@ QgsDatabaseQueryLoggerTreeView::QgsDatabaseQueryLoggerTreeView( QgsAppQueryLogge setFont( QFontDatabase::systemFont( QFontDatabase::FixedFont ) ); mProxyModel = new QgsDatabaseQueryLoggerProxyModel( mLogger, this ); - mProxyModel->setSortRole( static_cast( QgsDevToolsModelNode::Roles::RoleSort ) ); + mProxyModel->setSortRole( static_cast( Qgis::DevToolsNodeRole::Sort ) ); setModel( mProxyModel ); connect( mProxyModel, &QAbstractItemModel::rowsInserted, this, [this]( const QModelIndex &parent, int first, int last ) { @@ -168,7 +168,7 @@ QgsDatabaseQueryLoggerPanelWidget::QgsDatabaseQueryLoggerPanelWidget( QgsAppQuer setupUi( this ); mTreeView = new QgsDatabaseQueryLoggerTreeView( mLogger ); - mTreeView->setItemDelegateForColumn( 1, new QueryCostDelegate( static_cast( QgsDevToolsModelNode::Roles::RoleElapsedTime ), static_cast( QgsDevToolsModelNode::Roles::RoleMaximumTime ), mTreeView ) ); + mTreeView->setItemDelegateForColumn( 1, new QueryCostDelegate( static_cast( Qgis::DevToolsNodeRole::ElapsedTime ), static_cast( Qgis::DevToolsNodeRole::MaximumTime ), mTreeView ) ); mTreeView->setSortingEnabled( true ); mTreeView->sortByColumn( 0, Qt::SortOrder::AscendingOrder ); diff --git a/src/core/qgis.h b/src/core/qgis.h index 4b972fde18c..82ac85ad593 100644 --- a/src/core/qgis.h +++ b/src/core/qgis.h @@ -6080,6 +6080,20 @@ class CORE_EXPORT Qgis Q_DECLARE_FLAGS( RasterProcessingParameterCapabilities, RasterProcessingParameterCapability ) Q_FLAG( RasterProcessingParameterCapabilities ) + /** + * Dev tools node custom data roles. + * \since QGIS 4.0 + */ + enum class DevToolsNodeRole + { + Status = Qt::UserRole + 1, //!< Request status role + Id, //!< Request ID role + ElapsedTime, //!< Elapsed time + MaximumTime, //!< Maximum encountered elapsed time + Sort, //!< Sort order role + }; + Q_ENUM( DevToolsNodeRole ) + /** * Identify search radius in mm */ diff --git a/src/gui/devtools/networklogger/qgsnetworklogger.cpp b/src/gui/devtools/networklogger/qgsnetworklogger.cpp index 2daa526f270..522f0c0f50d 100644 --- a/src/gui/devtools/networklogger/qgsnetworklogger.cpp +++ b/src/gui/devtools/networklogger/qgsnetworklogger.cpp @@ -215,7 +215,7 @@ void QgsNetworkLogger::removeRequestRows( const QList &rows ) for ( int row : std::as_const( res ) ) { - int popId = data( index( row, 0, QModelIndex() ), static_cast( QgsDevToolsModelNode::Roles::RoleId ) ).toInt(); + int popId = data( index( row, 0, QModelIndex() ), static_cast( Qgis::DevToolsNodeRole::Id ) ).toInt(); mRequestGroups.remove( popId ); beginRemoveRows( QModelIndex(), row, row ); diff --git a/src/gui/devtools/networklogger/qgsnetworkloggernode.cpp b/src/gui/devtools/networklogger/qgsnetworkloggernode.cpp index 656152de1a5..439cb11b767 100644 --- a/src/gui/devtools/networklogger/qgsnetworkloggernode.cpp +++ b/src/gui/devtools/networklogger/qgsnetworkloggernode.cpp @@ -101,10 +101,10 @@ QVariant QgsNetworkLoggerRequestGroup::data( int role ) const .arg( mUrl.url(), statusToString( mStatus ), QString::number( mHttpStatus ), mContentType, bytes, mStatus == Status::Pending ? QString::number( mTimer.elapsed() / 1000 ) : QString::number( mTotalTime ), QString::number( mReplies ) ); } - case static_cast( Roles::RoleStatus ): + case static_cast( Qgis::DevToolsNodeRole::Status ): return static_cast( mStatus ); - case static_cast( Roles::RoleId ): + case static_cast( Qgis::DevToolsNodeRole::Id ): return mRequestId; case Qt::ForegroundRole: diff --git a/src/gui/devtools/qgsdevtoolsmodelnode.h b/src/gui/devtools/qgsdevtoolsmodelnode.h index 83fa4a57e83..02cfa90694a 100644 --- a/src/gui/devtools/qgsdevtoolsmodelnode.h +++ b/src/gui/devtools/qgsdevtoolsmodelnode.h @@ -37,16 +37,6 @@ class QgsDevToolsModelGroup; class GUI_EXPORT QgsDevToolsModelNode { public: - //! Custom node data roles - enum class Roles - { - RoleStatus = Qt::UserRole + 1, //!< Request status role - RoleId, //!< Request ID role - RoleElapsedTime, //!< Elapsed time - RoleMaximumTime, //!< Maximum encountered elapsed time - RoleSort, //!< Sort order role - }; - virtual ~QgsDevToolsModelNode(); /** @@ -103,7 +93,7 @@ class GUI_EXPORT QgsDevToolsModelGroup : public QgsDevToolsModelNode QgsDevToolsModelGroup( QgsDevToolsModelGroup &&other ) noexcept = default; /** - * Assignement operator for QgsDevToolsModelGroup. Copy assignement is disabled + * Assignment operator for QgsDevToolsModelGroup. Copy assignment is disabled */ QgsDevToolsModelGroup &operator=( QgsDevToolsModelGroup &&other ) noexcept = default;