1#pragma once
2
3/****************************************************************************************
4 ** GitQlient is an application to manage and operate one or several Git repositories. With
5 ** GitQlient you will be able to add commits, branches and manage all the options Git provides.
6 ** Copyright (C) 2021 Francesc Martinez
7 **
8 ** LinkedIn: www.linkedin.com/in/cescmm/
9 ** Web: www.francescmm.com
10 **
11 ** This program is free software; you can redistribute it and/or
12 ** modify it under the terms of the GNU Lesser General Public
13 ** License as published by the Free Software Foundation; either
14 ** version 2 of the License, or (at your option) any later version.
15 **
16 ** This program is distributed in the hope that it will be useful,
17 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
18 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 ** Lesser General Public License for more details.
20 **
21 ** You should have received a copy of the GNU Lesser General Public
22 ** License along with this library; if not, write to the Free Software
23 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 ***************************************************************************************/
25
26#include <QStyledItemDelegate>
27
28class QPainter;
29
30/*!
31 \brief BranchesViewDelegate is the delegate in charge of painting how the branches are display in the BranchTreeWidget.
32
33*/
34class BranchesViewDelegate : public QStyledItemDelegate
35{
36public:
37 /*!
38 \brief Default constructor.
39
40 \param parent The parent widget if needed.
41 */
42 explicit BranchesViewDelegate(bool isTag = false, QObject *parent = nullptr);
43
44 /*!
45 \brief Overridden paint method used to display different colors when mouse actions happen.
46
47 \param p The painter device.
48 \param o The style options of the item.
49 \param i The item data
50 */
51 void paint(QPainter *p, const QStyleOptionViewItem &o, const QModelIndex &i) const override;
52 /*!
53 \brief Overridden method that returns the size of the row, both height and width.
54
55 \return QSize The width and height of the row.
56 */
57 QSize sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const override;
58
59private:
60 bool mIsTag = false;
61};
62