* write to KConfig as soon as it's changed, since some code calls readConfig on all
folders when creating a new resource folder (hmmm...)
[Till: I have the feeling mStatusChangedLocally is subject to this bug too]
* ignore subtype when the folder obviously can't be a standard resource folder for us
(as happens with shared folders) (https://intevation.de/roundup/kolab/issue406)
* don't overwrite existing annotations when syncing finds a shared folder
(the fix for this uses an internal "FROMSERVER" value)
* skip annotation stuff for noContent folders (https://intevation.de/roundup/kolab/issue429)
svn path=/trunk/kdepim/; revision=349982
Fixed the way the "standard groupware folders" are found when using the kolab xml storage:
instead of finding them by name, look for annotations like "event.default".
Fixed up mAnnotationFolderType and mAnnotationFolderTypeChanged, so that they
are only updated once we know if a folder is one of the standard groupware folders.
When the annotation isn't found and we try to create the folders, first check
for an existing folder with that name, and if it exists, change its contents type.
[This will happen to any existing proko2 user: you'll see a request for creating
the groupware folders, which will in fact only set the correct annotation on them]
Moved annotation values into kmailicalifaceimpl's array because one day Till
will need them from kmfolderimap :)
svn path=/trunk/kdepim/; revision=349074
CVS commit by tilladam:
Aaaand, dimap mail eater number two for today. This time we prevent it
eating everything but the inbox on prefix changes, like so:
- have a bunch of folders at top level, because your prefix is INBOX
- change prefix to nothing
- sync
- all top level folders are removed locally since the server doesn't
list them anymore. They have an imap path, so we figure they must have
been on the server at some point, so that means we must have deleted
them locally, which means we need to delete them on the server
- add list of folder under the new prefix
- go through list of locally deleted folders (or those we think we deleted)
and deleted them from the server
- say hello to Mr. INBOX, the lonely inhabitant of your account since all
other folders have been removed
David's patch, I just figured out what happens.
svn path=/trunk/kdepim/; revision=347966
such as annotation support. Now only the dcop interface extensions and the
kolab resource itself which uses them are missing.
svn path=/trunk/kdepim/; revision=346738
- don't touch mLastUid when updating the uidMap
- only update mLastUid when loading from disk cache on startup and
after the GET_MESSAGES phase has successfully completed
- with mLastUid from last sync, upload new messages, don't change it
- list messages on server, if below (old) mLastUid and not present,
delete on server, otherwise if present locally (we just uploaded it), do
nothing, else download it
That should take care that messages which have ids between the mlastUid we
have and the highest uploaded one are downloaded, even if they were added
after our own upload (concurrent uploads), and it moves the two intermingled
issue of determing locally deleted versus new on one hand and determining
locally present and uploaded versus new on the other hand into separate
checks, namely uid <= mLastUid and uidMap.contains( uid ).
svn path=/trunk/kdepim/; revision=338793
o don't upload the local message flags of a folder unless at least the
status of one message was changed. If one did change, we must suppose to
know better than the server and upload. Otherwise the server is always
right.
svn path=/trunk/kdepim/; revision=329279
(the symptom was a "could not list folder foobar, no such folder" error box).
Strange that I didn't see that one before...
svn path=/trunk/kdepim/; revision=324882
user chooses Continue, don't do anything relating to the messages, since it
will wipe them out (probably due to writeUidCache()), skip directly to doing
the acl stuff, then the subdirs.
svn path=/trunk/kdepim/; revision=322436
readwrite permissions on a folder which was initially readonly.
Outline setImapPath since I keep adding debug output to it and it's not speed critical :)
svn path=/trunk/kdepim/; revision=321373
the renaming happens in the foldertree immediately, but is stored in the account
(with persistence in kconfig) and done on the server at the next sync.
If that fails, the server is renamed back locally.
svn path=/trunk/kdepim/; revision=319628
Pass const QString& instead of QString& in the signal, when the caller isn't supposed
to change the value.
This showed an interesting issue in kmacctimap - the member vars were not needed,
and the clear() cleared the wrong one. All cleaned up (but please double-check).
svn path=/trunk/kdepim/; revision=314899
I created a new FolderStorage::listDirectory method to make it easier.
Add a Refresh folder list to the context menu of imap folders as the user
will probably not know how to refresh the listing (collapsing does the same).
This is needed together with the list-only-open-folders thing.
svn path=/trunk/kdepim/; revision=314858
to kmkernel, renaming it "mailCheckAborted", since it's now only used for this.
Reimplemented the real "abort all" code (that used to be for the littleprogress' cross button)
in ProgressManager, so that Key_Escape calls it, like it used to. It simply acts as
if the 'abort' button of any running job had been clicked.
svn path=/trunk/kdepim/; revision=314224
Change the KMFolderMgr::find methods a bit to actually find all folders.
Oh well, and assign ids to all folders.
svn path=/trunk/kdepim/; revision=313955
> The new messages are counted in KMAccount::processNewMsg(). Since for dIMAP only messages in the INBOX and for IMAP no messages are processed with processNewMsg() those unprocessed new messages are counted in KMAcct(Cached)Imap. The result of the mail check (a map folder<->number of new messages) is emitted with the extended checkedMail signal. In KMMainWidget a summary of the mail check is created and passed to the new mail event.
> TODO:
> - Make the detailed new mail notification optional.
> - Add possibility to ignore new mail in certain folders (which is now very easy to implement).
svn path=/trunk/kdepim/; revision=313356
Even though MYRIGHTS doesn't say so after removing one's own ACL,
Cyrus lets the user admin his inbox (and google says some other servers
simply don't allow removing his own admin rights).
So better not disable the buttons in the ACL dialog.
svn path=/trunk/kdepim/; revision=310284
instead of "on exit" (which made it non-working in kontact, with session management etc.)
GUI: removed the "Warn before expiring messages" and "On Exit: Expire old messages" options.
Tasks are filed with the jobscheduler, and the job for that task is started
only if the folder isn't opened - so this needed some special handling of search
folder (asking them to try releasing a given folder) and some fixes relative to
open() and close() calls, in kmfoldercachedimap and kmfoldersearch in particular.
Don: please check the kmfoldersearch.cpp changes, in particular the added close()
CCMAIL: sanders@kde.org
svn path=/trunk/kdepim/; revision=310272
This is quite simple in fact.... either we want to create it on the server
(which createNewFolders does if imapPath is empty), or we want to delete the local
folder (which used to be done only in some cases - so let's do it in all other
cases, i.e. imapPath isn't empty).
This fixes a bug with a server-folder deleted and another client getting "can't list folder".
svn path=/trunk/kdepim/; revision=310253
the nice side effect of calling readConfig() when the folder isn't open.
This fixes the other bug with "losing permission to a shared inbox".
svn path=/trunk/kdepim/; revision=309451
Fixed nasty concurrent mailchecking happening when queueing requests (due
to emit finishedCheck(false) still being done in imap - kmaccount does it for us)
svn path=/trunk/kdepim/; revision=309275