From 737b74aa294e05cebc2cd1e48a4fa66cf62f222e Mon Sep 17 00:00:00 2001 From: Sebastian Trueg Date: Fri, 14 Dec 2007 19:23:02 +0000 Subject: 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: peter.penz@gmx.at CCMAIL: ereslibre@kde.org svn path=/trunk/KDE/kdebase/apps/; revision=748547 --- src/dolphincategorydrawer.cpp | 81 ++++--------------------------------------- 1 file changed, 6 insertions(+), 75 deletions(-) (limited to 'src/dolphincategorydrawer.cpp') 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 #include #include @@ -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; } -- cgit v1.3