Index: kmail/kmkernel.cpp =================================================================== --- kmail/kmkernel.cpp +++ kmail/kmkernel.cpp 2011-04-10 18:32:39.486773695 -0300 @@ -1377,7 +1377,7 @@ } //----------------------------------------------------------------------------- -void KMKernel::initFolders(KSharedConfig::Ptr cfg) +void KMKernel::initFolders(KSharedConfig::Ptr cfg, bool _firstMessage) { QString name; KConfigGroup group(cfg,"General"); @@ -1388,13 +1388,15 @@ // 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() ) { 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() ) @@ -1523,7 +1525,11 @@ SLOT( showMainWin() ) ); #endif + 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); the_dimapFolderMgr = new KMFolderMgr( KMFolderCachedImap::cacheLocation(), KMDImapDir); @@ -1538,7 +1544,7 @@ the_popFilterMgr = new KMFilterMgr(true); the_filterActionDict = new KMFilterActionDict; - initFolders(cfg); + initFolders(cfg,_firstMessage); the_acctMgr->readConfig(); the_filterMgr->readConfig(); the_popFilterMgr->readConfig(); @@ -1576,6 +1582,30 @@ mBackgroundTasksTimer->start( 5 * 60000 ); // 5 minutes, singleshot #endif } +QString KMKernel::firstMessage() +{ + QString first( "/usr/share/mga/mail/text/mail-%1" ); + QString language = QString::fromLocal8Bit(getenv("LANGUAGE")) ; + QStringList langList = language.split(":"); + 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/mga/mail/text/mail-en" ); + if( !QFile::exists(first)) + first=""; + } + return first; +} void KMKernel::readConfig() { Index: kmail/kmkernel.h =================================================================== --- kmail/kmkernel.h +++ kmail/kmkernel.h 2011-04-10 18:35:08.341662221 -0300 @@ -271,7 +271,7 @@ void cleanupImapFolders(); void testDir(const char *_name); void recoverDeadLetters(); - void initFolders(KSharedConfig::Ptr cfg); + void initFolders(KSharedConfig::Ptr cfg, bool _firstMessage = false); void closeAllKMailWindows(); void cleanup(void); void quit(); @@ -329,6 +329,8 @@ /** return the pointer to the identity manager */ KPIMIdentities::IdentityManager *identityManager(); + QString firstMessage(); + JobScheduler* jobScheduler() { return mJobScheduler; } QIndicate::Server *indicateServer() { return the_indicateServer; }