Sophie

Sophie

distrib > Mandriva > 2009.0 > x86_64 > by-pkgid > c140182f975c633ce31c1cc892c1179c > files > 3

kdepim4-4.2.4-0.7mdv2009.0.src.rpm

--- 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