@@ -677,8 +677,8 @@ void QgsPluginManager::showPluginDetails( QStandardItem *item )
677
677
" padding-right:10px;"
678
678
" text-align:right;"
679
679
" }"
680
- " td.version {"
681
- " cursor:pointer ;"
680
+ " td.version img {"
681
+ " height:0.8em ;"
682
682
" }"
683
683
" </style>" ;
684
684
@@ -939,18 +939,40 @@ void QgsPluginManager::showPluginDetails( QStandardItem *item )
939
939
if ( ! metadata->value ( QStringLiteral ( " version_installed" ) ).isEmpty () )
940
940
{
941
941
QString ver = metadata->value ( QStringLiteral ( " version_installed" ) );
942
- if ( ver == QLatin1String ( " -1" ) ) ver = ' ?' ;
943
- html += QStringLiteral ( " <tr><td class='key'>%1 </td><td class='version' title='%2 %3'> %4 </td></tr>" ).arg ( tr ( " Installed version" ),
944
- tr ( " in" ),
945
- metadata->value ( QStringLiteral ( " library" ) ),
946
- ver );
942
+ if ( ver == QLatin1String ( " -1" ) )
943
+ {
944
+ ver = ' ?' ;
945
+ }
946
+ QString localDir = metadata->value ( QStringLiteral ( " library" ) );
947
+ if ( QFileInfo ( localDir ).isFile () )
948
+ {
949
+ localDir = QFileInfo ( localDir ).absolutePath ();
950
+ }
951
+
952
+ html += QStringLiteral ( " <tr><td class='key'>%1 </td><td class='version' title='%2 %3'> %4 <a href=\" %5\" >"
953
+ " <img src=\" qrc:/images/themes/default/externalLink.svg\" ></a></td></tr>"
954
+ ).arg ( tr ( " Installed version" ),
955
+ tr ( " in" ),
956
+ metadata->value ( QStringLiteral ( " library" ) ),
957
+ ver,
958
+ QUrl::fromLocalFile ( localDir ).toString () );
947
959
}
948
960
if ( ! metadata->value ( QStringLiteral ( " version_available" ) ).isEmpty () )
949
961
{
950
- html += QStringLiteral ( " <tr><td class='key'>%1 </td><td class='version' title='%2 %3'> %4 </td></tr>" ).arg ( tr ( " Available version" ),
951
- tr ( " in" ),
952
- metadata->value ( QStringLiteral ( " zip_repository" ) ),
953
- metadata->value ( QStringLiteral ( " version_available" ) ) );
962
+ QString downloadUrl = metadata->value ( QStringLiteral ( " download_url" ) );
963
+ if ( downloadUrl.contains ( QStringLiteral ( " plugins.qgis.org" ) ) )
964
+ {
965
+ // For the main repo, open the plugin version page instead of the download link. For other repositories the download link is the only known endpoint.
966
+ downloadUrl = downloadUrl.replace ( QStringLiteral ( " download/" ), QString () );
967
+ }
968
+
969
+ html += QStringLiteral ( " <tr><td class='key'>%1 </td><td class='version' title='%2 %3'> %4 <a href=\" %5\" >"
970
+ " <img src=\" qrc:/images/themes/default/externalLink.svg\" ></a></td></tr>"
971
+ ).arg ( tr ( " Available version" ),
972
+ tr ( " in" ),
973
+ metadata->value ( QStringLiteral ( " zip_repository" ) ),
974
+ metadata->value ( QStringLiteral ( " version_available" ) ),
975
+ downloadUrl );
954
976
}
955
977
956
978
if ( ! metadata->value ( QStringLiteral ( " changelog" ) ).isEmpty () )
0 commit comments