Krita Source Code Documentation
Loading...
Searching...
No Matches
KUndo2MagicString Class Reference

#include <kundo2magicstring.h>

+ Inheritance diagram for KUndo2MagicString:

Public Member Functions

bool isEmpty () const
 
 KUndo2MagicString ()
 
bool operator== (const KUndo2MagicString &rhs) const
 
QString toSecondaryString () const
 
QString toString () const
 

Private Member Functions

 KUndo2MagicString (const QString &text)
 

Private Attributes

QString m_text
 

Friends

KUndo2MagicString kundo2_i18n (const char *text)
 
template<typename A1 >
KUndo2MagicString kundo2_i18n (const char *text, const A1 &a1)
 
template<typename A1 , typename A2 >
KUndo2MagicString kundo2_i18n (const char *text, const A1 &a1, const A2 &a2)
 
template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_i18n (const char *text, const A1 &a1, const A2 &a2, const A3 &a3)
 
template<typename A1 , typename A2 , typename A3 , typename A4 >
KUndo2MagicString kundo2_i18n (const char *text, const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4)
 
KUndo2MagicString kundo2_i18nc (const char *ctxt, const char *text)
 
template<typename A1 >
KUndo2MagicString kundo2_i18nc (const char *ctxt, const char *text, const A1 &a1)
 
template<typename A1 , typename A2 >
KUndo2MagicString kundo2_i18nc (const char *ctxt, const char *text, const A1 &a1, const A2 &a2)
 
template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_i18nc (const char *ctxt, const char *text, const A1 &a1, const A2 &a2, const A3 &a3)
 
template<typename A1 >
KUndo2MagicString kundo2_i18ncp (const char *ctxt, const char *sing, const char *plur, const A1 &a1)
 
template<typename A1 , typename A2 >
KUndo2MagicString kundo2_i18ncp (const char *ctxt, const char *sing, const char *plur, const A1 &a1, const A2 &a2)
 
template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_i18ncp (const char *ctxt, const char *sing, const char *plur, const A1 &a1, const A2 &a2, const A3 &a3)
 
template<typename A1 >
KUndo2MagicString kundo2_i18np (const char *sing, const char *plur, const A1 &a1)
 
template<typename A1 , typename A2 >
KUndo2MagicString kundo2_i18np (const char *sing, const char *plur, const A1 &a1, const A2 &a2)
 
template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_i18np (const char *sing, const char *plur, const A1 &a1, const A2 &a2, const A3 &a3)
 
template<typename A1 >
KUndo2MagicString kundo2_noi18n (const char *text, const A1 &a1)
 
template<typename A1 , typename A2 >
KUndo2MagicString kundo2_noi18n (const char *text, const A1 &a1, const A2 &a2)
 
template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_noi18n (const char *text, const A1 &a1, const A2 &a2, const A3 &a3)
 
template<typename A1 , typename A2 , typename A3 , typename A4 >
KUndo2MagicString kundo2_noi18n (const char *text, const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4)
 
KUndo2MagicString kundo2_noi18n (const QString &text)
 

Detailed Description

special wrapper for a string that is going to passed to a KUndo2Command and be later shown in the undo history and undo action in menu. The strings like that must have (qtundo-format) context to let translators know that they are allowed to use magic split in them.

Magic split is used in some languages to split the message in the undo history docker (which is either verb or noun in nominative) and the message in undo/redo actions (which is usually a noun in accusative). When the translator needs it he, splits two translations with '
' symbol and the magic string will recognize it.

Note
KUndo2MagicString will never support concatenation operators, because in many languages you cannot combine words without knowing the proper case.

Definition at line 39 of file kundo2magicstring.h.

Constructor & Destructor Documentation

◆ KUndo2MagicString() [1/2]

KUndo2MagicString::KUndo2MagicString ( )

Construct an empty string. Note that you cannot create a non-empty string without special functions, all the calls to which are processed by xgettext.

Definition at line 11 of file kundo2magicstring.cpp.

12{
13}

◆ KUndo2MagicString() [2/2]

KUndo2MagicString::KUndo2MagicString ( const QString & text)
explicitprivate

Construction of a magic string is allowed only with the means of special macros which resemble their kde-wide counterparts

Definition at line 15 of file kundo2magicstring.cpp.

16 : m_text(text)
17{
18}

Member Function Documentation

◆ isEmpty()

bool KUndo2MagicString::isEmpty ( ) const
Returns
true if the contained string is empty

