MythTV master
importicons.h
Go to the documentation of this file.
1/* -*- Mode: c++ -*-
2 * vim: set expandtab tabstop=4 shiftwidth=4:
3 *
4 * Original Project
5 * MythTV http://www.mythtv.org
6 *
7 * Author(s):
8 * John Pullan, Matthew Wire
9 *
10 * Description:
11 */
12
13#ifndef IMPORTICONS_H
14#define IMPORTICONS_H
15
16// Qt
17#include <QDir>
18#include <QUrl>
19
20// MythTV
22
23class MythUIButton;
26class MythUITextEdit;
27class MythUIText;
29
31{
32 Q_OBJECT
33
34 public:
35 ImportIconsWizard(MythScreenStack *parent, bool fRefresh,
36 int sourceid = 0, QString channelname = "");
37 ~ImportIconsWizard() override;
38
39 bool Create(void) override; // MythScreenType
40 void Load(void) override; // MythScreenType
41// bool keyPressEvent(QKeyEvent *) override; // MythScreenType
42 void customEvent(QEvent *event) override; // MythUIType
43
45 {
46 QString strID;
47 QString strName;
48 QString strLogo;
49 };
50
51 private:
52
53 enum dialogState : std::uint8_t
54 {
58 };
59
60 struct CSVEntry
61 {
62 QString strChanId;
63 QString strName;
64 QString strXmlTvId;
65 QString strCallsign;
69 QString strNetworkId;
70 QString strServiceId;
71 QString strIconCSV;
72 QString strNameCSV;
73 };
75 using ListEntries = QList<CSVEntry>;
77 using ListEntriesIter = QList<CSVEntry>::Iterator;
78
83
85 using ListSearchEntries = QList<SearchEntry>;
87 using ListSearchEntriesIter = QList<SearchEntry>::Iterator;
88
93 static QString escape_csv(const QString& str);
94
99 static QStringList extract_csv(const QString& strLine);
100
106 static QString wget(QUrl& url,const QString& strParam);
107
112 bool lookup(const QString& strParam);
113
118 bool search(const QString& strParam);
119
123 bool submit();
124
129 bool findmissing(const QString& strParam);
130
137 bool checkAndDownload(const QString& url, const QString& localChanId);
138
142 bool initialLoad(const QString& name="");
143
147 bool doLoad();
148
149 protected slots:
151 void manualSearch();
153 void skip();
154 void askSubmit(const QString& strParam);
155 void Close() override; // MythScreenType
156
157 private slots:
159
160 protected:
161 void Init(void) override; // MythScreenType
162
163 private:
165 QString m_strMatches;
166
169 QString m_strParam;
170
171 bool m_fRefresh {false};
172 int m_nMaxCount {0};
173 int m_nCount {0};
176 int m_sourceId {0};
177
179 const QString m_url;
181
183
186
193
196
197};
198
200
201#endif // IMPORTICONS_H
bool m_fRefresh
are we doing a refresh or not
Definition: importicons.h:171
MythUITextEdit * m_manualEdit
manual edit field
Definition: importicons.h:188
ListEntriesIter m_iter
the current iterator
Definition: importicons.h:81
int m_missingCount
the current search point (0..m_missingCount)
Definition: importicons.h:175
void menuSelection(MythUIButtonListItem *item)
process the icon selection
bool checkAndDownload(const QString &url, const QString &localChanId)
checks and attempts to download the logo file to the appropriate place
bool findmissing(const QString &strParam)
retrieve the actual logo for the TV channel
QString m_strChannelDir
the location of the channel icon dir
Definition: importicons.h:167
void customEvent(QEvent *event) override
void Init(void) override
Used after calling Load() to assign data to widgets and other UI initilisation which is prohibited in...
MythUIProgressDialog * m_progressDialog
Definition: importicons.h:185
MythUIText * m_nameText
name field for the icon
Definition: importicons.h:189
bool doLoad()
attempts to move the iteration on one/more than one
void skip()
skip this icon
void askSubmit(const QString &strParam)
int m_nMaxCount
the maximum number of TV channels
Definition: importicons.h:172
void manualSearch()
process the manual search
QList< SearchEntry > ListSearchEntries
List of SearchEntry entries.
Definition: importicons.h:85
MythUIText * m_statusText
Definition: importicons.h:192
MythScreenStack * m_popupStack
Definition: importicons.h:184
ListEntries m_missingEntries
list of TV channels with no unique icon
Definition: importicons.h:80
static QString escape_csv(const QString &str)
changes a string into csv format
int m_missingMaxCount
the total number of missing icons
Definition: importicons.h:174
MythUIButton * m_manualButton
manual button field
Definition: importicons.h:190
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
ListSearchEntries m_listSearch
the list of SearchEntry
Definition: importicons.h:164
bool Create(void) override
Definition: importicons.cpp:64
bool lookup(const QString &strParam)
looks up the string to determine the caller/xmltvid
void itemChanged(MythUIButtonListItem *item)
MythUIButton * m_skipButton
button skip
Definition: importicons.h:191
~ImportIconsWizard() override
Definition: importicons.cpp:53
static QStringList extract_csv(const QString &strLine)
extracts the csv values out of a string
ImportIconsWizard(MythScreenStack *parent, bool fRefresh, int sourceid=0, QString channelname="")
Definition: importicons.cpp:27
bool initialLoad(const QString &name="")
attempt the inital load of the TV channel information
const QString m_url
Definition: importicons.h:179
void enableControls(ImportIconsWizard::dialogState state=STATE_NORMAL)
enable/disable the controls
void Close() override
ListEntriesIter m_missingIter
Definition: importicons.h:82
QList< CSVEntry >::Iterator ListEntriesIter
iterator over list of CSV entries
Definition: importicons.h:77
ListEntries m_listEntries
list of TV channels to search for
Definition: importicons.h:79
MythUIImage * m_preview
Definition: importicons.h:194
MythUIText * m_previewtitle
Definition: importicons.h:195
static QString wget(QUrl &url, const QString &strParam)
use the equivalent of wget to fetch the POST command
QList< SearchEntry >::Iterator ListSearchEntriesIter
iterator over list of SearchEntry entries
Definition: importicons.h:87
int m_nCount
the current search point (0..m_nMaxCount)
Definition: importicons.h:173
QString m_strChannelname
the channel name if searching for a single channel icon
Definition: importicons.h:168
MythUIButtonList * m_iconsList
list of potential icons
Definition: importicons.h:187
bool submit()
submit the icon information back to the remote db
int m_sourceId
selected video source or 0 for all sources
Definition: importicons.h:176
QString m_strMatches
the string for the submit() call
Definition: importicons.h:165
QList< CSVEntry > ListEntries
List of CSV entries.
Definition: importicons.h:75
bool search(const QString &strParam)
search the remote db for icons etc
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
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
Q_DECLARE_METATYPE(std::chrono::seconds)
describes the TV channel name
Definition: importicons.h:61
QString strAtscMinorChan
ATSC minor number.
Definition: importicons.h:68
QString strAtscMajorChan
ATSC major number.
Definition: importicons.h:67
QString strServiceId
service id
Definition: importicons.h:70
QString strTransportId
transport id
Definition: importicons.h:66
QString strNetworkId
network id
Definition: importicons.h:69
QString strChanId
local channel id
Definition: importicons.h:62
QString strIconCSV
icon name (csv form)
Definition: importicons.h:71
QString strXmlTvId
the xmltvid
Definition: importicons.h:64
QString strName
channel name
Definition: importicons.h:63
QString strCallsign
callsign
Definition: importicons.h:65
QString strNameCSV
name (csv form)
Definition: importicons.h:72
search entry results
Definition: importicons.h:45
QString strName
the remote name
Definition: importicons.h:47
QString strLogo
the actual logo
Definition: importicons.h:48
QString strID
the remote channel id
Definition: importicons.h:46