You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
2.4 KiB
112 lines
2.4 KiB
// KMail startup and initialize code |
|
// Author: Stefan Taferner <taferner@alpin.or.at> |
|
|
|
#include <qstring.h> |
|
#include <qdir.h> |
|
#include "kmglobal.h" |
|
#include "kmmainwin.h" |
|
#include "kmacctmgr.h" |
|
#include "kmfoldermgr.h" |
|
#include "kmsender.h" |
|
#include "kbusyptr.h" |
|
#include <kapp.h> |
|
#include <stdio.h> |
|
#include <stdlib.h> |
|
#include <kmsgbox.h> |
|
#include <klocale.h> |
|
|
|
KBusyPtr* kbp = NULL; |
|
KApplication* app = NULL; |
|
KMAcctMgr* acctMgr = NULL; |
|
KMFolderMgr* folderMgr = NULL; |
|
KMSender* msgSender = NULL; |
|
KLocale* nls = NULL; |
|
|
|
static msg_handler oldMsgHandler = NULL; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Message handler |
|
static void kmailMsgHandler(QtMsgType aType, const char* aMsg) |
|
{ |
|
QString appName = app->appName(); |
|
|
|
switch (aType) |
|
{ |
|
case QtDebugMsg: |
|
fprintf(stderr, "%s: %s\n", (const char*)app->appName(), aMsg); |
|
break; |
|
|
|
case QtWarningMsg: |
|
KMsgBox::message(NULL, appName+" "+nls->translate("warning"), aMsg, |
|
KMsgBox::EXCLAMATION); |
|
break; |
|
|
|
case QtFatalMsg: |
|
fprintf(stderr, appName+" "+nls->translate("fatal")+": %s\n", aMsg); |
|
KMsgBox::message(NULL, appName+nls->translate("fatal"), |
|
aMsg, KMsgBox::STOP); |
|
abort(); |
|
} |
|
} |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
static void init(int argc, char *argv[]) |
|
{ |
|
QString fname; |
|
KConfig* cfg; |
|
|
|
app = new KApplication(argc, argv, "kmail"); |
|
nls = new KLocale; |
|
|
|
kbp = new KBusyPtr(app); |
|
cfg = app->getConfig(); |
|
|
|
oldMsgHandler = qInstallMsgHandler(kmailMsgHandler); |
|
|
|
cfg->setGroup("General"); |
|
|
|
fname = QDir::homeDirPath() + |
|
cfg->readEntry("accounts", &QString("/.kde/mail-accounts")); |
|
acctMgr = new KMAcctMgr(fname); |
|
|
|
fname = QDir::homeDirPath() + |
|
cfg->readEntry("folders", &QString("/.kde/mail-folders")); |
|
folderMgr = new KMFolderMgr(fname); |
|
|
|
msgSender = new KMSender(folderMgr); |
|
|
|
debug("init done"); |
|
} |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
static void cleanup(void) |
|
{ |
|
app->getConfig()->sync(); |
|
|
|
qInstallMsgHandler(oldMsgHandler); |
|
|
|
if (msgSender) delete msgSender; |
|
if (folderMgr) delete folderMgr; |
|
if (acctMgr) delete acctMgr; |
|
if (kbp) delete kbp; |
|
} |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
main(int argc, char *argv[]) |
|
{ |
|
KMMainWin* mainWin; |
|
|
|
init(argc, argv); |
|
|
|
mainWin = new KMMainWin; |
|
mainWin->show(); |
|
|
|
app->exec(); |
|
|
|
cleanup(); |
|
} |
|
|
|
|