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> 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);
185 void setDefaultTransport(
const TQString & transport );
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());
204 void dcopResetAddMessage();
206 int dcopAddMessage_fastImport(
const TQString & foldername,
const TQString & messagefile,
207 const TQString & MsgStatusFlags = TQString());
208 int dcopAddMessage_fastImport(
const TQString & foldername,
const KURL & messagefile,
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 );
226 virtual void pauseBackgroundJobs();
232 virtual void resumeBackgroundJobs();
238 void stopNetworkJobs();
244 void resumeNetworkJobs();
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* );
362 bool handleCommandLine(
bool noArgsOpensReader );
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;
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.
This class implements a "reader window", that is a window used for reading or viewing messages...
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)
For backward compatibility.
checkMail wont show reader but will check mail.
Dictionary that contains a list of all registered filter actions with their creation functions...
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.
The implementation of the interface.
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...