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

#include <KisRssReader.h>

Public Types

enum  RssRoles {
  TitleRole = Qt::UserRole + 1 , DescriptionRole , LinkRole , PubDateRole ,
  CategoryRole , BlogNameRole , BlogIconRole
}
 

Public Member Functions

 KisRssReader ()
 
RssItemList parse (QFile &file)
 
RssItemList parse (QNetworkReply *reply)
 
RssItem parseItem ()
 
RssItemList parseStream (QXmlStreamReader &streamReader)
 

Private Attributes

QString blogIcon
 
QString blogName
 
QXmlStreamReader m_streamReader
 
QString requestUrl
 

Detailed Description

Definition at line 53 of file KisRssReader.h.

Member Enumeration Documentation

◆ RssRoles

Enumerator
TitleRole 
DescriptionRole 
LinkRole 
PubDateRole 
CategoryRole 
BlogNameRole 
BlogIconRole 

Definition at line 58 of file KisRssReader.h.

Constructor & Destructor Documentation

◆ KisRssReader()

KisRssReader::KisRssReader ( )

Definition at line 46 of file KisRssReader.cpp.

47{
48
49}

Member Function Documentation

◆ parse() [1/2]

RssItemList KisRssReader::parse ( QFile & file)

Definition at line 118 of file KisRssReader.cpp.

118 {
119 requestUrl = file.fileName();
120 file.open(QIODevice::ReadOnly);
121 m_streamReader.setDevice(&file);
122
124
125 file.close();
126 return itemList;
127}
QXmlStreamReader m_streamReader
RssItemList parseStream(QXmlStreamReader &streamReader)
QString requestUrl

References m_streamReader, parseStream(), and requestUrl.

◆ parse() [2/2]

RssItemList KisRssReader::parse ( QNetworkReply * reply)

Definition at line 110 of file KisRssReader.cpp.

110 {
111 QUrl source = reply->request().url();
112 requestUrl = source.toString();
113 m_streamReader.setDevice(reply);
114
116}
KisMagneticGraph::vertex_descriptor source(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)

References m_streamReader, parseStream(), requestUrl, and source().

◆ parseItem()

RssItem KisRssReader::parseItem ( )

Definition at line 51 of file KisRssReader.cpp.

51 {
52 RssItem item;
53 item.source = requestUrl;
54 item.blogIcon = blogIcon;
55 item.blogName = blogName;
56 while (!m_streamReader.atEnd()) {
57 switch (m_streamReader.readNext()) {
58 case QXmlStreamReader::StartElement:
59 if (m_streamReader.name() == QLatin1String("title"))
60 item.title = m_streamReader.readElementText();
61 else if (m_streamReader.name() == QLatin1String("link"))
62 item.link = m_streamReader.readElementText();
63 else if (m_streamReader.name() == QLatin1String("pubDate")) {
64 QString dateStr = m_streamReader.readElementText();
65 item.pubDate = QDateTime::fromString(dateStr, Qt::RFC2822Date);
66 }
67 else if (m_streamReader.name() == QLatin1String("category"))
68 item.category = m_streamReader.readElementText();
69 else if (m_streamReader.name() == QLatin1String("description"))
70 item.description = m_streamReader.readElementText(); //shortenHtml(streamReader.readElementText());
71 break;
72 case QXmlStreamReader::EndElement:
73 if (m_streamReader.name() == QLatin1String("item"))
74 return item;
75 break;
76 default:
77 break;
78
79 }
80 }
81 return RssItem();
82}
QString blogName
QString blogIcon
QString title
QString category
QString blogName
QString blogIcon
QDateTime pubDate
QString source
QString description
QString link

References RssItem::blogIcon, blogIcon, RssItem::blogName, blogName, RssItem::category, RssItem::description, RssItem::link, m_streamReader, RssItem::pubDate, requestUrl, RssItem::source, and RssItem::title.

◆ parseStream()

RssItemList KisRssReader::parseStream ( QXmlStreamReader & streamReader)

Definition at line 84 of file KisRssReader.cpp.

84 {
85 RssItemList list;
86 while (!streamReader.atEnd()) {
87 switch (streamReader.readNext()) {
88 case QXmlStreamReader::StartElement:
89 if (streamReader.name() == QLatin1String("item"))
90 list.append(parseItem());
91 else if (streamReader.name() == QLatin1String("title"))
92 blogName = streamReader.readElementText();
93 else if (streamReader.name() == QLatin1String("link")) {
94 if (!streamReader.namespaceUri().isEmpty())
95 break;
96 QString favIconString(streamReader.readElementText());
97 QUrl favIconUrl(favIconString);
98 favIconUrl.setPath(QLatin1String("favicon.ico"));
99 blogIcon = favIconUrl.toString();
100 blogIcon = QString(); // XXX: fix the favicon on krita.org!
101 }
102 break;
103 default:
104 break;
105 }
106 }
107 return list;
108}
RssItem parseItem()

References blogIcon, blogName, and parseItem().

Member Data Documentation

◆ blogIcon

QString KisRssReader::blogIcon
private

Definition at line 76 of file KisRssReader.h.

◆ blogName

QString KisRssReader::blogName
private

Definition at line 77 of file KisRssReader.h.

◆ m_streamReader

QXmlStreamReader KisRssReader::m_streamReader
private

Definition at line 74 of file KisRssReader.h.

◆ requestUrl

QString KisRssReader::requestUrl
private

Definition at line 75 of file KisRssReader.h.


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