┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphincategorydrawer.cpp
diff options
context:
space:
mode:
authorSebastian Trueg <[email protected]>2007-12-14 19:23:02 +0000
committerSebastian Trueg <[email protected]>2007-12-14 19:23:02 +0000
commit737b74aa294e05cebc2cd1e48a4fa66cf62f222e (patch)
tree06b120d9220dc880ef2ae4f9624fca9e3d047044 /src/dolphincategorydrawer.cpp
parente983e0e38e43a93de158e105d6a18900521a2803 (diff)
Use the same codebase for rating drawing as in KRatingWidget and playground/nepomuk.
For KDE 4.1 we will export this in kdelibs/nepomuk CCMAIL: [email protected] CCMAIL: [email protected] svn path=/trunk/KDE/kdebase/apps/; revision=748547
Diffstat (limited to 'src/dolphincategorydrawer.cpp')
-rw-r--r--src/dolphincategorydrawer.cpp81
1 files changed, 6 insertions, 75 deletions
diff --git a/src/dolphincategorydrawer.cpp b/src/dolphincategorydrawer.cpp
index 872a0c337..9996672d7 100644
--- a/src/dolphincategorydrawer.cpp
+++ b/src/dolphincategorydrawer.cpp
@@ -19,7 +19,7 @@
*/
#include "dolphincategorydrawer.h"
-
+#include "ratingpainter.h"
#include <QPainter>
#include <QFile>
#include <QDir>
@@ -211,80 +211,11 @@ void DolphinCategoryDrawer::drawCategory(const QModelIndex &index, int sortRole,
paintText = false;
paintIcon = false;
- starRect.setTop(option.rect.top() + (option.rect.height() / 2) - (iconSize / 2));
- starRect.setSize(QSize(iconSize, iconSize));
-
- QPixmap pixmap = KIconLoader::global()->loadIcon("rating", KIconLoader::Small);
- QPixmap smallPixmap = KIconLoader::global()->loadIcon("rating", KIconLoader::NoGroup, iconSize / 2);
- QPixmap disabledPixmap = KIconLoader::global()->loadIcon("rating", KIconLoader::Small);
-
- QImage img = disabledPixmap.toImage();
- Blitz::grayscale(img);
- disabledPixmap = QPixmap::fromImage(img);
-
- int rating = category.toInt();
-
- for (int i = 0; i < rating - (rating % 2); i += 2) {
- painter->drawPixmap(starRect, pixmap);
-
- if (option.direction == Qt::LeftToRight)
- {
- starRect.setLeft(starRect.left() + iconSize + (iconSize / 4) /* separator between stars */);
- starRect.setRight(starRect.right() + iconSize + (iconSize / 4) /* separator between stars */);
- }
- else
- {
- starRect.setLeft(starRect.left() - iconSize - (iconSize / 4) /* separator between stars */);
- starRect.setRight(starRect.right() - iconSize - (iconSize / 4) /* separator between stars */);
- }
- }
-
- if (rating && rating % 2) {
- if (option.direction == Qt::RightToLeft)
- {
- starRect.setLeft(starRect.left() + (iconSize / 2) /* separator between stars */);
- }
-
- starRect.setTop(option.rect.top() + (option.rect.height() / 2) - (iconSize / 4));
- starRect.setSize(QSize(iconSize / 2, iconSize / 2));
- painter->drawPixmap(starRect, smallPixmap);
- starRect.setTop(opt.rect.top() + (option.rect.height() / 2) - (iconSize / 2));
-
- if (option.direction == Qt::LeftToRight)
- {
- starRect.setLeft(starRect.left() + (iconSize / 2) + (iconSize / 4));
- starRect.setRight(starRect.right() + (iconSize / 2) + (iconSize / 4));
- }
- else
- {
- starRect.setLeft(starRect.left() - (iconSize / 2) - (iconSize / 4));
- starRect.setRight(starRect.right() - (iconSize / 2) - (iconSize / 4));
- }
-
- if (option.direction == Qt::RightToLeft)
- {
- starRect.setLeft(starRect.left() - (iconSize / 2));
- starRect.setRight(starRect.right() - (iconSize / 2));
- }
-
- starRect.setSize(QSize(iconSize, iconSize));
- }
-
- for (int i = rating; i < 9; i += 2) {
- painter->drawPixmap(starRect, disabledPixmap);
-
- if (option.direction == Qt::LeftToRight)
- {
- starRect.setLeft(starRect.left() + iconSize + (iconSize / 4));
- starRect.setRight(starRect.right() + iconSize + (iconSize / 4));
- }
- else
- {
- starRect.setLeft(starRect.left() - iconSize - (iconSize / 4));
- starRect.setRight(starRect.right() - iconSize - (iconSize / 4));
- }
- }
-
+ painter->setLayoutDirection( option.direction );
+ QRect ratingRect( option.rect );
+ ratingRect.setTop(option.rect.top() + (option.rect.height() / 2) - (iconSize / 2));
+ ratingRect.setHeight( iconSize );
+ Nepomuk::RatingPainter::drawRating( painter, ratingRect, Qt::AlignLeft, category.toInt() );
break;
}