8 #include <tqguardedptr.h>
10 #include <weaverlogger.h>
12 #include <kdemacros.h>
13 #include <tdeconfig.h>
14 #include <tdeversion.h>
15 #include <tdeimproxy.h>
16 #include <tdepimmacros.h>
18 #ifdef __TDE_HAVE_TDEHWLIB
19 # include <tdenetworkconnections.h>
21 namespace TDENetworkConnectionStatus {
22 enum TDENetworkConnectionStatus {
27 #include "kmailIface.h"
28 #include "kmmsgbase.h"
29 #include "globalsettings.h"
31 #define kmkernel KMKernel::self()
32 #define kmconfig KMKernel::config()
46 class MailServiceImpl;
52 namespace KPIM { class ProgressDialog; }
53 using KMail::MailServiceImpl;
55 using KMail::UndoStack;
57 using KPIM::ProgressDialog;
67 class IdentityManager;
71 class KProgressDialog;
82 class ConfigureDialog;
99 KMKernel (TQObject *parent=0, const char *name=0);
105 TQStringList accounts();
106 void checkAccount ( const TQString &account);
108 int openComposer ( const TQString &to, const TQString &cc, const TQString &bcc,
109 const TQString &subject, const TQString &body, int hidden,
110 const KURL &messageFile, const KURL::List &attachURLs,
111 const QCStringList &customHeaders);
113 int openComposer ( const TQString &to, const TQString &cc, const TQString &bcc,
114 const TQString &subject, const TQString &body, int hidden,
115 const KURL &messageFile, const KURL::List &attachURLs)
117 QCStringList noCustomHeaders;
118 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, attachURLs, noCustomHeaders);
121 int openComposer ( const TQString &to, const TQString &cc, const TQString &bcc,
122 const TQString &subject, const TQString &body, int hidden,
123 const KURL &messageFile, const KURL& attachURL)
125 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, KURL::List(attachURL));
128 int openComposer ( const TQString &to, const TQString &cc, const TQString &bcc,
129 const TQString &subject, const TQString &body, int hidden,
130 const KURL &messageFile)
132 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, KURL::List());
137 int openComposer ( const TQString &to, const TQString &cc,
138 const TQString &bcc, const TQString &subject,
139 const TQString &body, int hidden,
140 const TQString &attachName,
141 const TQCString &attachCte,
142 const TQCString &attachData,
143 const TQCString &attachType,
144 const TQCString &attachSubType,
145 const TQCString &attachParamAttr,
146 const TQString &attachParamValue,
147 const TQCString &attachContDisp);
152 int openComposer ( const TQString &to, const TQString &cc,
153 const TQString &bcc, const TQString &subject,
154 const TQString &body, int hidden,
155 const TQString &attachName,
156 const TQCString &attachCte,
157 const TQCString &attachData,
158 const TQCString &attachType,
159 const TQCString &attachSubType,
160 const TQCString &attachParamAttr,
161 const TQString &attachParamValue,
162 const TQCString &attachContDisp,
163 const TQCString &attachCharset);
165 int openComposer ( const TQString &to, const TQString &cc,
166 const TQString &bcc, const TQString &subject,
167 const TQString &body, int hidden,
168 const TQString &attachName,
169 const TQCString &attachCte,
170 const TQCString &attachData,
171 const TQCString &attachType,
172 const TQCString &attachSubType,
173 const TQCString &attachParamAttr,
174 const TQString &attachParamValue,
175 const TQCString &attachContDisp,
176 const TQCString &attachCharset,
177 unsigned int identity);
179 DCOPRef openComposer( const TQString &to, const TQString &cc,
180 const TQString &bcc, const TQString &subject,
181 const TQString &body, bool hidden);
188 DCOPRef newMessage( const TQString &to,
193 const KURL &messageFile,
194 const KURL &attachURL);
196 int sendCertificate( const TQString& to, const TQByteArray& certData );
198 void openReader() { openReader( false ); }
200 int dcopAddMessage( const TQString & foldername, const TQString & messagefile,
201 const TQString & MsgStatusFlags = TQString());
202 int dcopAddMessage( const TQString & foldername, const KURL & messagefile,
203 const TQString & MsgStatusFlags = TQString());
207 const TQString & MsgStatusFlags = TQString());
209 const TQString & MsgStatusFlags = TQString());
210 void showImportArchiveDialog();
212 TQStringList folderList() const;
213 DCOPRef getFolder( const TQString& vpath );
214 void selectFolder( TQString folder );
215 int timeOfLastMessageCountChange() const;
216 virtual bool showMail( TQ_UINT32 serialNumber, TQString messageId );
217 virtual TQString getFrom( TQ_UINT32 serialNumber );
218 virtual TQString debugScheduler();
219 virtual TQString debugSernum( TQ_UINT32 serialNumber );
220 int viewMessage( const KURL & messageFile );
251 static bool askToGoOnline();
257 static bool isOffline();
262 static TDEConfig *config();
266 void cleanupImapFolders();
267 void recreateCorruptIndexFiles();
268 void testDir( const char *_name);
269 void recoverDeadLetters();
270 void initFolders(TDEConfig* cfg);
271 void closeAllKMailWindows();
279 bool transferMail( TQString & destinationDir );
280 void ungrabPtrKb( void);
281 void kmailMsgHandler(TQtMsgType aType, const char* aMsg);
282 bool doSessionManagement();
283 bool firstInstance() { return the_firstInstance; }
284 void setFirstInstance( bool value) { the_firstInstance = value; }
285 void action ( bool mailto, bool check, const TQString &to, const TQString &cc,
286 const TQString &bcc, const TQString &subj, const TQString &body,
287 const KURL &messageFile, const KURL::List &attach,
288 const QCStringList &customHeaders);
289 void byteArrayToRemoteFile( const TQByteArray&, const KURL&,
290 bool overwrite = FALSE);
291 bool folderIsDraftOrOutbox( const KMFolder * );
292 bool folderIsDrafts( const KMFolder * );
293 bool folderIsTemplates( const KMFolder * );
298 bool folderIsSentMailFolder( const KMFolder * );
302 KMFolder* findFolderById( const TQString& idString );
304 TDEInstance *xmlGuiInstance() { return mXmlGuiInstance; }
305 void setXmlGuiInstance( TDEInstance *instance ) { mXmlGuiInstance = instance; }
307 KMFolder *inboxFolder() { return the_inboxFolder; }
308 KMFolder *outboxFolder() { return the_outboxFolder; }
309 KMFolder *sentFolder() { return the_sentFolder; }
310 KMFolder *trashFolder() { return the_trashFolder; }
311 KMFolder *draftsFolder() { return the_draftsFolder; }
312 KMFolder *templatesFolder() { return the_templatesFolder; }
314 KMFolderMgr *folderMgr() { return the_folderMgr; }
315 KMFolderMgr *imapFolderMgr() { return the_imapFolderMgr; }
316 KMFolderMgr *dimapFolderMgr() { return the_dimapFolderMgr; }
317 KMFolderMgr *searchFolderMgr() { return the_searchFolderMgr; }
318 UndoStack *undoStack() { return the_undoStack; }
320 KMFilterMgr *filterMgr() { return the_filterMgr; }
321 KMFilterMgr *popFilterMgr() { return the_popFilterMgr; }
323 KMail::MessageSender *msgSender();
324 KMMsgIndex *msgIndex();
326 KPIM::ThreadWeaver::Weaver *weaver() { return the_weaver; }
328 KPIM::IdentityManager *identityManager();
333 void compactAllFolders();
335 void expireAllFoldersNow();
339 bool firstStart() { return the_firstStart; }
340 TQString previousVersion() { return the_previousVersion; }
341 bool startingUp() { return the_startingUp; }
342 void setStartingUp ( bool flag) { the_startingUp = flag; }
343 bool shuttingDown() { return the_shuttingDown; }
344 void setShuttingDown( bool flag) { the_shuttingDown = flag; }
345 void serverReady ( bool flag) { the_server_is_ready = flag; }
350 static TQString localDataPath();
356 bool haveSystemTrayApplet();
358 bool registerSystemTrayApplet( const KSystemTray* );
359 bool unregisterSystemTrayApplet( const KSystemTray* );
363 void emergencyExit( const TQString& reason );
366 unsigned long getNextMsgSerNum();
367 TQTextCodec *networkCodec() { return netCodec; }
370 TDEMainWindow* mainWin();
376 void setContextMenuShown( bool flag ) { mContextMenuShown = flag; }
377 bool contextMenuShown() const { return mContextMenuShown; }
383 ::KIMProxy* imProxy();
389 bool mailCheckAborted() const;
393 void enableMailCheck();
399 void abortMailCheck();
401 bool canQueryClose();
406 void messageCountChanged();
409 TDEWallet::Wallet *wallet();
412 KMMainWidget *getKMMainWidget();
415 TQValueList< TQGuardedPtr<KMFolder> > allFolders();
419 void loadProfile( const TQString& path );
421 void saveToProfile( const TQString& path ) const;
423 bool isCodecAsciiCompatible( const TQTextCodec *codec );
427 void dumpDeadLetters();
434 void slotRequestConfigSync();
437 void slotEmptyTrash();
439 void slotShowConfigurationDialog();
440 void slotRunBackgroundTasks();
442 void slotConfigChanged();
445 void slotDataReq(TDEIO::Job*,TQByteArray&);
446 void slotResult(TDEIO::Job*);
447 void slotNetworkStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString);
450 void configChanged();
451 void folderRemoved( KMFolder* aFolder );
452 void onlineStatusChanged( GlobalSettings::EnumNetworkState::type );
455 void openReader( bool onlyCheck );
456 KMMsgStatus strToStatus( const TQString &flags);
457 bool networkStateConnected();
467 KMFolderMgr *the_folderMgr;
468 KMFolderMgr *the_imapFolderMgr;
469 KMFolderMgr *the_dimapFolderMgr;
470 KMFolderMgr *the_searchFolderMgr;
471 UndoStack *the_undoStack;
473 KMFilterMgr *the_filterMgr;
474 KMFilterMgr *the_popFilterMgr;
476 mutable KPIM::IdentityManager *mIdentityManager;
477 KMSender *the_msgSender;
478 KMMsgIndex *the_msgIndex;
485 TQMap<TDEIO::Job *, putData> mPutJobs;
488 TQString the_previousVersion;
494 bool the_shuttingDown;
496 bool the_server_is_ready;
499 bool the_firstInstance;
500 bool mMailCheckAborted;
502 TDESharedConfig::Ptr mConfig;
503 TQTextCodec *netCodec;
504 TDEInstance* mXmlGuiInstance;
505 ConfigureDialog *mConfigureDialog;
507 TQTimer *mBackgroundTasksTimer;
512 MailServiceImpl *mMailService;
517 int mTimeOfLastMessageCountChange;
522 bool mContextMenuShown;
524 TQValueList<const KSystemTray*> systemTrayApplets;
525 TQValueList<const TQTextCodec*> mNonAsciiCompatibleCodecs;
528 KPIM::ThreadWeaver::Weaver *the_weaver;
529 KPIM::ThreadWeaver::WeaverThreadLogger *the_weaverLogger;
531 TDEWallet::Wallet *mWallet;
534 TQStringList mAddMessageMsgIds;
535 TQString mAddMessageLastFolder;
538 #ifdef __TDE_HAVE_TDEHWLIB
539 TDEGlobalNetworkManager *mNetworkManager;
|