KVIrc 5.2.6
Developer APIs
AliasEditorWindow.h
Go to the documentation of this file.
1#ifndef _ALIASEDITOR_H_
2#define _ALIASEDITOR_H_
3//=============================================================================
4//
5// File : AliasEditorWindow.h
6// Creation date : Mon Dec 23 2002 14:35: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#include "KviPointerList.h"
30#include "KviHeapObject.h"
31
32#include <QWidget>
33#include <QLineEdit>
34#include <QStringList>
35#include <QPushButton>
36#include <QLabel>
37#include <QTreeWidget>
38#include <QMenu>
39
40class QSplitter;
41class KviScriptEditor;
42
43class AliasEditorTreeWidgetItem : public QTreeWidgetItem, public KviHeapObject
44{
45public:
46 enum Type
47 {
50 };
51
52public:
53 AliasEditorTreeWidgetItem(QTreeWidget * pTreeWidget, Type eType, const QString & szName);
54 AliasEditorTreeWidgetItem(AliasEditorTreeWidgetItem * pParentItem, Type eType, const QString & szName);
56
57protected:
60 QString m_szName;
61 QString m_szBuffer;
62 int m_cPos;
63
64public:
65 const QString & name() const { return m_szName; }
66 void setName(const QString & szName);
67 Type type() const { return m_eType; }
68 void setType(Type t);
69 bool isAlias() const { return m_eType == Alias; }
70 bool isNamespace() const { return m_eType == Namespace; }
73 void setBuffer(const QString & szBuffer) { m_szBuffer = szBuffer; }
74 const QString & buffer() const { return m_szBuffer; }
75 const int & cursorPosition() const { return m_cPos; }
76
77 void setCursorPosition(const int & cPos) { m_cPos = cPos; };
78};
79
80class AliasEditorTreeWidget : public QTreeWidget
81{
82 Q_OBJECT
83public:
84 AliasEditorTreeWidget(QWidget *);
86};
87
88class AliasEditorWidget : public QWidget
89{
90 Q_OBJECT
91public:
92 AliasEditorWidget(QWidget * par);
94
95public:
98 QLabel * m_pNameLabel;
99 QPushButton * m_pRenameButton;
103 QSplitter * m_pSplitter;
104 QString m_szDir;
106
107public:
108 //bool modified(){ return m_bModified; };
109 void commit();
110 void exportAliases(bool, bool = false);
112
115 static void splitFullAliasOrNamespaceName(const QString & szFullName, QStringList & lNamespaces, QString & szName);
116protected slots:
117 void currentItemChanged(QTreeWidgetItem * it, QTreeWidgetItem *);
118 void renameItem();
119 void newAlias();
120 void customContextMenuRequested(const QPoint pnt);
121 void newNamespace();
122 void newItem(QString & szName, AliasEditorTreeWidgetItem::Type eType);
123
124 void exportAll();
126 void exportSelected();
127
128 void removeSelectedItems();
129 void slotFind();
131 void slotFindWord(const QString &);
132 void slotReplaceAll(const QString & before, const QString & after);
133 void itemRenamed(QTreeWidgetItem * it, int col);
134 void aliasRefresh(const QString & szName);
135
136protected:
139 void searchReplace(const QString & szSearch, bool bReplace = false, const QString & szReplace = "n");
140
141 void getExportAliasBuffer(QString & buffer, AliasEditorTreeWidgetItem * it);
142 void oneTimeSetup();
143 void saveLastEditedItem();
149
150 void openParentItems(QTreeWidgetItem * it);
151 void activateItem(QTreeWidgetItem * it);
152
153 bool removeItem(AliasEditorTreeWidgetItem * it, bool * pbYesToAll, bool bDeleteEmptyTree);
155
156 QString askForAliasName(const QString & szAction, const QString & szText, const QString & szInitialText);
157 QString askForNamespaceName(const QString & szAction, const QString & szText, const QString & szInitialText);
158 //
159 bool itemExists(QTreeWidgetItem * pSearchFor);
160 bool namespaceExists(QString & szFullItemName);
161 bool aliasExists(QString & szFullItemName);
164 bool hasSelectedItems();
166
168 AliasEditorTreeWidgetItem * findTopLevelItem(const QString & szName);
169 AliasEditorTreeWidgetItem * createFullItem(const QString & szFullName);
170 AliasEditorTreeWidgetItem * findItem(const QString & szName);
172};
173
175{
176 Q_OBJECT
177public:
180
181protected:
183
184protected:
185 QPixmap * myIconPtr() override;
186 void getConfigGroupName(QString & szName) override;
187 void saveProperties(KviConfigurationFile *) override;
188 void loadProperties(KviConfigurationFile *) override;
189protected slots:
190 void cancelClicked();
191 void okClicked();
192 void applyClicked();
193};
194
195#endif //_ALIASEDITOR_H_
Heap Object.
C++ Template based double linked pointer list class.
Contains the KviWindow class.
Definition AliasEditorWindow.h:44
Type type() const
Definition AliasEditorWindow.h:67
void setBuffer(const QString &szBuffer)
Definition AliasEditorWindow.h:73
QString m_szName
Definition AliasEditorWindow.h:60
const int & cursorPosition() const
Definition AliasEditorWindow.h:75
const QString & name() const
Definition AliasEditorWindow.h:65
bool isAlias() const
Definition AliasEditorWindow.h:69
void setParentItem(AliasEditorTreeWidgetItem *it)
Definition AliasEditorWindow.h:71
void setCursorPosition(const int &cPos)
Definition AliasEditorWindow.h:77
AliasEditorTreeWidgetItem * parentItem()
Definition AliasEditorWindow.h:72
int m_cPos
Definition AliasEditorWindow.h:62
~AliasEditorTreeWidgetItem()
Definition AliasEditorWindow.h:55
const QString & buffer() const
Definition AliasEditorWindow.h:74
Type m_eType
Definition AliasEditorWindow.h:58
QString m_szBuffer
Definition AliasEditorWindow.h:61
AliasEditorTreeWidgetItem * m_pParentItem
Definition AliasEditorWindow.h:59
void setType(Type t)
Definition AliasEditorWindow.cpp:91
void setName(const QString &szName)
Definition AliasEditorWindow.cpp:86
AliasEditorTreeWidgetItem(QTreeWidget *pTreeWidget, Type eType, const QString &szName)
Definition AliasEditorWindow.cpp:63
bool isNamespace() const
Definition AliasEditorWindow.h:70
Type
Definition AliasEditorWindow.h:47
@ Alias
Definition AliasEditorWindow.h:48
@ Namespace
Definition AliasEditorWindow.h:49
Definition AliasEditorWindow.h:81
~AliasEditorTreeWidget()
Definition AliasEditorWindow.cpp:111
AliasEditorTreeWidget(QWidget *)
Definition AliasEditorWindow.cpp:100
Definition AliasEditorWindow.h:89
QString m_szDir
Definition AliasEditorWindow.h:104
bool aliasExists(QString &szFullItemName)
Definition AliasEditorWindow.cpp:409
QLabel * m_pNameLabel
Definition AliasEditorWindow.h:98
void removeItemChildren(AliasEditorTreeWidgetItem *it)
Definition AliasEditorWindow.cpp:965
QString askForAliasName(const QString &szAction, const QString &szText, const QString &szInitialText)
Definition AliasEditorWindow.cpp:1040
void exportSelectedSepFiles()
Definition AliasEditorWindow.cpp:732
void getExportAliasBuffer(QString &buffer, AliasEditorTreeWidgetItem *it)
Definition AliasEditorWindow.cpp:714
bool removeItem(AliasEditorTreeWidgetItem *it, bool *pbYesToAll, bool bDeleteEmptyTree)
Definition AliasEditorWindow.cpp:977
void exportSelectionInSinglesFiles(KviPointerList< AliasEditorTreeWidgetItem > *l)
Definition AliasEditorWindow.cpp:742
void currentItemChanged(QTreeWidgetItem *it, QTreeWidgetItem *)
Definition AliasEditorWindow.cpp:532
void removeSelectedItems()
Definition AliasEditorWindow.cpp:1027
void customContextMenuRequested(const QPoint pnt)
Definition AliasEditorWindow.cpp:574
KviScriptEditor * m_pEditor
Definition AliasEditorWindow.h:96
bool itemExists(QTreeWidgetItem *pSearchFor)
Definition AliasEditorWindow.cpp:369
void commit()
Definition AliasEditorWindow.cpp:1228
void aliasRefresh(const QString &szName)
Definition AliasEditorWindow.cpp:308
void appendAllItems(KviPointerList< AliasEditorTreeWidgetItem > *l, AliasEditorTreeWidgetItem::Type)
Definition AliasEditorWindow.cpp:379
void oneTimeSetup()
Definition AliasEditorWindow.cpp:282
void loadProperties(KviConfigurationFile *)
Definition AliasEditorWindow.cpp:907
AliasEditorTreeWidget * m_pTreeWidget
Definition AliasEditorWindow.h:97
void recursiveCollapseNamespaces(AliasEditorTreeWidgetItem *it)
Definition AliasEditorWindow.cpp:682
void openParentItems(QTreeWidgetItem *it)
Definition AliasEditorWindow.cpp:1170
QString askForNamespaceName(const QString &szAction, const QString &szText, const QString &szInitialText)
Definition AliasEditorWindow.cpp:1105
void exportAll()
Definition AliasEditorWindow.cpp:727
void newNamespace()
Definition AliasEditorWindow.cpp:1195
void appendSelectedItems(KviPointerList< AliasEditorTreeWidgetItem > *l)
Definition AliasEditorWindow.cpp:946
void newItem(QString &szName, AliasEditorTreeWidgetItem::Type eType)
Definition AliasEditorWindow.cpp:1203
AliasEditorTreeWidgetItem * m_pLastClickedItem
Definition AliasEditorWindow.h:101
QPushButton * m_pRenameButton
Definition AliasEditorWindow.h:99
bool namespaceExists(QString &szFullItemName)
Definition AliasEditorWindow.cpp:424
void slotCollapseNamespaces()
Definition AliasEditorWindow.cpp:696
void appendSelectedItemsRecursive(KviPointerList< AliasEditorTreeWidgetItem > *l, QTreeWidgetItem *pStartFrom)
Definition AliasEditorWindow.cpp:955
void appendAllItemsRecursive(KviPointerList< AliasEditorTreeWidgetItem > *l, QTreeWidgetItem *pStartFrom, AliasEditorTreeWidgetItem::Type)
Definition AliasEditorWindow.cpp:394
void renameItem()
Definition AliasEditorWindow.cpp:439
void slotFindWord(const QString &)
Definition AliasEditorWindow.cpp:677
void exportSelected()
Definition AliasEditorWindow.cpp:737
~AliasEditorWidget()
Definition AliasEditorWindow.cpp:166
QString buildFullItemName(AliasEditorTreeWidgetItem *it)
Definition AliasEditorWindow.cpp:190
KviPointerList< AliasEditorTreeWidgetItem > * m_pAliases
Definition AliasEditorWindow.h:137
void slotReplaceAll(const QString &before, const QString &after)
Definition AliasEditorWindow.cpp:708
bool hasSelectedItems()
Definition AliasEditorWindow.cpp:364
void saveLastEditedItem()
Definition AliasEditorWindow.cpp:520
QSplitter * m_pSplitter
Definition AliasEditorWindow.h:103
void appendSelectedAliasItemsRecursive(KviPointerList< AliasEditorTreeWidgetItem > *l, QTreeWidgetItem *pStartFrom)
Definition AliasEditorWindow.cpp:935
AliasEditorWidget(QWidget *par)
Definition AliasEditorWindow.cpp:117
void appendSelectedAliasItems(KviPointerList< AliasEditorTreeWidgetItem > *l)
Definition AliasEditorWindow.cpp:919
void newAlias()
Definition AliasEditorWindow.cpp:1187
void activateItem(QTreeWidgetItem *it)
Definition AliasEditorWindow.cpp:1179
void itemRenamed(QTreeWidgetItem *it, int col)
Definition AliasEditorWindow.cpp:346
AliasEditorTreeWidgetItem * m_pLastEditedItem
Definition AliasEditorWindow.h:100
void slotFind()
Definition AliasEditorWindow.cpp:655
AliasEditorTreeWidgetItem * createFullItem(const QString &szFullName)
Definition AliasEditorWindow.cpp:252
static void splitFullAliasOrNamespaceName(const QString &szFullName, QStringList &lNamespaces, QString &szName)
void buildFullItemPath(AliasEditorTreeWidgetItem *it, QString &szBuffer)
Definition AliasEditorWindow.cpp:172
void saveProperties(KviConfigurationFile *)
Definition AliasEditorWindow.cpp:898
AliasEditorTreeWidgetItem * findTopLevelItem(const QString &szName)
Definition AliasEditorWindow.cpp:211
void buildAliasesFile(KviPointerList< AliasEditorTreeWidgetItem > *l, QString &szBuffer)
Definition AliasEditorWindow.cpp:887
void exportAliases(bool, bool=false)
Definition AliasEditorWindow.cpp:810
QMenu * m_pContextPopup
Definition AliasEditorWindow.h:102
void getUniqueItemName(AliasEditorTreeWidgetItem *item, QString &buffer, AliasEditorTreeWidgetItem::Type eType)
void searchReplace(const QString &szSearch, bool bReplace=false, const QString &szReplace="n")
Definition AliasEditorWindow.cpp:636
bool m_bSaving
Definition AliasEditorWindow.h:105
AliasEditorTreeWidgetItem * findItem(const QString &szName)
Definition AliasEditorWindow.cpp:223
void cancelClicked()
Definition AliasEditorWindow.cpp:1294
QPixmap * myIconPtr() override
Definition AliasEditorWindow.cpp:1299
void getConfigGroupName(QString &szName) override
Definition AliasEditorWindow.cpp:1304
~AliasEditorWindow()
Definition AliasEditorWindow.cpp:1278
void saveProperties(KviConfigurationFile *) override
Definition AliasEditorWindow.cpp:1309
void applyClicked()
Definition AliasEditorWindow.cpp:1289
AliasEditorWidget * m_pEditor
Definition AliasEditorWindow.h:182
void loadProperties(KviConfigurationFile *) override
Definition AliasEditorWindow.cpp:1314
void okClicked()
Definition AliasEditorWindow.cpp:1283
AliasEditorWindow()
Definition AliasEditorWindow.cpp:1246
Definition KviConfigurationFile.h:50
Definition KviHeapObject.h:119
A template double linked list of pointers.
Definition KviPointerList.h:371
Definition KviScriptEditor.h:45
KviWindow(Type eType, const QString &szName, KviConsoleWindow *pConsole=nullptr)
Constructs the window object.
Definition KviWindow.cpp:106
#define t
Definition detector.cpp:85
#define l
Definition detector.cpp:77
char szBuffer[4096]
Definition winamp.cpp:77