refs #921, remove UpdateInfo class (now distribution list)

This commit is contained in:
Klaus Basan
2017-03-29 02:17:59 +02:00
committed by Mathew Sutcliffe
parent 929e2883d0
commit cbf69d9847
6 changed files with 3 additions and 292 deletions

View File

@@ -1,145 +0,0 @@
/* Copyright (C) 2015
* swift project community / contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
#include "blackconfig/buildconfig.h"
#include "blackcore/data/updateinfo.h"
#include <QStringList>
using namespace BlackConfig;
using namespace BlackMisc;
using namespace BlackMisc::Network;
namespace BlackCore
{
namespace Data
{
CUpdateInfo::CUpdateInfo() :
ITimestampBased(0),
m_downloadsStableUrls(QStringList {"http://swift-project.org/"}),
m_downloadsBetaUrls(QStringList {"http://swift-project.org/"}),
m_latestVersionStable(CVersion::version()),
m_lastSupportedVersionStable("0.6"),
m_latestVersionBeta(CVersion::version()),
m_lastSupportedVersionBeta("0.6")
{ }
CUrlList CUpdateInfo::getDownloadUrls() const
{
return CBuildConfig::isBetaTest() ? getDownloadUrlsBeta() : getDownloadUrlsStable();
}
QString CUpdateInfo::getLatestVersion() const
{
return CBuildConfig::isBetaTest() ? getLatestVersionBeta() : getLatestVersionStable();
}
QString CUpdateInfo::getChannel() const
{
return CBuildConfig::isBetaTest() ? "beta" : "stable";
}
bool CUpdateInfo::hasSameType(const CUpdateInfo &otherDownload) const
{
return this->isDevelopment() == otherDownload.isDevelopment();
}
QString CUpdateInfo::convertToQString(bool i18n) const
{
return convertToQString(", ", i18n);
}
QString CUpdateInfo::convertToQString(const QString &separator, bool i18n) const
{
QString s("timestamp: ");
s.append(this->getFormattedUtcTimestampYmdhms());
s.append(separator);
s.append("Download URLs (stable): ");
s.append(getDownloadUrlsStable().toQString(i18n));
s.append(separator);
s.append("Download URLs (beta): ");
s.append(getDownloadUrlsBeta().toQString(i18n));
s.append(separator);
s.append("Latest version (stable): ");
s.append(getLatestVersionStable());
s.append(separator);
s.append("Latest version (beta): ");
s.append(getLatestVersionBeta());
s.append(separator);
s.append("Latest supported version (stable): ");
s.append(getLastSupportedVersionStable());
s.append(separator);
s.append("Latest supported version (beta): ");
s.append(getLastSupportedVersionBeta());
s.append(separator);
return s;
}
CVariant CUpdateInfo::propertyByIndex(const BlackMisc::CPropertyIndex &index) const
{
if (index.isMyself()) { return CVariant::from(*this); }
if (ITimestampBased::canHandleIndex(index)) { return ITimestampBased::propertyByIndex(index); }
ColumnIndex i = index.frontCasted<ColumnIndex>();
switch (i)
{
case IndexDownloadUrlsStable:
return CVariant::fromValue(this->m_downloadsStableUrls);
case IndexDownloadUrlsBeta:
return CVariant::fromValue(this->m_downloadsBetaUrls);
case IndexLastSupportedVersionStable:
return CVariant::fromValue(this->m_lastSupportedVersionStable);
case IndexLatestVersionStable:
return CVariant::fromValue(this->m_latestVersionStable);
case IndexLastSupportedVersionBeta:
return CVariant::fromValue(this->m_lastSupportedVersionBeta);
case IndexLatestVersionBeta:
return CVariant::fromValue(this->m_latestVersionBeta);
default:
return CValueObject::propertyByIndex(index);
}
}
void CUpdateInfo::setPropertyByIndex(const CPropertyIndex &index, const CVariant &variant)
{
if (index.isMyself()) { (*this) = variant.to<CUpdateInfo>(); return; }
if (ITimestampBased::canHandleIndex(index))
{
ITimestampBased::setPropertyByIndex(index, variant);
return;
}
ColumnIndex i = index.frontCasted<ColumnIndex>();
switch (i)
{
case IndexDownloadUrlsStable:
this->m_downloadsStableUrls = variant.value<CUrlList>();
break;
case IndexDownloadUrlsBeta:
this->m_downloadsBetaUrls = variant.value<CUrlList>();
break;
case IndexLastSupportedVersionStable:
this->m_lastSupportedVersionStable = variant.toQString();
break;
case IndexLatestVersionStable:
this->m_latestVersionStable = variant.toQString();
break;
case IndexLastSupportedVersionBeta:
this->m_lastSupportedVersionBeta = variant.toQString();
break;
case IndexLatestVersionBeta:
this->m_latestVersionBeta = variant.toQString();
break;
default:
CValueObject::setPropertyByIndex(index, variant);
break;
}
}
} // ns
} // ns

View File

@@ -1,139 +0,0 @@
/* Copyright (C) 2015
* swift project community / contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
//! \file
#ifndef BLACKCORE_DATA_UPDATEINFO_H
#define BLACKCORE_DATA_UPDATEINFO_H
#include "blackcore/blackcoreexport.h"
#include "blackmisc/datacache.h"
#include "blackmisc/metaclass.h"
#include "blackmisc/network/urllist.h"
#include "blackmisc/propertyindex.h"
#include "blackmisc/timestampbased.h"
#include "blackmisc/valueobject.h"
#include "blackmisc/variant.h"
#include <QMetaType>
#include <QString>
namespace BlackCore
{
namespace Data
{
//! Download locations and versions
class BLACKCORE_EXPORT CUpdateInfo :
public BlackMisc::CValueObject<CUpdateInfo>,
public BlackMisc::ITimestampBased
{
public:
//! Properties by index
enum ColumnIndex
{
IndexDownloadUrlsStable = BlackMisc::CPropertyIndex::GlobalIndexCUpdateInfo,
IndexDownloadUrlsBeta,
IndexLatestVersionStable,
IndexLastSupportedVersionStable,
IndexLatestVersionBeta,
IndexLastSupportedVersionBeta
};
//! Default constructor
CUpdateInfo();
//! Destructor.
~CUpdateInfo() {}
//! Download URLs, ie here one can download installer
const BlackMisc::Network::CUrlList &getDownloadUrlsBeta() const { return m_downloadsBetaUrls; }
//! Download URLs, ie here one can download installer
const BlackMisc::Network::CUrlList &getDownloadUrlsStable() const { return m_downloadsStableUrls; }
//! Download URLs
BlackMisc::Network::CUrlList getDownloadUrls() const;
//! Latest version stable channel
const QString &getLatestVersionStable() const { return m_latestVersionStable; }
//! Latest version beta channel
const QString &getLatestVersionBeta() const { return m_latestVersionBeta; }
//! Latest version
QString getLatestVersion() const;
//! Version channel (Beta, Stable)
QString getChannel() const;
//! Last supported version stable
const QString &getLastSupportedVersionStable() const { return m_lastSupportedVersionStable; }
//! Last supported version beta
const QString &getLastSupportedVersionBeta() const { return m_lastSupportedVersionStable; }
//! Productive settings?
bool isDevelopment() const { return m_development; }
//! Same type
bool hasSameType(const CUpdateInfo &otherDownload) const;
//! Productive settings?
void setDevelopment(bool development) { m_development = development; }
//! \copydoc BlackMisc::Mixin::String::toQString
QString convertToQString(bool i18n = false) const;
//! To string
QString convertToQString(const QString &separator, bool i18n = false) const;
//! \copydoc BlackMisc::Mixin::Index::propertyByIndex
BlackMisc::CVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const;
//! \copydoc BlackMisc::Mixin::Index::setPropertyByIndex
void setPropertyByIndex(const BlackMisc::CPropertyIndex &index, const BlackMisc::CVariant &variant);
private:
bool m_development = false; //!< for development
BlackMisc::Network::CUrlList m_downloadsStableUrls; //!< Download URLs, here I get the installer
BlackMisc::Network::CUrlList m_downloadsBetaUrls; //!< Download URLs, here I get the installer
QString m_latestVersionStable; //!< latest version
QString m_lastSupportedVersionStable; //!< last supported version
QString m_latestVersionBeta; //!< latest version
QString m_lastSupportedVersionBeta; //!< last supported version
BLACK_METACLASS(
CUpdateInfo,
BLACK_METAMEMBER(timestampMSecsSinceEpoch),
BLACK_METAMEMBER(development),
BLACK_METAMEMBER(downloadsStableUrls),
BLACK_METAMEMBER(downloadsBetaUrls),
BLACK_METAMEMBER(latestVersionStable),
BLACK_METAMEMBER(lastSupportedVersionStable),
BLACK_METAMEMBER(latestVersionBeta),
BLACK_METAMEMBER(lastSupportedVersionBeta)
);
};
//! Trait for global setup data
struct TUpdateInfo : public BlackMisc::TDataTrait<CUpdateInfo>
{
//! Key in data cache
static const char *key() { return "version"; }
//! First load is synchronous
static constexpr bool isPinned() { return true; }
};
} // ns
} // ns
Q_DECLARE_METATYPE(BlackCore::Data::CUpdateInfo)
#endif // guard