File indexing completed on 2024-05-12 16:36:48

0001 /* This file is part of the KDE project
0002  * Copyright (C) 2011 Paul Mendez <paulestebanms@gmail.com>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Library General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2 of the License, or ( at your option ) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Library General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Library General Public License
0015  * along with this library; see the file COPYING.LIB.  If not, write to
0016  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  * Boston, MA 02110-1301, USA.
0018  */
0019 
0020 #include "KPrSlidesSorterItemDelegate.h"
0021 
0022 //Qt headers
0023 #include <QPainter>
0024 
0025 KPrSlidesSorterItemDelegate::KPrSlidesSorterItemDelegate(QObject *parent)
0026     : QStyledItemDelegate(parent)
0027 {
0028 }
0029 
0030 KPrSlidesSorterItemDelegate::~KPrSlidesSorterItemDelegate()
0031 {
0032 }
0033 
0034 void KPrSlidesSorterItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
0035 {
0036     QStyledItemDelegate::paint(painter, option, index);
0037     painter->save();
0038     painter->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
0039     QFont font = option.font;
0040     QFontMetrics fm(font);
0041     QString slideNumber = QString("%1").arg(index.row() + 1);
0042     QRect slideNumberRect = option.rect;
0043     slideNumberRect.setLeft(option.rect.left() + 5);
0044     int offSet = option.rect.height() > 0 ? 600 / option.rect.height(): 0;
0045     slideNumberRect.setTop(option.rect.top() + 5 - offSet);
0046     slideNumberRect.setBottom(slideNumberRect.top() + fm.height());
0047     slideNumberRect.setRight(option.rect.left() + 30);
0048     painter->setFont(font);
0049     painter->drawText(slideNumberRect, slideNumber);
0050     painter->restore();
0051 }