This brings a reworked folder tree and and a new message list, which is much more powerful than the old one.
New features include grouping, multiline items and the ability to customize just about everything of the look of the message list.
Also, we have a tabbed interface for opening more than one folder at once now.
An important aspect of the new message list is that drawing speed is now fast again (there was a regression in Q3ListView that
made huge folders a real pain to navigate, reading commit folders was not a nice thing to do).
There are probably more things which I forgot to list here.
Also, this is big step forward in getting rid of Qt3Support in KMail, now just some tiny bits are left.
Many thanks to SoC student Szymon Stefanek for his awesome work on his project! I can't stress enough how great this
achivment is. He even added very good API documentation to his classes :)
This requires the lastest version of qt-copy, otherwise you'll get mysterious crashes in Qt painting code from time to time.
We hope that this patch will be added to the next Qt 4.4.x version.
And finally, this merge also brings many regressions, which is not unnatural for such a big change.
In the remaining time before the KDE 4.2 release, we'll have to work on those to get it polished and regression-free.
Help here is always needed, and is a good opportunity to start working on KMail, since many regressions are low hanging fruit.
It also means the message list and the folder tree need a bit of testing.
If you find bugs, report them under the "new message list" and "new folder tree" component of the bug tracker, thanks.
I also plan to setup a wiki page with known regressions.
CCMAIL: kde-pim@kde.org
GUI:
CCBUG: 117808
BUG: 163469
FEATURE: 18170
FEATURE: 32400
FEATURE: 42107
FEATURE: 45526
FEATURE: 81272
FEATURE: 90142
FEATURE: 107450
(and probably many others)
svn path=/trunk/KDE/kdepim/; revision=881321
only talk about "todo" or "to-do" in reference to calendar incidences.
a few config file keys still contain "todo" so that should be changed,
but will be done in another commit.
whoops! I should also check the kmail handbook.
svn path=/trunk/KDE/kdepim/; revision=840786
SVN commit 694494 by winterz:
backport SVN commit 694312 by adridg:
Make matched threads important for expiry. Patch from Robert G, approved by Till A.
svn path=/branches/kdepim/enterprise/kdepim/; revision=696950
for the new kDebug/kError/kWarning/kFatal syntax.
You can use the following command to find 'old' code:
egrep -r -A 5 '(kDebug|kError|kWarning|kFatal).*' * | grep -v ".svn" | grep "<< *endl;"
svn path=/trunk/KDE/kdepim/; revision=695781
QMAX/QMIN -> qMax/qMin
I don't know what to do about Q_LONG and Q_ULONG because of the following code in qglobal.h:
#if defined(Q_OS_WIN64)
typedef __int64 Q_LONG; /* word up to 64 bit signed */
typedef unsigned __int64 Q_ULONG; /* word up to 64 bit unsigned */
#else
typedef long Q_LONG; /* word up to 64 bit signed */
typedef unsigned long Q_ULONG; /* word up to 64 bit unsigned */
#endif
Should I simply convert to (unsigned) long?
svn path=/trunk/KDE/kdepim/; revision=468393
sed 's/59 Temple Place - Suite 330, Boston, MA 02111-1307/51 Franklin Street, Fifth Floor, Boston, MA 02110-1301/'
PS: I didn't touch the kalarm dir, since david seems to update the address himself, and I don't want to create conflicts for him.
CCMAIL:lists@astrojar.org.uk
svn path=/trunk/KDE/kdepim/; revision=437921
were "saved" to kmailrc, but kmailrc wasn't synced, so in case of a kmail crash, X crash, power failure, kernel oops...
the settings would be lost, and on the next kmail restart very strange errors would happen when syncing
(can't create folder, folder already there, folder missing, etc.)
The solution: sync(). But while being at it I implemented buffering of sync requests
which was a TODO in kmkernel, but did it in GlobalSettings as Till suggested;
which in turn means we need our own GlobalSettings inheriting GlobalSettingsBase,
and the code lacked ::self()-> in many places to allow that.
srcdir!=builddir users: don't forget to delete globalsettings.{cpp,h} from the builddir
since it's not generated anymore!
CCMAIL: kmail-devel@kde.org
svn path=/trunk/KDE/kdepim/; revision=432538
were "saved" to kmailrc, but kmailrc wasn't synced, so in case of a kmail crash, X crash, power failure, kernel oops...
the settings would be lost, and on the next kmail restart very strange errors would happen when syncing
(can't create folder, folder already there, folder missing, etc.)
The solution: sync(). But while being at it I implemented buffering of sync requests
which was a TODO in kmkernel, but did it in GlobalSettings as Till suggested;
which in turn means we need our own GlobalSettings inheriting GlobalSettingsBase,
and the code lacked ::self()-> in many places to allow that.
svn path=/branches/kdepim/proko2/kdepim/; revision=432536
call in FolderStorage::correctUnreadMsgsCount() called by KMFolderMaildir::createIndexFromContents()).
-> introduced a base ScheduledJob class and added isOpeningFolder() to it,
which is less fragile than the previous solution.
svn path=/trunk/kdepim/; revision=323036
reopening the folder (either another one would be selected, or none at all). Always save
CurrentSerialNum as well as Current (index of listviewitem), and when expiry runs,
invalidate "Current". This preserves the performance for all the cases when expiry
doesn't run. Thanks to Till for the hints on how to fix this.
CCMAIL: 78033-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=317220
during expiry. Using removeMsg(QPtrList<KMMsgBase> which has an override
in folderstorage but not in kmfolderimap results in the wrong kind of
remove being done and crashes due to invalidated message pointers in the
list being iterated over during online imap folder expiry jobs.
svn path=/trunk/kdepim/; revision=312511
folder so there is less chance of it being interrupted and constantly
retried, leading to frequent search folder updateÑ.
David's fix, I'm just committing it.
svn path=/trunk/kdepim/; revision=312102
Thanks to Till for the advice on how to do that (storing folder id and using a KMMoveCommand)
Added kmkernel::findFolderById() to avoid copy/pasting yet another time
the code that looks in the 3 foldermgrs; ported the existing code to that.
CCMAIL: 43218-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=311024
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