KIdentityManagementCore::Signature

Search for usage in LXR

KIdentityManagementCore::Signature Class Reference

#include <signature.h>

Public Types

using AddedText = QFlags<AddedTextFlag>
 
enum  AddedTextFlag { AddNothing = 0 , AddSeparator = 1 << 0 , AddNewLines = 1 << 1 }
 
using EmbeddedImagePtr = QSharedPointer<EmbeddedImage>
 
enum  Placement { Start , End , AtCursor }
 
enum  Type { Disabled = 0 , Inlined = 1 , FromFile = 2 , FromCommand = 3 }
 

Public Member Functions

 Signature ()
 
 Signature (const QString &path, bool isExecutable)
 
 Signature (const QString &text)
 
 Signature (const Signature &that)
 
 ~Signature ()
 
void addImage (const QImage &image, const QString &imageName)
 
QList< Signature::EmbeddedImagePtrembeddedImages () const
 
QString imageLocation () const
 
bool isEnabledSignature () const
 
bool isInlinedHtml () const
 
Signatureoperator= (const Signature &that)
 
bool operator== (const Signature &other) const
 
QString path () const
 
QString rawText (bool *ok=nullptr, QString *errorMessage=nullptr) const
 
void setEmbeddedImages (const QList< EmbeddedImagePtr > &embedded)
 
void setEnabledSignature (bool enabled)
 
void setImageLocation (const QString &path)
 
void setInlinedHtml (bool isHtml)
 
void setPath (const QString &path, bool isExecutable=false)
 
void setText (const QString &text)
 
void setType (Type type)
 
QString text () const
 
QString toPlainText () const
 
Type type () const
 
QString withSeparator (bool *ok=nullptr, QString *errorMessage=nullptr) const
 

Protected Member Functions

void readConfig (const KConfigGroup &config)
 
void writeConfig (KConfigGroup &config) const
 

Detailed Description

Abstraction of a signature (aka "footer").

The signature can either be plain text, HTML text, text returned from a command or text stored in a file.

In case of HTML text, the signature can contain images. Since you set the HTML source with setText(), there also needs to be a way to add the images to the signature, as the HTML source contains only the img tags that reference those images. To add the image to the signature, call addImage(). The name given there must match the name of the img tag in the HTML source.

The images need to be stored somewhere. The Signature class handles that by storing all images in a directory. You must set that directory with setImageLocation(), before calling addImage(). The images added with addImage() are then saved to that directory when calling writeConfig(). When loading a signature, readConfig() automatically loads the images as well. To actually add the images to a text edit, call insertIntoTextEdit().

Example of creating a HTML signature and then inserting it into a text edit:

