1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
/*
* Copyright (C) 2007 Ivan Cukic <ivan.cukic+kde@gmail.com>
* Copyright (C) 2008-2011 Daniel Nicoletti <dantti12@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library/Lesser General Public License
* version 2, or (at your option) any later version, as published by the
* Free Software Foundation
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU Library/Lesser General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef APPLICATIONS_DELEGATE_H
#define APPLICATIONS_DELEGATE_H
#include <QStyledItemDelegate>
#include <QIcon>
/**
* Delegate for displaying the packages
*/
class Q_DECL_EXPORT ApplicationsDelegate: public QStyledItemDelegate
{
Q_OBJECT
public:
explicit ApplicationsDelegate(QAbstractItemView *parent);
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
bool editorEvent(QEvent *event,
QAbstractItemModel *model,
const QStyleOptionViewItem &option,
const QModelIndex &index);
void setCheckable(bool checkable);
private:
bool insideButton(const QRect &rect, const QPoint &pos) const;
QWidget *m_viewport;
QIcon m_packageIcon;
QIcon m_installIcon;
QString m_installString;
QIcon m_removeIcon;
QString m_removeString;
QIcon m_undoIcon;
QString m_undoString;
QIcon m_checkedIcon;
QSize m_buttonSize;
QSize m_buttonIconSize;
bool m_checkable = false;
};
#endif
|