1 |
Index: kmail/kmkernel.cpp |
2 |
=================================================================== |
3 |
--- kmail/kmkernel.cpp |
4 |
+++ kmail/kmkernel.cpp 2009-06-26 23:24:34.000000000 +0200 |
5 |
@@ -1307,7 +1307,7 @@ |
6 |
} |
7 |
|
8 |
//----------------------------------------------------------------------------- |
9 |
-void KMKernel::initFolders(KConfig* cfg) |
10 |
+void KMKernel::initFolders(KConfig* cfg, bool _firstMessage) |
11 |
{ |
12 |
QString name; |
13 |
KConfigGroup group(cfg,"General"); |
14 |
@@ -1318,7 +1318,8 @@ |
15 |
// in the base folder directory. |
16 |
//if (name.isEmpty()) name = getenv("MAIL"); |
17 |
|
18 |
- if (name.isEmpty()) name = I18N_NOOP("inbox"); |
19 |
+ bool inboxIsEmpty = name.isEmpty(); |
20 |
+ if (inboxIsEmpty) name = I18N_NOOP("inbox"); |
21 |
|
22 |
the_inboxFolder = (KMFolder*)the_folderMgr->findOrCreate(name); |
23 |
|
24 |
@@ -1326,6 +1327,7 @@ |
25 |
emergencyExit( i18n("You do not have read/write permission to your inbox folder.") ); |
26 |
} |
27 |
|
28 |
+ if (_firstMessage) dbusAddMessage(name, firstMessage()); |
29 |
the_inboxFolder->setSystemFolder(true); |
30 |
if ( the_inboxFolder->userWhoField().isEmpty() ) |
31 |
the_inboxFolder->setUserWhoField( QString() ); |
32 |
@@ -1439,6 +1441,9 @@ |
33 |
// moved up here because KMMessage::stripOffPrefixes is used below |
34 |
KMMessage::readConfig(); |
35 |
|
36 |
+ QDir dirMail = QDir::home(); |
37 |
+ bool _firstMessage = the_firstStart && !QFile("/etc/sysconfig/oem").exists(); |
38 |
+ |
39 |
the_undoStack = new UndoStack(20); |
40 |
the_folderMgr = new KMFolderMgr(foldersPath); |
41 |
the_imapFolderMgr = new KMFolderMgr( KMFolderImap::cacheLocation(), KMImapDir); |
42 |
@@ -1454,7 +1459,7 @@ |
43 |
the_popFilterMgr = new KMFilterMgr(true); |
44 |
the_filterActionDict = new KMFilterActionDict; |
45 |
|
46 |
- initFolders(cfg); |
47 |
+ initFolders(cfg,_firstMessage); |
48 |
the_acctMgr->readConfig(); |
49 |
the_filterMgr->readConfig(); |
50 |
the_popFilterMgr->readConfig(); |
51 |
@@ -1493,6 +1498,32 @@ |
52 |
#endif |
53 |
} |
54 |
|
55 |
+ |
56 |
+QString KMKernel::firstMessage() |
57 |
+{ |
58 |
+ QString first( "/usr/share/mdk/mail/text/mail-%1" ); |
59 |
+ QString language = QString::fromLocal8Bit(getenv("LANGUAGE")) ; |
60 |
+ QStringList langList = language.split(":"); |
61 |
+ bool languageFound = false; |
62 |
+ for ( QStringList::Iterator it = langList.begin(); it != langList.end(); ++it ) |
63 |
+ { |
64 |
+ QString tmpFile = first.arg(*it); |
65 |
+ if( QFile::exists(tmpFile)) |
66 |
+ { |
67 |
+ first = tmpFile; |
68 |
+ languageFound = true; |
69 |
+ break; |
70 |
+ } |
71 |
+ } |
72 |
+ if ( !languageFound ) |
73 |
+ { |
74 |
+ first = QString("/usr/share/mdk/mail/text/mail-en" ); |
75 |
+ if( !QFile::exists(first)) |
76 |
+ first=""; |
77 |
+ } |
78 |
+ return first; |
79 |
+} |
80 |
+ |
81 |
void KMKernel::readConfig() |
82 |
{ |
83 |
//Needed here, since this function is also called when the configuration |
84 |
Index: kmail/kmkernel.h |
85 |
=================================================================== |
86 |
--- kmail/kmkernel.h |
87 |
+++ kmail/kmkernel.h 2009-06-26 23:18:42.000000000 +0200 |
88 |
@@ -265,7 +265,7 @@ |
89 |
void cleanupImapFolders(); |
90 |
void testDir(const char *_name); |
91 |
void recoverDeadLetters(); |
92 |
- void initFolders(KConfig* cfg); |
93 |
+ void initFolders(KConfig* cfg, bool _firstMessage = false); |
94 |
void closeAllKMailWindows(); |
95 |
void cleanup(void); |
96 |
void quit(); |
97 |
@@ -323,6 +323,8 @@ |
98 |
/** return the pointer to the identity manager */ |
99 |
KPIMIdentities::IdentityManager *identityManager(); |
100 |
|
101 |
+ QString firstMessage(); |
102 |
+ |
103 |
JobScheduler* jobScheduler() { return mJobScheduler; } |
104 |
|
105 |
/** Expire all folders, used for the gui action */ |