[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kmail
From: Volker Krause <vkrause () kde ! org>
Date: 2007-08-23 15:51:55
Message-ID: 1187884315.464736.3622.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 703912 by vkrause:
Forwardport IMAP flags client to server migration code.
A kmail-3.5-trigger-flag-migration.pl \
branches/kdepim/enterprise/kdepim/kmail/kmail-3.5-trigger-flag-migration.pl#703903 M \
+16 -3 kmfolderimap.cpp M +10 -4 kmfolderimap.h
M +1 -0 kmstartup.cpp
--- trunk/KDE/kdepim/kmail/kmfolderimap.cpp #703911:703912
@@ -64,7 +64,8 @@
#include <assert.h>
KMFolderImap::KMFolderImap(KMFolder* folder, const char* aName)
- : KMFolderMbox(folder, aName)
+ : KMFolderMbox(folder, aName),
+ mUploadAllFlags( false )
{
mContentState = imapNoInformation;
mSubfolderState = imapNoInformation;
@@ -226,6 +227,7 @@
}
mNoContent = group.readEntry( "NoContent", false );
mReadOnly = group.readEntry( "ReadOnly", false );
+ mUploadAllFlags = config->readBoolEntry( "UploadAllFlags", true );
KMFolderMbox::readConfig();
}
@@ -240,6 +242,7 @@
group.writeEntry("ImapPath", mImapPath);
group.writeEntry("NoContent", mNoContent);
group.writeEntry("ReadOnly", mReadOnly);
+ config->writeEntry( "UploadAllFlags", mUploadAllFlags );
KMFolderMbox::writeConfig();
}
@@ -1887,11 +1890,21 @@
setStatus( ids, status, toggle );
}
-void KMFolderImap::setStatus( QList<int> &ids,
+void KMFolderImap::setStatus( QList<int> &_ids,
const MessageStatus &status, bool toggle )
{
open( "setstatus" );
- FolderStorage::setStatus( ids, status, toggle );
+ FolderStorage::setStatus(_ids, status, toggle);
+ QList<int> ids;
+ if ( mUploadAllFlags ) {
+ kdDebug(5006) << k_funcinfo << "Migrating all flags to the server" << endl;
+ ids.clear();
+ for ( int i = 0; i < count(); ++i )
+ ids << i;
+ mUploadAllFlags = false;
+ } else {
+ ids = _ids;
+ }
/* The status has been already set in the local index. Update the flags on
* the server. To avoid doing that for each message individually, group them
--- trunk/KDE/kdepim/kmail/kmfolderimap.h #703911:703912
@@ -192,10 +192,10 @@
*/
virtual void setStatus(int idx, const MessageStatus& status, bool toggle);
-/**
-* Change the status of several messages indicated by @p ids
-*/
-virtual void setStatus(QList<int>& ids, const MessageStatus& status, bool toggle);
+ /**
+ * Change the status of several messages indicated by @p ids
+ */
+ virtual void setStatus(QList<int>& _ids, const MessageStatus& status, bool \
toggle);
/** generates sets of uids */
static QStringList makeSets( QList<ulong>&, bool sort = true);
@@ -535,6 +535,12 @@
// to-be-added folders
QStringList mFoldersPendingCreation;
QStringList owners;
+
+ // push all flags to the server instead of just the changed once
+ // when doing a flag change the next time
+ // this is needed for migrating local flags from the time where we didn't
+ // have the ability to store them on the server
+ bool mUploadAllFlags;
};
#endif // kmfolderimap_h
--- trunk/KDE/kdepim/kmail/kmstartup.cpp #703911:703912
@@ -106,6 +106,7 @@
"3.4b",
"3.4.1",
"3.5.4",
+ "3.5.7-imap-flag-migration",
"4.0-misc"
};
static const int numUpdates = sizeof updates / sizeof *updates;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic