@@ -677,8 +677,8 @@ void QgsPluginManager::showPluginDetails( QStandardItem *item )
677677 " padding-right:10px;"
678678 " text-align:right;"
679679 " }"
680- " td.version {"
681- " cursor:pointer ;"
680+ " td.version img {"
681+ " height:0.8em ;"
682682 " }"
683683 " </style>" ;
684684
@@ -939,18 +939,40 @@ void QgsPluginManager::showPluginDetails( QStandardItem *item )
939939 if ( ! metadata->value ( QStringLiteral ( " version_installed" ) ).isEmpty () )
940940 {
941941 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 () );
947959 }
948960 if ( ! metadata->value ( QStringLiteral ( " version_available" ) ).isEmpty () )
949961 {
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 );
954976 }
955977
956978 if ( ! metadata->value ( QStringLiteral ( " changelog" ) ).isEmpty () )
0 commit comments