summaryrefslogtreecommitdiffstats
path: root/src/entryiconfactory.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-03-01 19:17:32 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-03-01 19:17:32 +0000
commite38d2351b83fa65c66ccde443777647ef5cb6cff (patch)
tree1897fc20e9f73a81c520a5b9f76f8ed042124883 /src/entryiconfactory.cpp
downloadtellico-e38d2351b83fa65c66ccde443777647ef5cb6cff.tar.gz
tellico-e38d2351b83fa65c66ccde443777647ef5cb6cff.zip
Added KDE3 version of Tellico
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/tellico@1097620 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/entryiconfactory.cpp')
-rw-r--r--src/entryiconfactory.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/entryiconfactory.cpp b/src/entryiconfactory.cpp
new file mode 100644
index 0000000..0f4696d
--- /dev/null
+++ b/src/entryiconfactory.cpp
@@ -0,0 +1,43 @@
+/***************************************************************************
+ copyright : (C) 2005-2006 by Robby Stephenson
+ email : robby@periapsis.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of version 2 of the GNU General Public License as *
+ * published by the Free Software Foundation; *
+ * *
+ ***************************************************************************/
+
+#include "entryiconfactory.h"
+#include "tellico_kernel.h"
+
+#include <kiconloader.h>
+#include <kimageeffect.h>
+
+#include <qimage.h>
+
+using Tellico::EntryIconFactory;
+
+EntryIconFactory::EntryIconFactory(int size_) : QIconFactory(), m_size(size_) {
+ setAutoDelete(true);
+}
+
+QPixmap* EntryIconFactory::createPixmap(const QIconSet&, QIconSet::Size, QIconSet::Mode, QIconSet::State) {
+ QPixmap entryPix = UserIcon(Kernel::self()->collectionTypeName());
+ // if we're 22x22 or smaller, just use entry icon
+ if(m_size < 23) {
+ QImage entryImg = entryPix.convertToImage();
+ entryPix.convertFromImage(entryImg.smoothScale(m_size, m_size, QImage::ScaleMin), 0);
+ return new QPixmap(entryPix);
+ }
+
+ QPixmap newPix = BarIcon(QString::fromLatin1("mime_empty"), m_size);
+ QImage newImg = newPix.convertToImage();
+// QImage blend; Not exactly sure what the coordinates mean, but this seems to work ok.
+ KImageEffect::blendOnLower(m_size/4, m_size/4, entryPix.convertToImage(), newImg);
+ newPix.convertFromImage(newImg, 0);
+ return new QPixmap(newPix);
+}