/*! * \brief Model implementation for version information. * * \copyright Copyright (c) 2016-2018 Governikus GmbH & Co. KG, Germany */ #include "VersionInformationModel.h" #include "AppSettings.h" #include "BuildHelper.h" #include "DeviceInfo.h" #include #include #include #include #include using namespace governikus; void VersionInformationModel::init() { mData.clear(); mData += QPair(tr("Application Name"), QCoreApplication::applicationName()); mData += QPair(tr("Application Version"), QCoreApplication::applicationVersion()); mData += QPair(tr("Organization"), QCoreApplication::organizationName()); mData += QPair(tr("Organization domain"), QCoreApplication::organizationDomain()); mData += QPair(tr("Build date"), QString::fromLatin1(BuildHelper::getDateTime())); #ifdef Q_OS_ANDROID mData += QPair(tr("VersionCode"), QString::number(BuildHelper::getVersionCode())); #endif mData += QPair(tr("System version"), QSysInfo::prettyProductName()); mData += QPair(tr("Kernel"), QSysInfo::kernelVersion()); mData += QPair(tr("Architecture"), QSysInfo::currentCpuArchitecture()); #ifdef Q_OS_ANDROID mData += QPair(tr("Compiled architecture"), QSysInfo::buildCpuArchitecture()); mData += QPair(tr("Device"), DeviceInfo::getPrettyInfo()); #endif mData += QPair(tr("Qt Version"), QString::fromLatin1(qVersion())); mData += QPair(tr("OpenSSL Version"), QSslSocket::sslLibraryVersionString()); } VersionInformationModel::VersionInformationModel(QObject* pParent) : QAbstractListModel(pParent) , mData() { init(); connect(&AppSettings::getInstance().getGeneralSettings(), &GeneralSettings::fireSettingsChanged, this, [this]() { beginResetModel(); init(); endResetModel(); }); } 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 VersionInformationModel::roleNames() const { QHash roles = QAbstractListModel::roleNames(); roles.insert(LABEL, "label"); roles.insert(TEXT, "text"); return roles; }