Display compiler in "About Qt Creator".

In order to determine the build environment for Qt Designer and
other plugins.

Change-Id: I10ca98481097b9425c080a08fabd08e710b6d5c2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
Friedemann Kleint
2013-05-24 16:45:49 +02:00
committed by Eike Ziller
parent c3523fec68
commit a62afa55ab
3 changed files with 52 additions and 18 deletions

View File

@@ -29,8 +29,11 @@
#include "icore.h"
#include <app/app_version.h>
#include <extensionsystem/pluginmanager.h>
#include <QSysInfo>
/*!
\namespace Core
\brief The Core namespace contains all classes that make up the Core plugin
@@ -508,6 +511,41 @@ QString ICore::userResourcePath()
return urp;
}
static QString compilerString()
{
#if defined(Q_CC_CLANG) // must be before GNU, because clang claims to be GNU too
QString isAppleString;
#if defined(__apple_build_version__) // Apple clang has other version numbers
isAppleString = QLatin1String(" (Apple)");
#endif
return QLatin1String("Clang " ) + QString::number(__clang_major__) + QLatin1Char('.')
+ QString::number(__clang_minor__) + isAppleString;
#elif defined(Q_CC_GNU)
return QLatin1String("GCC " ) + QLatin1String(__VERSION__);
#elif defined(Q_CC_MSVC)
if (_MSC_VER >= 1500) // 1500: MSVC 2008, 1600: MSVC 2010, ...
return QLatin1String("MSVC ") + QString::number(2008 + 2 * ((_MSC_VER / 100) - 15));
#endif
return QLatin1String("<unknown compiler>");
}
QString ICore::versionString()
{
QString ideVersionDescription;
#ifdef IDE_VERSION_DESCRIPTION
ideVersionDescription = tr(" (%1)").arg(QLatin1String(Constants::IDE_VERSION_DESCRIPTION_STR));
#endif
return tr("Qt Creator %1%2").arg(QLatin1String(Constants::IDE_VERSION_LONG),
ideVersionDescription);
}
QString ICore::buildCompatibilityString()
{
return tr("Based on Qt %1 (%2, %3 bit)").arg(QLatin1String(qVersion()),
compilerString(),
QString::number(QSysInfo::WordSize));
}
IContext *ICore::currentContextObject()
{
return m_mainwindow->currentContextObject();

View File

@@ -113,6 +113,9 @@ public:
static QString resourcePath();
static QString userResourcePath();
static QString versionString();
static QString buildCompatibilityString();
static QWidget *mainWindow();
static Utils::AppMainWindow *appMainWindow();
static QStatusBar *statusBar();

View File

@@ -31,10 +31,9 @@
#include <app/app_version.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h>
#include <utils/qtcassert.h>
#include <QSysInfo>
#include <QDialogButtonBox>
#include <QGridLayout>
#include <QLabel>
@@ -55,13 +54,6 @@ VersionDialog::VersionDialog(QWidget *parent)
QGridLayout *layout = new QGridLayout(this);
layout->setSizeConstraint(QLayout::SetFixedSize);
QString version = QLatin1String(Constants::IDE_VERSION_LONG);
QString ideVersionDescription;
#ifdef IDE_VERSION_DESCRIPTION
ideVersionDescription = tr("(%1)").arg(QLatin1String(Constants::IDE_VERSION_DESCRIPTION_STR));
#endif
QString ideRev;
#ifdef IDE_REVISION
//: This gets conditionally inserted as argument %8 into the description string.
@@ -69,23 +61,24 @@ VersionDialog::VersionDialog(QWidget *parent)
#endif
const QString description = tr(
"<h3>Qt Creator %1 %8</h3>"
"Based on Qt %2 (%3 bit)<br/>"
"<h3>%1</h3>"
"%2<br/>"
"<br/>"
"Built on %4 at %5<br />"
"Built on %3 at %4<br />"
"<br/>"
"%9"
"%5"
"<br/>"
"Copyright 2008-%6 %7. All rights reserved.<br/>"
"<br/>"
"The program is provided AS IS with NO WARRANTY OF ANY KIND, "
"INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A "
"PARTICULAR PURPOSE.<br/>")
.arg(version,
QLatin1String(qVersion()), QString::number(QSysInfo::WordSize),
QLatin1String(__DATE__), QLatin1String(__TIME__), QLatin1String(Constants::IDE_YEAR),
(QLatin1String(Constants::IDE_AUTHOR)), ideVersionDescription,
ideRev);
.arg(ICore::versionString(),
ICore::buildCompatibilityString(),
QLatin1String(__DATE__), QLatin1String(__TIME__),
ideRev,
QLatin1String(Constants::IDE_YEAR),
QLatin1String(Constants::IDE_AUTHOR));
QLabel *copyRightLabel = new QLabel(description);
copyRightLabel->setWordWrap(true);