diff options
Diffstat (limited to 'src/modules/reguser/RegisteredUsersDialog.h')
| -rw-r--r-- | src/modules/reguser/RegisteredUsersDialog.h | 159 |
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 |
