aboutsummaryrefslogtreecommitdiff
path: root/src/skinreader.cpp
diff options
context:
space:
mode:
authorvovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-07 13:36:34 +0000
committervovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-07 13:36:34 +0000
commit06d1877811fa6aa97dddc0e03bcde4e766928c87 (patch)
treec25462d0e58c3d58c728664440412bf4f16a49ec /src/skinreader.cpp
parent3f6b60f23c44a8ba8dd97ca6f41a16e2af7ef2f7 (diff)
downloadqmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.tar.gz
qmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.tar.bz2
qmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.zip
new directory structure
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@232 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/skinreader.cpp')
-rw-r--r--src/skinreader.cpp144
1 files changed, 0 insertions, 144 deletions
diff --git a/src/skinreader.cpp b/src/skinreader.cpp
deleted file mode 100644
index 64e0aacc9..000000000
--- a/src/skinreader.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2006 by Ilya Kotov *
- * forkotov02@hotmail.ru *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-
-#include <QDir>
-#include <QList>
-#include <QFileInfo>
-#include <QProcess>
-#include <QByteArray>
-#include <QFile>
-
-#include "skinreader.h"
-
-SkinReader::SkinReader(QObject *parent)
- : QObject(parent)
-{
- m_process = new QProcess(this);
- //create cache dir
- QDir dir(QDir::homePath() +"/.qmmp/");
- dir.mkdir("cache");
- dir.cd("cache");
- dir.mkdir("skins");
-}
-
-
-SkinReader::~SkinReader()
-{}
-
-void SkinReader::updateCache()
-{
- QDir dir(QDir::homePath() +"/.qmmp/skins");
- dir.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks);
- QFileInfoList f = dir.entryInfoList();
- //clear removed skins from cache
- QDir cache_dir(QDir::homePath() +"/.qmmp/cache/skins");
- cache_dir.setFilter(QDir::Dirs | QDir::Hidden | QDir::NoDotAndDotDot);
- QFileInfoList d = cache_dir.entryInfoList();
-
- foreach(QFileInfo dirInfo, d)
- {
- bool del = TRUE;
- foreach(QFileInfo fileInfo, f)
- {
- if (fileInfo.baseName () == dirInfo.fileName ())
- {
- del = FALSE;
- break;
- }
- }
- if (del)
- {
- qDebug("SkinReader: deleting %s from cache",
- qPrintable(dirInfo.fileName ()));
-
- cache_dir.cd(dirInfo.fileName ());
- cache_dir.setFilter(QDir::Files | QDir::Hidden);
- QFileInfoList removeList = cache_dir.entryInfoList();
- foreach(QFileInfo to_remove, removeList)
- cache_dir.remove(to_remove.fileName ());
- cache_dir.cdUp();
- cache_dir.rmdir(dirInfo.fileName ());
- }
- }
- //add new skins to cache
- foreach(QFileInfo fileInfo, f)
- {
- bool create = TRUE;
- foreach(QFileInfo dirInfo, d)
- {
- if (fileInfo.baseName () == dirInfo.fileName ())
- {
- create = FALSE;
- break;
- }
- }
- if (create)
- {
- qDebug("SkinReader: adding %s to cache",
- qPrintable(fileInfo.fileName ()));
- cache_dir.mkdir(fileInfo.baseName ());
- QString name = fileInfo.fileName ().toLower();
-
- if (name.endsWith(".tgz") || name.endsWith(".tar.gz"))
- untar(fileInfo.filePath (), cache_dir.absolutePath ()+"/"+
- fileInfo.baseName ());
- if (name.endsWith(".zip") || name.endsWith(".wsz"))
- unzip(fileInfo.filePath (), cache_dir.absolutePath ()+"/"+
- fileInfo.baseName ());
- }
- }
-}
-
-void SkinReader::untar(const QString &from, const QString &to)
-{
- QByteArray array;
- QStringList args;
- //list archive
- args << "tf" <<from;
- m_process->start("tar", args);
- m_process->waitForFinished();
- array = m_process->readAllStandardOutput ();
- QString str = QString(array);
- QStringList outputList = str.split("\n",QString::SkipEmptyParts);
- foreach(QString str, outputList)
- {
- str = str.trimmed();
- args.clear();
- args << "xvfk" << from << "-O" << str;
- m_process->start("tar", args);
- m_process->waitForFinished();
- array = m_process->readAllStandardOutput ();
- QString name = str.right(str.size() - str.indexOf("/",Qt::CaseInsensitive) - 1).trimmed().toLower();
-
- QFile file(to+"/"+name);
- file.open(QIODevice::WriteOnly);
- file.write(array);
- file.close();
- }
-}
-
-void SkinReader::unzip(const QString &from, const QString &to)
-{
- QStringList args;
- args << "-j" << "-o" << "-d" << to << from;
- m_process->start("unzip", args);
- m_process->waitForFinished();
-}
-