SVN commit 645242 by winterz:
merge commits 643365,645115,645236 by winterz
to show the User-Agent or X-Mailer value in fancy headers
if so configured.
svn path=/branches/kdepim/enterprise/kdepim/; revision=667955
tested and lingering for a long time and keeps getting lost.
Ingo approved this a long time ago.
Thanks for the patch Nick, and apologies for the many delays.
BUGS: 109836
svn path=/branches/KDE/3.5/kdepim/; revision=596213
TODO: if an user receives a mail becasue he/she is in a mailinglist that is in the To and not because he/she was
explictily in the To.
svn path=/branches/kdepim/proko2/kdepim/; revision=567046
TODO: Fix menu in reader window to show Headers menu item properly. [Proko Issue 1302]
TODO: May need a bit of 3.5 style polishing.(later)
svn path=/branches/kdepim/proko2/kdepim/; revision=561561
Please accept my deepest apologies, I only over my KDE inexperience as
an excuse.
I was unaware of the feature freeze.
I had asked for and was given a review on the #kontact irc channel.
I will make the required changes and attach a new patch to bug report
for safe keeping. How do I add something to the feature list for a
future release as I am keen to get this into kmail at some point?
Sorry again.
CCBUG: 109836
svn path=/branches/KDE/3.5/kdepim/; revision=451833
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
only _one_ address book available...
That might break some apps... but since we'll use an async API in 4.0 the apps
must be rewritten anyway.
CCMAIL:kde-pim@kde.org
svn path=/trunk/kdepim/; revision=399156
non-kopete or konversation users get cute images as well
- remove the status and statuspic pseudoheaders, this does not belong in
headerstrategy, but in headestyle
- remove im status display from all but fancy
- various cleanups and reorderings
svn path=/trunk/kdepim/; revision=360960
The useful bits update KIMProxy to be able to track multiple IM clients (so if you use Kopete for ICQ, and Konversation for IRC, if Konversation implements KIMIface, you can get information pooled from both.
We now track IM app launches and update status as soon as new information sources are available.
Information is cached as a sideeffect of the above - some things are a bit faster.
As well as that it allows you to launch your preferred IM when it's not running by clicking the presence field in a KMail fancy header.
There will be some flicker due to brute force updating the message view on app start or exit, but this will be an infrequent event unless I've messed up and everything crashes every two minutes.
svn path=/trunk/kdepim/; revision=313909
The change is made by altering the DOM of the message view, where the node to change is named "presence-<kabcuid>" so we only change nodes corresponding to the contact whose presence changed.
svn path=/trunk/kdepim/; revision=313502
This shows the presence of a mail's sender in the message view when using fancy headers and can show their KABC picture if set. ( currently disabled )
It also adds a Chat With.. action to the context menu for email addresses.
Zack points out this will give a performance hit as KABC is accessed each time a message is viewed, and KABC is not a fast library. If this is a problem this code can be disabled by removing 'status' from richHeaders in kmail/headerstrategy.cpp.
svn path=/trunk/kdepim/; revision=312901
This patch mostly concerns itself with the following two things:
1. Move code out from kmreaderwin (see new class CSSHelper, whose files
have already been committed).
Into this category fall the simplification and readability
enhancements of the HTML code (adding some newlines, simplifying the
HTML in favour of complicating the CSS a bit, using @media print)
2. Change the semantics of the mCodec member of KMMessage and
KMReaderWin.
To make it short: mCodec is not mOverrideCodec and only ever set to a
non-NULL value iff the codec is forced by the user selecting an
encoding from the Message menu. In all other cases, it's now
calculated from the message(parts). For that, the codec() and
setBodyFromUnicode() and bodyToUnicode() methods have been duplicated
in KMMessage from KMMsgPart (don't you just hate that?).
Walkthrough of the patch:
kmreaderwin.{h,cpp}
- Replace all c* and m*Font members by a single CSSHelper instance.
- readColorConfig(), parts of readConfg(), quoteFontTag() and htmlHead()
were moved from here to CSSHelper
- rename codec()/setCodec() to overrideCodec()/setOverrideCodec()
and provide an autoDetectEncoding() convenience method.
- Remove the QTextCodec parameter from setMsgPart. It now uses
overrideCodec() or the msgPart's own codec.
- s/isfixedFont/isFixedFont/
- split parseMsg( KMMessage*, bool ) into one for
onlyProcessHeaders=false (called again parseMsg(KMMessage*)) and one
for oPH=true (called parseMsgHeader()). The latter then reduces to
writeMsgHeader(), provided one accepts the minor regression that the
[vPart] link is not shown _for *nested*_ messages. This can be readded
later, once KMReaderWin is void of formatting code and OTP is
independent of a KMReaderWin parent. I've left the commented
parseMsgHeader in the momnt of it's death in commented out, so you can
see what I how I came to kill it off for an explicit writeMsgHeader().
- In the old new parseMsg(KMMessage*), there also happened significant
code simplification, mostly by realizing that the the colorbar and tmp
file handling belongs into parseMsg(void) and by removing the oPH=true
case. There's also an instance of simplifying code by using
bodyToUnicode(). At last, the <div id="header"></div> around
writeMsgHeader is superfluous (and wrong, since there is and never was
a div#header CSS selector), since the HeaderStyle's add that already.
- Apply "Inline Method" to writeHTMLStr()
- remove the QTextCodec param from showVCard(). This method is now a
nice one and uses bodyToUnicode()
- rename all fooCodec to fooOverrideCodec
- currently, mCSSHelper is destroyed and re-created whenever it the
config changes. I intend to make CSSHelper a fully functional
ConfigManager later.
- setOverrideCodec now calls update(true) only if the codec was actually
changed.
- In setMsgPart, there's code that "forgets" to strip off <head>, <body>
and <html> tags from HTML parts. I didn't do anything about that yet,
only added a triple-hash.
- Simplify slotAtmSave() by using more guard clauses and esp. by using
QString::section() and QString::replace(QChar,QChar) instead of
rolling our owns.
objecttreeparser.{h,cpp}:
- Use CSShelper
- Create a new CSS class "htmlWarn" for the HTML warning frame to get
rid of the embedded style information.
- simplify quotedHTML() by using new nonQuotedFontTag().
headerstyle.cpp:
- We begin by inserting some newlines to ease the reading of the
resultant HTML code.
- In the fancy header department, we remove almost all class attributes
from the HTML tags. Instead (see csshelper.cpp), we use CSS Selectors
to address the inner tags of the enclosing <div class="fancy header">
Note how that tag matches both the div.header (setting the margin) and
div.fancy.header selectors in csshelper.cpp
- We end with removing the workaround for the apparently long-standing
khtml bug that makes it ignore "padding" on <table>, viz. another
<div></div> pair around the table.
kmfldsearch.cpp:
- Reap fruits of (2).
kmmainwin.cpp:
- Consequence of setCodec -> setOverrideCodec() renaming
- move an #include up to the top
kmmessage.{h,cpp}:
- Copy setBodyFromUnicode(), bodyToUnicode() and rename fooCodec to
fooOverrideCodec.
- Note how the double housekeeping (mAutoDetectEncoding) goes away with
this.
- In html2source(), don't emit <br />, but <br> (we're using HTML 4.01,
not XHTML) and quote ' with ' (well, that's more XHTML-like)
kmreadermainwin.{h,cpp}:
- Since the QTextCodec* parameter was removed from
KMReaderWin::setMsgPart(), use now the explicit setOverrideCodec()
method to set the user-defined codec.
- Remove unused mCodec member
svn path=/trunk/kdepim/; revision=236540