diff options
| author | Tom Tanner <thosrtanner2@users.sourceforge.net> | 2015-08-02 21:58:02 +0100 |
|---|---|---|
| committer | Tom Tanner <thosrtanner2@users.sourceforge.net> | 2015-08-02 21:58:02 +0100 |
| commit | 9f7bec01d00ffc518ac9ec0c52e1a7184ea3cfac (patch) | |
| tree | a00f4e53186d58eef1954245496456756efdb5cc | |
| parent | 643a50ad5a6f6851db63ece41a399d9783dc5acd (diff) | |
| parent | eaaa1b312dfd8ab0fed677dd9eb368c84c03a758 (diff) | |
Merge
| -rw-r--r-- | src/installationmanager.cpp | 60 | ||||
| -rw-r--r-- | src/selfupdater.cpp | 6 |
2 files changed, 24 insertions, 42 deletions
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp index c036a373..71b38139 100644 --- a/src/installationmanager.cpp +++ b/src/installationmanager.cpp @@ -124,23 +124,16 @@ void InstallationManager::mapToArchive(const DirectoryTree::Node *node, std::wst }
for (DirectoryTree::const_leaf_iterator iter = node->leafsBegin(); iter != node->leafsEnd(); ++iter) {
- if (! data[iter->getIndex()]->getSkip()) {
- std::wstring newp((path + iter->getName().toStdWString()));
- std::wstring oldp(data[iter->getIndex()]->getOutputFileName());
- qDebug() << "outputting to " << QString::fromStdWString(newp) << " but already outputting to " << QString::fromStdWString(oldp);
- }
- data[iter->getIndex()]->setSkip(false);
std::wstring temp = path + iter->getName().toStdWString();
- data[iter->getIndex()]->setOutputFileName(temp.c_str());
+ data[iter->getIndex()]->addOutputFileName(temp.c_str());
}
for (DirectoryTree::const_node_iterator iter = node->nodesBegin(); iter != node->nodesEnd(); ++iter) {
+ std::wstring temp = path + (*iter)->getData().name.toStdWString();
if ((*iter)->getData().index != -1) {
- data[(*iter)->getData().index]->setSkip(false);
- std::wstring temp = path + (*iter)->getData().name.toStdWString();
- data[(*iter)->getData().index]->setOutputFileName(temp.c_str());
+ data[(*iter)->getData().index]->addOutputFileName(temp.c_str());
}
- mapToArchive(*iter, path + (*iter)->getData().name.toStdWString(), data);
+ mapToArchive(*iter, temp, data);
}
}
@@ -151,11 +144,6 @@ void InstallationManager::mapToArchive(const DirectoryTree::Node *baseNode) size_t size;
m_CurrentArchive->getFileList(data, size);
- // first disable all files + folders, we will re-enable those present in baseNode
- for (size_t i = 0; i < size; ++i) {
- data[i]->setSkip(true);
- }
-
std::wstring currentPath;
mapToArchive(baseNode, currentPath, data);
@@ -174,32 +162,29 @@ bool InstallationManager::unpackSingleFile(const QString &fileName) for (size_t i = 0; i < size; ++i) {
if (_wcsicmp(data[i]->getFileName(), ToWString(fileName).c_str()) == 0) {
available = true;
- data[i]->setSkip(false);
- data[i]->setOutputFileName(ToWString(baseName).c_str());
+ data[i]->addOutputFileName(ToWString(baseName).c_str());
m_TempFilesToDelete.insert(baseName);
- } else {
- data[i]->setSkip(true);
}
}
- if (available) {
- m_InstallationProgress.setWindowTitle(tr("Extracting files"));
- m_InstallationProgress.setLabelText(QString());
- m_InstallationProgress.setValue(0);
- m_InstallationProgress.setWindowModality(Qt::WindowModal);
- m_InstallationProgress.show();
+ if (!available) {
+ return false;
+ }
- bool res = m_CurrentArchive->extract(ToWString(QDir::toNativeSeparators(QDir::tempPath())).c_str(),
- new MethodCallback<InstallationManager, void, float>(this, &InstallationManager::updateProgress),
- new MethodCallback<InstallationManager, void, LPCWSTR>(this, &InstallationManager::dummyProgressFile),
- new MethodCallback<InstallationManager, void, LPCWSTR>(this, &InstallationManager::report7ZipError));
+ m_InstallationProgress.setWindowTitle(tr("Extracting files"));
+ m_InstallationProgress.setLabelText(QString());
+ m_InstallationProgress.setValue(0);
+ m_InstallationProgress.setWindowModality(Qt::WindowModal);
+ m_InstallationProgress.show();
- m_InstallationProgress.hide();
+ bool res = m_CurrentArchive->extract(ToWString(QDir::toNativeSeparators(QDir::tempPath())).c_str(),
+ new MethodCallback<InstallationManager, void, float>(this, &InstallationManager::updateProgress),
+ new MethodCallback<InstallationManager, void, LPCWSTR>(this, &InstallationManager::dummyProgressFile),
+ new MethodCallback<InstallationManager, void, LPCWSTR>(this, &InstallationManager::report7ZipError));
- return res;
- } else {
- return false;
- }
+ m_InstallationProgress.hide();
+
+ return res;
}
@@ -256,14 +241,11 @@ QStringList InstallationManager::extractFiles(const QStringList &filesOrig, bool ++targetFile;
}
}
- data[i]->setOutputFileName(targetFile);
+ data[i]->addOutputFileName(targetFile);
result.append(QDir::tempPath().append("/").append(ToQString(targetFile)));
- data[i]->setSkip(false);
m_TempFilesToDelete.insert(ToQString(targetFile));
- } else {
- data[i]->setSkip(true);
}
}
diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index 071ee51c..9c151746 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -255,9 +255,9 @@ void SelfUpdater::installUpdate() QString outputName = ToQString(data[i]->getFileName());
if (outputName.startsWith("ModOrganizer\\", Qt::CaseInsensitive)) {
outputName = outputName.mid(13);
- data[i]->setOutputFileName(ToWString(outputName).c_str());
- } else if (outputName == "ModOrganizer") {
- data[i]->setSkip(true);
+ data[i]->addOutputFileName(ToWString(outputName).c_str());
+ } else if (outputName != "ModOrganizer") {
+ data[i]->addOutputFileName(ToWString(outputName).c_str());
}
QFileInfo file(mopath.mid(0).append("/").append(outputName));
if (file.exists() && file.isFile()) {
|
