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/knfiltermanager.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/knfiltermanager.h')
-rw-r--r-- | knode/knfiltermanager.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/knode/knfiltermanager.h b/knode/knfiltermanager.h new file mode 100644 index 000000000..ca76bcb75 --- /dev/null +++ b/knode/knfiltermanager.h @@ -0,0 +1,106 @@ +/* + KNode, the KDE newsreader + Copyright (c) 1999-2005 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 KNFILTERMANAGER_H +#define KNFILTERMANAGER_H + +#include <qglobal.h> +#include <qvaluelist.h> + +#include <kaction.h> + +namespace KNConfig { +class FilterListWidget; +} + +class KNArticleFilter; +class KNFilterDialog; + + +class KNFilterSelectAction : public KActionMenu +{ + Q_OBJECT + + public: + KNFilterSelectAction( const QString& text, const QString& pix, + QObject* parent, const char *name ); + ~KNFilterSelectAction(); + + void setCurrentItem(int id); + + protected slots: + void slotMenuActivated(int id); + + signals: + void activated(int id); + + private: + int currentItem; +}; + + +class KNFilterManager : public QObject +{ + Q_OBJECT + + public: + KNFilterManager(QObject * parent = 0, const char * name = 0); + ~KNFilterManager(); + + void readOptions(); + void saveOptions(); + + void prepareShutdown(); + + KNArticleFilter* currentFilter() { return currFilter; } + + void startConfig(KNConfig::FilterListWidget *fs); + void endConfig(); + void commitChanges(); + void newFilter(); + void editFilter(KNArticleFilter *f); + void copyFilter(KNArticleFilter *f); + void addFilter(KNArticleFilter *f); + void deleteFilter(KNArticleFilter *f); + bool newNameIsOK(KNArticleFilter *f, const QString &newName); + + // Allow to delay the setup of UI elements, since the knode part may not + // be available when the config dialog is called + void setMenuAction(KNFilterSelectAction *a, KAction *keybA); + + protected: + void loadFilters(); + void saveFilterLists(); + KNArticleFilter* setFilter(const int id); + KNArticleFilter* byID(int id); + void updateMenu(); + + QValueList<KNArticleFilter*> mFilterList; + KNConfig::FilterListWidget *fset; + KNArticleFilter *currFilter; + KNFilterSelectAction *a_ctFilter; + QValueList<int> menuOrder; + bool commitNeeded; + + protected slots: + void slotMenuActivated(int id); + void slotShowFilterChooser(); + + signals: + void filterChanged(KNArticleFilter *f); + +}; + +#endif + |