void CGUIWindowPVRSearch::OnPrepareFileItems(CFileItemList &items) { items.Clear(); CFileItemPtr item(new CFileItem("pvr://guide/searchresults/search/", true)); item->SetLabel(g_localizeStrings.Get(19140)); item->SetLabelPreformated(true); item->SetSpecialSort(SortSpecialOnTop); items.Add(item); if (m_bSearchConfirmed) { CGUIDialogProgress* dlgProgress = (CGUIDialogProgress*)g_windowManager.GetWindow(WINDOW_DIALOG_PROGRESS); if (dlgProgress) { dlgProgress->SetHeading(194); dlgProgress->SetText(CVariant(m_searchfilter.m_strSearchTerm)); dlgProgress->StartModal(); dlgProgress->Progress(); } // TODO should we limit the find similar search to the selected group? g_EpgContainer.GetEPGSearch(items, m_searchfilter); if (dlgProgress) dlgProgress->Close(); if (items.IsEmpty()) { CGUIDialogOK::ShowAndGetInput(194, 284, 0, 0); m_bSearchConfirmed = false; } } }
void CGUIWindowPVRBase::OnInitWindow(void) { if (!g_PVRManager.IsStarted() || !g_PVRClients->HasConnectedClients()) { // wait until the PVR manager has been started CGUIDialogProgress* dialog = static_cast<CGUIDialogProgress*>(g_windowManager.GetWindow(WINDOW_DIALOG_PROGRESS)); if (dialog) { dialog->SetHeading(CVariant{19235}); dialog->SetText(CVariant{19045}); dialog->ShowProgressBar(false); dialog->Open(); // do not block the gfx context while waiting CSingleExit exit(g_graphicsContext); CEvent event(true); while(!event.WaitMSec(1)) { if (g_PVRManager.IsStarted() && g_PVRClients->HasConnectedClients()) event.Set(); if (dialog->IsCanceled()) { // return to previous window if canceled dialog->Close(); g_windowManager.PreviousWindow(); return; } g_windowManager.ProcessRenderLoop(false); } dialog->Close(); } } { // set window group to playing group CPVRChannelGroupPtr group = g_PVRManager.GetPlayingGroup(m_bRadio); CSingleLock lock(m_critSection); if (m_group != group) m_viewControl.SetSelectedItem(0); m_group = group; } SetProperty("IsRadio", m_bRadio ? "true" : ""); m_vecItems->SetPath(GetDirectoryPath()); CGUIMediaWindow::OnInitWindow(); // mark item as selected by channel path m_viewControl.SetSelectedItem(GetSelectedItemPath(m_bRadio)); }
void CGUIWindowPVRSearch::OnPrepareFileItems(CFileItemList &items) { bool bAddSpecialSearchItem = items.IsEmpty(); if (m_bSearchConfirmed) { m_bSearchConfirmed = false; bAddSpecialSearchItem = true; CGUIDialogProgress* dlgProgress = (CGUIDialogProgress*)g_windowManager.GetWindow(WINDOW_DIALOG_PROGRESS); if (dlgProgress) { dlgProgress->SetHeading(CVariant{194}); // "Searching..." dlgProgress->SetText(CVariant{m_searchfilter.m_strSearchTerm}); dlgProgress->Open(); dlgProgress->Progress(); } // TODO should we limit the find similar search to the selected group? g_EpgContainer.GetEPGSearch(items, m_searchfilter); if (dlgProgress) dlgProgress->Close(); if (items.IsEmpty()) CGUIDialogOK::ShowAndGetInput(CVariant{194}, // "Searching..." CVariant{284}); // "No results found" } if (bAddSpecialSearchItem) { CFileItemPtr item(new CFileItem("pvr://guide/searchresults/search/", true)); item->SetLabel(g_localizeStrings.Get(19140)); // "Search..." item->SetLabelPreformated(true); item->SetSpecialSort(SortSpecialOnTop); items.Add(item); } }
void CMusicLibraryQueue::ExportLibrary(const CLibExportSettings& settings, bool showDialog /* = false */) { CGUIDialogProgress* progress = NULL; if (showDialog) { progress = g_windowManager.GetWindow<CGUIDialogProgress>(WINDOW_DIALOG_PROGRESS); if (progress) { progress->SetHeading(CVariant{ 20196 }); //"Export music library" progress->SetText(CVariant{ 650 }); //"Exporting" progress->SetPercentage(0); progress->Open(); progress->ShowProgressBar(true); } } CMusicLibraryExportJob* exportJob = new CMusicLibraryExportJob(settings, progress); if (showDialog) { AddJob(exportJob); // Wait for export to complete or be canceled, but render every 10ms so that the // pointer movements work on dialog even when export is reporting progress infrequently if (progress) progress->Wait(); } else { m_modal = true; exportJob->DoWork(); delete exportJob; m_modal = false; Refresh(); } }