diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /knode/kngroupbrowser.h | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
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
Diffstat (limited to 'knode/kngroupbrowser.h')
-rw-r--r-- | knode/kngroupbrowser.h | 117 |
1 files changed, 117 insertions, 0 deletions
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 <qlistview.h> + +#include <kdialogbase.h> + +#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<KNGroupInfo> *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 |