MythTV  master
proglist_helpers.cpp
Go to the documentation of this file.
1 // MythTV
3 #include "libmythbase/mythdate.h"
9 #include "libmythui/mythuitext.h"
11 
12 // MythFrontend
13 #include "proglist.h"
14 #include "proglist_helpers.h"
15 #include "scheduleeditor.h"
16 
18 {
19  if (!LoadWindowFromXML("schedule-ui.xml", "phrasepopup", this))
20  return false;
21 
22  bool err = false;
23  UIUtilE::Assign(this, m_titleText, "title_text", &err);
24  UIUtilE::Assign(this, m_phraseList, "phrase_list", &err);
25  UIUtilE::Assign(this, m_phraseEdit, "phrase_edit", &err);
26  UIUtilE::Assign(this, m_okButton, "ok_button", &err);
27  UIUtilE::Assign(this, m_deleteButton, "delete_button", &err);
28  UIUtilE::Assign(this, m_recordButton, "record_button", &err);
29 
30  if (err)
31  {
32  LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'phrasepopup'");
33  return false;
34  }
35 
37  {
38  m_titleText->SetText(tr("Select Search"));
39  new MythUIButtonListItem(m_phraseList, tr("<New Search>"), nullptr, false);
40  m_okButton->SetText(tr("Edit"));
41  }
42  else
43  {
44  m_titleText->SetText(tr("Phrase"));
45  new MythUIButtonListItem(m_phraseList, tr("<New Phrase>"), nullptr, false);
46  }
47 
48  for (const QString& item : std::as_const(m_list))
49  {
50  new MythUIButtonListItem(m_phraseList, item, nullptr, false);
51  }
52 
57 
58 
60 
61  m_deleteButton->SetText(tr("Delete"));
62  m_recordButton->SetText(tr("Record"));
63 
67 
69 
71 
73 
74  return true;
75 }
76 
78 {
79  m_okButton->SetEnabled(!m_phraseEdit->GetText().trimmed().isEmpty());
81  (m_list.indexOf(m_phraseEdit->GetText().trimmed()) != -1));
82  m_recordButton->SetEnabled(!m_phraseEdit->GetText().trimmed().isEmpty());
83 }
84 
86 {
87  if (!item)
88  return;
89 
90  int pos = m_phraseList->GetCurrentPos();
91 
92  if (pos == 0)
94  else
95  okClicked();
96 }
97 
99 {
100  if (!item)
101  return;
102 
103  if (m_phraseList->GetCurrentPos() == 0)
104  m_phraseEdit->Reset();
105  else
106  m_phraseEdit->SetText(item->GetText());
107 
111 }
112 
114 {
115  if (m_phraseEdit->GetText().trimmed().isEmpty())
116  return;
117 
118  // check to see if we need to save the phrase
121 
122 // emit haveResult(m_phraseList->GetCurrentPos());
124 
125  Close();
126 }
127 
129 {
130  int view = m_phraseList->GetCurrentPos() - 1;
131 
132  if (view < 0)
133  return;
134 
135  QString text = m_list[view];
136  const QString& qphrase = text;
137 
138  MSqlQuery query(MSqlQuery::InitCon());
139  query.prepare("DELETE FROM keyword "
140  "WHERE phrase = :PHRASE AND searchtype = :TYPE;");
141  query.bindValue(":PHRASE", qphrase);
142  query.bindValue(":TYPE", m_searchType);
143  if (!query.exec())
144  MythDB::DBError("PhrasePopup::deleteClicked", query);
145 
147 
148  m_parent->m_viewList.removeAll(text);
149  m_parent->m_viewTextList.removeAll(text);
150 
151  if (view < m_parent->m_curView)
152  m_parent->m_curView--;
153  else if (view == m_parent->m_curView)
154  m_parent->m_curView = -1;
155 
156  if (m_parent->m_viewList.count() < 1)
158  else
160 }
161 
163 {
164  QString text = m_phraseEdit->GetText();
165  QString what = text;
166  QString fromgenre;
167 
168  if (text.trimmed().isEmpty())
169  return;
170 
171  if (m_searchType == kNoSearch)
172  {
173  LOG(VB_GENERAL, LOG_ERR, "Unknown search in ProgLister");
174  return;
175  }
176 
177  if (m_searchType == kPowerSearch)
178  {
179  if (text == ":::::")
180  return;
181 
182  MSqlBindings bindings;
183  if (ProgLister::PowerStringToSQL(text, what, bindings))
184  {
185  fromgenre = QString("LEFT JOIN programgenres ON "
186  "program.chanid = programgenres.chanid AND "
187  "program.starttime = programgenres.starttime ");
188  }
189 
190  if (what.isEmpty())
191  return;
192 
193  MSqlEscapeAsAQuery(what, bindings);
194  }
195 
196  auto *record = new RecordingRule();
197 
198  record->LoadBySearch(m_searchType, text, what, fromgenre);
199 
201  auto *schededit = new ScheduleEditor(mainStack, record);
202  if (schededit->Create())
203  {
204  mainStack->AddScreen(schededit);
205  okClicked();
206  }
207  else
208  {
209  delete schededit;
210  }
211 }
212 
214 
216 {
217  if (!LoadWindowFromXML("schedule-ui.xml", "powersearchpopup", this))
218  return false;
219 
220  bool err = false;
221  UIUtilE::Assign(this, m_titleText, "title_text", &err);
222  UIUtilE::Assign(this, m_phraseList, "phrase_list", &err);
223  UIUtilE::Assign(this, m_editButton, "edit_button", &err);
224  UIUtilE::Assign(this, m_deleteButton, "delete_button", &err);
225  UIUtilE::Assign(this, m_recordButton, "record_button", &err);
226 
227  if (err)
228  {
229  LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'powersearchpopup'");
230  return false;
231  }
232 
233  m_titleText->SetText(tr("Select Search"));
234  new MythUIButtonListItem(m_phraseList, tr("<New Search>"), nullptr, false);
235 
236  for (const QString &item : std::as_const(m_list))
237  {
238  new MythUIButtonListItem(m_phraseList, item, nullptr, false);
239  }
240 
245 
246 
248 
249  m_editButton->SetText(tr("Edit"));
250  m_deleteButton->SetText(tr("Delete"));
251  m_recordButton->SetText(tr("Record"));
252 
256 
257  BuildFocusList();
258 
260 
261  return true;
262 }
263 
265 {
266  if (!item)
267  return;
268 
269  int pos = m_phraseList->GetCurrentPos();
270 
271  if (pos == 0)
272  editClicked();
273  else
274  {
276  Close();
277  }
278 }
279 
281 {
282  if (!item)
283  return;
284 
288 }
289 
291 {
292  MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
293 
294  QString currentItem = ":::::";
295 
296  if (m_phraseList->GetCurrentPos() != 0)
297  currentItem = m_phraseList->GetValue();
298 
299  auto *popup = new EditPowerSearchPopup(popupStack, m_parent, currentItem);
300 
301  if (!popup->Create())
302  {
303  delete popup;
304  return;
305  }
306 
307  popupStack->AddScreen(popup);
308 
309  Close();
310 }
311 
313 {
314  int view = m_phraseList->GetCurrentPos() - 1;
315 
316  if (view < 0)
317  return;
318 
319  QString text = m_list[view];
320  const QString& qphrase = text;
321 
322  MSqlQuery query(MSqlQuery::InitCon());
323  query.prepare("DELETE FROM keyword "
324  "WHERE phrase = :PHRASE AND searchtype = :TYPE;");
325  query.bindValue(":PHRASE", qphrase);
326  query.bindValue(":TYPE", m_searchType);
327  if (!query.exec())
328  MythDB::DBError("PowerSearchPopup::deleteClicked", query);
329 
331 
332  m_parent->m_viewList.removeAll(text);
333  m_parent->m_viewTextList.removeAll(text);
334 
335  if (view < m_parent->m_curView)
336  m_parent->m_curView--;
337  else if (view == m_parent->m_curView)
338  m_parent->m_curView = -1;
339 
340  if (m_parent->m_viewList.count() < 1)
342  else
344 }
345 
347 {
348  QString text = m_phraseList->GetValue();
349  QString what = text;
350  QString fromgenre;
351 
352  if (text.trimmed().isEmpty())
353  return;
354 
355  if (m_searchType == kNoSearch)
356  {
357  LOG(VB_GENERAL, LOG_ERR, "Unknown search in ProgLister");
358  return;
359  }
360 
361  if (m_searchType == kPowerSearch)
362  {
363  if (text == ":::::")
364  return;
365 
366  MSqlBindings bindings;
367  if (ProgLister::PowerStringToSQL(text, what, bindings))
368  {
369  fromgenre = QString(
370  "LEFT JOIN programgenres ON "
371  "program.chanid = programgenres.chanid AND "
372  "program.starttime = programgenres.starttime ");
373  }
374 
375  if (what.isEmpty())
376  return;
377 
378  MSqlEscapeAsAQuery(what, bindings);
379  }
380 
381  auto *record = new RecordingRule();
382 
383  record->LoadBySearch(m_searchType, text, what, fromgenre);
384 
386  auto *schededit = new ScheduleEditor(mainStack, record);
387  if (schededit->Create())
388  {
389  mainStack->AddScreen(schededit);
391  Close();
392  }
393  else
394  {
395  delete schededit;
396  }
397 }
398 
400 
402  ProgLister *parent,
403  QString &currentValue)
404  : MythScreenType(parentStack, "phrasepopup"),
405  m_parent(parent),
406  m_currentValue(std::move(currentValue))
407 {
408  //sanity check currentvalue
409  QStringList field = m_currentValue.split(':');
410  if (field.count() != 6)
411  {
412  LOG(VB_GENERAL, LOG_ERR, QString("Error. PowerSearch %1 has %2 fields")
413  .arg(m_currentValue).arg(field.count()));
414  m_currentValue = ":::::";
415  }
416 }
417 
419 {
420  if (!LoadWindowFromXML("schedule-ui.xml", "editpowersearchpopup", this))
421  return false;
422 
423  bool err = false;
424  UIUtilE::Assign(this, m_titleEdit, "title_edit", &err);
425  UIUtilE::Assign(this, m_subtitleEdit, "subtitle_edit", &err);
426  UIUtilE::Assign(this, m_descEdit, "desc_edit", &err);
427  UIUtilE::Assign(this, m_categoryList, "category_list", &err);
428  UIUtilE::Assign(this, m_genreList, "genre_list", &err);
429  UIUtilE::Assign(this, m_channelList, "channel_list", &err);
430  UIUtilE::Assign(this, m_okButton, "ok_button", &err);
431 
432  if (err)
433  {
434  LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'editpowersearchpopup'");
435  return false;
436  }
437 
438  QStringList field = m_currentValue.split(':');
439 
440  m_titleEdit->SetText(field[0]);
441  m_subtitleEdit->SetText(field[1]);
442  m_descEdit->SetText(field[2]);
443 
444  initLists();
445 
447 
448  BuildFocusList();
449 
451 
452  return true;
453 }
454 
456 {
457  QString text;
458  text = m_titleEdit->GetText().replace(':','%').replace('*','%') + ':';
459  text += m_subtitleEdit->GetText().replace(':','%').replace('*','%') + ':';
460  text += m_descEdit->GetText().replace(':','%').replace('*','%') + ':';
461 
462  if (m_categoryList->GetCurrentPos() > 0)
464  text += ':';
465  if (m_genreList->GetCurrentPos() > 0)
466  text += m_genres[m_genreList->GetCurrentPos()];
467  text += ':';
468  if (m_channelList->GetCurrentPos() > 0)
470 
471  if (text == ":::::")
472  return;
473 
475  m_parent->FillViewList(text);
476  m_parent->SetViewFromList(text);
477 
478  Close();
479 }
480 
482 {
483  QStringList field = m_currentValue.split(':');
484 
485  // category type
486  m_categories.clear();
488  m_categoryList, tr("(Any Program Type)"), nullptr, false);
489  m_categories << "";
490  new MythUIButtonListItem(m_categoryList, tr("Movies"), nullptr, false);
491  m_categories << "movie";
492  new MythUIButtonListItem(m_categoryList, tr("Series"), nullptr, false);
493  m_categories << "series";
494  new MythUIButtonListItem(m_categoryList, tr("Show"), nullptr, false);
495  m_categories << "libmythtv/tvshow";
496  new MythUIButtonListItem(m_categoryList, tr("Sports"), nullptr, false);
497  m_categories << "sports";
498  m_categoryList->SetItemCurrent(m_categories.indexOf(field[3]));
499 
500  // genre
501  m_genres.clear();
502  new MythUIButtonListItem(m_genreList, tr("(Any Genre)"), nullptr, false);
503  m_genres << "";
504 
505  MSqlQuery query(MSqlQuery::InitCon());
506 
507  query.prepare("SELECT genre FROM programgenres GROUP BY genre;");
508 
509  if (query.exec())
510  {
511  while (query.next())
512  {
513  QString category = query.value(0).toString();
514  if (category.isEmpty() || category.trimmed().isEmpty())
515  continue;
516  category = query.value(0).toString();
517  new MythUIButtonListItem(m_genreList, category, nullptr, false);
518  m_genres << category;
519  if (category == field[4])
521  }
522  }
523 
524  // channel
525  QString channelOrdering = gCoreContext->GetSetting(
526  "ChannelOrdering", "channum");
527 
528  m_channels.clear();
529  new MythUIButtonListItem(m_channelList, tr("(Any Channel)"), nullptr, false);
530  m_channels << "";
531 
532  ChannelInfoList channels = ChannelUtil::GetChannels(0, true, "callsign");
533  ChannelUtil::SortChannels(channels, channelOrdering, true);
534 
535  for (auto & channel : channels)
536  {
537  QString chantext = channel.GetFormatted(ChannelInfo::kChannelShort);
538 
539  m_parent->m_viewList << QString::number(channel.m_chanId);
540  m_parent->m_viewTextList << chantext;
541 
542  auto *item = new MythUIButtonListItem(m_channelList, chantext,
543  nullptr, false);
544 
545  InfoMap chanmap;
546  channel.ToMap(chanmap);
547  item->SetTextFromMap(chanmap);
548 
549  m_channels << channel.m_callSign;
550  if (channel.m_callSign == field[5])
552  }
553 }
MythUITextEdit::Reset
void Reset(void) override
Reset the widget to it's original state, should not reset changes made by the theme.
Definition: mythuitextedit.cpp:53
MythUIButton::Clicked
void Clicked()
scheduleeditor.h
MSqlBindings
QMap< QString, QVariant > MSqlBindings
typedef for a map of string -> string bindings for generic queries.
Definition: mythdbcon.h:100
MSqlQuery::next
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
Definition: mythdbcon.cpp:812
MSqlQuery
QSqlQuery wrapper that fetches a DB connection from the connection pool.
Definition: mythdbcon.h:127
MythMainWindow::GetMainStack
MythScreenStack * GetMainStack()
Definition: mythmainwindow.cpp:317
PhrasePopup::m_parent
ProgLister * m_parent
Definition: proglist_helpers.h:46
MythUIButtonList::GetItemCurrent
MythUIButtonListItem * GetItemCurrent() const
Definition: mythuibuttonlist.cpp:1614
PhrasePopup::phraseSelected
void phraseSelected(MythUIButtonListItem *item)
Definition: proglist_helpers.cpp:98
mythuitext.h
PowerSearchPopup::m_phraseList
MythUIButtonList * m_phraseList
Definition: proglist_helpers.h:93
EditPowerSearchPopup::m_parent
ProgLister * m_parent
Definition: proglist_helpers.h:116
EditPowerSearchPopup::m_subtitleEdit
MythUITextEdit * m_subtitleEdit
Definition: proglist_helpers.h:124
MythScreenType::Close
virtual void Close()
Definition: mythscreentype.cpp:383
PowerSearchPopup::editClicked
void editClicked(void)
Definition: proglist_helpers.cpp:290
EditPowerSearchPopup::m_channelList
MythUIButtonList * m_channelList
Definition: proglist_helpers.h:128
EditPowerSearchPopup::m_genres
QStringList m_genres
Definition: proglist_helpers.h:118
MythUIButtonList::RemoveItem
void RemoveItem(MythUIButtonListItem *item)
Definition: mythuibuttonlist.cpp:1512
ProgLister::m_viewList
QStringList m_viewList
Definition: proglist.h:111
PhrasePopup::m_currentValue
QString m_currentValue
Definition: proglist_helpers.h:49
MythUIButtonList::itemSelected
void itemSelected(MythUIButtonListItem *item)
PhrasePopup::m_titleText
MythUIText * m_titleText
Definition: proglist_helpers.h:51
MSqlQuery::value
QVariant value(int i) const
Definition: mythdbcon.h:204
MythScreenStack
Definition: mythscreenstack.h:16
PhrasePopup::m_okButton
MythUIButton * m_okButton
Definition: proglist_helpers.h:54
ProgLister
Definition: proglist.h:33
RecordingRule
Internal representation of a recording rule, mirrors the record table.
Definition: recordingrule.h:28
MSqlQuery::exec
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
Definition: mythdbcon.cpp:618
PhrasePopup::phraseClicked
void phraseClicked(MythUIButtonListItem *item)
Definition: proglist_helpers.cpp:85
LOG
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Definition: mythlogging.h:39
MythScreenType
Screen in which all other widgets are contained and rendered.
Definition: mythscreentype.h:45
ProgLister::m_viewTextList
QStringList m_viewTextList
Definition: proglist.h:112
MythUITextEdit::GetText
QString GetText(void) const
Definition: mythuitextedit.h:50
EditPowerSearchPopup::m_descEdit
MythUITextEdit * m_descEdit
Definition: proglist_helpers.h:125
PowerSearchPopup::m_deleteButton
MythUIButton * m_deleteButton
Definition: proglist_helpers.h:96
mythuibuttonlist.h
PowerSearchPopup::recordClicked
void recordClicked(void)
Definition: proglist_helpers.cpp:346
PhrasePopup::Create
bool Create() override
Definition: proglist_helpers.cpp:17
EditPowerSearchPopup::Create
bool Create() override
Definition: proglist_helpers.cpp:418
MythUIButtonList::GetCount
int GetCount() const
Definition: mythuibuttonlist.cpp:1679
PhrasePopup::m_searchType
RecSearchType m_searchType
Definition: proglist_helpers.h:47
PhrasePopup::recordClicked
void recordClicked(void)
Definition: proglist_helpers.cpp:162
proglist.h
ProgLister::UpdateKeywordInDB
void UpdateKeywordInDB(const QString &text, const QString &oldValue)
Definition: proglist.cpp:369
PowerSearchPopup::m_parent
ProgLister * m_parent
Definition: proglist_helpers.h:87
PowerSearchPopup::phraseClicked
void phraseClicked(MythUIButtonListItem *item)
Definition: proglist_helpers.cpp:264
InfoMap
QHash< QString, QString > InfoMap
Definition: mythtypes.h:15
ChannelUtil::SortChannels
static void SortChannels(ChannelInfoList &list, const QString &order, bool eliminate_duplicates=false)
Definition: channelutil.cpp:2325
MythUIButtonListItem
Definition: mythuibuttonlist.h:41
EditPowerSearchPopup::m_categories
QStringList m_categories
Definition: proglist_helpers.h:117
MythUITextEdit::SetText
void SetText(const QString &text, bool moveCursor=true)
Definition: mythuitextedit.cpp:198
proglist_helpers.h
PowerSearchPopup::deleteClicked
void deleteClicked(void)
Definition: proglist_helpers.cpp:312
mythdate.h
EditPowerSearchPopup::m_genreList
MythUIButtonList * m_genreList
Definition: proglist_helpers.h:127
MythUIButtonList::itemClicked
void itemClicked(MythUIButtonListItem *item)
MythUIButtonList::GetCurrentPos
int GetCurrentPos() const
Definition: mythuibuttonlist.h:240
PowerSearchPopup::m_editButton
MythUIButton * m_editButton
Definition: proglist_helpers.h:95
MythScreenType::SetFocusWidget
bool SetFocusWidget(MythUIType *widget=nullptr)
Definition: mythscreentype.cpp:115
PhrasePopup::m_recordButton
MythUIButton * m_recordButton
Definition: proglist_helpers.h:56
MythUIButton::SetText
void SetText(const QString &msg)
Definition: mythuibutton.cpp:229
MSqlQuery::InitCon
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
Definition: mythdbcon.cpp:550
ProgLister::m_curView
int m_curView
Definition: proglist.h:110
MythDB::DBError
static void DBError(const QString &where, const MSqlQuery &query)
Definition: mythdb.cpp:225
ProgLister::FillViewList
void FillViewList(const QString &view)
Definition: proglist.cpp:735
MythScreenType::BuildFocusList
void BuildFocusList(void)
Definition: mythscreentype.cpp:203
kNoSearch
@ kNoSearch
Definition: recordingtypes.h:80
EditPowerSearchPopup::initLists
void initLists(void)
Definition: proglist_helpers.cpp:481
PhrasePopup::m_list
QStringList m_list
Definition: proglist_helpers.h:48
MythUIType::SetEnabled
void SetEnabled(bool enable)
Definition: mythuitype.cpp:1128
ProgLister::PowerStringToSQL
static bool PowerStringToSQL(const QString &qphrase, QString &output, MSqlBindings &bindings)
Definition: proglist.cpp:537
ChannelUtil::GetChannels
static ChannelInfoList GetChannels(uint sourceid, bool visible_only, const QString &group_by=QString(), uint channel_groupid=0)
Definition: channelutil.h:251
MSqlEscapeAsAQuery
void MSqlEscapeAsAQuery(QString &query, const MSqlBindings &bindings)
Given a partial query string and a bindings object, escape the string.
Definition: mythdbcon.cpp:1004
gCoreContext
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
Definition: mythcorecontext.cpp:55
PhrasePopup::editChanged
void editChanged(void)
Definition: proglist_helpers.cpp:77
PhrasePopup::m_phraseEdit
MythUITextEdit * m_phraseEdit
Definition: proglist_helpers.h:53
PowerSearchPopup::m_list
QStringList m_list
Definition: proglist_helpers.h:89
EditPowerSearchPopup::m_titleEdit
MythUITextEdit * m_titleEdit
Definition: proglist_helpers.h:123
UIUtilDisp::Assign
static bool Assign(ContainerType *container, UIType *&item, const QString &name, bool *err=nullptr)
Definition: mythuiutils.h:27
ProgLister::SetViewFromList
void SetViewFromList(const QString &item)
Definition: proglist.cpp:530
channelutil.h
PowerSearchPopup::m_searchType
RecSearchType m_searchType
Definition: proglist_helpers.h:88
PowerSearchPopup::m_recordButton
MythUIButton * m_recordButton
Definition: proglist_helpers.h:97
MythUIButtonListItem::GetText
QString GetText(const QString &name="") const
Definition: mythuibuttonlist.cpp:3368
channelinfo.h
mythcorecontext.h
mythuitextedit.h
XMLParseBase::LoadWindowFromXML
static bool LoadWindowFromXML(const QString &xmlfile, const QString &windowname, MythUIType *parent)
Definition: xmlparsebase.cpp:687
EditPowerSearchPopup::EditPowerSearchPopup
EditPowerSearchPopup(MythScreenStack *parentStack, ProgLister *parent, QString &currentValue)
Definition: proglist_helpers.cpp:401
kPowerSearch
@ kPowerSearch
Definition: recordingtypes.h:81
MSqlQuery::bindValue
void bindValue(const QString &placeholder, const QVariant &val)
Add a single binding.
Definition: mythdbcon.cpp:888
PowerSearchPopup::Create
bool Create() override
Definition: proglist_helpers.cpp:215
EditPowerSearchPopup::m_currentValue
QString m_currentValue
Definition: proglist_helpers.h:121
MythUIButtonList::GetValue
virtual QString GetValue() const
Definition: mythuibuttonlist.cpp:1633
MythUIText::SetText
virtual void SetText(const QString &text)
Definition: mythuitext.cpp:115
PowerSearchPopup::phraseSelected
void phraseSelected(MythUIButtonListItem *item)
Definition: proglist_helpers.cpp:280
PowerSearchPopup::haveResult
void haveResult(QString item)
GetMythMainWindow
MythMainWindow * GetMythMainWindow(void)
Definition: mythmainwindow.cpp:104
MythUIButtonList::MoveToNamedPosition
bool MoveToNamedPosition(const QString &position_name)
Definition: mythuibuttonlist.cpp:2318
MythUIButtonList::SetItemCurrent
void SetItemCurrent(MythUIButtonListItem *item)
Definition: mythuibuttonlist.cpp:1581
PhrasePopup::m_phraseList
MythUIButtonList * m_phraseList
Definition: proglist_helpers.h:52
EditPowerSearchPopup::m_okButton
MythUIButton * m_okButton
Definition: proglist_helpers.h:130
PhrasePopup::m_deleteButton
MythUIButton * m_deleteButton
Definition: proglist_helpers.h:55
mythuibutton.h
MythMainWindow::GetStack
MythScreenStack * GetStack(const QString &Stackname)
Definition: mythmainwindow.cpp:322
MythUITextEdit::valueChanged
void valueChanged()
PowerSearchPopup::m_phraseEdit
MythUITextEdit * m_phraseEdit
Definition: proglist_helpers.h:94
EditPowerSearchPopup::m_categoryList
MythUIButtonList * m_categoryList
Definition: proglist_helpers.h:126
PhrasePopup::deleteClicked
void deleteClicked(void)
Definition: proglist_helpers.cpp:128
PhrasePopup::haveResult
void haveResult(QString item)
recordingrule.h
EditPowerSearchPopup::m_channels
QStringList m_channels
Definition: proglist_helpers.h:119
PhrasePopup::okClicked
void okClicked(void)
Definition: proglist_helpers.cpp:113
MythScreenStack::AddScreen
virtual void AddScreen(MythScreenType *screen, bool allowFade=true)
Definition: mythscreenstack.cpp:52
ScheduleEditor
Construct a recording schedule.
Definition: scheduleeditor.h:143
PowerSearchPopup::m_titleText
MythUIText * m_titleText
Definition: proglist_helpers.h:92
ChannelInfo::kChannelShort
@ kChannelShort
Definition: channelinfo.h:49
EditPowerSearchPopup::okClicked
void okClicked(void)
Definition: proglist_helpers.cpp:455
PowerSearchPopup::m_currentValue
QString m_currentValue
Definition: proglist_helpers.h:90
MythCoreContext::GetSetting
QString GetSetting(const QString &key, const QString &defaultval="")
Definition: mythcorecontext.cpp:902
MSqlQuery::prepare
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
Definition: mythdbcon.cpp:837
ChannelInfoList
std::vector< ChannelInfo > ChannelInfoList
Definition: channelinfo.h:131