#include <templateparser.h>
Inherits TQObject.
Public Types | |
enum | Mode { NewMessage , Reply , ReplyAll , Forward } |
Public Member Functions | |
TemplateParser (KMMessage *amsg, const Mode amode) | |
void | setSelection (const TQString &selection) |
void | setAllowDecryption (const bool allowDecryption) |
virtual void | process (KMMessage *aorig_msg, KMFolder *afolder=0, bool append=false) |
virtual void | process (const TQString &tmplName, KMMessage *aorig_msg, KMFolder *afolder=0, bool append=false) |
virtual void | processWithTemplate (const TQString &tmpl) |
virtual TQString | findTemplate () |
virtual TQString | findCustomTemplate (const TQString &tmpl) |
virtual TQString | pipe (const TQString &cmd, const TQString &buf) |
virtual TQString | getFName (const TQString &str) |
virtual TQString | getLName (const TQString &str) |
Static Public Attributes | |
static const int | PipeTimeout = 15 |
Protected Member Functions | |
TQString | messageText (bool allowSelectionOnly) |
partNode * | parsedObjectTree () |
void | addProcessedBodyToMessage (const TQString &body) |
bool | shouldStripSignature () const |
int | parseQuotes (const TQString &prefix, const TQString &str, TQString "e) const |
Protected Attributes | |
Mode | mMode |
KMFolder * | mFolder |
uint | mIdentity |
KMMessage * | mMsg |
KMMessage * | mOrigMsg |
TQString | mSelection |
bool | mAllowDecryption |
int | mPipeRc |
TQString | mPipeOut |
TQString | mPipeErr |
bool | mDebug |
TQString | mQuoteString |
bool | mAppend |
TQString | mTo |
TQString | mCC |
partNode * | mOrigRoot |
Detailed Description
The TemplateParser transforms a message with a given template.
A template contains text and commands, such as QUOTE or ODATE, which will be replaced with the real values in process().
The message given in the constructor is the message that is being transformed. The message text will be replaced by the processed text of the template, but other properties, such as the attachments or the subject, are preserved.
There are two different kind of commands: Those that work on the message that is to be transformed and those that work on an 'original message'. Those that work on the message that is to be transformed have no special prefix, e.g. 'DATE'. Those that work on the original message have an 'O' prefix, for example 'ODATE'. This means that the DATE command will take the date of the message passed in the constructor, the message which is to be transformed, whereas the ODATE command will take the date of the message that is being passed in process(), the original message.
TODO: What is the usecase of the commands that work on the message to be transformed? In general you only use the commands that work on the original message...
Definition at line 54 of file templateparser.h.
Member Function Documentation
◆ addProcessedBodyToMessage()
|
protected |
Called by processWithTemplate().
This adds the completely processed body to the message.
In append mode, this will simply append the text to the body.
Otherwise, the content of the old message is deleted and replaced with body
. Attachments of the original message are also added back to the new message.
Definition at line 893 of file templateparser.cpp.
◆ findCustomTemplate()
|
virtual |
Finds the template with the given name.
This also reads the To and CC address of the template
- Returns
- the contents of the template
Definition at line 982 of file templateparser.cpp.
◆ findTemplate()
|
virtual |
This finds the template to use.
Either the one from the folder, identity or finally the global template. This also reads the To and CC address of the template
- Returns
- the contents of the template
Definition at line 995 of file templateparser.cpp.
◆ messageText()
|
protected |
If there was a text selection set in the constructor, that will be returned.
Otherwise, returns the plain text of the original message, as in KMMessage::asPlainText(). The only difference is that this uses the cached object tree from parsedObjectTree()
- Parameters
-
allowSelectionOnly if false, it will always return the complete mail text
Definition at line 872 of file templateparser.cpp.
◆ parsedObjectTree()
|
protected |
Returns the parsed object tree of the original message.
The result is cached in mOrigRoot, therefore calling this multiple times will only parse the tree once.
Definition at line 882 of file templateparser.cpp.
◆ setAllowDecryption()
void TemplateParser::setAllowDecryption | ( | const bool | allowDecryption | ) |
Sets whether the template parser is allowed to decrypt the original message when needing its message text, for example for the QUOTE command.
If true, it will tell the ObjectTreeParser it uses internally to decrypt the message, and that will possibly show a password request dialog to the user.
The default is false.
Definition at line 69 of file templateparser.cpp.
◆ setSelection()
void TemplateParser::setSelection | ( | const TQString & | selection | ) |
Sets the selection.
If this is set, only the selection will be added to commands such as QUOTE. Otherwise, the whole message is quoted. If this is not called at all, the whole message is quoted as well. Call this before calling process().
Definition at line 64 of file templateparser.cpp.
◆ shouldStripSignature()
|
protected |
Determines whether the signature should be stripped when getting the text of the original message, e.g.
for commands such as QUOTE
Definition at line 74 of file templateparser.cpp.
The documentation for this class was generated from the following files: