8 #include <tqguardedptr.h>
10 #include <weaverlogger.h>
13 #include <kdeversion.h>
15 #include <kdepimmacros.h>
17 #include "kmailIface.h"
18 #include "kmmsgbase.h"
19 #include "globalsettings.h"
21 #define kmkernel KMKernel::self()
22 #define kmconfig KMKernel::config()
36 class MailServiceImpl;
42 namespace KPIM { class ProgressDialog; }
43 using KMail::MailServiceImpl;
45 using KMail::UndoStack;
47 using KPIM::ProgressDialog;
57 class IdentityManager;
61 class KProgressDialog;
72 class ConfigureDialog;
89 KMKernel (TQObject *parent=0, const char *name=0);
95 TQStringList accounts();
96 void checkAccount ( const TQString &account);
98 int openComposer ( const TQString &to, const TQString &cc, const TQString &bcc,
99 const TQString &subject, const TQString &body, int hidden,
100 const KURL &messageFile, const KURL::List &attachURLs,
101 const QCStringList &customHeaders);
103 int openComposer ( const TQString &to, const TQString &cc, const TQString &bcc,
104 const TQString &subject, const TQString &body, int hidden,
105 const KURL &messageFile, const KURL::List &attachURLs)
107 QCStringList noCustomHeaders;
108 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, attachURLs, noCustomHeaders);
111 int openComposer ( const TQString &to, const TQString &cc, const TQString &bcc,
112 const TQString &subject, const TQString &body, int hidden,
113 const KURL &messageFile, const KURL& attachURL)
115 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, KURL::List(attachURL));
118 int openComposer ( const TQString &to, const TQString &cc, const TQString &bcc,
119 const TQString &subject, const TQString &body, int hidden,
120 const KURL &messageFile)
122 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, KURL::List());
127 int openComposer ( const TQString &to, const TQString &cc,
128 const TQString &bcc, const TQString &subject,
129 const TQString &body, int hidden,
130 const TQString &attachName,
131 const TQCString &attachCte,
132 const TQCString &attachData,
133 const TQCString &attachType,
134 const TQCString &attachSubType,
135 const TQCString &attachParamAttr,
136 const TQString &attachParamValue,
137 const TQCString &attachContDisp);
142 int openComposer ( const TQString &to, const TQString &cc,
143 const TQString &bcc, const TQString &subject,
144 const TQString &body, int hidden,
145 const TQString &attachName,
146 const TQCString &attachCte,
147 const TQCString &attachData,
148 const TQCString &attachType,
149 const TQCString &attachSubType,
150 const TQCString &attachParamAttr,
151 const TQString &attachParamValue,
152 const TQCString &attachContDisp,
153 const TQCString &attachCharset);
155 int openComposer ( const TQString &to, const TQString &cc,
156 const TQString &bcc, const TQString &subject,
157 const TQString &body, int hidden,
158 const TQString &attachName,
159 const TQCString &attachCte,
160 const TQCString &attachData,
161 const TQCString &attachType,
162 const TQCString &attachSubType,
163 const TQCString &attachParamAttr,
164 const TQString &attachParamValue,
165 const TQCString &attachContDisp,
166 const TQCString &attachCharset,
167 unsigned int identity);
169 DCOPRef openComposer( const TQString &to, const TQString &cc,
170 const TQString &bcc, const TQString &subject,
171 const TQString &body, bool hidden);
178 DCOPRef newMessage( const TQString &to,
183 const KURL &messageFile,
184 const KURL &attachURL);
186 int sendCertificate( const TQString& to, const TQByteArray& certData );
188 void openReader() { openReader( false ); }
190 int dcopAddMessage( const TQString & foldername, const TQString & messagefile,
191 const TQString & MsgStatusFlags = TQString());
192 int dcopAddMessage( const TQString & foldername, const KURL & messagefile,
193 const TQString & MsgStatusFlags = TQString());
197 const TQString & MsgStatusFlags = TQString());
199 const TQString & MsgStatusFlags = TQString());
200 void showImportArchiveDialog();
202 TQStringList folderList() const;
203 DCOPRef getFolder( const TQString& vpath );
204 void selectFolder( TQString folder );
205 int timeOfLastMessageCountChange() const;
206 virtual bool showMail( TQ_UINT32 serialNumber, TQString messageId );
207 virtual TQString getFrom( TQ_UINT32 serialNumber );
208 virtual TQString debugScheduler();
209 virtual TQString debugSernum( TQ_UINT32 serialNumber );
210 int viewMessage( const KURL & messageFile );
241 static bool askToGoOnline();
247 static bool isOffline();
252 static KConfig *config();
256 void cleanupImapFolders();
257 void recreateCorruptIndexFiles();
258 void testDir( const char *_name);
259 void recoverDeadLetters();
260 void initFolders(KConfig* cfg);
261 void closeAllKMailWindows();
269 bool transferMail( TQString & destinationDir );
270 void ungrabPtrKb( void);
271 void kmailMsgHandler(TQtMsgType aType, const char* aMsg);
272 bool doSessionManagement();
273 bool firstInstance() { return the_firstInstance; }
274 void setFirstInstance( bool value) { the_firstInstance = value; }
275 void action ( bool mailto, bool check, const TQString &to, const TQString &cc,
276 const TQString &bcc, const TQString &subj, const TQString &body,
277 const KURL &messageFile, const KURL::List &attach,
278 const QCStringList &customHeaders);
279 void byteArrayToRemoteFile( const TQByteArray&, const KURL&,
280 bool overwrite = FALSE);
281 bool folderIsDraftOrOutbox( const KMFolder * );
282 bool folderIsDrafts( const KMFolder * );
283 bool folderIsTemplates( const KMFolder * );
288 bool folderIsSentMailFolder( const KMFolder * );
292 KMFolder* findFolderById( const TQString& idString );
294 KInstance *xmlGuiInstance() { return mXmlGuiInstance; }
295 void setXmlGuiInstance( KInstance *instance ) { mXmlGuiInstance = instance; }
297 KMFolder *inboxFolder() { return the_inboxFolder; }
298 KMFolder *outboxFolder() { return the_outboxFolder; }
299 KMFolder *sentFolder() { return the_sentFolder; }
300 KMFolder *trashFolder() { return the_trashFolder; }
301 KMFolder *draftsFolder() { return the_draftsFolder; }
302 KMFolder *templatesFolder() { return the_templatesFolder; }
304 KMFolderMgr *folderMgr() { return the_folderMgr; }
305 KMFolderMgr *imapFolderMgr() { return the_imapFolderMgr; }
306 KMFolderMgr *dimapFolderMgr() { return the_dimapFolderMgr; }
307 KMFolderMgr *searchFolderMgr() { return the_searchFolderMgr; }
308 UndoStack *undoStack() { return the_undoStack; }
310 KMFilterMgr *filterMgr() { return the_filterMgr; }
311 KMFilterMgr *popFilterMgr() { return the_popFilterMgr; }
313 KMail::MessageSender *msgSender();
314 KMMsgIndex *msgIndex();
316 KPIM::ThreadWeaver::Weaver *weaver() { return the_weaver; }
318 KPIM::IdentityManager *identityManager();
323 void compactAllFolders();
325 void expireAllFoldersNow();
329 bool firstStart() { return the_firstStart; }
330 TQString previousVersion() { return the_previousVersion; }
331 bool startingUp() { return the_startingUp; }
332 void setStartingUp ( bool flag) { the_startingUp = flag; }
333 bool shuttingDown() { return the_shuttingDown; }
334 void setShuttingDown( bool flag) { the_shuttingDown = flag; }
335 void serverReady ( bool flag) { the_server_is_ready = flag; }
340 static TQString localDataPath();
346 bool haveSystemTrayApplet();
348 bool registerSystemTrayApplet( const KSystemTray* );
349 bool unregisterSystemTrayApplet( const KSystemTray* );
353 void emergencyExit( const TQString& reason );
356 unsigned long getNextMsgSerNum();
357 TQTextCodec *networkCodec() { return netCodec; }
360 KMainWindow* mainWin();
366 void setContextMenuShown( bool flag ) { mContextMenuShown = flag; }
367 bool contextMenuShown() const { return mContextMenuShown; }
373 ::KIMProxy* imProxy();
379 bool mailCheckAborted() const;
383 void enableMailCheck();
389 void abortMailCheck();
391 bool canQueryClose();
396 void messageCountChanged();
399 KWallet::Wallet *wallet();
402 KMMainWidget *getKMMainWidget();
405 TQValueList< TQGuardedPtr<KMFolder> > allFolders();
409 void loadProfile( const TQString& path );
411 void saveToProfile( const TQString& path ) const;
413 bool isCodecAsciiCompatible( const TQTextCodec *codec );
417 void dumpDeadLetters();
424 void slotRequestConfigSync();
427 void slotEmptyTrash();
429 void slotShowConfigurationDialog();
430 void slotRunBackgroundTasks();
432 void slotConfigChanged();
435 void slotDataReq(KIO::Job*,TQByteArray&);
436 void slotResult(KIO::Job*);
439 void configChanged();
440 void folderRemoved( KMFolder* aFolder );
441 void onlineStatusChanged( GlobalSettings::EnumNetworkState::type );
444 void openReader( bool onlyCheck );
445 KMMsgStatus strToStatus( const TQString &flags);
455 KMFolderMgr *the_folderMgr;
456 KMFolderMgr *the_imapFolderMgr;
457 KMFolderMgr *the_dimapFolderMgr;
458 KMFolderMgr *the_searchFolderMgr;
459 UndoStack *the_undoStack;
461 KMFilterMgr *the_filterMgr;
462 KMFilterMgr *the_popFilterMgr;
464 mutable KPIM::IdentityManager *mIdentityManager;
465 KMSender *the_msgSender;
466 KMMsgIndex *the_msgIndex;
473 TQMap<KIO::Job *, putData> mPutJobs;
476 TQString the_previousVersion;
482 bool the_shuttingDown;
484 bool the_server_is_ready;
487 bool the_firstInstance;
488 bool mMailCheckAborted;
490 KSharedConfig::Ptr mConfig;
491 TQTextCodec *netCodec;
492 KInstance* mXmlGuiInstance;
493 ConfigureDialog *mConfigureDialog;
495 TQTimer *mBackgroundTasksTimer;
500 MailServiceImpl *mMailService;
505 int mTimeOfLastMessageCountChange;
510 bool mContextMenuShown;
512 TQValueList<const KSystemTray*> systemTrayApplets;
513 TQValueList<const TQTextCodec*> mNonAsciiCompatibleCodecs;
516 KPIM::ThreadWeaver::Weaver *the_weaver;
517 KPIM::ThreadWeaver::WeaverThreadLogger *the_weaverLogger;
519 KWallet::Wallet *mWallet;
522 TQStringList mAddMessageMsgIds;
523 TQString mAddMessageLastFolder;
|