--- kdepim-4.2.1/kmail/kmkernel.h~ 2008-11-19 11:19:06.000000000 +0100 +++ kdepim-4.2.1/kmail/kmkernel.h 2009-03-05 00:36:37.000000000 +0100 @@ -261,7 +261,7 @@ 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(); @@ -318,7 +318,8 @@ ThreadWeaver::Weaver *weaver() { return the_weaver; } /** return the pointer to the identity manager */ KPIMIdentities::IdentityManager *identityManager(); - + QString firstMessage(); + JobScheduler* jobScheduler() { return mJobScheduler; } /** Expire all folders, used for the gui action */ --- kdepim-4.2.1/kmail/kmkernel.cpp 2009-01-21 11:28:26.000000000 +0100 +++ kdepim-4.2.1/kmail/kmkernel.cpp 2009-03-05 11:11:00.000000000 +0100 @@ -1291,7 +1291,7 @@ } //----------------------------------------------------------------------------- -void KMKernel::initFolders(KConfig* cfg) +void KMKernel::initFolders(KConfig* cfg, bool _firstMessage) { QString name; KConfigGroup group(cfg,"General"); @@ -1302,7 +1302,8 @@ // 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); @@ -1310,6 +1311,7 @@ emergencyExit( i18n("You do not have read/write permission to your inbox folder.") ); } + if (_firstMessage) dbusAddMessage(name, firstMessage()); the_inboxFolder->setSystemFolder(true); if ( the_inboxFolder->userWhoField().isEmpty() ) the_inboxFolder->setUserWhoField( QString() ); @@ -1423,6 +1425,9 @@ // moved up here because KMMessage::stripOffPrefixes is used below KMMessage::readConfig(); + QDir dirMail = QDir::home(); + bool _firstMessage = the_firstStart && !QFile("/etc/sysconfig/oem").exists(); + the_undoStack = new UndoStack(20); the_folderMgr = new KMFolderMgr(foldersPath); the_imapFolderMgr = new KMFolderMgr( KMFolderImap::cacheLocation(), KMImapDir); @@ -1438,7 +1443,7 @@ the_popFilterMgr = new KMFilterMgr(true); the_filterActionDict = new KMFilterActionDict; - initFolders(cfg); + initFolders(cfg,_firstMessage); the_acctMgr->readConfig(); the_filterMgr->readConfig(); the_popFilterMgr->readConfig(); @@ -1477,6 +1482,30 @@ #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() { //Needed here, since this function is also called when the configuration