void NetTree::streamWebVideo() { ResultItem *item; if (m_type == DLG_TREE) item = qVariantValue<ResultItem *>(m_siteMap->GetCurrentNode()->GetData()); else { MythGenericTree *node = GetNodePtrFromButton(m_siteButtonList->GetItemCurrent()); if (!node) return; item = qVariantValue<ResultItem *>(node->GetData()); } if (!item) return; if (!item->GetDownloadable()) { showWebVideo(); return; } GetMythMainWindow()->HandleMedia("Internal", item->GetMediaURL(), item->GetDescription(), item->GetTitle(), item->GetSubtitle(), QString(), item->GetSeason(), item->GetEpisode(), QString(), item->GetTime().toInt(), item->GetDate().toString("yyyy")); }
void NetSearch::SlotItemChanged() { ResultItem *item = qVariantValue<ResultItem *>(m_searchResultList->GetDataValue()); if (item && GetFocusWidget() == m_searchResultList) { SetTextAndThumbnail(m_searchResultList->GetItemCurrent(), item); if (m_downloadable) { if (item->GetDownloadable()) m_downloadable->DisplayState("yes"); else m_downloadable->DisplayState("no"); } } else if (GetFocusWidget() == m_siteList) { MythUIButtonListItem *btn = m_siteList->GetItemCurrent(); ResultItem res(btn->GetText(), QString(), QString(), QString(), QString(), QString(), QString(), QDateTime(), 0, 0, -1, QString(), QStringList(), QString(), QStringList(), 0, 0, QString(), 0, QStringList(), 0, 0, 0); SetTextAndThumbnail(btn, &res); } }
void NetTree::showMenu(void) { QString label = tr("Playback/Download Options"); MythMenu *menu = new MythMenu(label, this, "options"); ResultItem *item = NULL; if (m_type == DLG_TREE) { MythGenericTree *node = m_siteMap->GetCurrentNode(); if (node) item = qVariantValue<ResultItem *>(node->GetData()); } else { MythGenericTree *node = GetNodePtrFromButton(m_siteButtonList->GetItemCurrent()); if (node) item = qVariantValue<ResultItem *>(node->GetData()); } if (item) { if (item->GetDownloadable()) menu->AddItem(tr("Stream Video"), SLOT(streamWebVideo())); menu->AddItem(tr("Open Web Link"), SLOT(showWebVideo())); if (item->GetDownloadable()) menu->AddItem(tr("Save This Video"), SLOT(doDownloadAndPlay())); } menu->AddItem(tr("Scan/Manage Subscriptions"), NULL, createShowManageMenu()); menu->AddItem(tr("Change View"), NULL, createShowViewMenu()); MythDialogBox *menuPopup = new MythDialogBox(menu, m_popupStack, "mythnettreemenupopup"); if (menuPopup->Create()) m_popupStack->AddScreen(menuPopup); else delete menuPopup; }
void NetTree::slotItemChanged() { ResultItem *item; RSSSite *site; if (m_type == DLG_TREE) { item = qVariantValue<ResultItem *>(m_siteMap->GetCurrentNode()->GetData()); site = qVariantValue<RSSSite *>(m_siteMap->GetCurrentNode()->GetData()); } else { MythGenericTree *node = GetNodePtrFromButton(m_siteButtonList->GetItemCurrent()); if (!node) return; item = qVariantValue<ResultItem *>(node->GetData()); site = qVariantValue<RSSSite *>(node->GetData()); } if (item) { MetadataMap metadataMap; item->toMap(metadataMap); SetTextFromMap(metadataMap); if (!item->GetThumbnail().isEmpty() && m_thumbImage) { m_thumbImage->Reset(); QString dlfile = item->GetThumbnail(); if (dlfile.contains("%SHAREDIR%")) { dlfile.replace("%SHAREDIR%", GetShareDir()); m_thumbImage->SetFilename(dlfile); m_thumbImage->Load(); } else { QString sFilename = getDownloadFilename(item->GetTitle(), item->GetThumbnail()); bool exists = QFile::exists(sFilename); if (exists) { m_thumbImage->SetFilename(sFilename); m_thumbImage->Load(); } } } else if (m_thumbImage) m_thumbImage->Reset(); if (m_downloadable) { if (item->GetDownloadable()) m_downloadable->DisplayState("yes"); else m_downloadable->DisplayState("no"); } } else if (site) { ResultItem *res = new ResultItem(site->GetTitle(), QString(), site->GetDescription(), site->GetURL(), site->GetImage(), QString(), site->GetAuthor(), QDateTime(), 0, 0, -1, QString(), QStringList(), QString(), QStringList(), 0, 0, QString(), 0, QStringList(), 0, 0, 0); MetadataMap metadataMap; res->toMap(metadataMap); SetTextFromMap(metadataMap); if (!site->GetImage().isEmpty() && m_thumbImage) { m_thumbImage->SetFilename(site->GetImage()); m_thumbImage->Load(); } else if (m_thumbImage) m_thumbImage->Reset(); if (m_downloadable) { m_downloadable->Reset(); } } else { QString title; if (m_type == DLG_TREE) title = m_siteMap->GetItemCurrent()->GetText(); else title = m_siteButtonList->GetItemCurrent()->GetText(); QString thumb; if (m_type == DLG_TREE) thumb = m_siteMap->GetCurrentNode()-> GetData().toString(); else { MythGenericTree *node = GetNodePtrFromButton(m_siteButtonList->GetItemCurrent()); if (node) thumb = node->GetData().toString(); } ResultItem *res = new ResultItem(title, QString(), QString(), QString(), thumb, QString(), QString(), QDateTime(), 0, 0, -1, QString(), QStringList(), QString(), QStringList(), 0, 0, QString(), 0, QStringList(), 0, 0, 0); MetadataMap metadataMap; res->toMap(metadataMap); SetTextFromMap(metadataMap); if (m_thumbImage) { if (!thumb.startsWith("http://")) { if (thumb.contains("%SHAREDIR%")) thumb.replace("%SHAREDIR%", GetShareDir()); bool exists = QFile::exists(thumb); if (exists) { m_thumbImage->SetFilename(thumb); m_thumbImage->Load(); } else m_thumbImage->Reset(); } else { QString url = thumb; QString title; if (m_type == DLG_TREE) title = m_siteMap->GetItemCurrent()->GetText(); else title = m_siteButtonList->GetItemCurrent()->GetText(); QString sFilename = GetDownloadFilename(title, url); bool exists = QFile::exists(sFilename); if (exists && !url.isEmpty()) { m_thumbImage->SetFilename(sFilename); m_thumbImage->Load(); } else m_thumbImage->Reset(); } } if (m_downloadable) m_downloadable->Reset(); } }
void NetSearch::ShowMenu(void) { QString label = tr("Search Options"); MythDialogBox *menuPopup = new MythDialogBox(label, m_popupStack, "mythnetvisionmenupopup"); if (menuPopup->Create()) { m_popupStack->AddScreen(menuPopup); menuPopup->SetReturnEvent(this, "options"); if (m_searchResultList->GetCount() > 0) { ResultItem *item = GetStreamItem(); if (item) { if (item->GetDownloadable()) menuPopup->AddButton(tr("Stream Video"), SLOT(StreamWebVideo())); menuPopup->AddButton(tr("Open Web Link"), SLOT(ShowWebVideo())); QString filename = GetDownloadFilename(item->GetTitle(), item->GetMediaURL()); bool exists = false; if (filename.startsWith("myth://")) exists = RemoteFile::Exists(filename); else exists = QFile::exists(filename); if (item->GetDownloadable() && GetFocusWidget() == m_searchResultList) { if (exists) menuPopup->AddButton(tr("Play"), SLOT(DoPlayVideo(filename))); else menuPopup->AddButton(tr("Save This Video"), SLOT(DoDownloadAndPlay())); } if (item->GetDownloadable() && GetFocusWidget() == m_searchResultList && exists) { menuPopup->AddButton(tr("Delete"), SLOT(SlotDeleteVideo())); } } if (m_pagenum > 1) menuPopup->AddButton(tr("Previous Page"), SLOT(GetLastResults())); if (m_searchResultList->GetCount() > 0 && m_pagenum < m_maxpage) menuPopup->AddButton(tr("Next Page"), SLOT(GetMoreResults())); } menuPopup->AddButton(tr("Manage Search Scripts"), SLOT(RunSearchEditor())); } else delete menuPopup; }
void NetSearch::slotItemChanged() { QMutexLocker locker(&m_lock); ResultItem *item = qVariantValue<ResultItem *>(m_searchResultList->GetDataValue()); if (item && GetFocusWidget() == m_searchResultList) { MetadataMap metadataMap; item->toMap(metadataMap); SetTextFromMap(metadataMap); if (!item->GetThumbnail().isEmpty() && m_thumbImage) { MythUIButtonListItem *btn = m_searchResultList->GetItemCurrent(); QString filename = btn->GetImage(); if (filename.contains("%SHAREDIR%")) filename.replace("%SHAREDIR%", GetShareDir()); m_thumbImage->Reset(); if (!filename.isEmpty()) { m_thumbImage->SetFilename(filename); m_thumbImage->Load(); } } if (m_downloadable) { if (item->GetDownloadable()) m_downloadable->DisplayState("yes"); else m_downloadable->DisplayState("no"); } } else if (GetFocusWidget() == m_siteList) { MythUIButtonListItem *item = m_siteList->GetItemCurrent(); ResultItem *res = new ResultItem(item->GetText(), QString(), QString(), QString(), QString(), QString(), QString(), QDateTime(), 0, 0, -1, QString(), QStringList(), QString(), QStringList(), 0, 0, QString(), 0, QStringList(), 0, 0, 0); MetadataMap metadataMap; res->toMap(metadataMap); SetTextFromMap(metadataMap); if (m_thumbImage) { QString filename = item->GetImage(); m_thumbImage->Reset(); if (filename.contains("%SHAREDIR%")) filename.replace("%SHAREDIR%", GetShareDir()); if (!filename.isEmpty()) { m_thumbImage->SetFilename(filename); m_thumbImage->Load(); } } } }
void NetSearch::showMenu(void) { QMutexLocker locker(&m_lock); QString label = tr("Search Options"); MythDialogBox *menuPopup = new MythDialogBox(label, m_popupStack, "mythnetvisionmenupopup"); if (menuPopup->Create()) { m_popupStack->AddScreen(menuPopup); menuPopup->SetReturnEvent(this, "options"); if (m_searchResultList->GetCount() > 0) { ResultItem *item = qVariantValue<ResultItem *>(m_searchResultList->GetDataValue()); QString filename; bool exists = false; if (item) { menuPopup->AddButton(tr("Open Web Link"), SLOT(showWebVideo())); filename = getDownloadFilename(item); if (filename.startsWith("myth://")) exists = RemoteFile::Exists(filename); else exists = QFile::exists(filename); } if (item && item->GetDownloadable() && GetFocusWidget() == m_searchResultList) { if (exists) menuPopup->AddButton(tr("Play"), SLOT(doPlayVideo())); else menuPopup->AddButton(tr("Save This Video"), SLOT(doDownloadAndPlay())); } if (item && item->GetDownloadable() && GetFocusWidget() == m_searchResultList && exists) { menuPopup->AddButton(tr("Delete"), SLOT(slotDeleteVideo())); } if (m_pagenum > 1) menuPopup->AddButton(tr("Previous Page"), SLOT(getLastResults())); if (m_searchResultList->GetCount() > 0 && m_pagenum < m_maxpage) menuPopup->AddButton(tr("Next Page"), SLOT(getMoreResults())); } menuPopup->AddButton(tr("Manage Search Scripts"), SLOT(runSearchEditor())); } else { delete menuPopup; } }