Porting Kickoff item delegate to Plasma::Delegate

this removes a lot of duplication

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=788915
This commit is contained in:
Marco Martin 2008-03-22 20:26:46 +00:00
parent 3a6c262665
commit 92dd45a555

View File

@ -47,10 +47,7 @@ namespace Plasma
class Delegate::Private
{
public:
Private()
{
roles[ColumnTypeRole] = MainColumn;
}
Private() { }
~Private() { }
@ -210,7 +207,7 @@ void Delegate::paint(QPainter *painter, const QStyleOptionViewItem& option, cons
QRect subTitleRect = d->subTitleRect(option, index);
bool uniqueTitle = !index.data(SubTitleMandatoryRole).value<bool>();// true;
bool uniqueTitle = !index.data(d->roles[SubTitleMandatoryRole]).value<bool>();// true;
if (uniqueTitle) {
QModelIndex sib = index.sibling(index.row() + 1, index.column());
if (sib.isValid()) {
@ -306,21 +303,24 @@ void Delegate::paint(QPainter *painter, const QStyleOptionViewItem& option, cons
// draw icon
QIcon decorationIcon = index.data(Qt::DecorationRole).value<QIcon>();
if (index.data(d->roles[ColumnTypeRole]).toInt() == MainColumn) {
if (index.data(d->roles[ColumnTypeRole]).toInt() == SecondaryActionColumn) {
if (hover) {
const int delta = floor((qreal)(ICON_SIZE - ACTION_ICON_SIZE)/2.0);
decorationRect.adjust(delta, delta-1, -delta-1, -delta);
decorationIcon.paint(painter, decorationRect, option.decorationAlignment);
}
//If not hover don't draw anything
// as default always draw as main column
} else {
if (!hover) {
decorationRect.adjust(2, 2, -2, -2);
}
decorationIcon.paint(painter, decorationRect, option.decorationAlignment);
//if d->roles[ColumnTypeRole] == SecondaryActionColumn only display the icon on mouse hover
} else if (hover) {
const int delta = floor((qreal)(ICON_SIZE - ACTION_ICON_SIZE)/2.0);
decorationRect.adjust(delta, delta-1, -delta-1, -delta);
decorationIcon.paint(painter, decorationRect, option.decorationAlignment);
}
painter->save();