6#include <tqguardedptr.h>
8#include <weaverlogger.h>
12#include <tdeimproxy.h>
15#ifdef __TDE_HAVE_TDEHWLIB
16# include <tdenetworkconnections.h>
18namespace TDENetworkConnectionStatus {
19 enum TDENetworkConnectionStatus {
24#include "kmailIface.h"
26#include "globalsettings.h"
28#define kmkernel KMKernel::self()
29#define kmconfig KMKernel::config()
43 class MailServiceImpl;
49namespace KPIM {
class ProgressDialog; }
50using KMail::MailServiceImpl;
52using KMail::UndoStack;
54using KPIM::ProgressDialog;
64 class IdentityManager;
96 KMKernel (TQObject *parent=0,
const char *name=0);
102 TQStringList accounts();
103 void checkAccount (
const TQString &account);
105 int openComposer (
const TQString &to,
const TQString &cc,
const TQString &bcc,
106 const TQString &subject,
const TQString &body,
int hidden,
107 const KURL &messageFile,
const KURL::List &attachURLs,
108 const QCStringList &customHeaders);
110 int openComposer (
const TQString &to,
const TQString &cc,
const TQString &bcc,
111 const TQString &subject,
const TQString &body,
int hidden,
112 const KURL &messageFile,
const KURL::List &attachURLs)
114 QCStringList noCustomHeaders;
115 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, attachURLs, noCustomHeaders);
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,
const KURL& attachURL)
122 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, KURL::List(attachURL));
125 int openComposer (
const TQString &to,
const TQString &cc,
const TQString &bcc,
126 const TQString &subject,
const TQString &body,
int hidden,
127 const KURL &messageFile)
129 return openComposer(to, cc, bcc, subject, body, hidden, messageFile, KURL::List());
134 int openComposer (
const TQString &to,
const TQString &cc,
135 const TQString &bcc,
const TQString &subject,
136 const TQString &body,
int hidden,
137 const TQString &attachName,
138 const TQCString &attachCte,
139 const TQCString &attachData,
140 const TQCString &attachType,
141 const TQCString &attachSubType,
142 const TQCString &attachParamAttr,
143 const TQString &attachParamValue,
144 const TQCString &attachContDisp);
149 int openComposer (
const TQString &to,
const TQString &cc,
150 const TQString &bcc,
const TQString &subject,
151 const TQString &body,
int hidden,
152 const TQString &attachName,
153 const TQCString &attachCte,
154 const TQCString &attachData,
155 const TQCString &attachType,
156 const TQCString &attachSubType,
157 const TQCString &attachParamAttr,
158 const TQString &attachParamValue,
159 const TQCString &attachContDisp,
160 const TQCString &attachCharset);
162 int openComposer (
const TQString &to,
const TQString &cc,
163 const TQString &bcc,
const TQString &subject,
164 const TQString &body,
int hidden,
165 const TQString &attachName,
166 const TQCString &attachCte,
167 const TQCString &attachData,
168 const TQCString &attachType,
169 const TQCString &attachSubType,
170 const TQCString &attachParamAttr,
171 const TQString &attachParamValue,
172 const TQCString &attachContDisp,
173 const TQCString &attachCharset,
174 unsigned int identity);
176 DCOPRef openComposer(
const TQString &to,
const TQString &cc,
177 const TQString &bcc,
const TQString &subject,
178 const TQString &body,
bool hidden);
185 DCOPRef newMessage(
const TQString &to,
190 const KURL &messageFile,
191 const KURL &attachURL);
193 int sendCertificate(
const TQString& to,
const TQByteArray& certData );
195 void openReader() { openReader(
false ); }
197 int dcopAddMessage(
const TQString & foldername,
const TQString & messagefile,
198 const TQString & MsgStatusFlags = TQString());
199 int dcopAddMessage(
const TQString & foldername,
const KURL & messagefile,
200 const TQString & MsgStatusFlags = TQString());
204 const TQString & MsgStatusFlags = TQString());
206 const TQString & MsgStatusFlags = TQString());
207 void showImportArchiveDialog();
209 TQStringList folderList()
const;
210 DCOPRef getFolder(
const TQString& vpath );
211 void selectFolder( TQString folder );
212 int timeOfLastMessageCountChange()
const;
213 virtual bool showMail( TQ_UINT32 serialNumber, TQString messageId );
214 virtual TQString
getFrom( TQ_UINT32 serialNumber );
215 virtual TQString debugScheduler();
216 virtual TQString debugSernum( TQ_UINT32 serialNumber );
217 int viewMessage(
const KURL & messageFile );
248 static bool askToGoOnline();
254 static bool isOffline();
259 static TDEConfig *config();
263 void cleanupImapFolders();
264 void recreateCorruptIndexFiles();
265 void testDir(
const char *_name);
266 void recoverDeadLetters();
267 void initFolders(TDEConfig* cfg);
268 void closeAllKMailWindows();
276 bool transferMail( TQString & destinationDir );
277 void ungrabPtrKb(
void);
278 void kmailMsgHandler(TQtMsgType aType,
const char* aMsg);
279 bool doSessionManagement();
280 bool firstInstance() {
return the_firstInstance; }
281 void setFirstInstance(
bool value) { the_firstInstance = value; }
282 void action (
bool mailto,
bool check,
const TQString &to,
const TQString &cc,
283 const TQString &bcc,
const TQString &subj,
const TQString &body,
284 const KURL &messageFile,
const KURL::List &attach,
285 const QCStringList &customHeaders);
286 void byteArrayToRemoteFile(
const TQByteArray&,
const KURL&,
287 bool overwrite =
false);
288 bool folderIsDraftOrOutbox(
const KMFolder * );
289 bool folderIsDrafts(
const KMFolder * );
290 bool folderIsTemplates(
const KMFolder * );
295 bool folderIsSentMailFolder(
const KMFolder * );
299 KMFolder* findFolderById(
const TQString& idString );
301 TDEInstance *xmlGuiInstance() {
return mXmlGuiInstance; }
302 void setXmlGuiInstance( TDEInstance *instance ) { mXmlGuiInstance = instance; }
304 KMFolder *inboxFolder() {
return the_inboxFolder; }
305 KMFolder *outboxFolder() {
return the_outboxFolder; }
306 KMFolder *sentFolder() {
return the_sentFolder; }
307 KMFolder *trashFolder() {
return the_trashFolder; }
308 KMFolder *draftsFolder() {
return the_draftsFolder; }
309 KMFolder *templatesFolder() {
return the_templatesFolder; }
311 KMFolderMgr *folderMgr() {
return the_folderMgr; }
312 KMFolderMgr *imapFolderMgr() {
return the_imapFolderMgr; }
313 KMFolderMgr *dimapFolderMgr() {
return the_dimapFolderMgr; }
314 KMFolderMgr *searchFolderMgr() {
return the_searchFolderMgr; }
315 UndoStack *undoStack() {
return the_undoStack; }
317 KMFilterMgr *filterMgr() {
return the_filterMgr; }
318 KMFilterMgr *popFilterMgr() {
return the_popFilterMgr; }
320 KMail::MessageSender *msgSender();
321 KMMsgIndex *msgIndex();
323 KPIM::ThreadWeaver::Weaver *weaver() {
return the_weaver; }
325 KPIM::IdentityManager *identityManager();
330 void compactAllFolders();
332 void expireAllFoldersNow();
336 bool firstStart() {
return the_firstStart; }
337 TQString previousVersion() {
return the_previousVersion; }
338 bool startingUp() {
return the_startingUp; }
339 void setStartingUp (
bool flag) { the_startingUp = flag; }
340 bool shuttingDown() {
return the_shuttingDown; }
341 void setShuttingDown(
bool flag) { the_shuttingDown = flag; }
342 void serverReady (
bool flag) { the_server_is_ready = flag; }
347 static TQString localDataPath();
353 bool haveSystemTrayApplet();
355 bool registerSystemTrayApplet(
const KSystemTray* );
356 bool unregisterSystemTrayApplet(
const KSystemTray* );
360 void emergencyExit(
const TQString& reason );
364 TQTextCodec *networkCodec() {
return netCodec; }
367 TDEMainWindow* mainWin();
373 void setContextMenuShown(
bool flag ) { mContextMenuShown = flag; }
374 bool contextMenuShown()
const {
return mContextMenuShown; }
380 ::KIMProxy* imProxy();
386 bool mailCheckAborted()
const;
390 void enableMailCheck();
396 void abortMailCheck();
398 bool canQueryClose();
403 void messageCountChanged();
406 TDEWallet::Wallet *wallet();
409 KMMainWidget *getKMMainWidget();
412 TQValueList< TQGuardedPtr<KMFolder> > allFolders();
416 void loadProfile(
const TQString& path );
418 void saveToProfile(
const TQString& path )
const;
420 bool isCodecAsciiCompatible(
const TQTextCodec *codec );
424 void dumpDeadLetters();
431 void slotRequestConfigSync();
434 void slotEmptyTrash();
436 void slotShowConfigurationDialog();
437 void slotRunBackgroundTasks();
439 void slotConfigChanged();
442 void slotDataReq(TDEIO::Job*,TQByteArray&);
443 void slotResult(TDEIO::Job*);
444 void slotNetworkStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString);
447 void configChanged();
448 void folderRemoved(
KMFolder* aFolder );
449 void onlineStatusChanged( GlobalSettings::EnumNetworkState::type );
452 void openReader(
bool onlyCheck );
453 KMMsgStatus strToStatus(
const TQString &flags);
454 bool networkStateConnected();
464 KMFolderMgr *the_folderMgr;
465 KMFolderMgr *the_imapFolderMgr;
466 KMFolderMgr *the_dimapFolderMgr;
467 KMFolderMgr *the_searchFolderMgr;
468 UndoStack *the_undoStack;
470 KMFilterMgr *the_filterMgr;
471 KMFilterMgr *the_popFilterMgr;
473 mutable KPIM::IdentityManager *mIdentityManager;
474 KMSender *the_msgSender;
475 KMMsgIndex *the_msgIndex;
482 TQMap<TDEIO::Job *, putData> mPutJobs;
485 TQString the_previousVersion;
491 bool the_shuttingDown;
493 bool the_server_is_ready;
496 bool the_firstInstance;
497 bool mMailCheckAborted;
499 TDESharedConfig::Ptr mConfig;
500 TQTextCodec *netCodec;
501 TDEInstance* mXmlGuiInstance;
502 ConfigureDialog *mConfigureDialog;
504 TQTimer *mBackgroundTasksTimer;
509 MailServiceImpl *mMailService;
514 int mTimeOfLastMessageCountChange;
519 bool mContextMenuShown;
521 TQValueList<const KSystemTray*> systemTrayApplets;
522 TQValueList<const TQTextCodec*> mNonAsciiCompatibleCodecs;
525 KPIM::ThreadWeaver::Weaver *the_weaver;
526 KPIM::ThreadWeaver::WeaverThreadLogger *the_weaverLogger;
528 TDEWallet::Wallet *mWallet;
531 TQStringList mAddMessageMsgIds;
532 TQString mAddMessageLastFolder;
535#ifdef __TDE_HAVE_TDEHWLIB
536 TDEGlobalNetworkManager *mNetworkManager;
Dictionary that contains a list of all registered filter actions with their creation functions.
Central point of coordination in KMail.
int openComposer(const TQString &to, const TQString &cc, const TQString &bcc, const TQString &subject, const TQString &body, int hidden, const KURL &messageFile, const KURL &attachURL)
For backward compatibility.
int openComposer(const TQString &to, const TQString &cc, const TQString &bcc, const TQString &subject, const TQString &body, int hidden, const KURL &messageFile)
For backward compatibility.
unsigned long getNextMsgSerNum()
Returns a message serial number that hasn't been used yet.
static KMKernel * self()
normal control stuff
int openComposer(const TQString &to, const TQString &cc, const TQString &bcc, const TQString &subject, const TQString &body, int hidden, const KURL &messageFile, const KURL::List &attachURLs)
For backward compatibility.
This class implements a "reader window", that is a window used for reading or viewing messages.
The implementation of the interface.
checkMail wont show reader but will check mail.
virtual void setDefaultTransport(const TQString &transport)=0
Set the KMail Default transport.
virtual void dcopResetAddMessage()=0
Clears the list of added message ids which is used to filter out duplicates.
virtual void resumeBackgroundJobs()=0
Resume compaction/expiry, and allow launching new ones.
virtual void pauseBackgroundJobs()=0
Abort any running compaction/expiry, and don't launch any new ones until resumeBackgroundJobs() is ca...
virtual int dcopAddMessage_fastImport(const TQString &foldername, const TQString &messagefile, const TQString &MsgStatusFlags=TQString())=0
Does essentially the same as dcopAddMessage except that it doesn't reject duplicate messages.
virtual bool showMail(TQ_UINT32 serialNumber, TQString messageId)=0
Shows the specified message in a separate message window.
virtual bool handleCommandLine(bool noArgsOpensReader)=0
DCOP-enabled for KMailUniqueAppHandler in the kontact plugin.
virtual int dcopAddMessage(const TQString &foldername, const TQString &messagefile, const TQString &MsgStatusFlags=TQString())=0
virtual int sendCertificate(const TQString &to, const TQByteArray &certData)=0
Send a certificate request to the CA specified in to.
virtual void stopNetworkJobs()=0
Stop all network related jobs and enter offline mode.
virtual void resumeNetworkJobs()=0
Resume all network related jobs and enter online mode.
virtual TQString getFrom(TQ_UINT32 serialNumber)=0
DCOP-enabled for use in kaddressbook drop.
The account manager is responsible for creating accounts of various types via the factory method crea...
The unique JobScheduler instance (owned by kmkernel) implements "background processing" of folder ope...