KVIrc 5.2.0
Developer APIs
libkviurl.h
Go to the documentation of this file.
1#ifndef _H_URLDLG
2#define _H_URLDLG
3//=============================================================================
4//
5// File : libkviurl.h
6// Creation date : 1999 Andrea Parella
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 1999-2008 Andrea Parrella (yap@kvirc.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 "KviLocale.h"
29#include "KviIrcToolBar.h"
30#include "KviWindow.h"
31#include "KviTalMenuBar.h"
32#include "KviMexToolBar.h"
33#include "KviKvsAction.h"
34#include <QTreeWidget>
35
36#include <QDialog>
37#include <QLayout>
38#include <QString>
39#include <QPushButton>
40#include <QFile>
41#include <QMenuBar>
42#include <QInputDialog>
43#include <QIcon>
44#include <QPixmap>
45#include <QCheckBox>
46#include <QListWidget>
47
48#include <unordered_set>
49#include <vector>
50
51struct KviUrl
52{
53 QString url;
54 QString window;
55 int count;
56 QString timestamp;
57};
58
59class UrlDialogTreeWidget : public QTreeWidget
60{
61 Q_OBJECT
62public:
63 UrlDialogTreeWidget(QWidget *);
65
66protected:
67 void paintEvent(QPaintEvent * event) override;
68};
69
70class UrlDialog : public KviWindow
71{
72 Q_OBJECT
73public:
74 UrlDialog(std::unordered_set<KviUrl *> g_List);
75 ~UrlDialog();
76
77private:
79 QMenu * m_pListPopup = nullptr; // dynamic popup menu
80 QString m_szUrl; // used to pass URLs to sayToWin slot
81protected:
82 QPixmap * myIconPtr() override;
83 void resizeEvent(QResizeEvent *) override;
84
85public:
87 void addUrl(QString url, QString window, QString count, QString timestamp);
88 // void saveProperties();
89protected slots:
90 void config();
91 void help();
92 void saveList();
93 void loadList();
94 void clear();
95 void close_slot();
96 void open();
97 void remove();
98 void findtext();
99 void open_url(QString szUrl);
100 void activate(QTreeWidgetItem * item, int);
101 void contextMenu(const QPoint & p);
102 void sayToWin(QAction * act);
103};
104
105class BanFrame : public QFrame
106{
107 Q_OBJECT
108public:
109 BanFrame(QWidget * parent = nullptr, const char * name = nullptr, bool banEnable = false);
111 void saveBans(KviConfigurationFile * cfg);
112
113private:
114 QCheckBox * m_pEnable;
115 QListWidget * m_pBanList;
116 QPushButton * m_pAddBtn;
117 QPushButton * m_pRemoveBtn;
118protected slots:
119 void enableClicked();
120 void addBan();
121 void removeBan();
122};
123
124#define cbnum 2
125
126class ConfigDialog : public QDialog
127{
128 Q_OBJECT
129public:
130 ConfigDialog();
132
133private:
134 QCheckBox * cb[cbnum];
136 void closeEvent(QCloseEvent *) override;
137protected slots:
138 void acceptbtn();
139 void discardbtn();
140};
141
142#endif
Actions handling.
KVIrc localization stuff.
Toolkit Abstraction Layer class.
Contains the KviWindow class.
Definition libkviurl.h:106
QCheckBox * m_pEnable
Definition libkviurl.h:114
void enableClicked()
Definition libkviurl.cpp:435
QPushButton * m_pRemoveBtn
Definition libkviurl.h:117
QPushButton * m_pAddBtn
Definition libkviurl.h:116
void saveBans(KviConfigurationFile *cfg)
Definition libkviurl.cpp:478
QListWidget * m_pBanList
Definition libkviurl.h:115
void removeBan()
Definition libkviurl.cpp:454
void addBan()
Definition libkviurl.cpp:442
Definition libkviurl.h:127
BanFrame * m_pBanFrame
Definition libkviurl.h:135
ConfigDialog()
Definition libkviurl.cpp:321
void discardbtn()
Definition libkviurl.cpp:362
QCheckBox * cb[cbnum]
Definition libkviurl.h:134
~ConfigDialog()
Definition libkviurl.cpp:387
void closeEvent(QCloseEvent *) override
Definition libkviurl.cpp:382
void acceptbtn()
Definition libkviurl.cpp:367
Definition KviConfigurationFile.h:50
Toolkit Abstraction Layer: menubar class.
Definition KviTalMenuBar.h:43
Definition KviUrl.h:33
int count
Definition libkviurl.h:55
QString window
Definition libkviurl.h:54
QString timestamp
Definition libkviurl.h:56
QString url
Definition libkviurl.h:53
Base class for all windows in KVIrc.
Definition KviWindow.h:75
Definition libkviurl.h:60
void paintEvent(QPaintEvent *event) override
Definition libkviurl.cpp:87
~UrlDialogTreeWidget()
Definition libkviurl.h:64
Definition libkviurl.h:71
void sayToWin(QAction *act)
Definition libkviurl.cpp:258
void open_url(QString szUrl)
Definition libkviurl.cpp:214
void addUrl(QString url, QString window, QString count, QString timestamp)
Definition libkviurl.cpp:282
void saveList()
Definition libkviurl.cpp:161
void findtext()
Definition libkviurl.cpp:210
void activate(QTreeWidgetItem *item, int)
Definition libkviurl.cpp:222
KviTalMenuBar * m_pMenuBar
Definition libkviurl.h:78
void config()
Definition libkviurl.cpp:149
void close_slot()
Definition libkviurl.cpp:181
void open()
Definition libkviurl.cpp:186
QMenu * m_pListPopup
Definition libkviurl.h:79
void contextMenu(const QPoint &p)
Definition libkviurl.cpp:227
QString m_szUrl
Definition libkviurl.h:80
QPixmap * myIconPtr() override
Definition libkviurl.cpp:277
void remove()
Definition libkviurl.cpp:191
void loadList()
Definition libkviurl.cpp:166
~UrlDialog()
Definition libkviurl.cpp:309
void clear()
Definition libkviurl.cpp:171
UrlDialogTreeWidget * m_pUrlList
Definition libkviurl.h:86
void resizeEvent(QResizeEvent *) override
Definition libkviurl.cpp:302
void help()
Definition libkviurl.cpp:157
#define p
Definition detector.cpp:81
QString szUrl
Definition libkvisetup.cpp:49
std::unordered_set< KviUrl * > g_List
Definition libkviurl.cpp:66
#define cbnum
Definition libkviurl.h:124