Skip to content

Commit 6058e66

Browse files
authoredSep 14, 2018
Merge pull request #7891 from borysiasty/plugin_links
[Plugin manager] [needs-docs] [FEATUR?] Open the local directory of installed plugin and the download page/link of the available version from the plugin details view.
2 parents 8288deb + fc3b673 commit 6058e66

File tree

3 files changed

+35
-11
lines changed

3 files changed

+35
-11
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: 33 additions & 11 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

@@ -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

Comments
 (0)
Please sign in to comment.