KVIrc 5.2.0
Developer APIs
PopupEditorWindow.h
Go to the documentation of this file.
1#ifndef _POPUPEDITOR_H_
2#define _POPUPEDITOR_H_
3//=============================================================================
4//
5// File : PopupEditorWindow.h
6// Creation date : Mon Dec 23 2002 20:24:55 CEST by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 2002-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 "KviWindow.h"
28#include "KviCString.h"
29
30#include <QTreeWidget>
31#include <QWidget>
32#include <QLineEdit>
33#include <QPushButton>
34#include <QMenu>
35
36class KviKvsPopupMenu;
38class KviScriptEditor;
40
41// PopupTreeWidgetItem
42class PopupTreeWidgetItem : public QTreeWidgetItem
43{
44public:
55
56public:
57 PopupTreeWidgetItem(QTreeWidget * pTreeWidget, PopupTreeWidgetItem * after, Type t);
59
60public:
62 QString m_szText;
64 QString m_szIcon;
65 QString m_szCode;
66 QString m_szId;
67
68private:
69 void init();
70
71public:
72 void setItemText(const QString & szText);
73 void setCondition(const QString & szCondition);
74 void setIcon(const QString & szIcon);
75 void setCode(const QString & szCode);
76 void setId(const QString & szId);
77};
78
79class SinglePopupEditor final : public QWidget
80{
81 Q_OBJECT
82public:
83 SinglePopupEditor(QWidget * par);
85
86protected:
87 QPushButton * m_pMenuButton;
91 QTreeWidget * m_pTreeWidget;
92 QLineEdit * m_pNameEditor;
94 QLineEdit * m_pTextEditor;
95 QLineEdit * m_pIdEditor;
96 QLineEdit * m_pIconEditor;
97 QLineEdit * m_pConditionEditor;
98 QLineEdit * m_pExtNameEditor;
100
101public:
102 void edit(MenuTreeWidgetItem * it);
104
105protected:
106 // theItem is the item above the first item that has to be inserted
107 void populateMenu(KviKvsPopupMenu * pop, PopupTreeWidgetItem * par, PopupTreeWidgetItem * theItem = nullptr);
118protected slots:
119 void contextCut();
120 void contextCopy();
121 void contextRemove();
122 void contextPasteBelow();
123 void contextPasteAbove();
124 void contextPasteInside();
128 void contextNewItemBelow();
129 void contextNewItemAbove();
131 void contextNewMenuBelow();
132 void contextNewMenuAbove();
140 void contextNewPrologue();
141 void contextNewEpilogue();
142 void selectionChanged();
143 void customContextMenuRequested(const QPoint & pnt);
144 void testPopup();
146};
147
148class MenuTreeWidgetItem final : public QTreeWidgetItem
149{
150public:
151 MenuTreeWidgetItem(QTreeWidget * par, KviKvsPopupMenu * popup);
153
154public:
156
157public:
159public:
161};
162
163class PopupEditorWidget final : public QWidget
164{
165 Q_OBJECT
166public:
167 PopupEditorWidget(QWidget * par);
168
169public:
171 QTreeWidget * m_pTreeWidget;
177
178public:
179 void commit();
180 void exportPopups(bool);
181protected slots:
182 void currentItemChanged(QTreeWidgetItem * it, QTreeWidgetItem * prev);
183 void customContextMenuRequested(const QPoint & pnt);
184 void newPopup();
185 void exportAll();
186 void exportSelected();
187 void exportCurrentPopup();
188 void removeCurrentPopup();
189 void popupRefresh(const QString & szName);
190
191protected:
192 void showEvent(QShowEvent * e) override;
193 void getExportPopupBuffer(QString & buffer, MenuTreeWidgetItem * it);
194
195private:
196 void oneTimeSetup();
197 void saveLastEditedItem();
198 void getUniquePopupName(MenuTreeWidgetItem * it, QString & buffer);
199};
200
201class PopupEditorWindow final : public KviWindow
202{
203 Q_OBJECT
204public:
207
208private:
210 QPixmap * myIconPtr() override;
211 void fillCaptionBuffers() override;
212 void getConfigGroupName(QString & szName) override { szName = "popupeditor"; };
215private slots:
216 void cancelClicked() { close(); };
217 void okClicked();
219};
220
221#endif //_POPUPEDITOR_H_
Contains the KviWindow class.
Definition KviConfigurationFile.h:50
Definition KviKvsPopupMenu.h:75
Definition KviKvsPopupMenu.h:270
Definition KviScriptEditor.h:45
Base class for all windows in KVIrc.
Definition KviWindow.h:75
Definition PopupEditorWindow.h:149
void replacePopup(KviKvsPopupMenu *popup)
Definition PopupEditorWindow.cpp:1059
~MenuTreeWidgetItem()
Definition PopupEditorWindow.cpp:1054
KviKvsPopupMenu * m_pPopup
Definition PopupEditorWindow.h:155
KviKvsPopupMenu * popup()
Definition PopupEditorWindow.h:158
Definition PopupEditorWindow.h:164
bool m_bSaving
Definition PopupEditorWindow.h:176
SinglePopupEditor * m_pEditor
Definition PopupEditorWindow.h:170
MenuTreeWidgetItem * m_pLastEditedItem
Definition PopupEditorWindow.h:172
QTreeWidget * m_pTreeWidget
Definition PopupEditorWindow.h:171
bool m_bOneTimeSetupDone
Definition PopupEditorWindow.h:173
void currentItemChanged(QTreeWidgetItem *it, QTreeWidgetItem *prev)
Definition PopupEditorWindow.cpp:1319
QMenu * m_pEmptyContextPopup
Definition PopupEditorWindow.h:175
QMenu * m_pContextPopup
Definition PopupEditorWindow.h:174
void getUniquePopupName(MenuTreeWidgetItem *it, QString &buffer)
Definition PopupEditorWindow.cpp:1371
void getExportPopupBuffer(QString &buffer, MenuTreeWidgetItem *it)
void popupRefresh(const QString &szName)
Definition PopupEditorWindow.cpp:1129
void exportCurrentPopup()
Definition PopupEditorWindow.cpp:1203
void customContextMenuRequested(const QPoint &pnt)
Definition PopupEditorWindow.cpp:1171
void exportPopups(bool)
Definition PopupEditorWindow.cpp:1243
void exportAll()
Definition PopupEditorWindow.cpp:1231
void removeCurrentPopup()
Definition PopupEditorWindow.cpp:1281
void commit()
Definition PopupEditorWindow.cpp:1333
void newPopup()
Definition PopupEditorWindow.cpp:1293
void saveLastEditedItem()
Definition PopupEditorWindow.cpp:1301
void showEvent(QShowEvent *e) override
Definition PopupEditorWindow.cpp:1327
void exportSelected()
Definition PopupEditorWindow.cpp:1237
void oneTimeSetup()
Definition PopupEditorWindow.cpp:1102
Definition PopupEditorWindow.h:202
void okClicked()
Definition PopupEditorWindow.cpp:1438
void saveProperties(KviConfigurationFile *) override
Definition PopupEditorWindow.h:213
void applyClicked()
Definition PopupEditorWindow.h:218
void getConfigGroupName(QString &szName) override
Definition PopupEditorWindow.h:212
PopupEditorWidget * m_pEditor
Definition PopupEditorWindow.h:209
void loadProperties(KviConfigurationFile *) override
Definition PopupEditorWindow.h:214
~PopupEditorWindow()
Definition PopupEditorWindow.cpp:1433
void fillCaptionBuffers() override
Definition PopupEditorWindow.cpp:1449
void cancelClicked()
Definition PopupEditorWindow.h:216
QPixmap * myIconPtr() override
Definition PopupEditorWindow.cpp:1444
PopupEditorWindow()
Definition PopupEditorWindow.cpp:1404
Definition PopupEditorWindow.h:43
void init()
Definition PopupEditorWindow.cpp:69
void setIcon(const QString &szIcon)
Definition PopupEditorWindow.cpp:154
QString m_szCondition
Definition PopupEditorWindow.h:63
void setId(const QString &szId)
Definition PopupEditorWindow.cpp:149
Type m_type
Definition PopupEditorWindow.h:61
QString m_szId
Definition PopupEditorWindow.h:66
QString m_szCode
Definition PopupEditorWindow.h:65
void setCondition(const QString &szCondition)
Definition PopupEditorWindow.cpp:118
QString m_szIcon
Definition PopupEditorWindow.h:64
Type
Definition PopupEditorWindow.h:46
@ Label
Definition PopupEditorWindow.h:50
@ Separator
Definition PopupEditorWindow.h:49
@ Epilogue
Definition PopupEditorWindow.h:51
@ Prologue
Definition PopupEditorWindow.h:52
@ ExtMenu
Definition PopupEditorWindow.h:53
@ Item
Definition PopupEditorWindow.h:47
@ Menu
Definition PopupEditorWindow.h:48
QString m_szText
Definition PopupEditorWindow.h:62
void setCode(const QString &szCode)
Definition PopupEditorWindow.cpp:134
void setItemText(const QString &szText)
Definition PopupEditorWindow.cpp:102
Definition PopupEditorWindow.h:80
void contextPasteAbove()
Definition PopupEditorWindow.cpp:652
void contextNewLabelAbove()
Definition PopupEditorWindow.cpp:544
void contextNewSeparatorAbove()
Definition PopupEditorWindow.cpp:480
void populateMenu(KviKvsPopupMenu *pop, PopupTreeWidgetItem *par, PopupTreeWidgetItem *theItem=nullptr)
Definition PopupEditorWindow.cpp:922
void contextNewExtMenuInside()
Definition PopupEditorWindow.cpp:534
void contextNewExtMenuAbove()
Definition PopupEditorWindow.cpp:530
void contextNewLabelBelow()
Definition PopupEditorWindow.cpp:539
KviKvsPopupMenu * getMenu()
Definition PopupEditorWindow.cpp:800
void createNewItemAboveLastSelected(PopupTreeWidgetItem::Type t)
Definition PopupEditorWindow.cpp:463
void createNewItemBelowLastSelected(PopupTreeWidgetItem::Type t)
Definition PopupEditorWindow.cpp:468
void contextNewMenuAbove()
Definition PopupEditorWindow.cpp:515
void contextNewItemAbove()
Definition PopupEditorWindow.cpp:500
~SinglePopupEditor()
Definition PopupEditorWindow.cpp:268
void addItemToMenu(KviKvsPopupMenu *pop, PopupTreeWidgetItem *par)
Definition PopupEditorWindow.cpp:745
void contextNewPrologue()
Definition PopupEditorWindow.cpp:582
QLineEdit * m_pNameEditor
Definition PopupEditorWindow.h:92
void saveLastSelectedItem()
Definition PopupEditorWindow.cpp:679
void contextNewLabelInside()
Definition PopupEditorWindow.cpp:549
void contextNewExtMenuBelow()
Definition PopupEditorWindow.cpp:525
void contextCut()
Definition PopupEditorWindow.cpp:616
QLineEdit * m_pIconEditor
Definition PopupEditorWindow.h:96
PopupTreeWidgetItem * newItemBelow(PopupTreeWidgetItem *it, PopupTreeWidgetItem::Type t)
Definition PopupEditorWindow.cpp:561
void contextNewItemBelow()
Definition PopupEditorWindow.cpp:495
QMenu * m_pContextPopup
Definition PopupEditorWindow.h:99
void createNewItemInsideLastSelected(PopupTreeWidgetItem::Type t)
Definition PopupEditorWindow.cpp:473
void contextNewMenuBelow()
Definition PopupEditorWindow.cpp:510
PopupTreeWidgetItem * newItemAbove(PopupTreeWidgetItem *it, PopupTreeWidgetItem::Type t)
Definition PopupEditorWindow.cpp:568
void contextPasteInside()
Definition PopupEditorWindow.cpp:662
void selectionChanged()
Definition PopupEditorWindow.cpp:816
QLineEdit * m_pTextEditor
Definition PopupEditorWindow.h:94
void customContextMenuRequested(const QPoint &pnt)
Definition PopupEditorWindow.cpp:381
void contextRemove()
Definition PopupEditorWindow.cpp:631
void contextNewEpilogue()
Definition PopupEditorWindow.cpp:588
KviKvsPopupMenu * m_pClipboard
Definition PopupEditorWindow.h:88
QPushButton * m_pMenuButton
Definition PopupEditorWindow.h:87
PopupTreeWidgetItem * m_pLastSelectedItem
Definition PopupEditorWindow.h:90
QLineEdit * m_pExtNameEditor
Definition PopupEditorWindow.h:98
void contextCopy()
Definition PopupEditorWindow.cpp:607
QTreeWidget * m_pTreeWidget
Definition PopupEditorWindow.h:91
PopupTreeWidgetItem * findMatchingItem(KviKvsPopupMenuItem *it, PopupTreeWidgetItem *item)
Definition PopupEditorWindow.cpp:293
QLineEdit * m_pConditionEditor
Definition PopupEditorWindow.h:97
QLineEdit * m_pIdEditor
Definition PopupEditorWindow.h:95
void contextNewMenuInside()
Definition PopupEditorWindow.cpp:520
void testPopup()
Definition PopupEditorWindow.cpp:275
void contextNewSeparatorBelow()
Definition PopupEditorWindow.cpp:485
void contextPasteBelow()
Definition PopupEditorWindow.cpp:643
void contextNewItemInside()
Definition PopupEditorWindow.cpp:505
void testModeMenuItemClicked(KviKvsPopupMenuItem *it)
Definition PopupEditorWindow.cpp:359
PopupTreeWidgetItem * newItem(PopupTreeWidgetItem *par, PopupTreeWidgetItem *after, PopupTreeWidgetItem::Type t)
Definition PopupEditorWindow.cpp:554
void edit(MenuTreeWidgetItem *it)
Definition PopupEditorWindow.cpp:1010
KviKvsPopupMenu * m_pTestPopup
Definition PopupEditorWindow.h:89
void contextNewSeparatorInside()
Definition PopupEditorWindow.cpp:490
PopupTreeWidgetItem * newItemInside(PopupTreeWidgetItem *it, PopupTreeWidgetItem::Type t)
Definition PopupEditorWindow.cpp:575
KviScriptEditor * m_pEditor
Definition PopupEditorWindow.h:93
#define t
Definition detector.cpp:85
#define e
Definition detector.cpp:70