aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/reguser/RegisteredUsersDialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/reguser/RegisteredUsersDialog.h')
-rw-r--r--src/modules/reguser/RegisteredUsersDialog.h159
1 files changed, 159 insertions, 0 deletions
diff --git a/src/modules/reguser/RegisteredUsersDialog.h b/src/modules/reguser/RegisteredUsersDialog.h
new file mode 100644
index 000000000..d511560dd
--- /dev/null
+++ b/src/modules/reguser/RegisteredUsersDialog.h
@@ -0,0 +1,159 @@
+#ifndef _DIALOG_H_
+#define _DIALOG_H_
+//=============================================================================
+//
+// File : RegisteredUserEntryDialog.h
+// Creation date : Sun Dec 24 2000 15:16:17 CEST by Szymon Stefanek
+//
+// This file is part of the KVIrc irc client distribution
+// Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net)
+//
+// This program is FREE software. You can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your opinion) any later version.
+//
+// This program is distributed in the HOPE that it will be USEFUL,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+//=============================================================================
+
+#include "KviCString.h"
+#include "KviRegisteredUserDataBase.h"
+#include "KviSelectors.h"
+#include "KviPointerHashTable.h"
+#include <QTreeWidget>
+#include "KviTalListWidget.h"
+#include "KviTalPopupMenu.h"
+
+#include <QWidget>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QStyledItemDelegate>
+#include <QMultiHash>
+#include <QTextDocument>
+
+class KviRegisteredUsersListView : public QTreeWidget
+{
+ Q_OBJECT
+public:
+ KviRegisteredUsersListView(QWidget*);
+ ~KviRegisteredUsersListView(){};
+protected:
+ void mousePressEvent (QMouseEvent *e);
+signals:
+ void rightButtonPressed(QTreeWidgetItem *,QPoint);
+};
+
+class RegisteredUsersDialogItemDelegate : public QStyledItemDelegate
+{
+public:
+ RegisteredUsersDialogItemDelegate(KviRegisteredUsersListView * pWidget=0)
+ : QStyledItemDelegate(pWidget) {};
+ ~RegisteredUsersDialogItemDelegate(){};
+ QSize sizeHint(const QStyleOptionViewItem &option,const QModelIndex &index) const;
+ void paint( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
+
+};
+
+class RegisteredUsersDialogItemBase : public QTreeWidgetItem
+{
+public:
+ enum Types { User,Group };
+protected:
+ RegisteredUsersDialogItemBase(Types type,KviRegisteredUsersListView * par)
+ :QTreeWidgetItem(par),m_iType(type)
+ {
+ };
+ RegisteredUsersDialogItemBase(Types type,QTreeWidgetItem * par)
+ :QTreeWidgetItem(par),m_iType(type)
+ {
+ };
+ ~RegisteredUsersDialogItemBase()
+ {
+ };
+
+private:
+ RegisteredUsersDialogItemBase::Types m_iType;
+public:
+ RegisteredUsersDialogItemBase::Types type() { return m_iType; };
+};
+
+class RegisteredUsersGroupItem : public RegisteredUsersDialogItemBase
+{
+protected:
+ KviRegisteredUserGroup * m_pGroup;
+public:
+ RegisteredUsersGroupItem(KviRegisteredUsersListView * par,KviRegisteredUserGroup * g)
+ :RegisteredUsersDialogItemBase(Group,par), m_pGroup(g)
+ {
+ setText(0,m_pGroup->name());
+ }
+ ~RegisteredUsersGroupItem()
+ {
+ }
+ KviRegisteredUserGroup * group() { return m_pGroup; };
+};
+
+class RegisteredUsersDialogItem : public RegisteredUsersDialogItemBase
+{
+ friend class RegisteredUsersDialogItemDelegate;
+protected:
+ KviRegisteredUser * m_pUser;
+ QTextDocument m_pText;
+public:
+ RegisteredUsersDialogItem(QTreeWidgetItem * par,KviRegisteredUser * u);
+ ~RegisteredUsersDialogItem();
+public:
+ KviRegisteredUser * user(){ return m_pUser; };
+ void setUser(KviRegisteredUser * u){ m_pUser = u; };
+ virtual QString key(int,bool) const;
+};
+
+class RegisteredUsersDialog : public QWidget
+{
+ Q_OBJECT
+public:
+ RegisteredUsersDialog(QWidget * par = 0);
+ ~RegisteredUsersDialog();
+public:
+ KviRegisteredUsersListView * m_pListView;
+ QPushButton * m_pAddButton;
+ QPushButton * m_pWizardAddButton;
+ QPushButton * m_pRemoveButton;
+ QPushButton * m_pEditButton;
+ QPushButton * m_pImportButton;
+ QPushButton * m_pExportButton;
+ QPushButton * m_pAddGroupButton;
+ QPushButton * m_pSelectAllButton;
+ QMultiHash<int, KviRegisteredUserGroup*> m_TmpDict;
+protected:
+ void fillList();
+ void editItem(RegisteredUsersDialogItem * i);
+ void editGroup(KviRegisteredUserGroup* group);
+ virtual void closeEvent(QCloseEvent *);
+protected slots:
+ void cancelClicked();
+ void okClicked();
+ void addClicked();
+ void removeClicked();
+ void editClicked();
+ void selectionChanged();
+ void importClicked();
+ void exportClicked();
+ void addWizardClicked();
+ void addGroupClicked();
+ void selectAllClicked();
+ void itemPressed(QTreeWidgetItem *it,int c);
+ void itemDoubleClicked(QTreeWidgetItem *it, int);
+ void rightButtonPressed ( QTreeWidgetItem *, QPoint);
+ void moveToGroupMenuClicked(int);
+};
+
+#endif