本文整理汇总了C++中KviThemeInfo类的典型用法代码示例。如果您正苦于以下问题:C++ KviThemeInfo类的具体用法?C++ KviThemeInfo怎么用?C++ KviThemeInfo使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了KviThemeInfo类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: theme_kvs_cmd_apply
static bool theme_kvs_cmd_apply(KviKvsModuleCommandCall * c)
{
QString szTheme;
KVSM_PARAMETERS_BEGIN(c)
KVSM_PARAMETER("theme", KVS_PT_STRING, 0, szTheme)
KVSM_PARAMETERS_END(c)
KviThemeInfo out;
KviThemeInfo::Location eLocation = KviThemeInfo::Auto;
if(c->switches()->find('b', "builtin"))
eLocation = KviThemeInfo::Builtin;
else if(c->switches()->find('e', "external"))
eLocation = KviThemeInfo::External;
else if(c->switches()->find('u', "user"))
eLocation = KviThemeInfo::User;
if(!KviTheme::apply(szTheme, eLocation, out))
{
QString szErr = out.lastError();
c->error(__tr2qs_ctx("Failed to apply theme: %Q", "theme"), &szErr);
return false;
}
return true;
}
示例2: deleteTheme
void ThemeManagementDialog::deleteTheme()
{
QList<QListWidgetItem *> itemsSelected = m_pListWidget->selectedItems();
for(int i=0; i < itemsSelected.count(); i++)
{
ThemeListWidgetItem * pItem = dynamic_cast<ThemeListWidgetItem *>(itemsSelected.at(i));
if(!pItem)
return;
KviThemeInfo * pInfo = pItem->themeInfo();
if(pInfo->isBuiltin())
continue;
if(!KviMessageBox::yesNo(
__tr2qs_ctx("Delete Theme - KVIrc","theme"),
__tr2qs_ctx("Do you really wish to delete theme \"%Q\" (version %Q)?","theme"),
&(pInfo->name()), &(pInfo->version()))
)
goto jump_out;
QString szThemePath = ((ThemeListWidgetItem *)itemsSelected.at(i))->themeInfo()->directory();
KviFileUtils::deleteDir(szThemePath);
}
jump_out:
fillThemeBox();
}
示例3: __tr2qs_ctx
void ThemeManagementDialog::applyCurrentTheme()
{
ThemeListWidgetItem * it = (ThemeListWidgetItem *)m_pListWidget->currentItem();
if(!it)
return;
if(!KviMessageBox::yesNo(__tr2qs_ctx("Apply theme - KVIrc","theme"),
__tr2qs_ctx("Do you wish to apply theme \"%Q\" (version %Q)?","theme"),
&(it->themeInfo()->name()),&(it->themeInfo()->version())))
return;
KviThemeInfo out;
//qDebug("Apply theme item %x, info %x, %s : %s at location %d",(long)it,(long)it->themeInfo(),it->themeInfo()->directory().toUtf8().data(),it->themeInfo()->subdirectory().toUtf8().data(),it->themeInfo()->location());
if(!KviTheme::apply(it->themeInfo()->subdirectory(),it->themeInfo()->location(),out))
{
QString szErr = out.lastError();
QString szMsg = QString(__tr2qs_ctx("Failed to apply the specified theme: %1","theme")).arg(szErr);
QMessageBox::critical(this,__tr2qs_ctx("Apply theme - KVIrc","theme"),szMsg,
QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
return;
}
m_pCurrentInstalledThemeLabel->setText(__tr2qs_ctx("<b><u>Current Installed Theme:</u> ","theme")+KVI_OPTION_STRING(KviOption_stringIconThemeSubdir)+"</b>");
m_pItemDelegate->setDefaultIcon(g_pIconManager->getBigIcon(QString(KVI_BIGICON_THEME)));
}
示例4: 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);
}
示例5: 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;
}
示例6: contextMenuRequested
void ThemeManagementDialog::contextMenuRequested(const QPoint & pos)
{
ThemeListWidgetItem * pItem = dynamic_cast<ThemeListWidgetItem *>(m_pListWidget->itemAt(pos));
if(pItem != 0)
{
m_pListWidget->setCurrentItem(pItem);
m_pContextPopup->clear();
KviThemeInfo * pInfo = pItem->themeInfo();
if(!pInfo)
return;
if(!pInfo->isBuiltin())
m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Minus)),__tr2qs_ctx("&Remove Theme","theme"),this,SLOT(deleteTheme()));
m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Accept)),__tr2qs_ctx("&Apply Theme","theme"),this,SLOT(applyCurrentTheme()));
m_pContextPopup->popup(m_pListWidget->viewport()->mapToGlobal(pos));
}
}
示例7: enableDisableButtons
void ThemeManagementDialog::enableDisableButtons()
{
QList<QListWidgetItem *> itemsSelected = m_pListWidget->selectedItems();
int iCount = itemsSelected.count();
bool bHasItems = iCount ? true : false;
m_pPackThemeButton->setEnabled(bHasItems);
unsigned int u = 0;
for(int i = 0; i < iCount; i++)
{
ThemeListWidgetItem * pItem = dynamic_cast<ThemeListWidgetItem *>(itemsSelected.at(i));
if(!pItem)
return;
KviThemeInfo * pInfo = pItem->themeInfo();
if(!pInfo->isBuiltin())
u++;
}
m_pDeleteThemeButton->setEnabled(u >= 1);
}
示例8: 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;
}
示例9: KviThemeInfo
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;
}
}
}
示例10: saveScreenshots
bool saveScreenshots(KviThemeInfo & options, const QString & szOriginalScreenshotPath)
{
QImage pix(szOriginalScreenshotPath);
if(pix.isNull())
{
options.setLastError(__tr2qs("Failed to load the specified screenshot image"));
return false;
}
QImage out;
QString szScreenshotPath = options.directory();
if(szScreenshotPath.isEmpty())
{
options.setLastError(__tr2qs("Invalid option"));
return false;
}
if(!pix.save(szScreenshotPath + KVI_THEME_LARGE_SCREENSHOT_NAME, "PNG"))
{
options.setLastError(__tr2qs("Failed to save the screenshot image"));
return false;
}
if(pix.width() > 600 || pix.height() > 450)
out = pix.scaled(640, 450, QIMAGE_SCALE_MIN, Qt::SmoothTransformation);
else
out = pix;
if(!out.save(szScreenshotPath + KVI_THEME_MEDIUM_SCREENSHOT_NAME, "PNG"))
{
options.setLastError(__tr2qs("Failed to save the screenshot image"));
return false;
}
if(pix.width() > 300 || pix.height() > 225)
out = pix.scaled(300, 225, QIMAGE_SCALE_MIN, Qt::SmoothTransformation);
else
out = pix;
if(!out.save(szScreenshotPath + KVI_THEME_SMALL_SCREENSHOT_NAME, "PNG"))
{
options.setLastError(__tr2qs("Failed to save the screenshot image"));
return false;
}
return true;
}
示例11: 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;
}
示例12: packageThemes
bool packageThemes(
const QString &szPackagePath,
const QString &szPackageName,
const QString &szPackageVersion,
const QString &szPackageDescription,
const QString &szPackageAuthor,
const QString &szPackageImagePath,
KviPointerList<KviThemeInfo> &lThemeInfoList,
QString &szError
)
{
if(szPackagePath.isEmpty())
{
szError = __tr2qs_ctx("Invalid empty package path","theme");
return false;
}
if(szPackageName.isEmpty())
{
szError = __tr2qs_ctx("Invalid empty package name","theme");
return false;
}
QPixmap out;
if(!szPackageImagePath.isEmpty())
{
QImage pix(szPackageImagePath);
if(pix.isNull())
{
szError = __tr2qs_ctx("Failed to load the selected image: please fix it","theme");
return false;
}
if((pix.width() > 300) || (pix.height() > 225))
out = out.fromImage(pix.scaled(300,225,Qt::KeepAspectRatio));
else
out=out.fromImage(pix);
}
KviPackageWriter f;
f.addInfoField("PackageType","ThemePack");
f.addInfoField("ThemePackVersion",KVI_CURRENT_THEME_ENGINE_VERSION);
f.addInfoField("Name",szPackageName);
f.addInfoField("Version",szPackageVersion.isEmpty() ? "1.0.0" : szPackageVersion);
f.addInfoField("Author",szPackageAuthor);
f.addInfoField("Description",szPackageDescription);
// this is the equivalent to an empty date.toString() call, but it's needed
// to ensure qt4 will use the default() locale and not the system() one
f.addInfoField("Date",QDateTime::currentDateTime().toString(Qt::ISODate));
f.addInfoField("Application","KVIrc " KVI_VERSION "." KVI_SOURCES_DATE);
if(!out.isNull())
{
QByteArray * pba = new QByteArray();
QBuffer buffer(pba,0);
buffer.open(QIODevice::WriteOnly);
out.save(&buffer,"PNG");
buffer.close();
f.addInfoField("Image",pba); // cool :) [no disk access needed]
}
QString szTmp;
szTmp.setNum(lThemeInfoList.count());
f.addInfoField("ThemeCount",szTmp);
int iIdx = 0;
for(KviThemeInfo * pInfo = lThemeInfoList.first();pInfo;pInfo = lThemeInfoList.next())
{
if(pInfo->name().isEmpty())
{
szError = __tr2qs_ctx("Invalid theme name","theme");
return false;
}
if(pInfo->version().isEmpty())
{
szError = __tr2qs_ctx("Invalid theme version","theme");
return false;
}
QString szSubdir = pInfo->name() + QString("-") + pInfo->version();
szSubdir.replace(QRegExp("[^a-zA-Z0-9_\\-.][^a-zA-Z0-9_\\-.]*"),"_");
szTmp = QString("Theme%1Name").arg(iIdx);
f.addInfoField(szTmp,pInfo->name());
szTmp = QString("Theme%1Version").arg(iIdx);
f.addInfoField(szTmp,pInfo->version());
szTmp = QString("Theme%1Description").arg(iIdx);
f.addInfoField(szTmp,pInfo->description());
szTmp = QString("Theme%1Date").arg(iIdx);
f.addInfoField(szTmp,pInfo->date());
szTmp = QString("Theme%1Subdirectory").arg(iIdx);
f.addInfoField(szTmp,szSubdir);
szTmp = QString("Theme%1Author").arg(iIdx);
f.addInfoField(szTmp,pInfo->author());
szTmp = QString("Theme%1Application").arg(iIdx);
f.addInfoField(szTmp,pInfo->application());
szTmp = QString("Theme%1ThemeEngineVersion").arg(iIdx);
//.........这里部分代码省略.........
示例13: KviTalWizard
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);
//.........这里部分代码省略.........
示例14: QString
bool SaveThemeDialog::saveTheme()
{
m_pImageSelector->commit();
KviThemeInfo sto;
sto.setName(m_pThemeNameEdit->text());
if(sto.name().isEmpty())
{
QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),__tr2qs_ctx("You must choose a theme name!","theme"),QMessageBox::Ok,
QMessageBox::NoButton,QMessageBox::NoButton);
return false;
}
sto.setAuthor(m_pAuthorNameEdit->text());
sto.setDescription(m_pThemeDescriptionEdit->toPlainText());
// this is the equivalent to an empty date.toString() call, but it's needed
// to ensure qt4 will use the default() locale and not the system() one
sto.setDate(QLocale().toString(QDateTime::currentDateTime(), "ddd MMM d hh:mm:ss yyyy"));
sto.setVersion(m_pThemeVersionEdit->text());
sto.setApplication("KVIrc " KVI_VERSION "." KVI_SOURCES_DATE);
if(sto.version().isEmpty())
sto.setVersion("1.0.0");
QString szSubdir = sto.name() + QString("-") + sto.version();
szSubdir.replace(QRegExp("[^a-zA-Z0-9_\\-.][^a-zA-Z0-9_\\-.]*"),"_");
sto.setDirectoryAndLocation(szSubdir,KviThemeInfo::User);
QString szAbsDir = sto.directory();
if(!KviFileUtils::makeDir(szAbsDir))
{
QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),__tr2qs_ctx("Unable to create theme directory.","theme"),
QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
return false;
}
if(!KviTheme::save(sto))
{
QString szErr = sto.lastError();
QString szMsg2 = QString(__tr2qs_ctx("Unable to save theme: %1","theme")).arg(szErr);
QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),szMsg2,
QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
return false;
}
// write down the screenshot, if needed
if(!m_szScreenshotPath.isEmpty())
{
if(!KviTheme::saveScreenshots(sto,m_szScreenshotPath))
{
QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),__tr2qs_ctx("Failed to load the selected screenshot image: please fix it","theme"),
QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
setCurrentPage(m_pImageSelectionPage);
return false;
}
}
QString szMsg = __tr2qs_ctx("Theme saved successfully to %1","theme").arg(szAbsDir);
QMessageBox::information(this,__tr2qs_ctx("Save Theme - KVIrc","theme"),szMsg,QMessageBox::Ok,
QMessageBox::NoButton,QMessageBox::NoButton);
return true;
}
示例15: parseThemes
void PackThemeDataWidget::parseThemes(KviPointerList<KviThemeInfo> * pThemeInfoList)
{
QString szPackageName;
QString szPackageAuthor;
QString szPackageDescription;
QString szPackageVersion;
KviThemeInfo * pThemeInfo = 0;
bool bPackagePathSet = false;
QString szPackagePath = QDir::homePath();
KviQString::ensureLastCharIs(szPackagePath,QChar(KVI_PATH_SEPARATOR_CHAR));
if(pThemeInfoList->count() > 1)
{
szPackageName = "MyThemes";
szPackageAuthor = __tr2qs_ctx("Your name here","theme");
szPackageVersion = "1.0.0";
szPackageDescription = __tr2qs_ctx("Put a package description here...","theme");
} else {
if(pThemeInfoList->count() > 0)
{
pThemeInfo = pThemeInfoList->first();
szPackageName = pThemeInfo->subdirectory();
szPackageAuthor = pThemeInfo->author();
szPackageDescription = pThemeInfo->description();
szPackageVersion = pThemeInfo->version();
szPackagePath += pThemeInfo->subdirectory();
if(szPackagePath.indexOf(QRegExp("[0-9]\\.[0-9]")) == -1)
{
szPackagePath += "-";
szPackagePath += szPackageVersion;
}
szPackagePath += KVI_FILEEXTENSION_THEMEPACKAGE;
bPackagePathSet = true;
}
}
if(!bPackagePathSet)
{
szPackagePath += szPackageName;
szPackagePath += "-";
szPackagePath += szPackageVersion;
szPackagePath += KVI_FILEEXTENSION_THEMEPACKAGE;
}
QVBoxLayout * pLayout = new QVBoxLayout(this);
QString szThemesDescription = "<html><body bgcolor=\"#ffffff\">";
int iIdx = 0;
QPixmap pixScreenshot;
QString szScreenshotPath;
for(pThemeInfo = pThemeInfoList->first(); pThemeInfo; pThemeInfo = pThemeInfoList->next())
{
QString szThemeDescription;
if(pixScreenshot.isNull())
{
pixScreenshot = pThemeInfo->smallScreenshot();
if(!pixScreenshot.isNull())
szScreenshotPath = pThemeInfo->smallScreenshotPath();
}
ThemeFunctions::getThemeHtmlDescription(
szThemeDescription,
pThemeInfo->name(),
pThemeInfo->version(),
pThemeInfo->description(),
pThemeInfo->subdirectory(),
pThemeInfo->application(),
pThemeInfo->author(),
pThemeInfo->date(),
pThemeInfo->themeEngineVersion(),
pThemeInfo->smallScreenshot(),
iIdx
);
if(iIdx > 0)
szThemesDescription += "<hr>";
szThemesDescription += szThemeDescription;
iIdx++;
}
szThemesDescription += "</body></html>";
QTextEdit * pTextEdit = new QTextEdit(this);
pTextEdit->setBackgroundRole(QPalette::Window);
pTextEdit->setReadOnly(true);
QTextDocument * pDoc = new QTextDocument(pTextEdit);
pDoc->setHtml(szThemesDescription);
pTextEdit->setDocument(pDoc);
pLayout->addWidget(pTextEdit);
setField("packageName",QVariant(szPackageName));
setField("packageVersion",szPackageVersion);
setField("packageDescription",szPackageDescription);
//.........这里部分代码省略.........