summaryrefslogtreecommitdiffstats
path: root/katapult/plugins/catalogs/amarokcatalog/coverimage.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-03 02:45:19 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-03 02:45:19 +0000
commit4e1a5c3eebf50657629e2b4eba13649c2b599598 (patch)
tree7757743b67ed172d113dad73a3daa5b8aa6f871a /katapult/plugins/catalogs/amarokcatalog/coverimage.cpp
downloadkatapult-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.cpp106
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;
+}