KVIrc 5.2.6
Developer APIs
ListWindow.h
Go to the documentation of this file.
1#ifndef _LISTWINDOW_H_
2#define _LISTWINDOW_H_
3//=============================================================================
4//
5// File : ListWindow.h
6// Creation date : Thu Oct 7 2001 13:27:55 CEST by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 2001-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 lists 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 "KviWindow.h"
28#include "KviCString.h"
29#include "KviIrcSocket.h"
30#include "KviPointerList.h"
31#include "KviIrcServerParser.h"
32#include "KviConsoleWindow.h"
33#include "KviIrcContext.h"
34#include "KviThemedTreeWidget.h"
35
36#include <QToolButton>
37#include <QLineEdit>
38#include <QItemDelegate>
39#include <QMenu>
40
41class KviThemedLabel;
43
44class ChannelTreeWidgetItemDelegate : public QItemDelegate
45{
46public:
47 ChannelTreeWidgetItemDelegate(QTreeWidget * pWidget = nullptr);
49 void paint(QPainter * pPainter, const QStyleOptionViewItem & option, const QModelIndex & index) const;
50 QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const;
51};
52
54{
56 friend class ListWindow;
58
59public:
60 ChannelTreeWidgetItemData(const QString & szChan, const QString & szUsers, const QString & szTopic);
62
63protected:
64 QString m_szChan;
65 QString m_szUsers;
66 QString m_szTopic;
68};
69
70class ChannelTreeWidgetItem : public QTreeWidgetItem
71{
72 friend class ListWindow;
73
74public:
77
78private:
80
81public:
82 bool operator<(const QTreeWidgetItem & other) const;
84};
85
87{
90 Q_OBJECT
91public:
92 ChannelTreeWidget(QWidget * par, KviWindow * pWindow, const char * name) : KviThemedTreeWidget(par, pWindow, name){};
94 ChannelTreeWidgetItem * itemFromIndex(const QModelIndex & index) const { return (ChannelTreeWidgetItem *)KviThemedTreeWidget::itemFromIndex(index); };
95};
96
98{
99 Q_OBJECT
100public:
101 ListWindow(KviConsoleWindow * lpConsole);
102 ~ListWindow();
103
104protected:
105 QSplitter * m_pVertSplitter;
106 QSplitter * m_pTopSplitter;
109 QToolButton * m_pRequestButton;
111 QToolButton * m_pOpenButton;
112 QToolButton * m_pSaveButton;
116
117public: // Methods
118 void control(int iMsg) override;
119 void processData(KviIrcMessage * pMsg) override;
120 void die() override;
121 QSize sizeHint() const override;
122
123protected:
124 QPixmap * myIconPtr() override;
125 void fillCaptionBuffers() override;
126 void applyOptions() override;
127 void resizeEvent(QResizeEvent * e) override;
128 void getBaseLogFileName(QString & szBuffer) override;
129protected slots:
130 void flush();
131 void itemDoubleClicked(QTreeWidgetItem * it, int);
132 void requestList();
133 void stoplistdownload();
135 void exportList();
136 void importList();
137 void liveSearch(const QString & szText);
138
139private:
140 void reset();
141 void endOfList();
142 void startOfList();
143};
144
145#endif //_KVI_LISTWINDOW_H_
Lower stack protocol for IRC connection.
C++ Template based double linked pointer list class.
Contains the KviWindow class.
Definition ListWindow.h:54
QString m_szTopic
Definition ListWindow.h:66
QString m_szUsers
Definition ListWindow.h:65
ChannelTreeWidgetItemData(const QString &szChan, const QString &szUsers, const QString &szTopic)
Definition ListWindow.cpp:57
QString m_szStrippedTopic
Definition ListWindow.h:67
QString m_szChan
Definition ListWindow.h:64
Definition ListWindow.h:45
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition ListWindow.cpp:108
void paint(QPainter *pPainter, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition ListWindow.cpp:142
ChannelTreeWidgetItemDelegate(QTreeWidget *pWidget=nullptr)
Definition ListWindow.cpp:98
Definition ListWindow.h:71
ChannelTreeWidgetItemData * m_pData
Definition ListWindow.h:79
ChannelTreeWidgetItem(ChannelTreeWidgetItemData *pData)
Definition ListWindow.cpp:67
ChannelTreeWidgetItemData * itemData() const
Definition ListWindow.h:83
bool operator<(const QTreeWidgetItem &other) const
Definition ListWindow.cpp:78
Definition ListWindow.h:87
ChannelTreeWidget(QWidget *par, KviWindow *pWindow, const char *name)
Definition ListWindow.h:92
~ChannelTreeWidget()
Definition ListWindow.h:93
ChannelTreeWidgetItem * itemFromIndex(const QModelIndex &index) const
Definition ListWindow.h:94
Definition KviConsoleWindow.h:74
Definition KviIrcServerParser.h:102
Definition KviIrcMessage.h:50
A template double linked list of pointers.
Definition KviPointerList.h:371
Definition KviThemedLabel.h:34
Definition KviThemedLineEdit.h:34
Definition KviThemedTreeWidget.h:35
Base class for all windows in KVIrc.
Definition KviWindow.h:75
Definition ListWindow.h:98
QToolButton * m_pRequestButton
Definition ListWindow.h:109
void reset()
Definition ListWindow.cpp:461
ChannelTreeWidget * m_pTreeWidget
Definition ListWindow.h:107
void processData(KviIrcMessage *pMsg) override
Definition ListWindow.cpp:508
QToolButton * m_pOpenButton
Definition ListWindow.h:111
QSplitter * m_pVertSplitter
Definition ListWindow.h:105
QSplitter * m_pTopSplitter
Definition ListWindow.h:106
QSize sizeHint() const override
Definition ListWindow.cpp:344
void importList()
Definition ListWindow.cpp:416
void stoplistdownload()
Definition ListWindow.cpp:304
ListWindow(KviConsoleWindow *lpConsole)
Definition ListWindow.cpp:170
void liveSearch(const QString &szText)
Definition ListWindow.cpp:489
KviThemedLineEdit * m_pParamsEdit
Definition ListWindow.h:108
QToolButton * m_pStopListDownloadButton
Definition ListWindow.h:110
KviPointerList< ChannelTreeWidgetItemData > * m_pItemList
Definition ListWindow.h:115
void requestList()
Definition ListWindow.cpp:282
void flush()
Definition ListWindow.cpp:548
~ListWindow()
Definition ListWindow.cpp:266
void resizeEvent(QResizeEvent *e) override
Definition ListWindow.cpp:337
void startOfList()
Definition ListWindow.cpp:478
KviThemedLabel * m_pInfoLabel
Definition ListWindow.h:113
QPixmap * myIconPtr() override
Definition ListWindow.cpp:332
void connectionStateChange()
Definition ListWindow.cpp:317
void getBaseLogFileName(QString &szBuffer) override
Definition ListWindow.cpp:277
void itemDoubleClicked(QTreeWidgetItem *it, int)
Definition ListWindow.cpp:568
void endOfList()
Definition ListWindow.cpp:466
void control(int iMsg) override
Definition ListWindow.cpp:445
QToolButton * m_pSaveButton
Definition ListWindow.h:112
void die() override
Definition ListWindow.cpp:356
void exportList()
Definition ListWindow.cpp:361
void applyOptions() override
Definition ListWindow.cpp:584
void fillCaptionBuffers() override
Definition ListWindow.cpp:349
QTimer * m_pFlushTimer
Definition ListWindow.h:114
#define e
Definition detector.cpp:70
char szBuffer[4096]
Definition winamp.cpp:77