MythTV master
rsseditor.h
Go to the documentation of this file.
1#ifndef RSSEDITOR_H
2#define RSSEDITOR_H
3
4#include <utility>
5
6// Qt headers
7#include <QDomDocument>
8#include <QRecursiveMutex>
9#include <QNetworkAccessManager>
10#include <QNetworkReply>
11#include <QNetworkRequest>
12#include <QString>
13
14// MythTV headers
17
18class MythUITextEdit;
19class MythUIButton;
20class MythUICheckBox;
21class RSSSite;
22
27{
28 Q_OBJECT
29
30 public:
38 RSSEditPopup(QString url, bool edit, MythScreenStack *parent,
39 const QString &name = "RSSEditPopup")
40 : MythScreenType(parent, name),
41 m_urlText(std::move(url)), m_editing(edit) {}
42 ~RSSEditPopup() override;
43
44 bool Create(void) override; // MythScreenType
45 bool keyPressEvent(QKeyEvent *event) override; // MythScreenType
46
47 private:
48 static QUrl redirectUrl(const QUrl& possibleRedirectUrl,
49 const QUrl& oldRedirectUrl) ;
50
51 RSSSite *m_site {nullptr};
52 QString m_urlText;
54
61
64
66
67 QNetworkAccessManager *m_manager {nullptr};
68 QNetworkReply *m_reply {nullptr};
69
70 signals:
71 void Saving(void);
72
73 private slots:
74 void SlotCheckRedirect(QNetworkReply* reply);
75 void ParseAndSave(void);
76 void SlotSave(QNetworkReply *reply);
77 void DoFileBrowser(void);
78 static void SelectImagePopup(const QString &prefix,
79 QObject &inst,
80 const QString &returnEvent);
81 void customEvent(QEvent *levent) override; // MythUIType
82};
83
85{
86 Q_OBJECT
87
88 public:
89 explicit RSSEditor(MythScreenStack *parent, const QString &name = "RSSEditor")
90 : MythScreenType(parent, name) {}
91 ~RSSEditor() override;
92
93 bool Create(void) override; // MythScreenType
94 bool keyPressEvent(QKeyEvent *event) override; // MythScreenType
95
96 private:
97 void fillRSSButtonList();
98 mutable QRecursiveMutex m_lock;
99 bool m_changed {false};
100
103 MythUIButton *m_new {nullptr};
106
108 MythUIText *m_title {nullptr};
109 MythUIText *m_url {nullptr};
110 MythUIText *m_desc {nullptr};
112
113 signals:
114 void ItemsChanged(void);
115
116 public slots:
117 void SlotItemChanged();
118 void LoadData(void);
119
120 void SlotDeleteSite(void);
121 void DoDeleteSite(bool remove);
122 void SlotEditSite(void);
123 void SlotNewSite(void);
124 void ListChanged(void);
125};
126
127#endif /* RSSEDITOR_H */
Screen in which all other widgets are contained and rendered.
List widget, displays list items in a variety of themeable arrangements and can trigger signals when ...
A single button widget.
Definition: mythuibutton.h:22
A checkbox widget supporting three check states - on,off,half and two conditions - selected and unsel...
Image widget, displays a single image or multiple images in sequence.
Definition: mythuiimage.h:98
A text entry and edit widget.
All purpose text widget, displays a text string.
Definition: mythuitext.h:29
Site name, URL and icon edit screen.
Definition: rsseditor.h:27
void ParseAndSave(void)
Definition: rsseditor.cpp:133
static QUrl redirectUrl(const QUrl &possibleRedirectUrl, const QUrl &oldRedirectUrl)
Definition: rsseditor.cpp:165
RSSSite * m_site
Definition: rsseditor.h:51
MythUIButton * m_thumbButton
Definition: rsseditor.h:56
QNetworkReply * m_reply
Definition: rsseditor.h:68
QNetworkAccessManager * m_manager
Definition: rsseditor.h:67
~RSSEditPopup() override
Definition: rsseditor.cpp:48
bool Create(void) override
Definition: rsseditor.cpp:58
MythUIButton * m_cancelButton
Definition: rsseditor.h:63
RSSEditPopup(QString url, bool edit, MythScreenStack *parent, const QString &name="RSSEditPopup")
Creates a new RSS Edit Popup.
Definition: rsseditor.h:38
void customEvent(QEvent *levent) override
Definition: rsseditor.cpp:297
QString m_urlText
Definition: rsseditor.h:52
void Saving(void)
MythUITextEdit * m_descEdit
Definition: rsseditor.h:59
MythUICheckBox * m_download
Definition: rsseditor.h:65
static void SelectImagePopup(const QString &prefix, QObject &inst, const QString &returnEvent)
Definition: rsseditor.cpp:279
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: rsseditor.cpp:118
bool m_editing
Definition: rsseditor.h:53
void SlotCheckRedirect(QNetworkReply *reply)
Definition: rsseditor.cpp:174
void SlotSave(QNetworkReply *reply)
Definition: rsseditor.cpp:196
MythUIImage * m_thumbImage
Definition: rsseditor.h:55
MythUIButton * m_okButton
Definition: rsseditor.h:62
void DoFileBrowser(void)
Definition: rsseditor.cpp:273
MythUITextEdit * m_urlEdit
Definition: rsseditor.h:57
MythUITextEdit * m_titleEdit
Definition: rsseditor.h:58
MythUITextEdit * m_authorEdit
Definition: rsseditor.h:60
void LoadData(void)
Definition: rsseditor.cpp:372
RSSSite::rssList m_siteList
Definition: rsseditor.h:101
bool Create(void) override
Definition: rsseditor.cpp:319
MythUIImage * m_image
Definition: rsseditor.h:107
void fillRSSButtonList()
Definition: rsseditor.cpp:426
MythUIButtonList * m_sites
Definition: rsseditor.h:102
MythUIButton * m_new
Definition: rsseditor.h:103
void SlotItemChanged()
Definition: rsseditor.cpp:444
MythUIButton * m_edit
Definition: rsseditor.h:105
QRecursiveMutex m_lock
Definition: rsseditor.h:98
bool m_changed
Definition: rsseditor.h:99
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: rsseditor.cpp:391
MythUIText * m_desc
Definition: rsseditor.h:110
MythUIButton * m_delete
Definition: rsseditor.h:104
RSSEditor(MythScreenStack *parent, const QString &name="RSSEditor")
Definition: rsseditor.h:89
void SlotEditSite(void)
Definition: rsseditor.cpp:497
void SlotDeleteSite(void)
Definition: rsseditor.cpp:472
MythUIText * m_author
Definition: rsseditor.h:111
void ItemsChanged(void)
void DoDeleteSite(bool remove)
Definition: rsseditor.cpp:542
MythUIText * m_url
Definition: rsseditor.h:109
~RSSEditor() override
Definition: rsseditor.cpp:311
MythUIText * m_title
Definition: rsseditor.h:108
void SlotNewSite(void)
Definition: rsseditor.cpp:522
void ListChanged(void)
Definition: rsseditor.cpp:555
QList< RSSSite * > rssList
Definition: rssmanager.h:53
STL namespace.