/**
* This file is part of the KDE project
- * Copyright (C) 2007 Rafael Fernández López <ereslibre@gmail.com>
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
*/
#include "dolphincategorydrawer.h"
-
+#include "ratingpainter.h"
#include <QPainter>
#include <QFile>
#include <QDir>
{
QRect starRect = option.rect;
- int iconSize = KIconLoader::global()->currentSize(K3Icon::Small);
- QVariant categoryVariant = index.model()->data(index, KCategorizedSortFilterProxyModel::CategoryRole);
+ int iconSize = KIconLoader::global()->currentSize(KIconLoader::Small);
+ QVariant categoryVariant = index.model()->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole);
if (!categoryVariant.isValid())
{
}
else if (option.state & QStyle::State_MouseOver)
{
- QColor hover = option.palette.color(QPalette::Highlight).light();
+ QColor hover = option.palette.color(QPalette::Highlight);
hover.setAlpha(88);
QLinearGradient gradient(option.rect.topLeft(),
if (!faceIconPath.isEmpty())
{
- icon = QPixmap::fromImage(QImage(faceIconPath).scaledToHeight(KIconLoader::global()->currentSize(K3Icon::MainToolbar), Qt::SmoothTransformation));
+ icon = QPixmap::fromImage(QImage(faceIconPath).scaledToHeight(option.fontMetrics.height(), Qt::SmoothTransformation));
}
else
{
- icon = KIconLoader::global()->loadIcon("user", K3Icon::MainToolbar, option.fontMetrics.height());
+ icon = KIconLoader::global()->loadIcon("user", KIconLoader::NoGroup, option.fontMetrics.height());
}
opt.rect.setTop(opt.rect.top() - icon.height());
// so the group icon drawn is that one particularly. This way assures the drawn
// icon is the one of the mimetype of the group itself. (ereslibre)
icon = KIconLoader::global()->loadMimeTypeIcon(item.mimeTypePtr()->iconName(),
- K3Icon::MainToolbar);
+ KIconLoader::NoGroup, option.fontMetrics.height());
opt.rect.setTop(opt.rect.top() - icon.height());
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", K3Icon::Small);
- QPixmap smallPixmap = KIconLoader::global()->loadIcon("rating", K3Icon::NoGroup, iconSize / 2);
- QPixmap disabledPixmap = KIconLoader::global()->loadIcon("rating", K3Icon::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;
}
int DolphinCategoryDrawer::categoryHeight(const QStyleOption &option) const
{
- int iconSize = KIconLoader::global()->currentSize(K3Icon::Small);
+ int iconSize = KIconLoader::global()->currentSize(KIconLoader::Small);
return qMax(option.fontMetrics.height() + (iconSize / 4) * 2 + 2, iconSize + (iconSize / 4) * 2 + 2) /* 2 gradient */;
}