1 |
jmbsvicetto 09/10/02 22:42:09 |
2 |
|
3 |
Added: |
4 |
kmail-4.3.1-fix-rename-folder-on-disconnected-IMAP.patch |
5 |
Log: |
6 |
Moved updated kmail ebuild from kde-testing overlay to the tree - thanks to Maciej Mrozowski (reavertm). |
7 |
Added kmail-4.3.1 patch to fix folder renaming on disconnected IMAP. |
8 |
(Portage version: 2.2_rc42/cvs/Linux x86_64) |
9 |
|
10 |
Revision Changes Path |
11 |
1.1 kde-base/kmail/files/kmail-4.3.1-fix-rename-folder-on-disconnected-IMAP.patch |
12 |
|
13 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/kde-base/kmail/files/kmail-4.3.1-fix-rename-folder-on-disconnected-IMAP.patch?rev=1.1&view=markup |
14 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/kde-base/kmail/files/kmail-4.3.1-fix-rename-folder-on-disconnected-IMAP.patch?rev=1.1&content-type=text/plain |
15 |
|
16 |
Index: kmail-4.3.1-fix-rename-folder-on-disconnected-IMAP.patch |
17 |
=================================================================== |
18 |
Index: kmail/cachedimapjob.cpp |
19 |
=================================================================== |
20 |
--- kmail/cachedimapjob.cpp (revision 1022962) |
21 |
+++ kmail/cachedimapjob.cpp (revision 1022963) |
22 |
@@ -510,7 +510,7 @@ |
23 |
bool b = kmkernel->iCalIface().isResourceQuiet(); |
24 |
kmkernel->iCalIface().setResourceQuiet( true ); |
25 |
|
26 |
- mFolder->take( i ); |
27 |
+ mFolder->takeTemporarily( i ); |
28 |
mFolder->addMsgKeepUID( mMsg ); |
29 |
mMsg->setTransferInProgress( false ); |
30 |
|
31 |
Index: kmail/kmfoldercachedimap.cpp |
32 |
=================================================================== |
33 |
--- kmail/kmfoldercachedimap.cpp (revision 1022962) |
34 |
+++ kmail/kmfoldercachedimap.cpp (revision 1022963) |
35 |
@@ -527,6 +527,11 @@ |
36 |
return KMFolderMaildir::take( idx ); |
37 |
} |
38 |
|
39 |
+void KMFolderCachedImap::takeTemporarily( int idx ) |
40 |
+{ |
41 |
+ KMFolderMaildir::take( idx ); |
42 |
+} |
43 |
+ |
44 |
int KMFolderCachedImap::addMsgInternal( KMMessage *msg, bool newMail, int *index_return ) |
45 |
{ |
46 |
// Possible optimization: Only dirty if not filtered below |
47 |
Index: kmail/kmfoldercachedimap.h |
48 |
=================================================================== |
49 |
--- kmail/kmfoldercachedimap.h (revision 1022962) |
50 |
+++ kmail/kmfoldercachedimap.h (revision 1022963) |
51 |
@@ -228,10 +228,23 @@ |
52 |
/** Reimplemented from KMFolder. Moving is not supported, so aParent must be 0. */ |
53 |
virtual int rename( const QString &aName, KMFolderDir *aParent = 0 ); |
54 |
|
55 |
- /** Reimplemented from KMFolderMaildir */ |
56 |
- virtual KMMessage *take( int idx ); |
57 |
bool canDeleteMessages() const; |
58 |
|
59 |
+ /** |
60 |
+ * Reimplemented from KMFolderMaildir |
61 |
+ * This deletes the message permanently, also from the server. For this, |
62 |
+ * rememberDeletion() is called, so that the message can be deleted from |
63 |
+ * the server on the next sync. |
64 |
+ */ |
65 |
+ virtual KMMessage* take( int idx ); |
66 |
+ |
67 |
+ /** |
68 |
+ * Like take(), only that the deletion is not remembered, i.e. the |
69 |
+ * message will not be deleted from the server. Calling this can cause |
70 |
+ * inconsistencies, so make sure you re-add the message later! |
71 |
+ */ |
72 |
+ void takeTemporarily( int idx ); |
73 |
+ |
74 |
/** Reimplemented from KMFolderMaildir */ |
75 |
virtual int addMsg( KMMessage *msg, int *index_return = 0 ); |
76 |
|
77 |
Index: kmail/kmfoldercachedimap.cpp |
78 |
=================================================================== |
79 |
--- kmail/kmfoldercachedimap.cpp (revision 1022963) |
80 |
+++ kmail/kmfoldercachedimap.cpp (revision 1022964) |
81 |
@@ -1678,6 +1678,11 @@ |
82 |
job->start(); |
83 |
return true; |
84 |
} else { |
85 |
+ |
86 |
+ // Nothing to delete on the server, make sure the map is clear again. |
87 |
+ // Normally this wouldn't be necessary, but there can be stale maps because of |
88 |
+ // https://issues.kolab.org/issue3833. |
89 |
+ mDeletedUIDsSinceLastSync.clear(); |
90 |
return false; |
91 |
} |
92 |
} |