Definition at line 32 of file kundo2magicstring.cpp.

33{
34 return m_text.isEmpty();
35}

References m_text.

◆ operator==()

bool KUndo2MagicString::operator== ( const KUndo2MagicString & rhs) const

Definition at line 37 of file kundo2magicstring.cpp.

38{
39 return m_text == rhs.m_text;
40}

References m_text.

◆ toSecondaryString()

QString KUndo2MagicString::toSecondaryString ( ) const

Fetch the secondary string which will go to the undo/redo action. This is usually a noun in accusative. If the translator didn't provide a secondary string, toString() and toSecondaryString() return the same values.

Definition at line 26 of file kundo2magicstring.cpp.

27{
28 int cdpos = m_text.indexOf(QLatin1Char('\n'));
29 return cdpos > 0 ? m_text.mid(cdpos + 1) : m_text;
30}

References m_text.

◆ toString()

QString KUndo2MagicString::toString ( ) const

Fetch the main translated string. That is the one that goes to undo history and resembles the action name in verb/nominative

Definition at line 20 of file kundo2magicstring.cpp.

21{
22 int cdpos = m_text.indexOf(QLatin1Char('\n'));
23 return cdpos > 0 ? m_text.left(cdpos) : m_text;
24}

References m_text.

Friends And Related Symbol Documentation

◆ kundo2_i18n [1/5]

KUndo2MagicString kundo2_i18n ( const char * text)
friend

Same as ki18n, but is supposed to work with strings going to undo stack

Definition at line 180 of file kundo2magicstring.h.

181{
182 return KUndo2MagicString(i18nc("(qtundo-format)", text));
183}

◆ kundo2_i18n [2/5]

template<typename A1 >
KUndo2MagicString kundo2_i18n ( const char * text,
const A1 & a1 )
friend

Definition at line 186 of file kundo2magicstring.h.

187{
188 return KUndo2MagicString(i18nc("(qtundo-format)", text, a1));
189}

◆ kundo2_i18n [3/5]

template<typename A1 , typename A2 >
KUndo2MagicString kundo2_i18n ( const char * text,
const A1 & a1,
const A2 & a2 )
friend

Definition at line 192 of file kundo2magicstring.h.

193{
194 return KUndo2MagicString(i18nc("(qtundo-format)", text, a1, a2));
195}

◆ kundo2_i18n [4/5]

template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_i18n ( const char * text,
const A1 & a1,
const A2 & a2,
const A3 & a3 )
friend

Definition at line 198 of file kundo2magicstring.h.

199{
200 return KUndo2MagicString(i18nc("(qtundo-format)", text, a1, a2, a3));
201}

◆ kundo2_i18n [5/5]

template<typename A1 , typename A2 , typename A3 , typename A4 >
KUndo2MagicString kundo2_i18n ( const char * text,
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4 )
friend

Definition at line 204 of file kundo2magicstring.h.

205{
206 return KUndo2MagicString(i18nc("(qtundo-format)", text, a1, a2, a3, a4));
207}

◆ kundo2_i18nc [1/4]

KUndo2MagicString kundo2_i18nc ( const char * ctxt,
const char * text )
friend

Same as ki18nc, but is supposed to work with strings going to undo stack

Definition at line 218 of file kundo2magicstring.h.

219{
220 return KUndo2MagicString(i18nc(prependContext(ctxt).toLatin1().data(), text));
221}
QString prependContext(const char *ctxt)

◆ kundo2_i18nc [2/4]

template<typename A1 >
KUndo2MagicString kundo2_i18nc ( const char * ctxt,
const char * text,
const A1 & a1 )
friend

Definition at line 224 of file kundo2magicstring.h.

225{
226 return KUndo2MagicString(i18nc(prependContext(ctxt).toLatin1().data(), text, a1));
227}

◆ kundo2_i18nc [3/4]

template<typename A1 , typename A2 >
KUndo2MagicString kundo2_i18nc ( const char * ctxt,
const char * text,
const A1 & a1,
const A2 & a2 )
friend

Definition at line 230 of file kundo2magicstring.h.

231{
232 return KUndo2MagicString(i18nc(prependContext(ctxt).toLatin1().data(), text, a1, a2));
233}

◆ kundo2_i18nc [4/4]

template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_i18nc ( const char * ctxt,
const char * text,
const A1 & a1,
const A2 & a2,
const A3 & a3 )
friend

Definition at line 236 of file kundo2magicstring.h.

