diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:45:19 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:45:19 +0000 |
commit | 4e1a5c3eebf50657629e2b4eba13649c2b599598 (patch) | |
tree | 7757743b67ed172d113dad73a3daa5b8aa6f871a /katapult/plugins/catalogs/amarokcatalog/coverimage.cpp | |
download | katapult-4e1a5c3eebf50657629e2b4eba13649c2b599598.tar.gz katapult-4e1a5c3eebf50657629e2b4eba13649c2b599598.zip |
Added abandoned KDE3 version of katapult
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/katapult@1084407 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'katapult/plugins/catalogs/amarokcatalog/coverimage.cpp')
-rw-r--r-- | katapult/plugins/catalogs/amarokcatalog/coverimage.cpp | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/katapult/plugins/catalogs/amarokcatalog/coverimage.cpp b/katapult/plugins/catalogs/amarokcatalog/coverimage.cpp new file mode 100644 index 0000000..4ea3f24 --- /dev/null +++ b/katapult/plugins/catalogs/amarokcatalog/coverimage.cpp @@ -0,0 +1,106 @@ +/*************************************************************************** + * Copyright (C) 2005 by Bastian Holst * + * bastianholst@gmx.de * + * * + * 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., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include <kmdcodec.h> +#include <qimage.h> +#include <qdir.h> + +#include "coverimage.h" + +CoverImage::CoverImage() +{ + setArtist(QString()); + setAlbum(QString()); + setURL(QString()); + + _coverfolder = QDir::homeDirPath(); + _coverfolder.append("/.kde/share/apps/amarok/albumcovers/"); + _largefolder = QString(_coverfolder).append("large/"); + _cachefolder = QString(_coverfolder).append("cache/"); + + QDir foldertest; + foldertest.setPath(_coverfolder); + if ( !foldertest.exists() ) + foldertest.mkdir(_coverfolder); + if ( !foldertest.exists(_largefolder) ) + foldertest.mkdir(_largefolder); + if ( !foldertest.exists(_cachefolder) ) + foldertest.mkdir(_cachefolder); +} + +QImage CoverImage::load(int size) const +{ + QString imagepath(_cachefolder); + KMD5 md5sum(artist().lower().utf8()+album().lower().utf8()); + imagepath.append(QString::number ( size )).append("@").append(md5sum.hexDigest()); + QImage image( imagepath ); + if ( image.isNull() ) + { + if ( !url().isEmpty() ) { + image.load(url()); + } else { + imagepath = _largefolder; + imagepath.append(md5sum.hexDigest()); + image.load( imagepath ); + } + + if ( !image.isNull() ) { + QString savepath(_cachefolder); + savepath.append(QString::number ( size )).append("@").append(md5sum.hexDigest()); + image = image.smoothScale(size, size, QImage::ScaleMin); + if ( !url().isEmpty() ) { + image.save( savepath, QImage::imageFormat ( url() )); + } else { + image.save( savepath, QImage::imageFormat ( imagepath )); + } + } + } + return image; +} + +QString CoverImage::artist() const +{ + return _artist; +} + +QString CoverImage::album() const +{ + return _album; +} + +QString CoverImage::url() const +{ + return _url; +} + +void CoverImage::setArtist(const QString& artist) +{ + _artist = artist; +} + +void CoverImage::setAlbum(const QString& album) +{ + _album = album; +} + +void CoverImage::setURL(const QString& url) +{ + _url = url; +} |