Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-release-src > by-pkgid > 0c008aea71442266da66825e3559e657 > files > 1

kmail-nepomuk-4.3.2-3mdv2010.0.src.rpm

Index: kmail/kmkernel.cpp
===================================================================
--- kmail/kmkernel.cpp
+++ kmail/kmkernel.cpp	2009-06-26 23:24:34.000000000 +0200
@@ -1307,7 +1307,7 @@
 }
 
 //-----------------------------------------------------------------------------
-void KMKernel::initFolders(KConfig* cfg)
+void KMKernel::initFolders(KConfig* cfg, bool _firstMessage)
 {
   QString name;
   KConfigGroup group(cfg,"General");
@@ -1318,7 +1318,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);
 
@@ -1326,6 +1327,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() );
@@ -1439,6 +1441,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);
@@ -1454,7 +1459,7 @@
   the_popFilterMgr     = new KMFilterMgr(true);
   the_filterActionDict = new KMFilterActionDict;
 
-  initFolders(cfg);
+  initFolders(cfg,_firstMessage);
   the_acctMgr->readConfig();
   the_filterMgr->readConfig();
   the_popFilterMgr->readConfig();
@@ -1493,6 +1498,32 @@
 #endif
 }
 
+
+QString KMKernel::firstMessage()
+{
+    QString first( "/usr/share/mdk/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/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
Index: kmail/kmkernel.h
===================================================================
--- kmail/kmkernel.h
+++ kmail/kmkernel.h	2009-06-26 23:18:42.000000000 +0200
@@ -265,7 +265,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();
@@ -323,6 +323,8 @@
   /** return the pointer to the identity manager */
   KPIMIdentities::IdentityManager *identityManager();
 
+  QString firstMessage();
+
   JobScheduler* jobScheduler() { return mJobScheduler; }
 
   /** Expire all folders, used for the gui action */