From kde-commits Sun Mar 04 19:20:26 2012 From: Frank Osterfeld Date: Sun, 04 Mar 2012 19:20:26 +0000 To: kde-commits Subject: [kdepim/akregator_port] /: Port author listing in formatted article Message-Id: <20120304192026.35C9CA60BB () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=133088887308600 Git commit 9087c46b430b5b031ec7190468c50e1024d60649 by Frank Osterfeld. Committed on 04/03/2012 at 19:41. Pushed by osterfeld into branch 'akregator_port'. Port author listing in formatted article M +2 -10 akregator2/src/articleformatter.cpp M +37 -0 krss/krss/item.cpp M +2 -0 krss/krss/item.h http://commits.kde.org/kdepim/9087c46b430b5b031ec7190468c50e1024d60649 diff --git a/akregator2/src/articleformatter.cpp b/akregator2/src/articlefo= rmatter.cpp index 1c5f46e..1c464b9 100644 --- a/akregator2/src/articleformatter.cpp +++ b/akregator2/src/articleformatter.cpp @@ -211,8 +211,7 @@ QString DefaultNormalViewFormatter::formatItem( const K= Rss::Item& item, IconOpti text +=3D KGlobal::locale()->formatDateTime(item.dateUpdated(), KL= ocale::FancyLongDate) +"\n"; // TODO: might need RTL? } = -#ifdef KRSS_PORT_DISABLED - const QString author =3D item.authorAsHtml(); + const QString author =3D item.authorsAsHtml(); if (!author.isEmpty()) { text +=3D QString("
").a= rg(Utils::directionOf(i18n("Author"))); @@ -220,9 +219,6 @@ QString DefaultNormalViewFormatter::formatItem( const K= Rss::Item& item, IconOpti text +=3D ""; text +=3D author+"\n"; // TODO: might need RTL? } -#else - kWarning() << "Code temporarily disabled (Akonadi port)"; -#endif //KRSS_PORT_DISABLED = if (!enc.isEmpty()) { @@ -393,8 +389,7 @@ QString DefaultCombinedViewFormatter::formatItem( const= KRss::Item& item, IconOp text +=3D KGlobal::locale()->formatDateTime(item.datePublished(), = KLocale::FancyLongDate) + "\n"; // TODO: might need RTL? } = -#ifdef KRSS_PORT_DISABLED - const QString author =3D item.authorAsHtml(); + const QString author =3D item.authorsAsHtml(); if (!author.isEmpty()) { text +=3D QString("
").a= rg(Utils::directionOf(i18n("Author"))); @@ -402,9 +397,6 @@ QString DefaultCombinedViewFormatter::formatItem( const= KRss::Item& item, IconOp text +=3D ""; text +=3D author+"\n"; // TODO: might need RTL? } -#else - kWarning() << "Code temporarily disabled (Akonadi port)"; -#endif //KRSS_PORT_DISABLED if (!enc.isEmpty()) { text +=3D QString("
").a= rg(Utils::directionOf(i18n("Enclosure"))); diff --git a/krss/krss/item.cpp b/krss/krss/item.cpp index 7bd9077..3672942 100644 --- a/krss/krss/item.cpp +++ b/krss/krss/item.cpp @@ -30,6 +30,9 @@ #include = #include +#include + +#include = #include = @@ -203,6 +206,40 @@ QList Item::authors() const return d->akonadiItem.payload().authors(); } = +static QString authorAsHtml( const Person& p ) { + const QString name =3D Qt::escape( p.name() ); + const QString email =3D Qt::escape( p.email() ); + + if (!email.isEmpty()) { + if (!name.isEmpty()) + return QString::fromLatin1("%2").a= rg( email, name ); + else + return QString::fromLatin1("%1").a= rg( email ); + } + + const QString uri =3D Qt::escape( p.uri() ); + if (!name.isEmpty()) { + if (!uri.isEmpty()) + return QString::fromLatin1("%2").arg( uri= , name ); + else + return Qt::escape( name ); + } + + if ( !uri.isEmpty() ) + return QString::fromLatin1( "%1" ).arg( uri ); + return QString(); + +} + +QString Item::authorsAsHtml() const +{ + const QList authors =3D d->akonadiItem.payload().auth= ors(); + QStringList formatted; + Q_FOREACH( const Person& i, authors ) + formatted +=3D authorAsHtml( i ); + return formatted.join( i18nc("separator for listing multiple authors",= ", ") ); +} + void Item::setAuthors( const QList& authors ) { RssItem payload =3D d->akonadiItem.payload(); diff --git a/krss/krss/item.h b/krss/krss/item.h index 86b55fa..7027607 100644 --- a/krss/krss/item.h +++ b/krss/krss/item.h @@ -192,6 +192,8 @@ public: QList authors() const; void setAuthors( const QList& authors ); = + QString authorsAsHtml() const; + /** * returns the language used in the item's content *