diff --git a/code/ryzom/tools/client/ryzom_installer/src/configfile.cpp b/code/ryzom/tools/client/ryzom_installer/src/configfile.cpp index cf5be876c..99f1a54a8 100644 --- a/code/ryzom/tools/client/ryzom_installer/src/configfile.cpp +++ b/code/ryzom/tools/client/ryzom_installer/src/configfile.cpp @@ -25,7 +25,7 @@ CConfigFile *CConfigFile::s_instance = NULL; CConfigFile::CConfigFile(QObject *parent):QObject(parent), m_version(-1), - m_defaultServerIndex(0), m_defaultProfileIndex(0), m_use64BitsClient(false), m_shouldUninstallOldClient(true) + m_defaultServerIndex(0), m_defaultProfileIndex(0), m_installerCopied(false), m_use64BitsClient(false), m_shouldUninstallOldClient(true) { s_instance = this; @@ -945,8 +945,8 @@ OperationStep CConfigFile::getInstallNextStep() const } } - // current installer more recent than installed one - if (compareInstallersVersion() == 1) return CopyInstaller; + // current installer more recent than installed one and not already copied + if (!m_installerCopied && compareInstallersVersion() == 1) return CopyInstaller; // no default profile if (profile.id.isEmpty()) @@ -992,7 +992,7 @@ OperationStep CConfigFile::getInstallNextStep() const // current installer more recent than installed one switch (compareInstallersVersion()) { - // current installer more recent, copy it + // current installer more recent, should be already copied case 1: break; // current installer older, launch the more recent installer diff --git a/code/ryzom/tools/client/ryzom_installer/src/configfile.h b/code/ryzom/tools/client/ryzom_installer/src/configfile.h index d1560c40e..df13b7a51 100644 --- a/code/ryzom/tools/client/ryzom_installer/src/configfile.h +++ b/code/ryzom/tools/client/ryzom_installer/src/configfile.h @@ -57,6 +57,9 @@ public: QString getLanguage() const { return m_language; } + bool getInstallerCopied() const { return m_installerCopied; } + void setInstallerCopied(bool copied) { m_installerCopied = copied; } + int getProfilesCount() const; CProfile getProfile(int i = -1) const; CProfile getProfile(const QString &id) const; @@ -145,6 +148,7 @@ private: int m_version; int m_defaultServerIndex; int m_defaultProfileIndex; + bool m_installerCopied; CServers m_servers; CProfiles m_profiles; diff --git a/code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp b/code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp index f9e086c16..f5dc89086 100644 --- a/code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp +++ b/code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp @@ -791,6 +791,9 @@ void COperationDialog::copyInstaller() #endif createShortcut(shortcut, name, executable, "", icon, ""); + + // installer already copied, don't need to copy it again + config->setInstallerCopied(true); } emit done();