From 2efe2314e244e04f8d5fc61976e30a99240d54b2 Mon Sep 17 00:00:00 2001 From: louis Date: Wed, 29 Jul 2015 18:32:03 +0200 Subject: [PATCH] fixed bug in checking skin version --- HISTORY | 2 ++ config.c | 15 +++++++++------ setup.c | 50 ++++++++++++++++++++++++++++++-------------------- 3 files changed, 41 insertions(+), 26 deletions(-) diff --git a/HISTORY b/HISTORY index 154076a..f2c21ff 100644 --- a/HISTORY +++ b/HISTORY @@ -399,4 +399,6 @@ Version 0.6.1 Version 0.6.2 - added progressmodeonly viewelement in displayreplay +- fixed bug in checking skin version + diff --git a/config.c b/config.c index fb8abee..9b288c4 100644 --- a/config.c +++ b/config.c @@ -359,14 +359,17 @@ bool cDesignerConfig::CheckVersion(string name, string &neededVersion) { int verMinor = atoi(tokensVer[1].c_str()); int verMikro = atoi(tokensVer[2].c_str()); - if (minVerMajor > verMajor) { + if (minVerMajor < verMajor) + return true; + if (minVerMajor > verMajor) return false; - } else if (minVerMinor > verMinor) { + if (minVerMinor < verMinor) + return true; + if (minVerMinor > verMinor) return false; - } else if (minVerMikro > verMikro) { - return false; - } - return true; + if (minVerMikro <= verMikro) + return true; + return false; } bool cDesignerConfig::SkinInstalled(string name) { diff --git a/setup.c b/setup.c index 71ef0b9..e2abab4 100644 --- a/setup.c +++ b/setup.c @@ -201,22 +201,32 @@ eOSState cSkinDesignerSetup::ProcessKey(eKeys Key) { if (Key == kRed) { string versionNeeded = ""; bool versionOk = config.CheckVersion(currentSkin, versionNeeded); - if (!versionOk) { - cString error = cString::sprintf("%s %s %s %s %s", - tr("Skin Designer"), - tr("version"), - versionNeeded.c_str(), - tr("or higher"), - tr("needed")); - Skins.Message(mtError, *error); - return state; - } if (type == itSkinRepo) { + if (!versionOk) { + cString error = cString::sprintf("%s %s %s %s %s", + tr("Skin Designer"), + tr("version"), + versionNeeded.c_str(), + tr("or higher"), + tr("needed")); + Skins.Message(mtError, *error); + return state; + } Skins.Message(mtStatus, *cString::sprintf("%s ...", tr("Installing Skin"))); StartInstallation(currentSkin); } else if (type == itSkinSetup || type == itNoSkinSetup) { bool gitAvailable = StartUpdate(currentSkin); if (gitAvailable) { + if (!versionOk) { + cString error = cString::sprintf("%s %s %s %s %s", + tr("Skin Designer"), + tr("version"), + versionNeeded.c_str(), + tr("or higher"), + tr("needed")); + Skins.Message(mtError, *error); + return state; + } Skins.Message(mtStatus, *cString::sprintf("%s ...", tr("Updating Skin from Git"))); } else { Skins.Message(mtStatus, tr("No Git Repsoitory available")); @@ -402,18 +412,18 @@ eOSState cSkindesignerSkinSetup::ProcessKey(eKeys Key) { case kRed: { string versionNeeded = ""; bool versionOk = config.CheckVersion(skin, versionNeeded); - if (!versionOk) { - cString error = cString::sprintf("%s %s %s %s %s", - tr("Skin Designer"), - tr("version"), - versionNeeded.c_str(), - tr("or higher"), - tr("needed")); - Skins.Message(mtError, *error); - break; - } bool gitAvailable = StartUpdate(skin); if (gitAvailable) { + if (!versionOk) { + cString error = cString::sprintf("%s %s %s %s %s", + tr("Skin Designer"), + tr("version"), + versionNeeded.c_str(), + tr("or higher"), + tr("needed")); + Skins.Message(mtError, *error); + break; + } Skins.Message(mtStatus, *cString::sprintf("%s ...", tr("Updating Skin from Git"))); } else { Skins.Message(mtStatus, tr("No Git Repsoitory available"));