summaryrefslogtreecommitdiffstats
path: root/kmailcvt/filters.h
diff options
context:
space:
mode:
Diffstat (limited to 'kmailcvt/filters.h')
-rw-r--r--kmailcvt/filters.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/kmailcvt/filters.h b/kmailcvt/filters.h
new file mode 100644
index 00000000..f9261bcb
--- /dev/null
+++ b/kmailcvt/filters.h
@@ -0,0 +1,145 @@
+/***************************************************************************
+ filters.h - 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_H
+#define FILTERS_H
+
+#ifndef MAX_LINE
+#define MAX_LINE 4096
+#endif
+
+#include <tqcombobox.h>
+#include <tqprogressbar.h>
+#include <tqptrlist.h>
+#include <tqlistbox.h>
+#include <tqlabel.h>
+
+#include "kimportpagedlg.h"
+
+class FilterInfo
+{
+ public:
+ FilterInfo(KImportPageDlg *dlg, TQWidget *parent, bool _removeDupMsg);
+ ~FilterInfo();
+
+ void setStatusMsg( const TQString& status );
+ void setFrom( const TQString& from );
+ void setTo( const TQString& to );
+ void setCurrent( const TQString& current );
+ void setCurrent( int percent = 0 );
+ void setOverall( int percent = 0 );
+ void addLog( const TQString& log );
+ void clear();
+ void alert( const TQString& message );
+ static void terminateASAP();
+ bool shouldTerminate();
+
+ TQWidget *parent() { return m_parent; }
+ bool removeDupMsg;
+
+ private:
+ KImportPageDlg *m_dlg;
+ TQWidget *m_parent;
+ static bool s_terminateASAP;
+};
+
+class Filter
+{
+ public:
+ Filter( const TQString& name, const TQString& author,
+ const TQString& info = TQString() );
+ virtual ~Filter() {}
+ virtual void import( FilterInfo* ) = 0;
+ TQString author() const { return m_author; }
+ TQString name() const { return m_name; }
+ TQString info() const { return m_info; }
+
+ virtual bool needsSecondPage();
+
+ int count_duplicates; //to count all duplicate messages
+
+ protected:
+ void showKMailImportArchiveDialog( FilterInfo* info );
+ bool addMessage( FilterInfo* info,
+ const TQString& folder,
+ const TQString& msgFile,
+ const TQString& msgStatusFlags = TQString());
+ bool addMessage_fastImport( FilterInfo* info,
+ const TQString& folder,
+ const TQString& msgFile,
+ const TQString& msgStatusFlags = TQString());
+ private:
+ TQString m_name;
+ TQString m_author;
+ TQString m_info;
+};
+
+
+
+/**
+* Glorified TQString[N] for (a) understandability (b) older gcc compatibility.
+*/
+template <unsigned int size> class FolderStructureBase
+{
+public:
+ typedef TQString NString[size];
+ /** Constructor. Need a default constructor for TQValueList. */
+ FolderStructureBase() {} ;
+
+ /** Constructor. Turn N TQStrings 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 TQString operator [](unsigned int i) const
+ {
+ if (i<size) return d[i]; else return TQString();
+ } ;
+
+ /** Access the different fields, for writing. */
+ TQString &operator [](unsigned int i)
+ {
+ Q_ASSERT(i<size);
+ if (i<size) return d[i]; else return d[0];
+ } ;
+private:
+ TQString d[size];
+} ;
+
+#endif
+