15#include <QDomDocument>
19#include <kconfiggroup.h>
20#include <klocalizedstring.h>
22#include <kemailsettings.h>
29 m_aboutTags <<
"title" <<
"description" <<
"subject" <<
"abstract"
30 <<
"keyword" <<
"initial-creator" <<
"editing-cycles" <<
"editing-time"
31 <<
"date" <<
"creation-date" <<
"language" <<
"license";
33 m_authorTags <<
"creator" <<
"creator-first-name" <<
"creator-last-name" <<
"initial" <<
"author-title" <<
"position" <<
"company";
34 m_contactTags <<
"email" <<
"telephone" <<
"telephone-work" <<
"fax" <<
"country" <<
"postal-code" <<
"city" <<
"street";
38 setAboutInfo(
"creation-date", QDateTime::currentDateTime()
39 .toString(Qt::ISODate));
44 m_aboutTags(rhs.m_aboutTags),
45 m_authorTags(rhs.m_authorTags),
46 m_contact(rhs.m_contact),
47 m_authorInfo(rhs.m_authorInfo),
48 m_authorInfoOverride(rhs.m_authorInfoOverride),
49 m_aboutInfo(rhs.m_aboutInfo),
50 m_generator(rhs.m_generator)
78 doc.documentElement().appendChild(s);
82 doc.documentElement().appendChild(s);
85 if (doc.documentElement().isNull())
86 return QDomDocument();
149 QDomElement e = root.firstChildElement(
"author");
154 for (e = e.firstChildElement(); !e.isNull(); e = e.nextSiblingElement()) {
155 QString field = e.tagName();
156 QString
value = e.text();
158 if (field ==
"full-name") {
160 }
else if (field ==
"contact") {
172 QDomElement e = doc.createElement(
"author");
176 if (tag ==
"creator")
177 t = doc.createElement(
"full-name");
179 t = doc.createElement(tag);
182 t.appendChild(doc.createTextNode(
authorInfo(tag)));
184 for (
int i=0; i<
m_contact.keys().size(); i++) {
185 t = doc.createElement(
"contact");
189 t.appendChild(doc.createTextNode(key));
198 QDomElement e = root.firstChildElement(
"about");
203 for (e = e.firstChildElement(); !e.isNull(); e = e.nextSiblingElement()) {
212 QDomElement e = doc.createElement(
"about");
216 if (tag ==
"abstract") {
217 t = doc.createElement(
"abstract");
219 t.appendChild(doc.createCDATASection(
aboutInfo(tag)));
221 t = doc.createElement(tag);
223 t.appendChild(doc.createTextNode(
aboutInfo(tag)));
238 setAboutInfo(
"date", QDateTime::currentDateTime().toString(Qt::ISODate));
250 KConfig config(
"kritarc");
251 config.reparseConfiguration();
252 KConfigGroup appAuthorGroup(&config,
"Author");
253 QString profile = appAuthorGroup.readEntry(
"active-profile",
"");
265 if (dir.entryList(filters).contains(profile+
".authorinfo")) {
266 QFile file(dir.absoluteFilePath(profile+
".authorinfo"));
268 file.open(QFile::ReadOnly);
269 QByteArray ba = file.readAll();
271 QDomDocument doc = QDomDocument();
273 QDomElement root = doc.firstChildElement();
275 QDomElement el = root.firstChildElement(
"nickname");
279 el = root.firstChildElement(
"givenname");
283 el = root.firstChildElement(
"middlename");
287 el = root.firstChildElement(
"familyname");
291 el = root.firstChildElement(
"title");
295 el = root.firstChildElement(
"position");
299 el = root.firstChildElement(
"company");
305 el = root.firstChildElement(
"contact");
306 while (!el.isNull()) {
307 m_contact.insert(el.text(), el.attribute(
"type"));
308 el = el.nextSiblingElement(
"contact");
325 setAboutInfo(
"creation-date", QDateTime::currentDateTime().toString(Qt::ISODate));
float value(const T *src, size_t ch)
QList< QString > QStringList
The class containing all meta information about a document.
QMap< QString, QString > m_authorInfo
bool loadAuthorInfo(const QDomElement &e)
void setActiveAuthorInfo(const QString &info, const QString &data)
QStringList m_contactTags
bool load(const QDomDocument &doc)
void infoUpdated(const QString &info, const QString &data)
QMap< QString, QString > m_aboutInfo
void setOriginalGenerator(const QString &generator)
KoDocumentInfo(QObject *parent=0)
void setAboutInfo(const QString &info, const QString &data)
void updateParametersAndBumpNumCycles()
Bumps the editing cycles count and save date, and then calls updateParameters.
bool loadAboutInfo(const QDomElement &e)
QDomElement saveAuthorInfo(QDomDocument &doc)
QMap< QString, QString > m_authorInfoOverride
QDomDocument save(QDomDocument &doc)
QStringList authorContactInfo() const
authorContactInfo
QString authorInfo(const QString &info) const
void setAuthorInfo(const QString &info, const QString &data)
QString originalGenerator() const
~KoDocumentInfo() override
QDomElement saveAboutInfo(QDomDocument &doc)
QMap< QString, QString > m_contact
QString aboutInfo(const QString &info) const
static QString getAppDataLocation()