forked from qt-creator/qt-creator
Allow plugins to specify a "revision" to show in addition to the version
To be used for the version control revision the plugin was built from. Invent a QTC_PLUGIN_REVISION replacement string for the plugin .json.in which can be set by the build process. Task-number: QTCREATORBUG-19951 Change-Id: Id5fd64b5506383e0b7749bcfd34d178baf8fe7af Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -1,11 +1,37 @@
|
|||||||
import qbs 1.0
|
import qbs 1.0
|
||||||
import qbs.TextFile
|
import qbs.File
|
||||||
import qbs.FileInfo
|
import qbs.FileInfo
|
||||||
|
import qbs.TextFile
|
||||||
|
import qbs.Utilities
|
||||||
|
|
||||||
Module {
|
Module {
|
||||||
Depends { id: qtcore; name: "Qt.core" }
|
Depends { id: qtcore; name: "Qt.core" }
|
||||||
Depends { name: "qtc" }
|
Depends { name: "qtc" }
|
||||||
|
|
||||||
|
// TODO: Wrap the VCS specific stuff in a dedicated module
|
||||||
|
property bool hasVcs: Utilities.versionCompare(qbs.version, "1.10") >= 0
|
||||||
|
Depends { name: "vcs"; condition: hasVcs }
|
||||||
|
Properties {
|
||||||
|
condition: hasVcs
|
||||||
|
vcs.repoDir: {
|
||||||
|
// TODO: Could something like this be incorporated into the vcs module?
|
||||||
|
// Currently, the default repo dir is project.sourceDirectory, which
|
||||||
|
// does not make sense for Qt Creator.
|
||||||
|
var dir = sourceDirectory;
|
||||||
|
while (true) {
|
||||||
|
if (File.exists(FileInfo.joinPaths(dir, ".git")))
|
||||||
|
return dir;
|
||||||
|
var newDir = FileInfo.path(dir);
|
||||||
|
if (newDir === dir || dir === project.sourceDirectory) {
|
||||||
|
console.warn("No git repository found for product " + product.name
|
||||||
|
+ ", revision information will not be evailable.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
dir = newDir;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
additionalProductTypes: ["qt_plugin_metadata"]
|
additionalProductTypes: ["qt_plugin_metadata"]
|
||||||
|
|
||||||
Rule {
|
Rule {
|
||||||
@@ -56,6 +82,8 @@ Module {
|
|||||||
vars['IDE_VERSION_RELEASE'] = product.moduleProperty("qtc", "ide_version_release");
|
vars['IDE_VERSION_RELEASE'] = product.moduleProperty("qtc", "ide_version_release");
|
||||||
vars['QTCREATOR_COPYRIGHT_YEAR']
|
vars['QTCREATOR_COPYRIGHT_YEAR']
|
||||||
= product.moduleProperty("qtc", "qtcreator_copyright_year")
|
= product.moduleProperty("qtc", "qtcreator_copyright_year")
|
||||||
|
if (!vars['QTC_PLUGIN_REVISION'])
|
||||||
|
vars['QTC_PLUGIN_REVISION'] = product.vcs ? (product.vcs.repoState || "") : "";
|
||||||
var deplist = [];
|
var deplist = [];
|
||||||
for (i in plugin_depends) {
|
for (i in plugin_depends) {
|
||||||
deplist.push(" { \"Name\" : \"" + plugin_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\" }");
|
deplist.push(" { \"Name\" : \"" + plugin_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\" }");
|
||||||
|
@@ -32,6 +32,8 @@
|
|||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
#include <QJsonObject>
|
||||||
|
#include <QJsonValue>
|
||||||
#include <QRegExp>
|
#include <QRegExp>
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -65,6 +67,16 @@ PluginDetailsView::~PluginDetailsView()
|
|||||||
delete m_ui;
|
delete m_ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: make API in PluginSpec
|
||||||
|
static QString getSpecRevision(PluginSpec *spec)
|
||||||
|
{
|
||||||
|
const QJsonObject metaData = spec->metaData();
|
||||||
|
const QJsonValue revision = metaData.value("Revision");
|
||||||
|
if (revision.isString())
|
||||||
|
return revision.toString();
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Reads the given \a spec and displays its values
|
Reads the given \a spec and displays its values
|
||||||
in this PluginDetailsView.
|
in this PluginDetailsView.
|
||||||
@@ -72,7 +84,10 @@ PluginDetailsView::~PluginDetailsView()
|
|||||||
void PluginDetailsView::update(PluginSpec *spec)
|
void PluginDetailsView::update(PluginSpec *spec)
|
||||||
{
|
{
|
||||||
m_ui->name->setText(spec->name());
|
m_ui->name->setText(spec->name());
|
||||||
m_ui->version->setText(spec->version());
|
const QString revision = getSpecRevision(spec);
|
||||||
|
const QString versionString = spec->version() + (revision.isEmpty() ? QString()
|
||||||
|
: " (" + revision + ")");
|
||||||
|
m_ui->version->setText(versionString);
|
||||||
m_ui->compatVersion->setText(spec->compatVersion());
|
m_ui->compatVersion->setText(spec->compatVersion());
|
||||||
m_ui->vendor->setText(spec->vendor());
|
m_ui->vendor->setText(spec->vendor());
|
||||||
const QString link = QString::fromLatin1("<a href=\"%1\">%1</a>").arg(spec->url());
|
const QString link = QString::fromLatin1("<a href=\"%1\">%1</a>").arg(spec->url());
|
||||||
|
Reference in New Issue
Block a user