Sophie

Sophie

distrib > Mandriva > 2007.1 > i586 > by-pkgid > 954c3e3633b091567406300b6a2524c2 > files > 10

kdepim4-3.80.3-0.20070311.5mdv2007.1.src.rpm

--- 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 = the_firstStart && !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()
 {
 }