本文整理汇总了C++中KviThemeInfo::load方法的典型用法代码示例。如果您正苦于以下问题:C++ KviThemeInfo::load方法的具体用法?C++ KviThemeInfo::load怎么用?C++ KviThemeInfo::load使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KviThemeInfo
的用法示例。
在下文中一共展示了KviThemeInfo::load方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: theme_kvs_cmd_apply
/*
@doc: theme.apply
@type:
command
@title:
theme.apply
@short:
Apply a theme.
@syntax:
theme.apply <package_name:string>
@description:
Attempts to apply the theme specified by <package_name>.
*/
static bool theme_kvs_cmd_apply(KviKvsModuleCommandCall * c)
{
QString szThemePackFile;
KVSM_PARAMETERS_BEGIN(c)
KVSM_PARAMETER("package_name",KVS_PT_STRING,0,szThemePackFile)
KVSM_PARAMETERS_END(c)
KviThemeInfo * themeInfo = new KviThemeInfo();
if(themeInfo->load(szThemePackFile))
{
themeInfo->setSubdirectory(szThemePackFile);
if(KviMessageBox::yesNo(__tr2qs_ctx("Apply theme - KVIrc","theme"),
__tr2qs_ctx("Do you wish to apply theme \"%Q\" (version %Q)?","theme"),
&(themeInfo->name()),&(themeInfo->version())))
{
KviThemeInfo out;
if(!KviTheme::load(szThemePackFile,out))
{
QString szErr = out.lastError();
QString szMsg = QString(__tr2qs_ctx("Failed to apply the specified theme: %1","theme")).arg(szErr);
QMessageBox::critical(0,__tr2qs_ctx("Apply theme - KVIrc","theme"),szMsg,
QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
}
return true;
}
}
c->warning(__tr2qs_ctx("The theme package '%Q' does not exist","theme"),&szThemePackFile);
return true;
}
示例2: theme_kvs_fnc_info
/*
@doc: theme.info
@type:
function
@title:
theme.info
@short:
Return info about an user defined theme.
@syntax:
<themes_list:string> $theme.info(<theme_name:string>)
@description:
Returns as hash the info about an user definded theme.
Hash keys are: name, version, author, description.
*/
static bool theme_kvs_fnc_info(KviKvsModuleFunctionCall * c)
{
QString szThemePackFile;
KVSM_PARAMETERS_BEGIN(c)
KVSM_PARAMETER("package_name",KVS_PT_STRING,0,szThemePackFile)
KVSM_PARAMETERS_END(c)
KviThemeInfo * themeInfo = new KviThemeInfo();
if(themeInfo->load(szThemePackFile))
{
KviKvsHash *pHash=new KviKvsHash();
KviKvsVariant *name=new KviKvsVariant(themeInfo->name());
pHash->set("name",name);
KviKvsVariant *version=new KviKvsVariant(themeInfo->version());
pHash->set("version",version);
KviKvsVariant *author=new KviKvsVariant(themeInfo->author());
pHash->set("author",author);
KviKvsVariant *description=new KviKvsVariant(themeInfo->description());
pHash->set("description",description);
c->returnValue()->setHash(pHash);
return true;
}
c->warning(__tr2qs_ctx("The theme package '%Q' does not exist","theme"),&szThemePackFile);
return true;
}
示例3: theme_kvs_cmd_pack
static bool theme_kvs_cmd_pack(KviKvsModuleCommandCall * c)
{
QString szPath, szName, szVersion, szDescription, szAuthor, szImage;
KviKvsArrayCast aCast;
KVSM_PARAMETERS_BEGIN(c)
KVSM_PARAMETER("package_path", KVS_PT_NONEMPTYSTRING, 0, szPath)
KVSM_PARAMETER("package_name", KVS_PT_NONEMPTYSTRING, 0, szName)
KVSM_PARAMETER("package_version", KVS_PT_NONEMPTYSTRING, 0, szVersion)
KVSM_PARAMETER("package_description", KVS_PT_STRING, 0, szDescription)
KVSM_PARAMETER("package_author", KVS_PT_NONEMPTYSTRING, 0, szAuthor)
KVSM_PARAMETER("package_image", KVS_PT_STRING, 0, szImage)
KVSM_PARAMETER("theme", KVS_PT_ARRAYCAST, 0, aCast)
KVSM_PARAMETERS_END(c)
KviKvsArray * pArray = aCast.array();
if((!pArray) || (pArray->size() < 1))
{
c->error(__tr2qs_ctx("No themes specified", "theme"));
return false;
}
kvs_uint_t s = pArray->size();
QStringList lThemeList;
for(kvs_uint_t i = 0; i < s; i++)
{
KviKvsVariant * v = pArray->at(i);
if(!v)
continue; // ?
QString szVal;
v->asString(szVal);
if(szVal.isEmpty())
continue;
lThemeList.append(szVal);
}
KviPointerList<KviThemeInfo> lThemeInfoList;
lThemeInfoList.setAutoDelete(true);
Q_FOREACH(QString szTheme, lThemeList)
{
KviThemeInfo * pInfo = new KviThemeInfo();
if(!pInfo->load(szTheme, KviThemeInfo::External))
{
QString szErr = pInfo->lastError();
c->error(__tr2qs_ctx("Failed to load theme from directory %Q: %Q", "theme"), &szTheme, &szErr);
delete pInfo;
return false;
}
lThemeInfoList.append(pInfo);
}
示例4: theme_kvs_fnc_info
static bool theme_kvs_fnc_info(KviKvsModuleFunctionCall * c)
{
QString szTheme;
KVSM_PARAMETERS_BEGIN(c)
KVSM_PARAMETER("theme", KVS_PT_STRING, 0, szTheme)
KVSM_PARAMETERS_END(c)
KviKvsHash * pHash = new KviKvsHash();
c->returnValue()->setHash(pHash);
KviThemeInfo theme;
if(!theme.load(szTheme, KviThemeInfo::Auto))
{
c->warning(__tr2qs_ctx("The theme package '%Q' doesn't exist", "theme"), &szTheme);
return true;
}
pHash->set("name", new KviKvsVariant(theme.name()));
pHash->set("version", new KviKvsVariant(theme.version()));
pHash->set("author", new KviKvsVariant(theme.author()));
pHash->set("description", new KviKvsVariant(theme.description()));
return true;
}
示例5: fillThemeBox
void ThemeManagementDialog::fillThemeBox(bool bBuiltin)
{
QStringList slThemes;
KviTheme::installedThemeDirectories(slThemes,bBuiltin ? KviThemeInfo::Builtin : KviThemeInfo::User);
for(int i=0;i<slThemes.count();i++)
{
//qDebug("Installed theme %s builtin %d",slThemes.at(i).toUtf8().data(),bBuiltin);
KviThemeInfo * inf = new KviThemeInfo();
if(inf->load(slThemes.at(i),bBuiltin ? KviThemeInfo::Builtin : KviThemeInfo::User))
{
ThemeListWidgetItem *it=new ThemeListWidgetItem(m_pListWidget,inf);
//qDebug("Item %x, info %x, info2 %x, %s : %s at location %d",(long)it,(long)inf,(long)it->themeInfo(),it->themeInfo()->directory().toUtf8().data(),it->themeInfo()->subdirectory().toUtf8().data(),it->themeInfo()->location());
QPixmap pixmap=inf->smallScreenshot();
if(!pixmap.isNull())
it->setIcon(pixmap.scaled(32,32));
} else {
delete inf;
}
}
}
示例6: rx
SaveThemeDialog::SaveThemeDialog(QWidget * pParent)
: KviTalWizard(pParent)
{
setWindowTitle(__tr2qs_ctx("Save Current Theme - KVIrc","theme"));
setMinimumSize(400,350);
KviThemeInfo info;
info.load(KVI_OPTION_STRING(KviOption_stringIconThemeSubdir),KviThemeInfo::Auto);
// welcome page ==================================================================================
QWidget * pPage = new QWidget(this);
QGridLayout * pLayout = new QGridLayout(pPage);
QLabel * pLabel = new QLabel(pPage);
pLabel->setWordWrap(true);
QString szText = "<p>";
szText += __tr2qs_ctx("This procedure allows you to save the current theme settings to a single directory. It is useful if you want to apply other themes or play with the theme settings and later come back to this theme with a single click. It will also allow you to manually modify the theme settings and later export them to a distributable package.","theme");
szText += "</p><p>";
szText += __tr2qs_ctx("You will be asked to provide a theme name, a description and, if you want, a screenshot.","theme");
szText += "</p><p>";
szText += __tr2qs_ctx("Hit the \"Next\" button to begin.","theme");
szText += "<p>";
pLabel->setText(szText);
pLayout->addWidget(pLabel,0,0);
pLayout->setRowStretch(1,1);
addPage(pPage,__tr2qs_ctx("Welcome","theme"));
setBackEnabled(pPage,false);
setNextEnabled(pPage,true);
setHelpEnabled(pPage,false);
setFinishEnabled(pPage,false);
// packager information ================================================================================
pPage = new QWidget(this);
pLayout = new QGridLayout(pPage);
pLabel = new QLabel(pPage);
pLabel->setText(__tr2qs_ctx("Here you need to provide information about you (the author) and a short description of the theme you're creating.","theme"));
pLabel->setWordWrap(true);
pLabel->setTextFormat(Qt::RichText);
pLayout->addWidget(pLabel,0,0,1,2);
pLabel = new QLabel(pPage);
pLabel->setText(__tr2qs_ctx("Theme Name:","theme"));
pLayout->addWidget(pLabel,1,0);
m_pThemeNameEdit = new QLineEdit(pPage);
m_pThemeNameEdit->setText(info.name());
pLayout->addWidget(m_pThemeNameEdit,1,1);
pLabel = new QLabel(pPage);
pLabel->setText(__tr2qs_ctx("Version:","theme"));
pLayout->addWidget(pLabel,2,0);
m_pThemeVersionEdit = new QLineEdit(pPage);
m_pThemeVersionEdit->setText(info.version());
QRegExp rx("\\d{1,2}\\.\\d{1,2}(\\.\\d{1,2})?");
QValidator *validator = new QRegExpValidator(rx, this);
m_pThemeVersionEdit->setValidator(validator);
pLayout->addWidget(m_pThemeVersionEdit,2,1);
pLabel = new QLabel(pPage);
pLabel->setText(__tr2qs_ctx("Description:","theme"));
pLayout->addWidget(pLabel,3,0);
m_pThemeDescriptionEdit = new QTextEdit(pPage);
m_pThemeDescriptionEdit->setText(info.description());
pLayout->addWidget(m_pThemeDescriptionEdit,3,1);
pLabel = new QLabel(pPage);
pLabel->setText(__tr2qs_ctx("Theme Author:","theme"));
pLayout->addWidget(pLabel,4,0);
m_pAuthorNameEdit = new QLineEdit(pPage);
m_pAuthorNameEdit->setText(info.author());
pLayout->addWidget(m_pAuthorNameEdit,4,1);
pLayout->setRowStretch(3,1);
pLayout->setColumnStretch(1,1);
addPage(pPage,__tr2qs_ctx("Theme Information","theme"));
setBackEnabled(pPage,true);
setHelpEnabled(pPage,false);
setNextEnabled(pPage,true);
setFinishEnabled(pPage,false);
// screenshot/logo/icon ================================================================================
pPage = new QWidget(this);
pLayout = new QGridLayout(pPage);
pLabel = new QLabel(pPage);
pLabel->setText(__tr2qs_ctx("Here you can either choose a screenshot image from disk or make one now. The screenshot will be displayed in the tooltips of the theme management dialog and will be also visible in the package installation dialog if you will export the theme to a distributable package.","theme"));
pLabel->setWordWrap(true);
pLabel->setTextFormat(Qt::RichText);
pLayout->addWidget(pLabel,0,0);
//.........这里部分代码省略.........