KVIrc 5.2.0
Developer APIs
KviTreeWindowList.h
Go to the documentation of this file.
1#ifndef _KVI_WINDOWLIST_TREE_H_
2#define _KVI_WINDOWLIST_TREE_H_
3//=============================================================================
4//
5// File : KviTreeWindowList.h
6// Creation date : Thu Jan 7 1999 03:56:50 by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 1999-2010 Szymon Stefanek (pragma at kvirc dot net)
10//
11// This program is FREE software. You can redistribute it and/or
12// modify it under the terms of the GNU General Public License
13// as published by the Free Software Foundation; either version 2
14// 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.
19// See the GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program. If not, write to the Free Software Foundation,
23// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24//
25//=============================================================================
26
27#include "KviWindowListBase.h"
28#include <QTreeWidget>
29#include <QStyledItemDelegate>
30#include <QAbstractItemView>
31
33class KviTreeWindowListItemInternal;
34
35class KVIRC_API KviTreeWindowListItem : public QTreeWidgetItem, public KviWindowListItem
36{
37 friend class KviTreeWindowList;
39 friend class KviTreeWindowListItemInternal;
40
41public:
42 KviTreeWindowListItem(QTreeWidget * par, KviWindow * wnd);
45
46public:
47 virtual QString key() const;
48 void captionChanged() override;
49 void highlight(int iLevel = 1) override;
50 void unhighlight() override;
51 void setProgress(int progress) override;
52 virtual void applyOptions();
53
54protected:
55 void setActive(bool bActive);
56 bool operator<(const QTreeWidgetItem & other) const
57 {
58 return key() < ((KviTreeWindowListItem *)&other)->key();
59 }
60};
61
62class KVIRC_API KviTreeWindowListTreeWidget : public QTreeWidget
63{
66 Q_OBJECT
67public:
68 KviTreeWindowListTreeWidget(QWidget * par);
70 bool isReverseSort() { return bReverseSort; };
71protected:
72 void mousePressEvent(QMouseEvent * e) override;
73 void mouseMoveEvent(QMouseEvent * e) override;
74 void wheelEvent(QWheelEvent * e) override;
75 void mouseDoubleClickEvent(QMouseEvent * e) override;
76 void paintEvent(QPaintEvent * event) override;
77
78private:
81public slots:
82 void sort();
83 void reverseSort();
84};
85
87{
88 Q_OBJECT
89public:
92
93private:
95 KviTreeWindowListItem * m_pCurrentItem = nullptr;
97 QStyledItemDelegate * m_pItemDelegate;
98
99public:
100 KviWindowListItem * addItem(KviWindow *) override;
101 bool removeItem(KviWindowListItem *) override;
102 void setActiveItem(KviWindowListItem *) override;
103 KviWindowListItem * firstItem() override;
104 KviWindowListItem * nextItem(void) override;
105 KviWindowListItem * lastItem() override;
106 KviWindowListItem * prevItem(void) override;
107 bool setIterationPointer(KviWindowListItem * it) override;
108 void updatePseudoTransparency() override;
109 void updateActivityMeter() override;
110
111 void wheelEvent(QWheelEvent * e) override;
112
113protected:
114 void moveEvent(QMoveEvent *) override;
115protected slots:
116 void tipRequest(KviDynamicToolTip * tip, const QPoint & pnt);
117};
118
119#define KVI_TTBID_HIGHLIGHT Qt::UserRole
120#define KVI_TTBID_PROGRESS Qt::UserRole + 1
121
122class KVIRC_API KviTreeWindowListItemDelegate : public QStyledItemDelegate
123{
124 Q_OBJECT
125public:
126 KviTreeWindowListItemDelegate(QAbstractItemView * pWidget = nullptr)
127 : QStyledItemDelegate(pWidget){};
129 QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const;
130 void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const;
131};
132
133#endif //_KVI_WINDOWLIST_TREE_H_
Definition KviDynamicToolTip.h:50
Definition KviTreeWindowList.h:123
KviTreeWindowListItemDelegate(QAbstractItemView *pWidget=nullptr)
Definition KviTreeWindowList.h:126
~KviTreeWindowListItemDelegate()
Definition KviTreeWindowList.h:128
Definition KviTreeWindowList.h:36
bool operator<(const QTreeWidgetItem &other) const
Definition KviTreeWindowList.h:56
Definition KviTreeWindowList.h:63
bool isReverseSort()
Definition KviTreeWindowList.h:70
KviWindowListItem * lastItem()
bool bReverseSort
Definition KviTreeWindowList.h:80
Definition KviTreeWindowList.h:87
KviDynamicToolTip * m_pToolTip
Definition KviTreeWindowList.h:96
KviTreeWindowListTreeWidget * m_pTreeWidget
Definition KviTreeWindowList.h:94
QStyledItemDelegate * m_pItemDelegate
Definition KviTreeWindowList.h:97
Definition KviWindowListBase.h:78
Definition KviWindowListBase.h:50
virtual void highlight(int)
Definition KviWindowListBase.h:63
virtual void unhighlight()
Definition KviWindowListBase.h:66
virtual void setProgress(int)
Definition KviWindowListBase.h:64
virtual void captionChanged()
Definition KviWindowListBase.h:62
Base class for all windows in KVIrc.
Definition KviWindow.h:75
#define e
Definition detector.cpp:70
#define KVIRC_API
Definition kvi_settings.h:127