void MythThemedMenu::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); //int buttonnum = dce->GetResult(); QString halt_cmd = GetMythDB()->GetSetting("HaltCommand"); QString reboot_cmd = GetMythDB()->GetSetting("RebootCommand"); if (resultid == "popmenu") { QString action = dce->GetData().toString(); if (action == "shutdown") { if (!halt_cmd.isEmpty()) myth_system(halt_cmd); } else if (action == "reboot") { if (!reboot_cmd.isEmpty()) myth_system(reboot_cmd); } else if (action == "about") { aboutScreen(); } else if (action == "standby") { QString arg("standby_mode"); m_state->m_callback(m_state->m_callbackdata, arg); } } else if (resultid == "password") { QString text = dce->GetResultText(); MythUIButtonListItem *item = m_buttonList->GetItemCurrent(); ThemedButton button = item->GetData().value<ThemedButton>(); QString password = GetMythDB()->GetSetting(button.password); if (text == password) { QString timestamp_setting = QString("%1Time").arg(button.password); QDateTime curr_time = QDateTime::currentDateTime(); QString last_time_stamp = curr_time.toString(Qt::TextDate); GetMythDB()->SetSetting(timestamp_setting, last_time_stamp); GetMythDB()->SaveSetting(timestamp_setting, last_time_stamp); buttonAction(item, true); } } m_menuPopup = NULL; } }
void GameHandler::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); if (resultid == "removalPopup") { int buttonNum = dce->GetResult(); GameScan scan = qVariantValue<GameScan>(dce->GetData()); switch (buttonNum) { case 1: m_KeepAll = true; break; case 2: purgeGameDB(scan.Rom() , scan.RomFullPath()); break; case 3: m_RemoveAll = true; purgeGameDB(scan.Rom() , scan.RomFullPath()); break; default: break; }; } else if (resultid == "clearAllPopup") { int buttonNum = dce->GetResult(); switch (buttonNum) { case 1: clearAllMetadata(); break; default: break; } } } }
void Ripper::customEvent(QEvent* event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = static_cast<DialogCompletionEvent *>(event); if (dce->GetId() == "conflictmenu") { int buttonNum = dce->GetResult(); RipTrack *track = dce->GetData().value<RipTrack *>(); switch (buttonNum) { case 0: // Do nothing break; case 1: if (deleteExistingTrack(track)) { track->isNew = true; toggleTrackActive(track); } break; case 2: deleteAllExistingTracks(); break; default: break; } } return; } MythUIType::customEvent(event); }
void MythControls::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "action") { if (buttonnum == 0) GrabKey(); else if (buttonnum == 1) DeleteKey(); } else if (resultid == "option") { if (buttonnum == 0) Save(); else if (buttonnum == 1) ChangeView(); else if (buttonnum == 2) GetMythMainWindow()->JumpTo("Reset All Keys"); } else if (resultid == "exit") { if (buttonnum == 1) Save(); else Teardown(); Close(); } else if (resultid == "view") { QStringList contents; QString leftcaption, rightcaption; if (buttonnum == 0) { leftcaption = tr("Contexts"); rightcaption = tr("Actions"); m_currentView = kActionsByContext; contents = m_bindings->GetContexts(); } else if (buttonnum == 1) { leftcaption = tr("Contexts"); rightcaption = tr("Keys"); m_currentView = kKeysByContext; contents = m_bindings->GetContexts(); } else if (buttonnum == 2) { leftcaption = tr("Keys"); rightcaption = tr("Contexts"); m_currentView = kContextsByKey; contents = m_bindings->GetKeys(); } else return; m_leftDescription->SetText(leftcaption); m_rightDescription->SetText(rightcaption); SetListContents(m_leftList, contents, true); RefreshKeyInformation(); UpdateRightList(); if (GetFocusWidget() != m_leftList) SetFocusWidget(m_leftList); } else if (resultid == "conflict") { if (buttonnum == 1) { QString key = dce->GetData().toString(); AddKeyToAction(key, true); } } if (m_menuPopup) m_menuPopup = NULL; } }
void ViewScheduled::customEvent(QEvent *event) { if ((MythEvent::Type)(event->type()) == MythEvent::MythEventMessage) { MythEvent *me = (MythEvent *)event; QString message = me->Message(); if (message != "SCHEDULE_CHANGE") return; m_needFill = true; if (m_inEvent) return; m_inEvent = true; LoadList(); m_inEvent = false; } else if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); int buttonnum = dce->GetResult(); if (resultid == "deleterule") { RecordingRule *record = qVariantValue<RecordingRule *>(dce->GetData()); if (record) { if (buttonnum > 0) { if (!record->Delete()) VERBOSE(VB_IMPORTANT, "Failed to delete recording rule"); } delete record; } EmbedTVWindow(); } else if (resultid == "menu") { if (resulttext == tr("Show Important")) { setShowAll(false); } else if (resulttext == tr("Show All")) { setShowAll(true); } else if (resulttext == tr("Program Details")) { details(); } else if (resulttext == tr("Upcoming by title")) { upcoming(); } else if (resulttext == tr("Upcoming scheduled")) { upcomingScheduled(); } else if (resulttext == tr("Custom Edit")) { customEdit(); } else if (resulttext == tr("Delete Rule")) { deleteRule(); } else if (resulttext == tr("Show Cards")) { viewCards(); } else if (resulttext == tr("Show Inputs")) { viewInputs(); } if (m_needFill) LoadList(); } else ScheduleCommon::customEvent(event); } }
void ViewScheduled::customEvent(QEvent *event) { if (event->type() == MythEvent::MythEventMessage) { MythEvent *me = static_cast<MythEvent *>(event); QString message = me->Message(); if (message != "SCHEDULE_CHANGE") return; m_needFill = true; if (m_inEvent) return; m_inEvent = true; LoadList(); m_inEvent = false; } else if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); int buttonnum = dce->GetResult(); if (resultid == "deleterule") { RecordingRule *record = dce->GetData().value<RecordingRule *>(); if (record) { if (buttonnum > 0) { if (!record->Delete()) LOG(VB_GENERAL, LOG_ERR, "Failed to delete recording rule"); } delete record; } EmbedTVWindow(); } else if (resultid == "menu") { if (resulttext == tr("Show Important")) { setShowAll(false); } else if (resulttext == tr("Show All")) { setShowAll(true); } else if (resulttext == tr("Program Details")) { ShowDetails(); } else if (resulttext == tr("Program Guide")) { ShowGuide(); } else if (resulttext == tr("Channel Search")) { ShowChannelSearch(); } else if (resulttext == tr("Upcoming by title")) { ShowUpcoming(); } else if (resulttext == tr("Upcoming scheduled")) { ShowUpcomingScheduled(); } else if (resulttext == tr("Previously Recorded")) { ShowPrevious(); } else if (resulttext == tr("Custom Edit")) { EditCustom(); } else if (resulttext == tr("Delete Rule")) { deleteRule(); } else if (resulttext == tr("Show Inputs")) { viewInputs(); } if (m_needFill) LoadList(); } else ScheduleCommon::customEvent(event); } }
void IconView::customEvent(QEvent *event) { if (event->type() == ThumbGenEvent::kEventType) { ThumbGenEvent *tge = dynamic_cast<ThumbGenEvent *>(event); if (!tge) return; ThumbData *td = tge->thumbData; if (!td) return; ThumbItem *thumbitem = m_itemHash.value(td->fileName); if (thumbitem) { int rotateAngle = thumbitem->GetRotationAngle(); if (rotateAngle) { QMatrix matrix; matrix.rotate(rotateAngle); td->thumb = td->thumb.transformed( matrix, Qt::SmoothTransformation); } int pos = m_itemList.indexOf(thumbitem); LoadThumbnail(thumbitem); MythUIButtonListItem *item = m_imageList->GetItemAt(pos); if (QFile(thumbitem->GetImageFilename()).exists()) item->SetImage(thumbitem->GetImageFilename()); if (m_imageList->GetCurrentPos() == pos) UpdateImage(item); } delete td; } else if (event->type() == ChildCountEvent::kEventType) { ChildCountEvent *cce = dynamic_cast<ChildCountEvent *>(event); if (!cce) return; ChildCountData *ccd = cce->childCountData; if (!ccd) return; ThumbItem *thumbitem = m_itemHash.value(ccd->fileName); if (thumbitem) { int pos = m_itemList.indexOf(thumbitem); MythUIButtonListItem *item = m_imageList->GetItemAt(pos); if (item) item->SetText(QString("%1").arg(ccd->count), "childcount"); } delete ccd; } else if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int resultdata = dce->GetData().toInt(); if (resultid == "mainmenu") { switch (resultdata) { case 0: HandleSlideShow(); break; case 1: HandleRandomShow(); break; case 2: break; case 3: break; case 4: HandleSubMenuFilter(); break; case 5: break; case 6: HandleSettings(); break; case 7: HandleSeasonalShow(); break; } } else if (resultid == "metadatamenu") { switch (resultdata) { case 0: HandleRotateCW(); break; case 1: HandleRotateCCW(); break; } } else if (resultid == "markingmenu") { switch (resultdata) { case 0: HandleSelectOne(); break; case 1: HandleClearOneMarked(); break; case 2: HandleSelectAll(); break; case 3: HandleClearMarked(); break; } } else if (resultid == "filemenu") { switch (resultdata) { case 0: HandleShowDevices(); break; case 1: HandleEject(); break; case 2: HandleImport(); break; case 3: HandleCopyHere(); break; case 4: HandleMoveHere(); break; case 5: HandleDelete(); break; case 6: HandleMkDir(); break; case 7: HandleRename(); break; } } m_menuPopup = NULL; } }
void GameUI::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); if (resultid == "showMenuPopup") { if (resulttext == tr("Edit Details")) { edit(); } if (resulttext == tr("Scan For Changes")) { doScan(); } else if (resulttext == tr("Show Information")) { showInfo(); } else if (resulttext == tr("Make Favorite") || resulttext == tr("Remove Favorite")) { toggleFavorite(); } else if (resulttext == tr("Retrieve Details")) { gameSearch(); } } else if (resultid == "chooseSystemPopup") { if (!resulttext.isEmpty() && resulttext != tr("Cancel")) { MythGenericTree *node = m_gameUITree->GetCurrentNode(); RomInfo *romInfo = qVariantValue<RomInfo *>(node->GetData()); GameHandler::Launchgame(romInfo, resulttext); } } else if (resultid == "editMetadata") { MythGenericTree *node = m_gameUITree->GetCurrentNode(); RomInfo *oldRomInfo = qVariantValue<RomInfo *>(node->GetData()); delete oldRomInfo; RomInfo *romInfo = qVariantValue<RomInfo *>(dce->GetData()); node->SetData(qVariantFromValue(romInfo)); node->SetText(romInfo->Gamename()); romInfo->SaveToDatabase(); updateChangedNode(node, romInfo); } else if (resultid == "detailsPopup") { // Play button pushed itemClicked(0); } } if (event->type() == MetadataLookupEvent::kEventType) { MetadataLookupEvent *lue = (MetadataLookupEvent *)event; MetadataLookupList lul = lue->lookupList; if (m_busyPopup) { m_busyPopup->Close(); m_busyPopup = NULL; } if (lul.isEmpty()) return; if (lul.count() == 1) { OnGameSearchDone(lul.takeFirst()); } else { MetadataResultsDialog *resultsdialog = new MetadataResultsDialog(m_popupStack, lul); connect(resultsdialog, SIGNAL(haveResult(MetadataLookup*)), SLOT(OnGameSearchListSelection(MetadataLookup*)), Qt::QueuedConnection); if (resultsdialog->Create()) m_popupStack->AddScreen(resultsdialog); } } else if (event->type() == MetadataLookupFailure::kEventType) { MetadataLookupFailure *luf = (MetadataLookupFailure *)event; MetadataLookupList lul = luf->lookupList; if (m_busyPopup) { m_busyPopup->Close(); m_busyPopup = NULL; } if (lul.size()) { MetadataLookup *lookup = lul.takeFirst(); MythGenericTree *node = qVariantValue<MythGenericTree *>(lookup->GetData()); if (node) { RomInfo *metadata = qVariantValue<RomInfo *>(node->GetData()); if (metadata) { } } LOG(VB_GENERAL, LOG_ERR, QString("No results found for %1").arg(lookup->GetTitle())); } } else if (event->type() == ImageDLEvent::kEventType) { ImageDLEvent *ide = (ImageDLEvent *)event; MetadataLookup *lookup = ide->item; if (!lookup) return; handleDownloadedImages(lookup); } }
void ProgLister::customEvent(QEvent *event) { bool needUpdate = false; if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); int buttonnum = dce->GetResult(); if (resultid == "sortmenu") { switch (buttonnum) { case 0: m_reverseSort = !m_reverseSort; needUpdate = true; break; case 1: m_titleSort = true; m_reverseSort = false; needUpdate = true; break; case 2: m_titleSort = false; m_reverseSort = (m_type == plPreviouslyRecorded); needUpdate = true; break; } } else if (resultid == "deletemenu") { switch (buttonnum) { case 0: { ProgramInfo *pi = GetCurrent(); if (pi) { RecordingInfo ri(*pi); if (ri.IsDuplicate()) ri.ForgetHistory(); else ri.SetDupHistory(); *pi = ri; } break; } case 1: ShowDeleteOldEpisodeMenu(); break; case 2: ShowDeleteOldSeriesMenu(); break; } } else if (resultid == "deleterule") { RecordingRule *record = qVariantValue<RecordingRule *>(dce->GetData()); if (record && buttonnum > 0 && !record->Delete()) { LOG(VB_GENERAL, LOG_ERR, LOC + "Failed to delete recording rule"); } if (record) delete record; } else { ScheduleCommon::customEvent(event); } } else if (event->type() == ScreenLoadCompletionEvent::kEventType) { ScreenLoadCompletionEvent *slce = (ScreenLoadCompletionEvent*)(event); QString id = slce->GetId(); if (id == objectName()) { CloseBusyPopup(); // opened by LoadInBackground() UpdateDisplay(); if (m_curView < 0 && m_type != plPreviouslyRecorded) ShowChooseViewMenu(); } } else if ((MythEvent::Type)(event->type()) == MythEvent::MythEventMessage) { MythEvent *me = (MythEvent *)event; QString message = me->Message(); if (message == "CHOOSE_VIEW") ShowChooseViewMenu(); else if (message == "SCHEDULE_CHANGE") needUpdate = true; } if (needUpdate) FillItemList(true); }
void ScheduleCommon::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); if (resultid == "editrecording") { if (!dce->GetData().canConvert<RecordingInfo>()) return; RecordingInfo recInfo = dce->GetData().value<RecordingInfo>(); if (resulttext == tr("Record this showing")) { if (recInfo.GetRecordingRuleType() == kNotRecording) recInfo.ApplyRecordStateChange(kSingleRecord); else { recInfo.ApplyRecordStateChange(kOverrideRecord); if (recInfo.GetRecordingStartTime() < MythDate::current()) recInfo.ReactivateRecording(); } } else if (resulttext == tr("Record all showings")) recInfo.ApplyRecordStateChange(kAllRecord); else if (resulttext == tr("Record one showing (this episode)") || resulttext == tr("Record one showing")) { recInfo.ApplyRecordStateChange(kOneRecord, false); recInfo.GetRecordingRule()->m_filter |= 64; // This episode recInfo.GetRecordingRule()->Save(); } else if (resulttext == tr("Record all showings (this channel)")) { recInfo.ApplyRecordStateChange(kAllRecord, false); recInfo.GetRecordingRule()->m_filter |= 1024; // This channel recInfo.GetRecordingRule()->Save(); } else if (resulttext == tr("Stop this recording")) { RemoteStopRecording(&recInfo); } else if (resulttext == tr("Modify recording options") || resulttext == tr("Add override rule")) { if (recInfo.GetRecordingRuleType() == kSingleRecord || recInfo.GetRecordingRuleType() == kOverrideRecord || recInfo.GetRecordingRuleType() == kOneRecord) EditScheduled(&recInfo); else MakeOverride(&recInfo); } else if (resulttext == tr("Restart this recording")) recInfo.ReactivateRecording(); else if (resulttext == tr("Forget previous recording")) recInfo.ForgetHistory(); else if (resulttext == tr("Don't record this showing")) recInfo.ApplyRecordStateChange(kDontRecord); else if (resulttext == tr("Never record this episode")) { recInfo.ApplyNeverRecord(); } else if (resulttext == tr("Edit recording rule") || resulttext == tr("Edit override rule")) EditScheduled(&recInfo); else if (resulttext == tr("Delete recording rule") || resulttext == tr("Delete override rule")) recInfo.ApplyRecordStateChange(kNotRecording); } } }
void ProgramRecPriority::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); int buttonnum = dce->GetResult(); if (resultid == "menu") { if (resulttext == tr("Increase Priority")) { changeRecPriority(1); } else if (resulttext == tr("Decrease Priority")) { changeRecPriority(-1); } else if (resulttext == tr("Sort")) { showSortMenu(); } else if (resulttext == tr("Program Details")) { ShowDetails(); } else if (resulttext == tr("Upcoming")) { saveRecPriority(); ShowUpcoming(); } else if (resulttext == tr("Custom Edit")) { saveRecPriority(); EditCustom(); } else if (resulttext == tr("Delete Rule")) { saveRecPriority(); remove(); } else if (resulttext == tr("New Template")) { MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack"); MythTextInputDialog *textInput = new MythTextInputDialog(popupStack, tr("Template Name")); if (textInput->Create()) { textInput->SetReturnEvent(this, "templatecat"); popupStack->AddScreen(textInput); } } } else if (resultid == "sortmenu") { if (resulttext == tr("Reverse Sort Order")) { m_reverseSort = !m_reverseSort; SortList(); } else if (resulttext == tr("Sort By Title")) { if (m_sortType != byTitle) { m_sortType = byTitle; m_reverseSort = false; } else m_reverseSort = !m_reverseSort; SortList(); } else if (resulttext == tr("Sort By Priority")) { if (m_sortType != byRecPriority) { m_sortType = byRecPriority; m_reverseSort = false; } else m_reverseSort = !m_reverseSort; SortList(); } else if (resulttext == tr("Sort By Type")) { if (m_sortType != byRecType) { m_sortType = byRecType; m_reverseSort = false; } else m_reverseSort = !m_reverseSort; SortList(); } else if (resulttext == tr("Sort By Count")) { if (m_sortType != byCount) { m_sortType = byCount; m_reverseSort = false; } else { m_reverseSort = !m_reverseSort; } SortList(); } else if (resulttext == tr("Sort By Record Count")) { if (m_sortType != byRecCount) { m_sortType = byRecCount; m_reverseSort = false; } else m_reverseSort = !m_reverseSort; SortList(); } else if (resulttext == tr("Sort By Last Recorded")) { if (m_sortType != byLastRecord) { m_sortType = byLastRecord; m_reverseSort = false; } else m_reverseSort = !m_reverseSort; SortList(); } else if (resulttext == tr("Sort By Average Delay")) { if (m_sortType != byAvgDelay) { m_sortType = byAvgDelay; m_reverseSort = false; } else m_reverseSort = !m_reverseSort; SortList(); } } else if (resultid == "deleterule") { RecordingRule *record = dce->GetData().value<RecordingRule *>(); if (record) { if (buttonnum > 0) { MythUIButtonListItem *item = m_programList->GetItemCurrent(); if (record->Delete() && item) RemoveItemFromList(item); else LOG(VB_GENERAL, LOG_ERR, "Failed to delete recording rule"); } delete record; } } else if (resultid == "templatecat") { newTemplate(resulttext); } else ScheduleCommon::customEvent(event); } }
void ScreenSetup::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "options") { if (buttonnum > -1) { MythUIButtonListItem *item = dce->GetData().value<MythUIButtonListItem *>(); ScreenListInfo *si = item->GetData().value<ScreenListInfo *>(); if (buttonnum == 0) { m_activeList->MoveItemUpDown(item, true); } else if (buttonnum == 1) { m_activeList->MoveItemUpDown(item, false); } else if (buttonnum == 2) { deleteScreen(); } else if (buttonnum == 3) { si->updating = true; doLocationDialog(si); } else if (si->hasUnits && buttonnum == 4) { si->updating = true; showUnitsPopup(item->GetText(), si); updateHelpText(); } } } else if (resultid == "units") { if (buttonnum > -1) { ScreenListInfo *si = dce->GetData().value<ScreenListInfo *>(); if (buttonnum == 0) { si->units = ENG_UNITS; } else if (buttonnum == 1) { si->units = SI_UNITS; } updateHelpText(); if (si->updating) si->updating = false; else doLocationDialog(si); } } else if (resultid == "location") { ScreenListInfo *si = dce->GetData().value<ScreenListInfo *>(); TypeListMap::iterator it = si->types.begin(); for (; it != si->types.end(); ++it) { if ((*it).location.isEmpty()) return; } if (si->updating) { si->updating = false; MythUIButtonListItem *item = m_activeList->GetItemCurrent(); if (item) item->SetData(qVariantFromValue(si)); } else { QString txt = si->title; txt.detach(); MythUIButtonListItem *item = new MythUIButtonListItem(m_activeList, txt); item->SetData(qVariantFromValue(si)); } if (m_activeList->GetCount()) m_activeList->SetEnabled(true); } } }
void ScheduleCommon::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); if (resultid == "schedulenotscheduled") { if (!qVariantCanConvert<RecordingInfo>(dce->GetData())) return; RecordingInfo recInfo = qVariantValue<RecordingInfo> (dce->GetData()); if (resulttext == tr("Record only this showing")) recInfo.ApplyRecordStateChange(kSingleRecord); else if (resulttext == tr("Record all showings")) recInfo.ApplyRecordStateChange(kAllRecord); else if (resulttext == tr("Record one showing of this episode")) { recInfo.ApplyRecordStateChange(kOneRecord, false); recInfo.GetRecordingRule()->m_filter |= 64; // This episode recInfo.GetRecordingRule()->Save(); } else if (resulttext == tr("Record all showings on this channel")) { recInfo.ApplyRecordStateChange(kAllRecord, false); recInfo.GetRecordingRule()->m_filter |= 1024; // This channel recInfo.GetRecordingRule()->Save(); } else if (resulttext == tr("Record with more options")) { EditScheduled(&recInfo); } } else if (resultid == "schedulenotrecording") { if (!qVariantCanConvert<RecordingInfo>(dce->GetData())) return; RecordingInfo recInfo = qVariantValue<RecordingInfo> (dce->GetData()); if (resulttext == tr("Restart recording this showing")) recInfo.ReactivateRecording(); else if (resulttext == tr("Record this showing anyway")) { recInfo.ApplyRecordStateChange(kOverrideRecord); if (recInfo.GetRecordingStartTime() < MythDate::current()) recInfo.ReactivateRecording(); } else if (resulttext == tr("Forget previous recording")) recInfo.ForgetHistory(); else if (resulttext == tr("Don't record this showing")) recInfo.ApplyRecordStateChange(kDontRecord); else if (resulttext == tr("Never record this episode")) { recInfo.SetRecordingStatus(rsNeverRecord); recInfo.SetScheduledStartTime(MythDate::current()); recInfo.SetScheduledEndTime(recInfo.GetRecordingStartTime()); recInfo.AddHistory(true, true); } else if (resulttext == tr("Delete override rule") || resulttext == tr("Delete recording rule")) recInfo.ApplyRecordStateChange(kNotRecording); else if (resulttext == tr("Edit override options") || resulttext == tr("Edit recording options")) { EditScheduled(&recInfo); } else if (resulttext == tr("Override this showing with options")) { MakeOverride(&recInfo); } } else if (resultid == "schedulerecording") { if (!qVariantCanConvert<RecordingInfo>(dce->GetData())) return; RecordingInfo recInfo = qVariantValue<RecordingInfo> (dce->GetData()); if (resulttext == tr("Restart recording this showing")) recInfo.ReactivateRecording(); else if (resulttext == tr("Stop recording this showing")) { ProgramInfo pginfo( recInfo.GetChanID(), recInfo.GetRecordingStartTime()); if (pginfo.GetChanID()) RemoteStopRecording(&pginfo); } else if (resulttext == tr("Don't record this showing")) recInfo.ApplyRecordStateChange(kDontRecord); else if (resulttext == tr("Never record this episode")) { recInfo.SetRecordingStatus(rsNeverRecord); recInfo.SetScheduledStartTime(MythDate::current()); recInfo.SetScheduledEndTime(recInfo.GetRecordingStartTime()); recInfo.AddHistory(true, true); } else if (resulttext == tr("Delete override rule") || resulttext == tr("Delete recording rule")) recInfo.ApplyRecordStateChange(kNotRecording); else if (resulttext == tr("Edit options for this showing")) { if (recInfo.GetRecordingRuleType() == kSingleRecord || recInfo.GetRecordingRuleType() == kOverrideRecord || recInfo.GetRecordingRuleType() == kOneRecord) EditScheduled(&recInfo); else MakeOverride(&recInfo, true); } else if (resulttext == tr("Edit override options") || resulttext == tr("Edit recording options")) { EditScheduled(&recInfo); } else if (resulttext == tr("Override this showing with options")) { MakeOverride(&recInfo); } } } }
void StatusBox::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "LogAck") { if (buttonnum == 1) { QString sql = dce->GetData().toString(); MSqlQuery query(MSqlQuery::InitCon()); query.prepare("UPDATE mythlog SET acknowledged = 1 " "WHERE logid = :LOGID ;"); query.bindValue(":LOGID", sql); if (!query.exec()) MythDB::DBError("StatusBox::customEvent -- LogAck", query); m_logList->RemoveItem(m_logList->GetItemCurrent()); } } else if (resultid == "LogAckAll") { if (buttonnum == 1) { MSqlQuery query(MSqlQuery::InitCon()); query.prepare("UPDATE mythlog SET acknowledged = 1 " "WHERE priority <= :PRIORITY ;"); query.bindValue(":PRIORITY", m_minLevel); if (!query.exec()) MythDB::DBError("StatusBox::customEvent -- LogAckAll", query); doLogEntries(); } } else if (resultid == "JobDelete") { if (buttonnum == 1) { int jobID = dce->GetData().toInt(); JobQueue::DeleteJob(jobID); m_logList->RemoveItem(m_logList->GetItemCurrent()); } } else if (resultid == "JobRequeue") { if (buttonnum == 1) { int jobID = dce->GetData().toInt(); JobQueue::ChangeJobStatus(jobID, JOB_QUEUED); doJobQueueStatus(); } } else if (resultid == "JobModify") { int jobID = dce->GetData().toInt(); if (buttonnum == 0) { if (JobQueue::GetJobStatus(jobID) == JOB_PAUSED) JobQueue::ResumeJob(jobID); else JobQueue::PauseJob(jobID); } else if (buttonnum == 1) { JobQueue::StopJob(jobID); } doJobQueueStatus(); } else if (resultid == "AutoExpireManage") { ProgramInfo* rec = qVariantValue<ProgramInfo*>(dce->GetData()); // button 2 is "No Change" if (!rec || buttonnum == 2) return; // button 1 is "Delete Now" if ((buttonnum == 0) && rec->QueryIsDeleteCandidate()) { if (!RemoteDeleteRecording( rec->GetChanID(), rec->GetRecordingStartTime(), false, false)) { LOG(VB_GENERAL, LOG_ERR, QString("Failed to delete recording: %1").arg(rec->GetTitle())); return; } } // button 1 is "Move To Default Group" or "UnDelete" or "Disable AutoExpire" else if (buttonnum == 1) { if ((rec)->GetRecordingGroup() == "Deleted") { RemoteUndeleteRecording( rec->GetChanID(), rec->GetRecordingStartTime()); } else { rec->SaveAutoExpire(kDisableAutoExpire); if ((rec)->GetRecordingGroup() == "LiveTV") { RecordingInfo ri(*rec); ri.ApplyRecordRecGroupChange("Default"); *rec = ri; } } } // remove the changed recording from the expire list delete m_expList[m_logList->GetCurrentPos()]; m_expList.erase(m_expList.begin() + m_logList->GetCurrentPos()); int pos = m_logList->GetCurrentPos(); int topPos = m_logList->GetTopItemPos(); doAutoExpireList(false); m_logList->SetItemCurrent(pos, topPos); } } }
void ChannelEditor::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid= dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "channelopts") { switch (buttonnum) { case 0 : edit(m_channelList->GetItemCurrent()); break; case 1 : del(); break; } } else if (resultid == "delsingle" && buttonnum == 1) { MythUIButtonListItem *item = qVariantValue<MythUIButtonListItem *>(dce->GetData()); if (!item) return; uint chanid = item->GetData().toUInt(); if (chanid && ChannelUtil::DeleteChannel(chanid)) m_channelList->RemoveItem(item); } else if (resultid == "delall" && buttonnum == 1) { bool del_all = m_sourceFilter == FILTER_ALL; bool del_nul = m_sourceFilter == FILTER_UNASSIGNED; MSqlQuery query(MSqlQuery::InitCon()); if (del_all) { query.prepare("TRUNCATE TABLE channel"); } else if (del_nul) { query.prepare("SELECT sourceid " "FROM videosource " "GROUP BY sourceid"); if (!query.exec() || !query.isActive()) { MythDB::DBError("ChannelEditor Delete Channels", query); return; } QString tmp = ""; while (query.next()) tmp += "'" + query.value(0).toString() + "',"; if (tmp.isEmpty()) { query.prepare("TRUNCATE TABLE channel"); } else { tmp = tmp.left(tmp.length() - 1); query.prepare(QString("DELETE FROM channel " "WHERE sourceid NOT IN (%1)").arg(tmp)); } } else { query.prepare("DELETE FROM channel " "WHERE sourceid = :SOURCEID"); query.bindValue(":SOURCEID", m_sourceFilter); } if (!query.exec()) MythDB::DBError("ChannelEditor Delete Channels", query); fillList(); } else if (resultid == "iconimportopt") { MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack(); ImportIconsWizard *iconwizard; QString channelname = dce->GetData().toString(); switch (buttonnum) { case 0 : // Import all icons iconwizard = new ImportIconsWizard(mainStack, false); break; case 1 : // Rescan for missing iconwizard = new ImportIconsWizard(mainStack, true); break; case 2 : // Import a single channel icon iconwizard = new ImportIconsWizard(mainStack, true, channelname); break; default: return; } if (iconwizard->Create()) { connect(iconwizard, SIGNAL(Exiting()), SLOT(fillList())); mainStack->AddScreen(iconwizard); } else delete iconwizard; } } }
void EditAlbumartDialog::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); // make sure the user didn't ESCAPE out of the menu if (dce->GetResult() < 0) return; QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); if (resultid == "changetypemenu") { int type = dce->GetData().toInt(); if ((type >= IT_UNKNOWN) && (type < IT_LAST)) { // get selected image in list MythUIButtonListItem *item = m_coverartList->GetItemCurrent(); if (item) { item->SetText(m_albumArt->getTypeName((ImageType) type)); AlbumArtImage *image = qVariantValue<AlbumArtImage*> (item->GetData()); if (image) { AlbumArtImage oldImage = *image; image->imageType = (ImageType) type; if (image->imageType == oldImage.imageType) return; // rename any cached image to match the new type if (image->embedded) { // update the new cached image filename image->filename = QString(GetConfDir() + "/MythMusic/AlbumArt/%1-%2.jpg") .arg(m_metadata->ID()) .arg(AlbumArtImages::getTypeFilename(image->imageType)); if (image->filename != oldImage.filename && QFile::exists(oldImage.filename)) { // remove any old cached file with the same name as the new one QFile::remove(image->filename); // rename the old cached file to the new one QFile::rename(oldImage.filename, image->filename); // force the theme image cache to refresh the image GetMythUI()->RemoveFromCacheByFile(image->filename); } // change the image type in the tag if it supports it MetaIO *tagger = m_metadata->getTagger(); if (tagger && tagger->supportsEmbeddedImages()) { if (!tagger->changeImageType(m_metadata->Filename(), &oldImage, image->imageType)) LOG(VB_GENERAL, LOG_INFO, "EditAlbumartDialog: failed to change image type"); } } else { QFileInfo fi(oldImage.filename); // get the new images filename image->filename = QString(fi.absolutePath() + "/%1.jpg") .arg(AlbumArtImages::getTypeFilename(image->imageType)); if (image->filename != oldImage.filename && QFile::exists(oldImage.filename)) { // remove any old cached file with the same name as the new one QFile::remove(image->filename); // rename the old cached file to the new one QFile::rename(oldImage.filename, image->filename); // force the theme image cache to refresh the image GetMythUI()->RemoveFromCacheByFile(image->filename); } } m_albumArtChanged = true; gridItemChanged(item); } } } } else if (resultid == "asktypemenu") { int type = dce->GetData().toInt(); if ((type >= IT_UNKNOWN) && (type < IT_LAST)) copyImageToTag((ImageType) type); } else if (resultid == "optionsmenu") { if (resulttext == tr("Edit Metadata")) switchToMetadata(); else if (resulttext == tr("Rescan For Images")) rescanForImages(); else if (resulttext == tr("Search Internet For Images")) searchForAlbumImages(); else if (resulttext == tr("Change Image Type")) showTypeMenu(); else if (resulttext == tr("Copy Selected Image To Tag")) copySelectedImageToTag(); else if (resulttext == tr("Remove Selected Image From Tag")) removeSelectedImageFromTag(); else if (resulttext == tr("Copy Image To Tag")) startCopyImageToTag(); } else if (resultid == "imagelocation") { m_imageFilename = resulttext; // save directory location for next time QFileInfo fi(m_imageFilename); gCoreContext->SaveSetting("MusicLastImageLocation", fi.canonicalPath()); showTypeMenu(false); } } else if (event->type() == MythEvent::MythEventMessage) { MythEvent *me = (MythEvent *)event; QStringList tokens = me->Message().split(" ", QString::SkipEmptyParts); if (!tokens.isEmpty()) { if (tokens[0] == "BROWSER_DOWNLOAD_FINISHED") rescanForImages(); } } }
void ScheduleCommon::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); if (resultid == "schedulenotrecording") { if (!qVariantCanConvert<RecordingInfo>(dce->GetData())) return; RecordingInfo recInfo = qVariantValue<RecordingInfo> (dce->GetData()); if (resulttext == tr("Reactivate")) recInfo.ReactivateRecording(); else if (resulttext == tr("Record anyway")) { recInfo.ApplyRecordStateChange(kOverrideRecord); if (recInfo.GetRecordingStartTime() < QDateTime::currentDateTime()) recInfo.ReactivateRecording(); } else if (resulttext == tr("Forget Previous")) recInfo.ForgetHistory(); else if (resulttext == tr("Don't record")) recInfo.ApplyRecordStateChange(kDontRecord); else if (resulttext == tr("Never record")) { recInfo.SetRecordingStatus(rsNeverRecord); recInfo.SetScheduledStartTime(QDateTime::currentDateTime()); recInfo.SetScheduledEndTime(recInfo.GetRecordingStartTime()); recInfo.AddHistory(true, true); } else if (resulttext == tr("Clear Override")) recInfo.ApplyRecordStateChange(kNotRecording); else if (resulttext == tr("Edit Override") || resulttext == tr("Edit Options")) { EditScheduled(&recInfo); } else if (resulttext == tr("Add Override")) { MakeOverride(&recInfo); } } else if (resultid == "schedulerecording") { if (!qVariantCanConvert<RecordingInfo>(dce->GetData())) return; RecordingInfo recInfo = qVariantValue<RecordingInfo> (dce->GetData()); if (resulttext == tr("Reactivate")) recInfo.ReactivateRecording(); else if (resulttext == tr("Stop recording")) { ProgramInfo pginfo( recInfo.GetChanID(), recInfo.GetRecordingStartTime()); if (pginfo.GetChanID()) RemoteStopRecording(&pginfo); } else if (resulttext == tr("Don't record")) recInfo.ApplyRecordStateChange(kDontRecord); else if (resulttext == tr("Never record")) { recInfo.SetRecordingStatus(rsNeverRecord); recInfo.SetScheduledStartTime(QDateTime::currentDateTime()); recInfo.SetScheduledEndTime(recInfo.GetRecordingStartTime()); recInfo.AddHistory(true, true); } else if (resulttext == tr("Clear Override")) recInfo.ApplyRecordStateChange(kNotRecording); else if (resulttext == tr("Modify Recording Options")) { if (recInfo.GetRecordingRuleType() == kSingleRecord || recInfo.GetRecordingRuleType() == kOverrideRecord || recInfo.GetRecordingRuleType() == kFindOneRecord) EditScheduled(&recInfo); else MakeOverride(&recInfo, true); } else if (resulttext == tr("Edit Override") || resulttext == tr("Edit Options")) { EditScheduled(&recInfo); } else if (resulttext == tr("Add Override")) { MakeOverride(&recInfo); } } } }