1 /* ============================================================ 2 * Falkon - Qt web browser 3 * Copyright (C) 2010-2018 David Rosca <nowrep@gmail.com> 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * ============================================================ */ 18 #ifndef LOCATIONCOMPLETERDELEGATE_H 19 #define LOCATIONCOMPLETERDELEGATE_H 20 21 #include <QStyledItemDelegate> 22 23 #include "qzcommon.h" 24 25 class FALKON_EXPORT LocationCompleterDelegate : public QStyledItemDelegate 26 { 27 Q_OBJECT 28 public: 29 explicit LocationCompleterDelegate(QObject *parent = 0); 30 31 void paint(QPainter* painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override; 32 QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override; 33 34 void setForceVisitItem(bool enable); 35 36 private: 37 int viewItemDrawText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect, 38 const QString &text, const QColor &color, 39 const QString &searchText = QString()) const; 40 41 mutable int m_rowHeight; 42 mutable int m_padding; 43 bool m_forceVisitItem = false; 44 }; 45 46 #endif // LOCATIONCOMPLETERDELEGATE_H 47