From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- knode/kngroupbrowser.h | 117 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 knode/kngroupbrowser.h (limited to 'knode/kngroupbrowser.h') diff --git a/knode/kngroupbrowser.h b/knode/kngroupbrowser.h new file mode 100644 index 000000000..eb633c8b9 --- /dev/null +++ b/knode/kngroupbrowser.h @@ -0,0 +1,117 @@ +/* + kngroupbrowser.h + + KNode, the KDE newsreader + Copyright (c) 1999-2001 the KNode authors. + See file AUTHORS for details + + 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 option) any later version. + 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, US +*/ + +#ifndef KNGROUPBROWSER_H +#define KNGROUPBROWSER_H + +#include + +#include + +#include "kngroupmanager.h" + +class KLineEdit; +class QCheckBox; +class QLayout; +class QLabel; +class QGridLayout; + +class KNNntpAccount; + + +class KNGroupBrowser : public KDialogBase { + + Q_OBJECT + + public: + class CheckItem : public QCheckListItem { + + public: + CheckItem(QListView *v, const KNGroupInfo &gi, KNGroupBrowser *b); + CheckItem(QListViewItem *i, const KNGroupInfo &gi, KNGroupBrowser *b); + ~CheckItem(); + void setChecked(bool c); + + KNGroupInfo info; + + protected: + void stateChange(bool s); + KNGroupBrowser *browser; + }; + + class GroupItem : public QListViewItem { + + public: + GroupItem(QListView *v, const KNGroupInfo &gi); + GroupItem(QListViewItem *i, const KNGroupInfo &gi); + ~GroupItem(); + + KNGroupInfo info; + }; + + KNGroupBrowser(QWidget *parent, const QString &caption, KNNntpAccount *a, int buttons=0, + bool newCBact=false, const QString &user1=QString::null, const QString &user2=QString::null); + ~KNGroupBrowser(); + + KNNntpAccount* account()const { return a_ccount; } + virtual void itemChangedState(CheckItem *it, bool s)=0; + + public slots: + void slotReceiveList(KNGroupListData* d); + + signals: + void loadList(KNNntpAccount *a); + + protected: + virtual void updateItemState(CheckItem *it)=0; + void changeItemState(const KNGroupInfo &gi, bool s); + bool itemInListView(QListView *view, const KNGroupInfo &gi); + void removeListItem(QListView *view, const KNGroupInfo &gi); + void createListItems(QListViewItem *parent=0); + + QWidget *page; + QListView *groupView; + int delayedCenter; + KLineEdit *filterEdit; + QCheckBox *noTreeCB, *subCB, *newCB; + QPushButton *arrowBtn1, *arrowBtn2; + QPixmap pmGroup, pmNew; + QIconSet pmRight, pmLeft; + QGridLayout *listL; + QLabel *leftLabel, *rightLabel; + QTimer *refilterTimer; + QString lastFilter; + bool incrementalFilter; + + KNNntpAccount *a_ccount; + QSortedList *allList, *matchList; + + protected slots: + void slotLoadList(); + void slotItemExpand(QListViewItem *it); + void slotCenterDelayed(); + /** double click checks/unchecks (opens/closes) item */ + void slotItemDoubleClicked(QListViewItem *it); + void slotFilter(const QString &txt); + void slotTreeCBToggled(); + void slotSubCBToggled(); + void slotNewCBToggled(); + void slotFilterTextChanged(const QString &txt); + void slotRefilter(); + +}; + +#endif -- cgit v1.2.1