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 /kmailcvt/filters.hxx | |
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 'kmailcvt/filters.hxx')
-rw-r--r-- | kmailcvt/filters.hxx | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/kmailcvt/filters.hxx b/kmailcvt/filters.hxx new file mode 100644 index 000000000..10bb5c30b --- /dev/null +++ b/kmailcvt/filters.hxx @@ -0,0 +1,143 @@ +/*************************************************************************** + filters.hxx - description + ------------------- + begin : Fri Jun 30 2000 + copyright : (C) 2000 by Hans Dijkema + email : kmailcvt@hum.org + ***************************************************************************/ + +/*************************************************************************** + * * + * 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. * + * * + ***************************************************************************/ + +#ifndef FILTERS_HXX +#define FILTERS_HXX + +#ifndef MAX_LINE +#define MAX_LINE 4096 +#endif + +#include <qcombobox.h> +#include <qprogressbar.h> +#include <qptrlist.h> +#include <qlistbox.h> +#include <qlabel.h> + +#include "kimportpagedlg.h" + +class FilterInfo +{ + public: + FilterInfo(KImportPageDlg *dlg, QWidget *parent, bool _removeDupMsg); + ~FilterInfo(); + + void setStatusMsg( const QString& status ); + void setFrom( const QString& from ); + void setTo( const QString& to ); + void setCurrent( const QString& current ); + void setCurrent( int percent = 0 ); + void setOverall( int percent = 0 ); + void addLog( const QString& log ); + void clear(); + void alert( const QString& message ); + static void terminateASAP(); + bool shouldTerminate(); + + QWidget *parent() { return m_parent; } + bool removeDupMsg; + + private: + KImportPageDlg *m_dlg; + QWidget *m_parent; + static bool s_terminateASAP; +}; + +class Filter +{ + public: + Filter( const QString& name, const QString& author, + const QString& info = QString::null ); + virtual ~Filter() {} + virtual void import( FilterInfo* ) = 0; + QString author() const { return m_author; } + QString name() const { return m_name; } + QString info() const { return m_info; } + + int count_duplicates; //to count all duplicate messages + + protected: + bool addMessage( FilterInfo* info, + const QString& folder, + const QString& msgFile, + const QString& msgStatusFlags = QString()); + bool addMessage_fastImport( FilterInfo* info, + const QString& folder, + const QString& msgFile, + const QString& msgStatusFlags = QString()); + bool endImport(); + private: + QString m_name; + QString m_author; + QString m_info; +}; + + + +/** +* Glorified QString[N] for (a) understandability (b) older gcc compatibility. +*/ +template <unsigned int size> class FolderStructureBase +{ +public: + typedef QString NString[size]; + /** Constructor. Need a default constructor for QValueList. */ + FolderStructureBase() {} ; + + /** Constructor. Turn N QStrings into a folder structure + * description. + */ + FolderStructureBase(const NString &s) + { + for(unsigned int i=0; i<size; i++) d[i]=s[i]; + } ; + + /** Copy Constructor. */ + FolderStructureBase(const FolderStructureBase &s) + { + for(unsigned int i=0; i<size; i++) d[i]=s[i]; + } ; + + /** Assignment operator. Does the same thing as + * the copy constructor. + */ + FolderStructureBase &operator =(const FolderStructureBase &s) + { + for(unsigned int i=0; i<size; i++) d[i]=s[i]; + return *this; + } ; + + /** Access the different fields. There doesn't seem to + * be a real semantics for the fields. + */ + const QString operator [](unsigned int i) const + { + if (i<size) return d[i]; else return QString::null; + } ; + + /** Access the different fields, for writing. */ + QString &operator [](unsigned int i) + { + Q_ASSERT(i<size); + if (i<size) return d[i]; else return d[0]; + } ; +private: + QString d[size]; +} ; + +#endif + |