o assume the current number of folders in the account + 5% as the total
number of items, and tick them off as they come in, better than jumping
to 100% immediately and should be good enough for the common case of the
account folder listing not changing much
o add ImapAccountBase::folderCount() for convenience and constify some
stuff on the way
svn path=/trunk/kdepim/; revision=331842
does it (either KMAcctImap::processNewMail for imap or slotConnectionResult/serverSyncInternal for dimap)
CCMAIL: 85492-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=330957
and the ListJob takes care of the kids. I extended the slotAbortRequested so that it works correctly.
Anybody willing to port this to dimap?
svn path=/trunk/kdepim/; revision=320011
noop timer, which keeps the connection active by sending regular noops and
a real (and as of yet unused) idle timer, which can be used to disconnect
the slave if nothing (apart from noops) has been going on for a while.
Remove the mIdle bool which was used to differentiate those two uses in the
old timer and remove the two users of that bool, thereby fÑxing the recent
crashes in assignJobToSlave people have been seeing. Deselecting a folder
in the folder tree used to set the account to idle, the idle timer fires,
mIdle is true => disconnect => no slave => boom.
TODO: start the idle timer on connect and reset on all imapjobs, etc
svn path=/trunk/kdepim/; revision=318964
since after Till's commit we interpret "there's a slave" as "it's connecting", which isn't
true after typing a new password. So let's disconnect the slave right away if the password
is incorrect.
Also: prompt for a new password even if "store in config file" is checked. It's much
more convenient indeed - and takes actually less lines of code :)
svn path=/trunk/kdepim/; revision=318791
to libkdepim. Removed dependency on KMMainWidget by using a signal from ProgressDialog.
This also fixes the bug Till reported, where closing the progressdialog with
the cross wouldn't make the arrow look up again.
svn path=/trunk/kdepim/; revision=316885
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
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
ProgressItems. Add some Q_ASSERTS a la David. Remove the now unused
method. Make message up- and download cancellable.
One remaining issue: displayProgress() was (ab)used to reset the idle
timeout, which eventually disconnects the slave. Where should this
resetting be done now? In the ImapJob dtor, maybe?
svn path=/trunk/kdepim/; revision=313541
> 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
manager.
o Implement crypto state labels in the progress dialog.
o add crypto state info to all current users of the progress manager
except sending, since I don't know how to query a transport for whether
it is encrypted or not. Marc?
svn path=/trunk/kdepim/; revision=313293
since that triggers the next queued mail check.
Make "invalidate IMAP cache" sync only the current folder and its children
(it used to invalidate only those, but sync everything, w/o dialog)
Fixed bug in cachedimap when using "check mail for this folder" on many folders
in a row, disconnect() was called too early.
svn path=/trunk/kdepim/; revision=312731
kmail-devel and is therefor perfect. :) This is still work in progress,
but David wants to start using it for dimap and I'll be working on it
over the next few days. Right now the following stuff iÑ done:
- replace the old cancel button with an up-arrow button which displays
the detailed progress dialog where individual actions can be canceled
- port the SmallProgressDlg to be a ProgressManager listener, which always
shows the latest transaction's (top level only) progress.
- port imapaccountbase and its displayProgress() catch all progress/cancel
handling to a single ProgressItem for now, per operation progress can
replace that one by one
- port KMMoveCommand
- port online imap mail check
Help with porting the remaining areaÑ of KMail would of course be
appreciated and a convenient way for you guys to find out if the API
sucks. :)
svn path=/trunk/kdepim/; revision=312708
and Subject of the message, so that it's possible to know which one it's about.
CCMAIL: 60384-done@bugs.kde.org, 81309@bugs.kde.org
svn path=/trunk/kdepim/; revision=310391
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
(receivedFolders signal not emitted, so nothing happened), and anyway it's pretty
dangerous to continue, since the server-folderlist will be empty and all local
child folders will be considered for deletion...
The fact that listing a particular folder fails for me seems to be a cyrus-imapd bug...
svn path=/trunk/kdepim/; revision=309297
Fixed statusbar message after imap/dimap mail checking to show the right number of "new messages"
(wasn't implemented at all for dimap; didn't subtract unread-but-not-new count for imap)
Fixed logic error in KMMainWidget::updateFolderMenu() which wrongly enabled "check mail for this folder"
for other types of folder than online-imap, but instead of disabling it for dimap I hooked it up
and it seems to work nicely.
svn path=/trunk/kdepim/; revision=309216
and there's no systray icon. This allows KMail to actually exit when closing it,
instead of getting stuck forever on a server that doesn't answer...
Compared to the kmail-devel patch I changed the code in KMMainWin to ensure
it's called even when secondary windows are left opened, and to enable mail
checks again when re-creating a KMMainWin.
I found out that the dimap progress dialog is broken with multiple kmmainwins,
but that's an independent issue, which will go away when porting it to Till's
progress dialog anyway.
svn path=/trunk/kdepim/; revision=307314
base class. Port all users of slotSlaveError to that, so we now have
continue/cancel for errors with online imap as well. Also give context
for error messages to make them a little more descriptive. Make sure that
the jobs are removed only in non-error paths, because the error handler
does that as well now.
svn path=/trunk/kdepim/; revision=306243
as the first argument and then calls a virtual protected
handleJobErrorInternal with the job->error and job->errorText as arguments.
Port all users of handleJobError.
Agreed upon with David.
svn path=/trunk/kdepim/; revision=306219
* Wait for completion of the "upload status flags" before continuing (as discussed with Till)
Maybe this was the reason for some status-flags bugs, like coolo's? Would be lucky though.
* Use a CachedImapJob for listing messages, so that handleJobError works in both cases
(continue/cancel)
* Replaced all showErrorDialog()s with handleJobError in CachedImapJob
* Moved slotSlaveError to ImapAccountBase (but deprecated it), calls new virtual handleJobError
* More fixes for sync aborted in subfolders
All tested with a "list permissions only" folder, to trigger all sorts of errors.
svn path=/trunk/kdepim/; revision=305740
* when a subfolder shows an error and the user chooses to abort, really abort,
don't half-continue with sibling folders (this led to strange items in the progress
diaog, and temporary signal/slot connections not disconnected...)
* show folder name in error box when creating the folder on the server fails.
* ifdef'ed out ImapAccountBase::slotSlaveError since both subclasses reimplement
it anyway (and made it pure virtual... it was inconsistent, with some jobs calling
one and some jobs calling the other)
svn path=/trunk/kdepim/; revision=305655
for disconnected imap.
To share the code between the imap and dimap cases, a new job class MultiSetACLJob
can set and delete multiple ACLs one after the other. This makes me realize that
we should document more how one can write high-level Job subclasses (like
e.g. CopyJob and DeleteJob in KIO), it's very convenient.
svn path=/trunk/kdepim/; revision=303615
- added getUserRights() (and signal when received) to IMAPAccountBase
- store user rights in KMFolderImap and KMFolderCachedImap (my kingdom for a common base class!)
svn path=/trunk/kdepim/; revision=303360