kmail
filterimporterexporter.h
00001 /* 00002 This file is part of KMail. 00003 Copyright (c) 2007 Till Adam <adam@kde.org> 00004 00005 KMail is free software; you can redistribute it and/or modify it 00006 under the terms of the GNU General Public License, version 2, as 00007 published by the Free Software Foundation. 00008 00009 KMail is distributed in the hope that it will be useful, but 00010 WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program; if not, write to the Free Software 00016 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00017 00018 In addition, as a special exception, the copyright holders give 00019 permission to link the code of this program with any edition of 00020 the Qt library by Trolltech AS, Norway (or with modified versions 00021 of Qt that use the same license as Qt), and distribute linked 00022 combinations including the two. You must obey the GNU General 00023 Public License in all respects for all of the code used other than 00024 Qt. If you modify this file, you may extend this exception to 00025 your version of the file, but you are not obligated to do so. If 00026 you do not wish to do so, delete this exception statement from 00027 your version. 00028 */ 00029 00030 #ifndef __FILTERIMPORTEREXPORTER_H__ 00031 #define __FILTERIMPORTEREXPORTER_H__ 00032 00033 #include <qvaluelist.h> 00034 #include <kdialogbase.h> 00035 class KMFilter; 00036 class KConfig; 00037 class QWidget; 00038 class KPushButton; 00039 00040 namespace KMail 00041 { 00042 00047 class FilterImporterExporter 00048 { 00049 public: 00050 FilterImporterExporter( QWidget* parent, bool popFilter = false ); 00051 virtual ~FilterImporterExporter(); 00052 00056 void exportFilters( const QValueList<KMFilter*> & ); 00057 00060 QValueList<KMFilter*> importFilters(); 00061 00062 static void writeFiltersToConfig( const QValueList<KMFilter*>& filters, KConfig* config, bool bPopFilter ); 00063 static QValueList<KMFilter*> readFiltersFromConfig( KConfig* config, bool bPopFilter ); 00064 private: 00065 QWidget* mParent; 00066 bool mPopFilter; 00067 }; 00068 class FilterSelectionDialog : public KDialogBase 00069 { 00070 Q_OBJECT 00071 public: 00072 FilterSelectionDialog( QWidget * parent = 0 ); 00073 00074 virtual ~FilterSelectionDialog(); 00075 virtual void slotCancel(); 00076 bool cancelled(); 00077 void setFilters( const QValueList<KMFilter*>& filters ); 00078 00079 QValueList<KMFilter*> selectedFilters() const; 00080 public slots: 00081 void slotUnselectAllButton(); 00082 void slotSelectAllButton(); 00083 private: 00084 KListView *filtersListView; 00085 QValueList<KMFilter*> originalFilters; 00086 bool wasCancelled; 00087 KPushButton *selectAllButton; 00088 KPushButton *unselectAllButton; 00089 }; 00090 00091 } 00092 00093 #endif /* __FILTERIMPORTEREXPORTER_H__ */