view ui/certificateitemdelegate.h @ 701:31c3d2bc9880

(Issue22) Fix painting problems with fixed size in windows style. We now use fusion style also on Windows for the combobox to let it be shown in the same way as we do on GNU/Linux.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 02 Jul 2014 11:26:42 +0200
parents ab622e094786
children
line wrap: on
line source
/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU GPL (v>=2)
 * and comes with ABSOLUTELY NO WARRANTY!
 * See LICENSE.txt for details.
 */
#ifndef CERTIFICATELISTDELEGATE_H
#define CERTIFICATELISTDELEGATE_H
/**
 * @file certificateitemdelegate.h
 * @brief Item delegate drawing custom certificate items in list views.
 *
 */

#include <QStyledItemDelegate>

class CertificateItemDelegate : public QStyledItemDelegate
{
Q_OBJECT

public:
    CertificateItemDelegate(QWidget *parent = 0) : QStyledItemDelegate(parent){}

    /**
     * @brief Renders the delegate using the given painter and options.
     *
     * @param painter   The painter to draw the item.
     * @param option    The style options.
     * @param index     The model index of the item to draw.
     */
    void paint(QPainter *painter, const QStyleOptionViewItem &option,
        const QModelIndex &index) const;
    QSize sizeHint(const QStyleOptionViewItem &option,
        const QModelIndex &index) const;

    /** @brief different roles for this tiem */
    enum ItemRole {
        DataRole = Qt::UserRole, /* The certificate details for the window */
        StatusRole, /* Certificate status */
    };

private:

    /**
     * @brief Draw the item using the given parameters.
     *
     * @param painter   The painter to draw the item.
     * @param option    The style options.
     * @param index     The model index of the item to draw.
     * @param icon      The icon to display.
     * @param font      The font used to draw text.
     */
    void drawItem(QPainter *painter, const QStyleOptionViewItem &option,
        const QModelIndex &index, QIcon *icon, QFont *font) const;
};
#endif

http://wald.intevation.org/projects/trustbridge/