void MythAppearance::customEvent(QCustomEvent *event) { if (event->type() == kMythDialogBoxCompletionEventType) { DialogCompletionEvent *dce = dynamic_cast<DialogCompletionEvent*>(event); QString resultid= dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "save") { if (buttonnum == 0) slotSaveSettings(); else if (buttonnum == 1) slotResetSettings(); else if (buttonnum == 2) slotChangeCoarseFine(); } else if (resultid == "nosave") { if (buttonnum == 0) slotResetSettings(); if (buttonnum == 1) slotChangeCoarseFine(); } m_menuPopup = NULL; } }
void ProgDetails::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); if (resultid == "menu") { if (resulttext == tr("Zoom Out")) m_browser->ZoomOut(); else if (resulttext == tr("Zoom In")) m_browser->ZoomIn(); else if (resulttext == tr("Switch Page")) { m_currentPage++; if (m_currentPage >= LASTPAGE) m_currentPage = 0; updatePage(); } } } }
// does not need locking void MythNews::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "options") { if (m_NewsSites.size() > 0) { if (buttonnum == 0) ShowFeedManager(); else if (buttonnum == 1) ShowEditDialog(false); else if (buttonnum == 2) ShowEditDialog(true); else if (buttonnum == 3) deleteNewsSite(); } else if (buttonnum == 0) ShowEditDialog(false); } m_menuPopup = NULL; } }
void ExitPrompter::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid= dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "mythfillprompt") { quit(); } else if (resultid == "problemprompt") { switch (buttonnum) { case 0 : break; case 1 : masterPromptExit(); break; } } } }
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 ImportMusicDialog::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); if (dce->GetId() == "locationchange") { m_locationEdit->SetText(dce->GetResultText()); startScan(); } } }
void RSSEditPopup::customEvent(QEvent *levent) { if (levent->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(levent); if (dce->GetId() == CEID_NEWIMAGE) { m_thumbImage->SetFilename(dce->GetResultText()); m_thumbImage->Load(); m_thumbImage->Show(); } } }
void EditRomInfoDialog::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); const QString resultid = dce->GetId(); if (resultid == CEID_FANARTFILE) SetFanart(dce->GetResultText()); else if (resultid == CEID_SCREENSHOTFILE) SetScreenshot(dce->GetResultText()); else if (resultid == CEID_BOXARTFILE) SetBoxart(dce->GetResultText()); } }
void BackendSelection::customEvent(QEvent *event) { if (((MythEvent::Type)(event->type())) == MythEvent::MythEventMessage) { MythEvent *me = (MythEvent *)event; QString message = me->Message(); QString URI = me->ExtraData(0); QString URN = me->ExtraData(1); QString URL = me->ExtraData(2); VERBOSE(VB_UPNP, QString("BackendSelection::customEvent(%1, %2, %3, %4)") .arg(message).arg(URI).arg(URN).arg(URL)); if (message.startsWith("SSDP_ADD") && URI.startsWith("urn:schemas-mythtv-org:device:MasterMediaServer:")) { DeviceLocation *devLoc = SSDP::Instance()->Find(URI, URN); if (devLoc) { devLoc->AddRef(); AddItem(devLoc); // this does a Release() } } else if (message.startsWith("SSDP_REMOVE")) { //-=>Note: This code will never get executed until // SSDPCache is changed to handle NotifyRemove correctly RemoveItem(URN); } } else if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = dynamic_cast<DialogCompletionEvent*>(event); if (!dce) return; QString resultid = dce->GetId(); if (resultid == "password") { m_pinCode = dce->GetResultText(); Accept(); } } }
/** * \brief Handle custom events * \param event The custom event */ void GallerySlideView::customEvent(QEvent *event) { if ((MythEvent::Type)(event->type()) == MythEvent::MythEventMessage) { MythEvent *me = (MythEvent *)event; QString message = me->Message(); QStringList extra = me->ExtraDataList(); if (message == "IMAGE_METADATA" && !extra.isEmpty()) { int id = extra[0].toInt(); ImagePtrK selected = m_view->GetSelected(); if (selected && selected->m_id == id) m_infoList.Display(*selected, extra.mid(1)); } else if (message == "THUMB_AVAILABLE") { if (!extra.isEmpty() && m_view->Update(extra[0].toInt())) ShowSlide(0); } } else if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent *)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "metadatamenu") { switch (buttonnum) { case 0: Transform(kRotateCW); break; case 1: Transform(kRotateCCW); break; case 2: Transform(kFlipHorizontal); break; case 3: Transform(kFlipVertical); break; case 4: Transform(kResetToExif); break; case 5: Zoom(10); break; case 6: Zoom(-10); break; } } } }
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; } } } }
/** \fn GalleryWidget::customEvent(QEvent *event) * \brief Translates the keypresses to * specific actions within the plugin * \param event The custom event */ void GalleryWidget::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "metadatamenu") { switch (buttonnum) { case 0 : m_gvh->SetFileOrientation(kFileRotateCW); LoadFile(); break; case 1 : m_gvh->SetFileOrientation(kFileRotateCCW); LoadFile(); break; case 2 : m_gvh->SetFileOrientation(kFileFlipHorizontal); LoadFile(); break; case 3 : m_gvh->SetFileOrientation(kFileFlipVertical); LoadFile(); break; case 4 : m_gvh->SetFileZoom(kFileZoomIn); LoadFile(); break; case 5 : m_gvh->SetFileZoom(kFileZoomOut); LoadFile(); break; } } m_menuPopup = NULL; } }
void ChannelRecPriority::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "options") { switch (buttonnum) { case 0: upcoming(); break; } } } }
void ScreenWizard::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "save") { if (buttonnum == 0) slotSaveSettings(); else if (buttonnum == 1) slotResetSettings(); else if (buttonnum == 2) slotChangeCoarseFine(); } else if (resultid == "nosave") { if (buttonnum == 0) slotResetSettings(); if (buttonnum == 1) slotChangeCoarseFine(); } else if (resultid == "quit") { if (buttonnum == 0) slotSaveSettings(); if (buttonnum == 1) qApp->quit(); if (buttonnum == 2) slotResetSettings(); } m_menuPopup = nullptr; } }
void CustomEdit::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); QString resulttext = dce->GetResultText(); if (resultid == "storeruledialog") { if (resulttext.startsWith(tr("Delete"))) { deleteRule(); } else if (!resulttext.isEmpty()) { storeRule(resulttext.contains(tr("as a search")), !resulttext.startsWith(tr("Replace"))); } } } }
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 ImportIconsWizard::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "submitresults") { switch (buttonnum) { case 0 : Close(); break; case 1 : submit(); Close(); break; } } } }
void RipStatus::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = static_cast<DialogCompletionEvent *>(event); if (dce->GetId() == "stop_ripping" && dce->GetResult()) { m_ripperThread->cancel(); m_ripperThread->wait(); Close(); } return; } RipStatusEvent *rse = dynamic_cast<RipStatusEvent *> (event); if (!rse) return; if (event->type() == RipStatusEvent::kTrackTextEvent) { if (m_trackText) m_trackText->SetText(rse->text); } else if (event->type() == RipStatusEvent::kOverallTextEvent) { if (m_overallText) m_overallText->SetText(rse->text); } else if (event->type() == RipStatusEvent::kStatusTextEvent) { if (m_statusText) m_statusText->SetText(rse->text); } else if (event->type() == RipStatusEvent::kTrackProgressEvent) { if (m_trackProgress) m_trackProgress->SetUsed(rse->value); } else if (event->type() == RipStatusEvent::kTrackPercentEvent) { if (m_trackPctText) m_trackPctText->SetText(QString("%1%").arg(rse->value)); } else if (event->type() == RipStatusEvent::kTrackStartEvent) { if (m_trackProgress) m_trackProgress->SetTotal(rse->value); } else if (event->type() == RipStatusEvent::kCopyStartEvent) { if (m_trackPctText) m_trackPctText->SetText(tr("Copying Track ...")); } else if (event->type() == RipStatusEvent::kCopyEndEvent) { if (m_trackPctText) m_trackPctText->SetText(""); } else if (event->type() == RipStatusEvent::kOverallProgressEvent) { if (m_overallProgress) m_overallProgress->SetUsed(rse->value); } else if (event->type() == RipStatusEvent::kOverallStartEvent) { if (m_overallProgress) m_overallProgress->SetTotal(rse->value); } else if (event->type() == RipStatusEvent::kOverallPercentEvent) { if (m_overallPctText) m_overallPctText->SetText(QString("%1%").arg(rse->value)); } else if (event->type() == RipStatusEvent::kFinishedEvent) { emit Result(true); Close(); } else if (event->type() == RipStatusEvent::kEncoderErrorEvent) { ShowOkPopup(tr("The encoder failed to create the file.\n" "Do you have write permissions" " for the music directory?")); Close(); } else { LOG(VB_GENERAL, LOG_ERR, "Received an unknown event type!"); } }
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 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 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 EditMetadataDialog::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 == "optionsmenu") { if (resulttext == tr("Edit Albumart Images")) switchToAlbumArt(); else if (resulttext == tr("Search Internet For Genre Image")) { updateMetadata(); searchForGenreImages(); } else if (resulttext == tr("Search Internet For Artist Image")) { updateMetadata(); searchForArtistImages(); } else if (resulttext == tr("Search Internet For Album Image")) { updateMetadata(); searchForAlbumImages(); } else if (resulttext == tr("Check Track Length")) { int length = calcTrackLength(m_metadata->Filename()); if (length != m_metadata->Length() / 1000) { int oldLength = m_metadata->Length() / 1000; // save the new length to our working copy of the metadata m_metadata->setLength(length * 1000); // save the new length to the source copy of the metadata m_sourceMetadata->setLength(length * 1000); m_sourceMetadata->dumpToDatabase(); // this will update any track lengths displayed on screen gPlayer->sendMetadataChangedEvent(m_sourceMetadata->ID()); // this will force the playlist stats to update MusicPlayerEvent me(MusicPlayerEvent::TrackChangeEvent, gPlayer->getCurrentTrackPos()); gPlayer->dispatch(me); ShowOkPopup(QString("Updated track length to %1 seconds\nwas %2 seconds").arg(length).arg(oldLength)); } } } } 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") { scanForImages(); // force the icons to update updateAlbumImage(); updateArtistImage(); updateGenreImage(); m_metadata->getAlbumArtImages()->dumpToDatabase(); // force a reload of the images for any tracks affected MetadataPtrList *allMusic = gMusicData->all_music->getAllMetadata(); for (int x = 0; x < allMusic->count(); x++) { if ((allMusic->at(x)->ID() == m_sourceMetadata->ID()) || (allMusic->at(x)->getDirectoryId() == m_sourceMetadata->getDirectoryId())) { allMusic->at(x)->reloadAlbumArtImages(); gPlayer->sendAlbumArtChangedEvent(allMusic->at(x)->ID()); } } } } } }
void SearchView::customEvent(QEvent *event) { bool handled = false; if (event->type() == MusicPlayerEvent::TrackRemovedEvent || event->type() == MusicPlayerEvent::TrackAddedEvent) { MusicPlayerEvent *mpe = dynamic_cast<MusicPlayerEvent *>(event); if (!mpe) return; int trackID = mpe->TrackID; for (int x = 0; x < m_tracksList->GetCount(); x++) { MythUIButtonListItem *item = m_tracksList->GetItemAt(x); MusicMetadata *mdata = qVariantValue<MusicMetadata*> (item->GetData()); if (mdata && (mdata->ID() == (MusicMetadata::IdType) trackID || trackID == -1)) { if (gPlayer->getCurrentPlaylist() && gPlayer->getCurrentPlaylist()->checkTrack(mdata->ID())) item->DisplayState("on", "selectedstate"); else item->DisplayState("off", "selectedstate"); } } // call the default handler in MusicCommon so the playlist and UI is updated MusicCommon::customEvent(event); handled = true; if (m_playTrack) { m_playTrack = false; if (event->type() == MusicPlayerEvent::TrackAddedEvent) { // make the added track current and play it m_currentPlaylist->SetItemCurrent(m_currentPlaylist->GetCount() - 1); playlistItemClicked(m_currentPlaylist->GetItemCurrent()); } } } else if (event->type() == MusicPlayerEvent::AllTracksRemovedEvent) { for (int x = 0; x < m_tracksList->GetCount(); x++) { MythUIButtonListItem *item = m_tracksList->GetItemAt(x); if (item) item->DisplayState("off", "selectedstate"); } } else if (event->type() == MusicPlayerEvent::MetadataChangedEvent) { MusicPlayerEvent *mpe = dynamic_cast<MusicPlayerEvent *>(event); if (!mpe) return; uint trackID = mpe->TrackID; for (int x = 0; x < m_tracksList->GetCount(); x++) { MythUIButtonListItem *item = m_tracksList->GetItemAt(x); MusicMetadata *mdata = qVariantValue<MusicMetadata*> (item->GetData()); if (mdata && mdata->ID() == trackID) { InfoMap metadataMap; mdata->toMap(metadataMap); item->SetTextFromMap(metadataMap); } } // if (trackID == gPlayer->getCurrentMetadata()->ID()) // updateTrackInfo(gPlayer->getCurrentMetadata()); } else if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = static_cast<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 == "searchviewmenu") { if (resulttext == tr("Add To Playlist") || resulttext == tr("Remove From Playlist")) { if (GetFocusWidget() == m_tracksList) { MythUIButtonListItem *item = m_tracksList->GetItemCurrent(); if (item) { m_playTrack = false; trackClicked(item); } } } else if (resulttext == tr("Add To Playlist And Play")) { if (GetFocusWidget() == m_tracksList) { MythUIButtonListItem *item = m_tracksList->GetItemCurrent(); if (item) { m_playTrack = true; trackClicked(item); } } } else if (resulttext == tr("Search List...")) searchButtonList(); } } if (!handled) MusicCommon::customEvent(event); }
void StreamView::customEvent(QEvent *event) { bool handled = true; if (event->type() == MusicPlayerEvent::PlayedTracksChangedEvent) { if (gPlayer->getPlayedTracksList().count()) updateTrackInfo(gPlayer->getCurrentMetadata()); // add the new track to the list if (m_playedTracksList && gPlayer->getPlayedTracksList().count()) { Metadata *mdata = gPlayer->getPlayedTracksList().last(); MythUIButtonListItem *item = new MythUIButtonListItem(m_playedTracksList, "", qVariantFromValue(mdata), 0); MetadataMap metadataMap; mdata->toMap(metadataMap); item->SetTextFromMap(metadataMap); item->SetFontState("normal"); item->DisplayState("default", "playstate"); item->SetImage(mdata->getAlbumArtFile()); m_playedTracksList->SetItemCurrent(item); } } else if (event->type() == MusicPlayerEvent::TrackChangeEvent) { MusicPlayerEvent *mpe = dynamic_cast<MusicPlayerEvent *>(event); if (!mpe) return; int trackNo = mpe->TrackID; if (m_streamList) { if (m_currentTrack >= 0 && m_currentTrack < m_streamList->GetCount()) { MythUIButtonListItem *item = m_streamList->GetItemAt(m_currentTrack); if (item) { item->SetFontState("normal"); item->DisplayState("default", "playstate"); } } if (trackNo >= 0 && trackNo < m_streamList->GetCount()) { if (m_currentTrack == m_streamList->GetCurrentPos()) m_streamList->SetItemCurrent(trackNo); MythUIButtonListItem *item = m_streamList->GetItemAt(trackNo); if (item) { item->SetFontState("running"); item->DisplayState("playing", "playstate"); } } } m_currentTrack = trackNo; updateTrackInfo(gPlayer->getCurrentMetadata()); } else if (event->type() == OutputEvent::Playing) { if (gPlayer->isPlaying()) { if (m_streamList) { MythUIButtonListItem *item = m_streamList->GetItemAt(m_currentTrack); if (item) { item->SetFontState("running"); item->DisplayState("playing", "playstate"); } } } // pass it on to the default handler in MusicCommon handled = false; } else if (event->type() == OutputEvent::Stopped) { if (m_streamList) { MythUIButtonListItem *item = m_streamList->GetItemAt(m_currentTrack); if (item) { item->SetFontState("normal"); item->DisplayState("stopped", "playstate"); } } // pass it on to the default handler in MusicCommon handled = false; } else if (event->type() == OutputEvent::Buffering) { } else if (event->type() == MythEvent::MythEventMessage) { MythEvent *me = (MythEvent *)event; QStringList tokens = me->Message().split(" ", QString::SkipEmptyParts); if (tokens.isEmpty()) return; if (tokens[0] == "DOWNLOAD_FILE") { QStringList args = me->ExtraDataList(); if (tokens[1] == "UPDATE") { } else if (tokens[1] == "FINISHED") { QString url = args[0]; int fileSize = args[2].toInt(); int errorCode = args[4].toInt(); QString filename = args[1]; if ((errorCode != 0) || (fileSize == 0)) LOG(VB_GENERAL, LOG_ERR, QString("StreamView: failed to download radio icon from '%1'").arg(url)); else { for (int x = 0; x < m_streamList->GetCount(); x++) { MythUIButtonListItem *item = m_streamList->GetItemAt(x); Metadata *mdata = qVariantValue<Metadata*> (item->GetData()); if (mdata && mdata->LogoUrl() == url) item->SetImage(filename); } } } } } else if (event->type() == DecoderHandlerEvent::OperationStart) { DecoderHandlerEvent *dhe = dynamic_cast<DecoderHandlerEvent*>(event); if (!dhe) return; if (dhe->getMessage() && m_bufferStatus) { m_bufferStatus->SetText(*dhe->getMessage()); } } else if (event->type() == DecoderHandlerEvent::BufferStatus) { DecoderHandlerEvent *dhe = dynamic_cast<DecoderHandlerEvent*>(event); if (!dhe) return; int available, maxSize; dhe->getBufferStatus(&available, &maxSize); if (m_bufferStatus) { QString status = QString("%1%").arg((int)(100.0 / ((double)maxSize / (double)available))); m_bufferStatus->SetText(status); } if (m_bufferProgress) { m_bufferProgress->SetTotal(maxSize); m_bufferProgress->SetUsed(available); } } else if (event->type() == DecoderHandlerEvent::OperationStop) { if (m_bufferStatus) m_bufferStatus->SetText(""); } else if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = static_cast<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 == "streammenu") { if (resulttext == tr("Add Stream")) { MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack(); MythScreenType *screen = new EditStreamMetadata(mainStack, this, NULL); if (screen->Create()) mainStack->AddScreen(screen); else delete screen; } else if (resulttext == tr("Remove Stream")) { removeStream(); } else if (resulttext == tr("Edit Stream")) { editStream(); } } else handled = false; } else handled = false; if (!handled) MusicCommon::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 EditMetadataDialog::customEvent(QEvent *levent) { if (levent->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(levent); const QString resultid = dce->GetId(); if (resultid == CEID_COVERARTFILE) SetCoverArt(dce->GetResultText()); else if (resultid == CEID_BANNERFILE) SetBanner(dce->GetResultText()); else if (resultid == CEID_FANARTFILE) SetFanart(dce->GetResultText()); else if (resultid == CEID_SCREENSHOTFILE) SetScreenshot(dce->GetResultText()); else if (resultid == CEID_TRAILERFILE) SetTrailer(dce->GetResultText()); else if (resultid == CEID_NEWCATEGORY) AddCategory(dce->GetResultText()); } else if (levent->type() == MetadataLookupEvent::kEventType) { MetadataLookupEvent *lue = (MetadataLookupEvent *)levent; MetadataLookupList lul = lue->lookupList; if (lul.isEmpty()) return; // There should really only be one result here. // If not, USER ERROR! if (lul.count() == 1) { OnArtworkSearchDone(lul[0]); } else { if (m_busyPopup) { m_busyPopup->Close(); m_busyPopup = NULL; } } } else if (levent->type() == MetadataLookupFailure::kEventType) { MetadataLookupFailure *luf = (MetadataLookupFailure *)levent; MetadataLookupList lul = luf->lookupList; if (m_busyPopup) { m_busyPopup->Close(); m_busyPopup = NULL; } if (lul.size()) { MetadataLookup *lookup = lul[0]; LOG(VB_GENERAL, LOG_INFO, QString("No results found for %1 %2 %3").arg(lookup->GetTitle()) .arg(lookup->GetSeason()).arg(lookup->GetEpisode())); } } else if (levent->type() == ImageDLEvent::kEventType) { ImageDLEvent *ide = (ImageDLEvent *)levent; MetadataLookup *lookup = ide->item; if (!lookup) return; handleDownloadedImages(lookup); } else if (levent->type() == ImageDLFailureEvent::kEventType) { MythErrorNotification n(tr("Failed to retrieve image"), tr("Metadata Editor"), tr("Check logs")); GetNotificationCenter()->Queue(n); } }
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 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 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 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); } }