Signature htmlSig;
htmlSig.setText( "<img src=\"hello.png\"> World" );
htmlSig.setInlinedHtml( true );
htmlSig.setImageLocation( KStandardDirs::locateLocal( "data", "emailidentities/example/" );
QImage image = ...;
htmlSig.addImage( image, "hello.png" );
...
KTextEdit edit;
htmlSig.insertIntoTextEdit( KIdentityManagementCore::Signature::End,
Abstraction of a signature (aka "footer").
Definition signature.h:61
void setText(const QString &text)
Set the signature text and mark this signature as being of "inline text" type.
void setImageLocation(const QString &path)
Sets the location where the copies of the signature images will be stored.
@ End
The signature is placed at the end of the textedit.
Definition signature.h:77
void setInlinedHtml(bool isHtml)
Sets the inlined signature to text or html.
@ AddSeparator
The separator '– ' will be added in front.
Definition signature.h:191
void addImage(const QImage &image, const QString &imageName)
Adds the given image to the signature.

Definition at line 60 of file signature.h.

Member Typedef Documentation

◆ AddedText

Describes which additional parts should be added to the signature.

Definition at line 198 of file signature.h.

◆ EmbeddedImagePtr

Definition at line 85 of file signature.h.

Member Enumeration Documentation

◆ AddedTextFlag

Enumerator
AddNothing 

Don't add any text to the signature.

AddSeparator 

The separator '–
' will be added in front.

AddNewLines 

of the signature

Add a newline character in front or after the signature, depending on the placement

Definition at line 189 of file signature.h.

◆ Placement

Describes the placement of the signature text when it is to be inserted into a text edit.

Enumerator
Start 

The signature is placed at the start of the textedit.

End 

The signature is placed at the end of the textedit.

AtCursor 

The signature is placed at the current cursor position.

Definition at line 75 of file signature.h.

◆ Type

Type of signature (ie.

way to obtain the signature text)

Definition at line 69 of file signature.h.

Constructor & Destructor Documentation

◆ Signature() [1/4]

Signature::Signature ( )

Constructor for disabled signature.

Definition at line 199 of file signature.cpp.

◆ Signature() [2/4]

Signature::Signature ( const QString & text)

Constructor for inline text.

Definition at line 206 of file signature.cpp.

◆ Signature() [3/4]

Signature::Signature ( const QString & path,
bool isExecutable )

Constructor for text from a file or from output of a command.

Definition at line 214 of file signature.cpp.

◆ Signature() [4/4]

Signature::Signature ( const Signature & that)

Copy constructor.

Definition at line 221 of file signature.cpp.

◆ ~Signature()

Signature::~Signature ( )
default

Destructor.

Member Function Documentation

◆ addImage()

void Signature::addImage ( const QImage & image,
const QString & imageName )

Adds the given image to the signature.

This is needed if you use setText() to set some HTML source that references images. Those referenced images needed to be added by calling this function. The @imageName has to match the src attribute of the img tag.

If you use SignatureConfigurator, you don't need to call this function, as the configurator will handle this for you. setImageLocation() needs to be called once before.

Since
4.4

Definition at line 460 of file signature.cpp.

◆ embeddedImages()

QList< Signature::EmbeddedImagePtr > Signature::embeddedImages ( ) const

Definition at line 380 of file signature.cpp.

◆ imageLocation()

QString Signature::imageLocation ( ) const

Definition at line 474 of file signature.cpp.

◆ isEnabledSignature()

bool Signature::isEnabledSignature ( ) const

Definition at line 514 of file signature.cpp.

◆ isInlinedHtml()

bool Signature::isInlinedHtml ( ) const
Returns
boolean whether the inlined signature is html
Since
4.1

Definition at line 298 of file signature.cpp.

◆ operator=()

Signature & Signature::operator= ( const Signature & that)

Assignment operator.

Definition at line 227 of file signature.cpp.

◆ operator==()

bool Signature::operator== ( const Signature & other) const

Used for comparison.

Definition at line 415 of file signature.cpp.

◆ path()

QString Signature::path ( ) const

Definition at line 486 of file signature.cpp.

◆ rawText()

QString Signature::rawText ( bool * ok = nullptr,
QString * errorMessage = nullptr ) const
Returns
the raw signature text as entered resp. read from file.
Parameters
okset to true if reading succeeded
errorMessageIf available, contains a human readable explanation for ok being false.

Definition at line 239 of file signature.cpp.

◆ readConfig()

void Signature::readConfig ( const KConfigGroup & config)
protected

Definition at line 316 of file signature.cpp.

◆ setEmbeddedImages()

void Signature::setEmbeddedImages ( const QList< EmbeddedImagePtr > & embedded)

Definition at line 385 of file signature.cpp.

◆ setEnabledSignature()

void Signature::setEnabledSignature ( bool enabled)

setEnabledSignature

Parameters
enabledenables signature if set as true
Since
4.9

Definition at line 509 of file signature.cpp.

◆ setImageLocation()

void Signature::setImageLocation ( const QString & path)

Sets the location where the copies of the signature images will be stored.

The images will be stored there when calling writeConfig(). The image location is stored in the config, so the next readConfig() call knows where to look for images. It is recommended to use KStandardDirs::locateLocal( "data", "emailidentities/%1" ) for the location, where %1 is the unique identifier of the identity.

Warning
readConfig will delete all other PNG files in this directory, as they could be stale inline image files

Like with addImage(), the SignatureConfigurator will handle this for you.

Parameters
paththe path to set as image location
Since
4.4

Definition at line 469 of file signature.cpp.

◆ setInlinedHtml()

void Signature::setInlinedHtml ( bool isHtml)

Sets the inlined signature to text or html.

Parameters
isHtmlsets the inlined signature to html
Since
4.1

Definition at line 293 of file signature.cpp.

◆ setPath()

void Signature::setPath ( const QString & path,
bool isExecutable = false )

Set the signature URL and mark this signature as being of "from file" resp.

"from output of command" type.

Definition at line 287 of file signature.cpp.

◆ setText()

void Signature::setText ( const QString & text)

Set the signature text and mark this signature as being of "inline text" type.

Definition at line 498 of file signature.cpp.

◆ setType()

void Signature::setType ( Type type)

Definition at line 504 of file signature.cpp.

◆ text()

QString Signature::text ( ) const

Definition at line 481 of file signature.cpp.

◆ toPlainText()

QString Signature::toPlainText ( ) const

Returns the text of the signature.

If the signature is HTML, the HTML tags will be stripped.

Since
4.4

Definition at line 446 of file signature.cpp.

◆ type()

Signature::Type Signature::type ( ) const
Returns
the type of signature (ie. way to obtain the signature text)

Definition at line 491 of file signature.cpp.

◆ withSeparator()

QString Signature::withSeparator ( bool * ok = nullptr,
QString * errorMessage = nullptr ) const
Returns
the signature text with a "-- \n" separator added, if necessary. A newline will not be appended or prepended.
Parameters
okset to true if reading succeeded
errorMessageIf available, contains a human readable explanation for ok being false.

Definition at line 261 of file signature.cpp.

◆ writeConfig()

void Signature::writeConfig ( KConfigGroup & config) const
protected

Definition at line 354 of file signature.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:20:09 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.