[libcalamaresui] Use meaningful type for Upload info

- use a struct with named fields instead of a tuple
- offer an operator bool() for the logic of does-it-make-sense-to-upload
This commit is contained in:
Adriaan de Groot 2021-12-07 12:53:43 +01:00
parent 3234de5753
commit b07c9bb4af
3 changed files with 13 additions and 7 deletions

View File

@ -162,14 +162,15 @@ uploadServerFromMap( const QVariantMap& map )
if ( typestring.isEmpty() || urlstring.isEmpty() ) if ( typestring.isEmpty() || urlstring.isEmpty() )
{ {
return Branding::UploadServerInfo( Branding::UploadServerType::None, QUrl(), 0 ); return Branding::UploadServerInfo { Branding::UploadServerType::None, QUrl(), 0 };
} }
bool bogus = false; // we don't care about type-name lookup success here bool bogus = false; // we don't care about type-name lookup success here
return Branding::UploadServerInfo( return Branding::UploadServerInfo {
names.find( typestring, bogus ), names.find( typestring, bogus ),
QUrl( urlstring, QUrl::ParsingMode::StrictMode ), QUrl( urlstring, QUrl::ParsingMode::StrictMode ),
sizeLimitKiB >= 0 ? CalamaresUtils::KiBtoBytes( static_cast< unsigned long long >( sizeLimitKiB ) ) : -1 ); sizeLimitKiB >= 0 ? CalamaresUtils::KiBtoBytes( static_cast< unsigned long long >( sizeLimitKiB ) ) : -1
};
} }
/** @brief Load the @p map with strings from @p config /** @brief Load the @p map with strings from @p config

View File

@ -227,7 +227,14 @@ public:
* is irrelevant and usually empty), the URL for the upload and the size limit of upload * is irrelevant and usually empty), the URL for the upload and the size limit of upload
* in bytes (for configuration value < 0, it serves -1, which stands for having no limit). * in bytes (for configuration value < 0, it serves -1, which stands for having no limit).
*/ */
using UploadServerInfo = std::tuple< UploadServerType, QUrl, qint64 >; struct UploadServerInfo
{
UploadServerType type;
QUrl url;
qint64 size;
operator bool() const { return type != Calamares::Branding::UploadServerType::None && size != 0; }
};
UploadServerInfo uploadServer() const { return m_uploadServer; } UploadServerInfo uploadServer() const { return m_uploadServer; }
/** /**

View File

@ -152,9 +152,7 @@ ViewManager::insertViewStep( int before, ViewStep* step )
void void
ViewManager::onInstallationFailed( const QString& message, const QString& details ) ViewManager::onInstallationFailed( const QString& message, const QString& details )
{ {
const auto webPaste = Calamares::Branding::instance()->uploadServer(); bool shouldOfferWebPaste = bool( Calamares::Branding::instance()->uploadServer() );
bool shouldOfferWebPaste
= std::get< 0 >( webPaste ) != Calamares::Branding::UploadServerType::None and std::get< 2 >( webPaste ) != 0;
cError() << "Installation failed:" << message; cError() << "Installation failed:" << message;
cDebug() << Logger::SubEntry << "- message:" << message; cDebug() << Logger::SubEntry << "- message:" << message;