本文整理汇总了C++中ThemeInfo::GetPreviewPath方法的典型用法代码示例。如果您正苦于以下问题:C++ ThemeInfo::GetPreviewPath方法的具体用法?C++ ThemeInfo::GetPreviewPath怎么用?C++ ThemeInfo::GetPreviewPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ThemeInfo
的用法示例。
在下文中一共展示了ThemeInfo::GetPreviewPath方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: itemChanged
void ThemeChooser::itemChanged(MythUIButtonListItem *item)
{
ThemeInfo *info = qVariantValue<ThemeInfo*>(item->GetData());
if (!info)
return;
QFileInfo preview(info->GetPreviewPath());
QHash<QString, QString> infomap;
info->ToMap(infomap);
SetTextFromMap(infomap);
if (m_preview)
{
if (preview.exists())
{
m_preview->SetFilename(info->GetPreviewPath());
m_preview->Load();
}
else
m_preview->Reset();
}
if (m_fullPreviewShowing && m_fullPreviewStateType)
{
if (m_fullScreenPreview)
{
if (preview.exists())
{
m_fullScreenPreview->SetFilename(info->GetPreviewPath());
m_fullScreenPreview->Load();
}
else
m_fullScreenPreview->Reset();
}
if (m_fullScreenName)
m_fullScreenName->SetText(info->GetName());
}
MythUIStateType *themeLocation =
dynamic_cast<MythUIStateType*>(GetChild("themelocation"));
if (themeLocation)
{
if (info->GetDownloadURL().isEmpty())
themeLocation->DisplayState("local");
else
themeLocation->DisplayState("remote");
}
MythUIStateType *aspectState =
dynamic_cast<MythUIStateType*>(GetChild("aspectstate"));
if (aspectState)
aspectState->DisplayState(info->GetAspect());
}
示例2: removeTheme
void ThemeChooser::removeTheme(void)
{
MythUIButtonListItem *current = m_themes->GetItemCurrent();
if (!current)
{
ShowOkPopup(tr("Error, no theme selected."));
return;
}
ThemeInfo *info = qVariantValue<ThemeInfo *>(current->GetData());
if (!info)
{
ShowOkPopup(tr("Error, unable to find current theme."));
return;
}
QString themeDir = GetConfDir() + "/themes/";
if (!info->GetPreviewPath().startsWith(themeDir))
{
ShowOkPopup(tr("%1 is not a user-installed theme and can not "
"be deleted.").arg(info->GetName()));
return;
}
themeDir.append(info->GetDirectoryName());
removeThemeDir(themeDir);
ReloadInBackground();
}
示例3: toggleFullscreenPreview
void ThemeChooser::toggleFullscreenPreview(void)
{
if (m_fullPreviewStateType)
{
if (m_fullPreviewShowing)
{
if (m_fullScreenPreview)
m_fullScreenPreview->Reset();
if (m_fullScreenName)
m_fullScreenName->Reset();
m_fullPreviewStateType->Reset();
m_fullPreviewShowing = false;
}
else
{
MythUIButtonListItem *item = m_themes->GetItemCurrent();
ThemeInfo *info = qVariantValue<ThemeInfo*>(item->GetData());
if (info)
{
if (m_fullScreenPreview)
{
m_fullScreenPreview->SetFilename(info->GetPreviewPath());
m_fullScreenPreview->Load();
}
if (m_fullScreenName)
m_fullScreenName->SetText(info->GetName());
m_fullPreviewStateType->DisplayState("fullscreen");
m_fullPreviewShowing = true;
}
}
}
}
示例4: showPopupMenu
void ThemeChooser::showPopupMenu(void)
{
if (m_popupMenu)
return;
MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
QString label = tr("Theme Chooser Menu");
m_popupMenu =
new MythDialogBox(label, popupStack, "themechoosermenupopup");
connect(m_popupMenu, SIGNAL(Closed(QString, int)), SLOT(popupClosed(QString, int)));
if (m_popupMenu->Create())
popupStack->AddScreen(m_popupMenu);
else
{
delete m_popupMenu;
m_popupMenu = NULL;
return;
}
m_popupMenu->SetReturnEvent(this, "popupmenu");
if (m_fullPreviewStateType)
{
if (m_fullPreviewShowing)
m_popupMenu->AddButton(tr("Hide Fullscreen Preview"),
SLOT(toggleFullscreenPreview()));
else
m_popupMenu->AddButton(tr("Show Fullscreen Preview"),
SLOT(toggleFullscreenPreview()));
}
m_popupMenu->AddButton(tr("Refresh Downloadable Themes"),
SLOT(refreshDownloadableThemes()));
MythUIButtonListItem *current = m_themes->GetItemCurrent();
if (current)
{
ThemeInfo *info = qVariantValue<ThemeInfo *>(current->GetData());
if (info)
{
m_popupMenu->AddButton(tr("Select Theme"),
SLOT(saveAndReload()));
QString themeDir = GetConfDir() + "/themes/";
if (info->GetPreviewPath().startsWith(themeDir))
m_popupMenu->AddButton(tr("Delete Theme"),
SLOT(removeTheme()));
}
}
if (gCoreContext->GetNumSetting("ThemeUpdateNofications", 1))
m_popupMenu->AddButton(tr("Disable Theme Update Notifications"),
SLOT(toggleThemeUpdateNotifications()));
else
m_popupMenu->AddButton(tr("Enable Theme Update Notifications"),
SLOT(toggleThemeUpdateNotifications()));
}
示例5: Init
void ThemeChooser::Init(void)
{
QString curTheme = gCoreContext->GetSetting("Theme");
ThemeInfo *themeinfo = NULL;
ThemeInfo *curThemeInfo = NULL;
MythUIButtonListItem *item = NULL;
m_themes->Reset();
for( QFileInfoList::iterator it = m_infoList.begin();
it != m_infoList.end();
++it )
{
QFileInfo &theme = *it;
if (!m_themeFileNameInfos.contains(theme.filePath()))
continue;
themeinfo = m_themeFileNameInfos[theme.filePath()];
if (!themeinfo)
continue;
QString buttonText = QString("%1 %2.%3")
.arg(themeinfo->GetName())
.arg(themeinfo->GetMajorVersion())
.arg(themeinfo->GetMinorVersion());
item = new MythUIButtonListItem(m_themes, buttonText);
if (item)
{
if (themeinfo->GetDownloadURL().isEmpty())
item->DisplayState("local", "themelocation");
else
item->DisplayState("remote", "themelocation");
item->DisplayState(themeinfo->GetAspect(), "aspectstate");
item->DisplayState(m_themeStatuses[themeinfo->GetName()],
"themestatus");
QHash<QString, QString> infomap;
themeinfo->ToMap(infomap);
item->SetTextFromMap(infomap);
item->SetData(qVariantFromValue(themeinfo));
QString thumbnail = themeinfo->GetPreviewPath();
QFileInfo fInfo(thumbnail);
// Downloadable themeinfos have thumbnail copies of their preview images
if (!themeinfo->GetDownloadURL().isEmpty())
thumbnail = thumbnail.append(".thumb.jpg");
item->SetImage(thumbnail);
if (curTheme == themeinfo->GetDirectoryName())
curThemeInfo = themeinfo;
}
else
delete item;
}
SetFocusWidget(m_themes);
if (curThemeInfo)
m_themes->SetValueByData(qVariantFromValue(curThemeInfo));
MythUIButtonListItem *current = m_themes->GetItemCurrent();
if (current)
itemChanged(current);
}
示例6: Load
//.........这里部分代码省略.........
dir.mkpath(destdir);
bool result = GetMythDownloadManager()->download(url, remoteThemesFile);
SetBusyPopupMessage(tr("Extracting Downloadable Themes Information"));
if (!result || !extractZIP(remoteThemesFile, destdir))
{
QFile::remove(remoteThemesFile);
downloadFailures++;
gCoreContext->SaveSetting("ThemeInfoDownloadFailures",
downloadFailures);
}
}
QDir remoteThemesDir(GetMythUI()->GetThemeCacheDir()
.append("/themechooser/").append(MythVersion));
if ((QFile::exists(remoteThemesFile)) &&
(remoteThemesDir.exists()))
{
SetBusyPopupMessage(tr("Loading Downloadable Themes"));
LOG(VB_GUI, LOG_INFO, LOC +
QString("%1 and %2 exist, using cached remote themes list")
.arg(remoteThemesFile).arg(remoteThemesDir.absolutePath()));
QString themesPath = remoteThemesDir.absolutePath();
themes.setPath(themesPath);
QFileInfoList downloadableThemes = themes.entryInfoList();
for( QFileInfoList::iterator it = downloadableThemes.begin();
it != downloadableThemes.end();
++it )
{
QString dirName = (*it).fileName();
QString themeName = dirName;
QString remoteDir = themeSite;
remoteDir.append("/").append(dirName);
QString localDir = themes.absolutePath();
localDir.append("/").append(dirName);
if (themesSeen.contains(dirName))
{
ThemeInfo remoteTheme((*it).absoluteFilePath());
ThemeInfo *localTheme = m_themeNameInfos[dirName];
themeName = remoteTheme.GetName();
int rmtMaj = remoteTheme.GetMajorVersion();
int rmtMin = remoteTheme.GetMinorVersion();
int locMaj = localTheme->GetMajorVersion();
int locMin = localTheme->GetMinorVersion();
if ((rmtMaj > locMaj) ||
((rmtMaj == locMaj) &&
(rmtMin > locMin)))
{
if (loadThemeInfo(*it))
{
m_infoList << *it;
m_themeStatuses[themeName] = "updateavailable";
QFileInfo finfo(remoteTheme.GetPreviewPath());
GetMythDownloadManager()->queueDownload(
remoteDir.append("/").append(finfo.fileName()),
localDir.append("/").append(finfo.fileName()),
NULL);
}
}
else if ((rmtMaj == locMaj) &&
(rmtMin == locMin))
{
m_themeStatuses[themeName] = "uptodate";
}
}
else
{
ThemeInfo *remoteTheme = loadThemeInfo(*it);
if (remoteTheme)
{
themeName = remoteTheme->GetName();
themesSeen << dirName;
m_infoList << *it;
m_themeStatuses[themeName] = "updateavailable";
QFileInfo finfo(remoteTheme->GetPreviewPath());
GetMythDownloadManager()->queueDownload(
remoteDir.append("/").append(finfo.fileName()),
localDir.append("/").append(finfo.fileName()),
NULL);
}
}
}
}
ResetBusyPopup();
qSort(m_infoList.begin(), m_infoList.end(), sortThemeNames);
}