From e8a75c643646dbb9a9cd376b97f86f2a1d27f3be Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sat, 25 Jun 2016 21:02:14 +0200 Subject: [PATCH] Fixed #25. --- resources/text/CHANGELOG | 6 ++++++ src/miscellaneous/skinfactory.cpp | 33 +++++++++++++++++++++---------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG index 4c5c0907a..e74645c34 100755 --- a/resources/text/CHANGELOG +++ b/resources/text/CHANGELOG @@ -1,3 +1,9 @@ +3.3.2 +————— + +Fixed: +▪ Fixed problem with skin loading. (bug #25) + 3.3.1 ————— diff --git a/src/miscellaneous/skinfactory.cpp b/src/miscellaneous/skinfactory.cpp index 0a6955dfe..e038a711e 100755 --- a/src/miscellaneous/skinfactory.cpp +++ b/src/miscellaneous/skinfactory.cpp @@ -32,21 +32,34 @@ SkinFactory::~SkinFactory() { } void SkinFactory::loadCurrentSkin() { - const QString skin_name_from_settings = selectedSkinName(); + QList skin_names_to_try; + + skin_names_to_try.append(selectedSkinName()); + skin_names_to_try.append(APP_SKIN_DEFAULT); + bool skin_parsed; - const Skin skin_data = skinInfo(skin_name_from_settings, &skin_parsed); + Skin skin_data; + QString skin_name; - if (skin_parsed) { - loadSkinFromData(skin_data); + while (!skin_names_to_try.isEmpty()) { + skin_name = skin_names_to_try.takeFirst(); + skin_data = skinInfo(skin_name, &skin_parsed); - // Set this 'Skin' object as active one. - m_currentSkin = skin_data; + if (skin_parsed) { + loadSkinFromData(skin_data); - qDebug("Skin '%s' loaded.", qPrintable(skin_name_from_settings)); - } - else { - qFatal("Skin '%s' not loaded because its data are corrupted. No skin is loaded now!", qPrintable(skin_name_from_settings)); + // Set this 'Skin' object as active one. + m_currentSkin = skin_data; + + qDebug("Skin '%s' loaded.", qPrintable(skin_name)); + return; + } + else { + qWarning("Failed to load skin '%s'.", qPrintable(skin_name)); + } } + + qFatal("Failed to load selected or default skin(s). Quitting!"); } void SkinFactory::loadSkinFromData(const Skin &skin) {