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 <tqvaluelist.h>
00034 #include <kdialogbase.h>
00035 class KMFilter;
00036 class KConfig;
00037 class TQWidget;
00038 class KPushButton;
00039 
00040 namespace KMail
00041 {
00042 
00047 class FilterImporterExporter
00048 {
00049 public:
00050       FilterImporterExporter( TQWidget* parent, bool popFilter = false );
00051       virtual ~FilterImporterExporter();
00052 
00056       void exportFilters( const TQValueList<KMFilter*> & );
00057 
00060       TQValueList<KMFilter*> importFilters();
00061 
00062       static void writeFiltersToConfig( const TQValueList<KMFilter*>& filters, KConfig* config, bool bPopFilter );
00063       static TQValueList<KMFilter*> readFiltersFromConfig( KConfig* config, bool bPopFilter );
00064 private:
00065       TQWidget* mParent;
00066       bool mPopFilter;
00067 };
00068 class FilterSelectionDialog : public KDialogBase
00069 {
00070   Q_OBJECT
00071 public:
00072   FilterSelectionDialog( TQWidget * parent = 0 );
00073 
00074   virtual ~FilterSelectionDialog();
00075   virtual void slotCancel();
00076   bool cancelled();
00077   void setFilters( const TQValueList<KMFilter*>& filters );
00078 
00079   TQValueList<KMFilter*> selectedFilters() const;
00080 public slots:
00081   void slotUnselectAllButton();
00082   void slotSelectAllButton();
00083 private:
00084   KListView *filtersListView;
00085   TQValueList<KMFilter*> originalFilters;
00086   bool wasCancelled;
00087   KPushButton *selectAllButton;
00088   KPushButton *unselectAllButton;
00089 };
00090 
00091 }
00092 
00093 #endif /* __FILTERIMPORTEREXPORTER_H__ */