237{
238 return KUndo2MagicString(i18nc(prependContext(ctxt).toLatin1().data(), text, a1, a2, a3));
239}

◆ kundo2_i18ncp [1/3]

template<typename A1 >
KUndo2MagicString kundo2_i18ncp ( const char * ctxt,
const char * sing,
const char * plur,
const A1 & a1 )
friend

Same as ki18ncp, but is supposed to work with strings going to undo stack

Definition at line 282 of file kundo2magicstring.h.

283{
284 return KUndo2MagicString(i18ncp(prependContext(ctxt).toLatin1().data(), sing, plur, a1));
285}

◆ kundo2_i18ncp [2/3]

template<typename A1 , typename A2 >
KUndo2MagicString kundo2_i18ncp ( const char * ctxt,
const char * sing,
const char * plur,
const A1 & a1,
const A2 & a2 )
friend

Definition at line 288 of file kundo2magicstring.h.

289{
290 return i18ncp(prependContext(ctxt).toLatin1().data(), sing, plur, a1, a2);
291}

◆ kundo2_i18ncp [3/3]

template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_i18ncp ( const char * ctxt,
const char * sing,
const char * plur,
const A1 & a1,
const A2 & a2,
const A3 & a3 )
friend

Definition at line 294 of file kundo2magicstring.h.

295{
296 return i18ncp(prependContext(ctxt).toLatin1().data(), sing, plur, a1, a2, a3);
297}

◆ kundo2_i18np [1/3]

template<typename A1 >
KUndo2MagicString kundo2_i18np ( const char * sing,
const char * plur,
const A1 & a1 )
friend

Same as ki18np, but is supposed to work with strings going to undo stack

Definition at line 253 of file kundo2magicstring.h.

254{
255 return KUndo2MagicString(i18ncp("(qtundo-format)", sing, plur, a1));
256}

◆ kundo2_i18np [2/3]

template<typename A1 , typename A2 >
KUndo2MagicString kundo2_i18np ( const char * sing,
const char * plur,
const A1 & a1,
const A2 & a2 )
friend

Definition at line 259 of file kundo2magicstring.h.

260{
261 return i18ncp("(qtundo-format)", sing, plur, a1, a2);
262}

◆ kundo2_i18np [3/3]

template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_i18np ( const char * sing,
const char * plur,
const A1 & a1,
const A2 & a2,
const A3 & a3 )
friend

Definition at line 265 of file kundo2magicstring.h.

266{
267 return i18ncp("(qtundo-format)", sing, plur, a1, a2, a3);
268}

◆ kundo2_noi18n [1/5]

template<typename A1 >
KUndo2MagicString kundo2_noi18n ( const char * text,
const A1 & a1 )
friend

Definition at line 152 of file kundo2magicstring.h.

153{
154 return KUndo2MagicString(QString(text).arg(a1));
155}

◆ kundo2_noi18n [2/5]

template<typename A1 , typename A2 >
KUndo2MagicString kundo2_noi18n ( const char * text,
const A1 & a1,
const A2 & a2 )
friend

Definition at line 158 of file kundo2magicstring.h.

159{
160 return KUndo2MagicString(QString(text).arg(a1).arg(a2));
161}

◆ kundo2_noi18n [3/5]

template<typename A1 , typename A2 , typename A3 >
KUndo2MagicString kundo2_noi18n ( const char * text,
const A1 & a1,
const A2 & a2,
const A3 & a3 )
friend

Definition at line 164 of file kundo2magicstring.h.

165{
166 return KUndo2MagicString(QString(text).arg(a1).arg(a2).arg(a3));
167}

◆ kundo2_noi18n [4/5]

template<typename A1 , typename A2 , typename A3 , typename A4 >
KUndo2MagicString kundo2_noi18n ( const char * text,
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4 )
friend

Definition at line 170 of file kundo2magicstring.h.

171{
172 return KUndo2MagicString(QString(text).arg(a1).arg(a2).arg(a3).arg(a4));
173}

◆ kundo2_noi18n [5/5]

KUndo2MagicString kundo2_noi18n ( const QString & text)
friend

This is a special wrapper to a string which tells explicitly that we don't need a translation for a given string. It is used either in testing or internal commands, which don't go to the stack directly.

Definition at line 146 of file kundo2magicstring.h.

147{
148 return KUndo2MagicString(text);
149}

Member Data Documentation

◆ m_text

QString KUndo2MagicString::m_text
private

Definition at line 125 of file kundo2magicstring.h.


The documentation for this class was generated from the following files: