2017-07-03 09:30:10 +02:00
|
|
|
/*!
|
|
|
|
* \brief Model implementation for version information.
|
|
|
|
*
|
2018-03-28 15:10:51 +02:00
|
|
|
* \copyright Copyright (c) 2016-2018 Governikus GmbH & Co. KG, Germany
|
2017-07-03 09:30:10 +02:00
|
|
|
*/
|
|
|
|
|
2017-12-20 14:54:05 +01:00
|
|
|
#include "VersionInformationModel.h"
|
|
|
|
|
|
|
|
#include "AppSettings.h"
|
2017-07-03 09:30:10 +02:00
|
|
|
#include "BuildHelper.h"
|
|
|
|
#include "DeviceInfo.h"
|
|
|
|
|
|
|
|
#include <QCoreApplication>
|
|
|
|
#include <QSslSocket>
|
|
|
|
#include <QString>
|
|
|
|
#include <QSysInfo>
|
|
|
|
|
|
|
|
#include <openssl/crypto.h>
|
|
|
|
|
|
|
|
|
|
|
|
using namespace governikus;
|
|
|
|
|
|
|
|
|
2017-12-20 14:54:05 +01:00
|
|
|
void VersionInformationModel::init()
|
2017-07-03 09:30:10 +02:00
|
|
|
{
|
2017-12-20 14:54:05 +01:00
|
|
|
mData.clear();
|
2017-07-03 09:33:28 +02:00
|
|
|
mData += QPair<QString, QString>(tr("Application Name"), QCoreApplication::applicationName());
|
|
|
|
mData += QPair<QString, QString>(tr("Application Version"), QCoreApplication::applicationVersion());
|
|
|
|
mData += QPair<QString, QString>(tr("Organization"), QCoreApplication::organizationName());
|
|
|
|
mData += QPair<QString, QString>(tr("Organization domain"), QCoreApplication::organizationDomain());
|
|
|
|
mData += QPair<QString, QString>(tr("Build date"), QString::fromLatin1(BuildHelper::getDateTime()));
|
2017-07-03 09:30:10 +02:00
|
|
|
#ifdef Q_OS_ANDROID
|
2017-07-03 09:33:28 +02:00
|
|
|
mData += QPair<QString, QString>(tr("VersionCode"), QString::number(BuildHelper::getVersionCode()));
|
2017-07-03 09:30:10 +02:00
|
|
|
#endif
|
2017-07-03 09:33:28 +02:00
|
|
|
mData += QPair<QString, QString>(tr("System version"), QSysInfo::prettyProductName());
|
|
|
|
mData += QPair<QString, QString>(tr("Kernel"), QSysInfo::kernelVersion());
|
|
|
|
mData += QPair<QString, QString>(tr("Architecture"), QSysInfo::currentCpuArchitecture());
|
|
|
|
#ifdef Q_OS_ANDROID
|
|
|
|
mData += QPair<QString, QString>(tr("Compiled architecture"), QSysInfo::buildCpuArchitecture());
|
|
|
|
mData += QPair<QString, QString>(tr("Device"), DeviceInfo::getPrettyInfo());
|
|
|
|
#endif
|
|
|
|
mData += QPair<QString, QString>(tr("Qt Version"), QString::fromLatin1(qVersion()));
|
|
|
|
mData += QPair<QString, QString>(tr("OpenSSL Version"), QSslSocket::sslLibraryVersionString());
|
2017-07-03 09:30:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-12-20 14:54:05 +01:00
|
|
|
VersionInformationModel::VersionInformationModel(QObject* pParent)
|
|
|
|
: QAbstractListModel(pParent)
|
|
|
|
, mData()
|
|
|
|
{
|
|
|
|
init();
|
|
|
|
|
|
|
|
connect(&AppSettings::getInstance().getGeneralSettings(), &GeneralSettings::fireSettingsChanged, this, [this]()
|
|
|
|
{
|
|
|
|
beginResetModel();
|
|
|
|
init();
|
|
|
|
endResetModel();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-07-03 09:30:10 +02:00
|
|
|
int VersionInformationModel::rowCount(const QModelIndex&) const
|
|
|
|
{
|
|
|
|
return mData.size();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QVariant VersionInformationModel::data(const QModelIndex& pIndex, int pRole) const
|
|
|
|
{
|
|
|
|
if (pIndex.isValid() && pIndex.row() < rowCount())
|
|
|
|
{
|
|
|
|
auto entry = mData[pIndex.row()];
|
|
|
|
if (pRole == LABEL)
|
|
|
|
{
|
|
|
|
return entry.first;
|
|
|
|
}
|
|
|
|
if (pRole == TEXT)
|
|
|
|
{
|
|
|
|
return entry.second;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return QVariant();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QHash<int, QByteArray> VersionInformationModel::roleNames() const
|
|
|
|
{
|
|
|
|
QHash<int, QByteArray> roles = QAbstractListModel::roleNames();
|
|
|
|
roles.insert(LABEL, "label");
|
|
|
|
roles.insert(TEXT, "text");
|
|
|
|
return roles;
|
|
|
|
}
|