@@ -63,6 +63,25 @@ def _lib_version(package_name: str, package_path: str) -> str:
6363 return "?"
6464
6565
66+ def get_library_versions () -> list [dict [str , str ]]:
67+ """Return version info for oqtopus and its bundled libraries.
68+
69+ Each entry is a dict with keys ``name``, ``version``, and ``path``.
70+ """
71+ oqtopus_path = PluginUtils .plugin_root_path ()
72+ oqtopus_version = _lib_version ("oqtopus" , oqtopus_path )
73+
74+ from ..libs import pum as _pum_pkg
75+
76+ pum_path = os .path .dirname (_pum_pkg .__file__ )
77+ pum_version = _lib_version ("pum" , pum_path )
78+
79+ return [
80+ {"name" : "oQtopus" , "version" : oqtopus_version , "path" : oqtopus_path },
81+ {"name" : "PUM" , "version" : pum_version , "path" : pum_path },
82+ ]
83+
84+
6685class AboutDialog (QDialog , DIALOG_UI ):
6786 def __init__ (self , parent = None ):
6887 QDialog .__init__ (self , parent )
@@ -92,30 +111,18 @@ def __init__(self, parent=None):
92111 self .iconLabel .setPixmap (scaled_logo )
93112
94113 # --- Library versions ---
95- oqtopus_path = PluginUtils .plugin_root_path ()
96- oqtopus_version = _lib_version ("oqtopus" , oqtopus_path )
97-
98- from ..libs import pum as _pum_pkg
99-
100- pum_path = os .path .dirname (_pum_pkg .__file__ )
101- pum_version = _lib_version ("pum" , pum_path )
114+ lib_versions = get_library_versions ()
102115
103116 bold_font = QFont ()
104117 bold_font .setBold (True )
105118
106119 grid = self .gridLayout_2
107120 next_row = grid .rowCount ()
108121
109- oqtopus_label = QLabel ("oQtopus version:" )
110- oqtopus_label .setFont (bold_font )
111- oqtopus_value = QLabel (oqtopus_version )
112- oqtopus_value .setToolTip (oqtopus_path )
113- grid .addWidget (oqtopus_label , next_row , 0 )
114- grid .addWidget (oqtopus_value , next_row , 1 )
115-
116- pum_label = QLabel ("PUM version:" )
117- pum_label .setFont (bold_font )
118- pum_value = QLabel (pum_version )
119- pum_value .setToolTip (pum_path )
120- grid .addWidget (pum_label , next_row + 1 , 0 )
121- grid .addWidget (pum_value , next_row + 1 , 1 )
122+ for i , lib in enumerate (lib_versions ):
123+ label = QLabel (f"{ lib ['name' ]} version:" )
124+ label .setFont (bold_font )
125+ value = QLabel (lib ["version" ])
126+ value .setToolTip (lib ["path" ])
127+ grid .addWidget (label , next_row + i , 0 )
128+ grid .addWidget (value , next_row + i , 1 )
0 commit comments