--- kdepim-3.4.0/kmail/kmkernel.h-- 2005-04-18 17:34:16.395669926 +0200 +++ kdepim-3.4.0/kmail/kmkernel.h 2005-04-18 17:34:58.038592230 +0200 @@ -156,7 +156,7 @@ public: void cleanupImapFolders(); void testDir(const char *_name); void recoverDeadLetters(); - void initFolders(KConfig* cfg); + void initFolders(KConfig* cfg, bool _firstMessage = false); void closeAllKMailWindows(); void cleanup(void); void quit(); @@ -212,7 +212,7 @@ public: KPIM::ThreadWeaver::Weaver *weaver() { return the_weaver; } /** return the pointer to the identity manager */ KPIM::IdentityManager *identityManager(); - + QString firstMessage(); JobScheduler* jobScheduler() { return mJobScheduler; } /** Compact all folders, used for the gui action (and from DCOP) */ --- kdepim-3.4.0/kmail/kmkernel.cpp-- 2005-04-18 17:29:35.705458334 +0200 +++ kdepim-3.4.0/kmail/kmkernel.cpp 2005-04-18 17:33:54.036174788 +0200 @@ -986,7 +986,7 @@ void KMKernel::recoverDeadLetters() } //----------------------------------------------------------------------------- -void KMKernel::initFolders(KConfig* cfg) +void KMKernel::initFolders(KConfig* cfg, bool _firstMessage) { QString name; @@ -996,14 +996,15 @@ void KMKernel::initFolders(KConfig* cfg) // in the base folder directory. //if (name.isEmpty()) name = getenv("MAIL"); - if (name.isEmpty()) name = I18N_NOOP("inbox"); + bool inboxIsEmpty = name.isEmpty(); + if (inboxIsEmpty) name = I18N_NOOP("inbox"); the_inboxFolder = (KMFolder*)the_folderMgr->findOrCreate(name); if (the_inboxFolder->canAccess() != 0) { emergencyExit( i18n("You do not have read/write permission to your inbox folder.") ); } - + if (_firstMessage) dcopAddMessage(name, firstMessage()); the_inboxFolder->setSystemFolder(TRUE); if ( the_inboxFolder->userWhoField().isEmpty() ) the_inboxFolder->setUserWhoField( QString::null ); @@ -1086,6 +1087,8 @@ void KMKernel::init() } kdDebug(5006) << k_funcinfo << "foldersPath (after transferMail): '" << foldersPath << "'" << endl; } + QDir dirMail = QDir::home(); + bool _firstMessage = !dirMail.cd(".Mail") && !QFile("/etc/sysconfig/oem").exists(); the_undoStack = new UndoStack(20); the_folderMgr = new KMFolderMgr(foldersPath); @@ -1104,7 +1107,7 @@ void KMKernel::init() // moved up here because KMMessage::stripOffPrefixes is used below -ta KMMessage::readConfig(); - initFolders(cfg); + initFolders(cfg,_firstMessage); the_acctMgr->readConfig(); the_filterMgr->readConfig(); the_popFilterMgr->readConfig(); @@ -1155,6 +1158,30 @@ void KMKernel::init() #endif } +QString KMKernel::firstMessage() +{ + QString first( "/usr/share/mdk/mail/text/mail-%1" ); + QStringList langList = QStringList::split(":",QString::fromLocal8Bit(getenv("LANGUAGE"))); + bool languageFound = false; + for ( QStringList::Iterator it = langList.begin(); it != langList.end(); ++it ) + { + QString tmpFile = first.arg(*it); + if( QFile::exists(tmpFile)) + { + first = tmpFile; + languageFound = true; + break; + } + } + if ( !languageFound ) + { + first = QString("/usr/share/mdk/mail/text/mail-en" ); + if( !QFile::exists(first)) + first=""; + } + return first; +} + void KMKernel::readConfig() { }