LeechCraft  %{LEECHCRAFT_VERSION}
Modular cross-platform feature rich live environment.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
IAdvancedHTMLEditor::CustomTag Struct Reference

Describes a single custom tag. More...

#include "itexteditor.h"

Public Attributes

QString TagName_
 The name of the custom tag, like lj. More...
 
std::function< void(QDomElement &)> ToKnown_
 The converter of an instance of the tag to HTML. More...
 
std::function< bool(QDomElement &)> FromKnown_
 The converter of an instance of the tag from HTML. More...
 

Detailed Description

Describes a single custom tag.

Definition at line 220 of file itexteditor.h.

Member Data Documentation

std::function<bool (QDomElement&)> IAdvancedHTMLEditor::CustomTag::FromKnown_

The converter of an instance of the tag from HTML.

This function is invoked to convert an instance of the tag (passed as a QDomElement) from HTML. The conversion should be done in-place: the resulting XML should be contained in the passed QDomElement.

An example function that turns back the boldified <lj user="$username"/> got from CustomTag::ToKnown_:

[] (QDomElement& elem) -> void
{
const auto& user = elem.text ();
elem.setTagName ("lj");
elem.setAttribute ("user", user);
const auto& childNodes = elem.childNodes ();
while (!childNodes.isEmpty ())
elem.removeChild (childNodes.at (0));
}

One can leave this function unset, in this case the tag will marked as non-modifyable.

This function should return true if the convertation succeeded, otherwise it should return false.

Definition at line 278 of file itexteditor.h.

QString IAdvancedHTMLEditor::CustomTag::TagName_

The name of the custom tag, like lj.

Definition at line 224 of file itexteditor.h.

std::function<void (QDomElement&)> IAdvancedHTMLEditor::CustomTag::ToKnown_

The converter of an instance of the tag to HTML.

This function is invoked to convert an instance of the tag (passed as a QDomElement) to HTML. The conversion should be done in-place: the resulting HTML should be contained in the passed QDomElement.

An example function that boldifies <lj user="$username"/>:

[] (QDomElement& elem) -> void
{
const auto& user = elem.attribute ("user");
elem.setTagName ("strong");
elem.removeAttribute ("user");
elem.appendChild (elem.ownerDocument ().createTextNode (user));
}

Definition at line 246 of file itexteditor.h.


The documentation for this struct was generated from the following file: