Skip to content

Commit 8394981

Browse files
committed
[Plugin manager] [need-docs] [FEATURE?] Add links to the plugin details page to open the local directory of installed plugin and the download page/link of the available version (do not confuse with plugin homepage).
1 parent 23f1e43 commit 8394981

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

images/images.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@
148148
<file>themes/default/copyright_label.svg</file>
149149
<file>themes/default/dbmanager.svg</file>
150150
<file>themes/default/extents.svg</file>
151+
<file>themes/default/externalLink.svg</file>
151152
<file>themes/default/gpsicons/barchart.svg</file>
152153
<file>themes/default/gpsicons/polarchart.svg</file>
153154
<file>themes/default/grass_location.svg</file>
Lines changed: 1 addition & 0 deletions
Loading

src/app/pluginmanager/qgspluginmanager.cpp

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

@@ -940,17 +940,30 @@ void QgsPluginManager::showPluginDetails( QStandardItem *item )
940940
{
941941
QString ver = metadata->value( QStringLiteral( "version_installed" ) );
942942
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 );
943+
html += QStringLiteral( "<tr><td class='key'>%1 </td><td class='version' title='%2 %3'> %4 <a href=\"%5\">
944+
"<img src=\"qrc:/images/themes/default/externalLink.svg\"></a></td></tr>"
945+
).arg( tr( "Installed version" ),
946+
tr( "in" ),
947+
metadata->value( QStringLiteral( "library" ) ),
948+
ver,
949+
QUrl::fromLocalFile( metadata->value( QStringLiteral( "library" ) ) ).toString() );
947950
}
948951
if ( ! metadata->value( QStringLiteral( "version_available" ) ).isEmpty() )
949952
{
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" ) ) );
953+
QString downloadUrl = metadata->value( QStringLiteral( "download_url" ) );
954+
if ( downloadUrl.contains( QStringLiteral( "plugins.qgis.org" ) ) )
955+
{
956+
// 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.
957+
downloadUrl = downloadUrl.replace( QStringLiteral( "download/" ), QStringLiteral( "" ) );
958+
}
959+
960+
html += QStringLiteral( "<tr><td class='key'>%1 </td><td class='version' title='%2 %3'> %4 <a href=\"%5\">"
961+
"<img src=\"qrc:/images/themes/default/externalLink.svg\"></a></td></tr>"
962+
).arg( tr( "Available version" ),
963+
tr( "in" ),
964+
metadata->value( QStringLiteral( "zip_repository" ) ),
965+
metadata->value( QStringLiteral( "version_available" ) ),
966+
downloadUrl );
954967
}
955968

956969
if ( ! metadata->value( QStringLiteral( "changelog" ) ).isEmpty() )

0 commit comments

Comments
 (0)