summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallbase.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/rbutil/rbutilqt/base/bootloaderinstallbase.cpp b/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
index 72c7526241..7a9258accc 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
@@ -225,18 +225,23 @@ bool BootloaderInstallBase::setOfFile(QString of, QStringList blfile)
225 // strip any path, we don't know the structure in the zip 225 // strip any path, we don't know the structure in the zip
226 QString f = QFileInfo(blfile.at(i)).fileName(); 226 QString f = QFileInfo(blfile.at(i)).fileName();
227 qDebug() << "[BootloaderInstallBase] searching archive for" << f; 227 qDebug() << "[BootloaderInstallBase] searching archive for" << f;
228 int index = contents.indexOf(f); // FIXME: support files in folders 228 // contents.indexOf() works case sensitive. Since the filename
229 if(index >= 0) { 229 // casing is unknown (and might change) do this manually.
230 found = true; 230 // FIXME: support files in folders
231 emit logItem(tr("Extracting firmware %1 from archive") 231 for(int j = 0; j < contents.size(); ++j) {
232 .arg(f), LOGINFO); 232 if(contents.at(j).compare(f, Qt::CaseInsensitive) == 0) {
233 // store in class temporary file 233 found = true;
234 m_tempof.open(); 234 emit logItem(tr("Extracting firmware %1 from archive")
235 m_offile = m_tempof.fileName(); 235 .arg(f), LOGINFO);
236 m_tempof.close(); 236 // store in class temporary file
237 if(!z.extractArchive(m_offile, contents.at(index))) { 237 m_tempof.open();
238 emit logItem(tr("Error extracting firmware from archive"), LOGERROR); 238 m_offile = m_tempof.fileName();
239 found = false; 239 m_tempof.close();
240 if(!z.extractArchive(m_offile, contents.at(j))) {
241 emit logItem(tr("Error extracting firmware from archive"), LOGERROR);
242 found = false;
243 break;
244 }
240 break; 245 break;
241 } 246 }
242 } 247 }