MPEGPlayer: Skip to next file when there is a problem with a video file in all-play...
[kugel-rb.git] / rbutil / rbutilqt / base / rbunzip.cpp
blobf71db5377ee829620395a2fe976bc8ea26af1b30
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
9 * Copyright (C) 2008 by Dominik Riebeling
10 * $Id$
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
20 #include "rbunzip.h"
21 #include <QtCore>
24 //! @brief extract archive to destination
25 UnZip::ErrorCode RbUnZip::extractArchive(const QString& dest)
27 qDebug() << "[UNZIP] extracting archive to" << dest;
28 QStringList files = this->fileList();
29 UnZip::ErrorCode error = Ok;
30 m_abortunzip = false;
32 int total = files.size();
33 for(int i = 0; i < total; i++) {
34 error = this->extractFile(files.at(i), dest, UnZip::ExtractPaths);
35 emit unzipProgress(i + 1, total);
36 QCoreApplication::processEvents(); // update UI
37 if(m_abortunzip)
38 error = SkipAll;
39 if(error != Ok)
40 break;
42 return error;
46 //! @brief abort an extractArchive() operation.
47 void RbUnZip::abortUnzip(void)
49 m_abortunzip = true;
53 //! @brief return total size of extracted files in archive.
54 qulonglong RbUnZip::totalSize(void)
56 QList<ZipEntry> l = this->entryList();
57 qulonglong total = 0;
59 int i = l.size();
60 while(i--)
61 total += l.at(i).uncompressedSize;
63 return total;