Skip to content

Commit

Permalink
Skinsplugin moved from deprecated to generic.
Browse files Browse the repository at this point in the history
New skinsplugin version 0.3.4
  • Loading branch information
Vitozz committed Jan 26, 2022
1 parent 057d119 commit 1fb5a47
Show file tree
Hide file tree
Showing 17 changed files with 59 additions and 65 deletions.
Binary file removed deprecated/skinsplugin/skins.png
Binary file not shown.
1 change: 1 addition & 0 deletions generic/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ set( plugins_list
otrplugin
pepchangenotifyplugin
qipxstatusesplugin
skinsplugin
stopspamplugin
storagenotesplugin
translateplugin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,14 @@ set( PLUGIN skinsplugin )
project(${PLUGIN} LANGUAGES CXX)
cmake_minimum_required(VERSION 3.1.0)
if(POLICY CMP0071)
cmake_policy(SET CMP0071 OLD)
if(${CMAKE_VERSION} VERSION_LESS "3.10.0")
cmake_policy(SET CMP0071 OLD)
else()
cmake_policy(SET CMP0071 NEW)
endif()
endif()
if(POLICY CMP0074)
cmake_policy(SET CMP0074 NEW)
endif()
set( CMAKE_AUTOMOC TRUE )

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
2022-01-26
v0.3.4 - VitoZz
* код плагина приведен в соответствие с новым API
- убраны манипуляции с панелями инструментов
* исправлен скин по-умолчанию
+ добавлено сохранение состояния "галки" бэкапов
* модернизация кода и исправление предупреждений clang

2013-08-13
v0.3.3 - taurus
+ Иконка плагина
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,36 +36,6 @@
<options.ui.chat.css />
<options.ui.look.contactlist.use-outlined-group-headings />
<options.ui.look.contactlist.use-slim-group-headings />
<options.ui.contactlist.toolbars-state />
<options.ui.contactlist.toolbars.m0.actions />
<options.ui.contactlist.toolbars.m0.dock.nl />
<options.ui.contactlist.toolbars.m0.dock.position />
<options.ui.contactlist.toolbars.m0.key />
<options.ui.contactlist.toolbars.m0.locked />
<options.ui.contactlist.toolbars.m0.name />
<options.ui.contactlist.toolbars.m0.visible />
<options.ui.contactlist.toolbars.m1.actions />
<options.ui.contactlist.toolbars.m1.dock.nl />
<options.ui.contactlist.toolbars.m1.dock.position />
<options.ui.contactlist.toolbars.m1.key />
<options.ui.contactlist.toolbars.m1.locked />
<options.ui.contactlist.toolbars.m1.name />
<options.ui.contactlist.toolbars.m1.visible />
<options.ui.contactlist.toolbars.m2.actions />
<options.ui.contactlist.toolbars.m2.dock.nl />
<options.ui.contactlist.toolbars.m2.dock.position />
<options.ui.contactlist.toolbars.m2.key />
<options.ui.contactlist.toolbars.m2.locked />
<options.ui.contactlist.toolbars.m2.name />
<options.ui.contactlist.toolbars.m2.visible />
<options.ui.contactlist.toolbars.m3.actions />
<options.ui.contactlist.toolbars.m3.dock.nl />
<options.ui.contactlist.toolbars.m3.dock.position />
<options.ui.contactlist.toolbars.m3.key />
<options.ui.contactlist.toolbars.m3.locked />
<options.ui.contactlist.toolbars.m3.name />
<options.ui.contactlist.toolbars.m3.visible />
<options.ui.save.toolbars-state />
<options.ui.tabs.grouping />
<options.iconsets.clients />
<options.iconsets.custom-status />
Expand Down Expand Up @@ -128,7 +98,6 @@
<options.ui.muc.use-hash-nick-coloring />
<options.ui.muc.use-highlighting />
<options.ui.muc.use-nick-coloring />
<options.ui.decorate-windows />
<options.ui.look.colors.chat.composing-color />
<options.ui.look.colors.chat.unread-message-color />
<options.ui.look.colors.contactlist.status-change-animation1 />
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,15 @@ void OptionsParser::variantToElement(const QVariant &var, QDomElement &e)
{
QString type = var.typeName();
if (type == "QVariantList") {
for (auto v : var.toList()) {
const auto varList = var.toList();
for (const auto &v : varList) {
QDomElement item_element = e.ownerDocument().createElement("item");
variantToElement(v, item_element);
e.appendChild(item_element);
}
} else if (type == "QStringList") {
for (auto s : var.toStringList()) {
const auto varStrList = var.toStringList();
for (const auto &s : varStrList) {
QDomElement item_element = e.ownerDocument().createElement("item");
QDomText text = e.ownerDocument().createTextNode(s);
item_element.appendChild(text);
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "Skins Plugin",
"shortname": "skins",
"version": "0.3.3",
"version": "0.3.4",
"priority": 2,
"icon": "base64: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"
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ QPixmap Skin::previewPixmap()
QDir dir(skinFolder());
QString skinName = name();
QPixmap pix = QPixmap();
for (auto fileName : dir.entryList(QDir::Files)) {
const auto dirList = dir.entryList(QDir::Files);
for (const auto &fileName : dirList) {
if ((fileName.endsWith(".png", Qt::CaseInsensitive) || fileName.endsWith(".jpg", Qt::CaseInsensitive))
&& skinName.left(skinName.length() - 4) == fileName.left(fileName.length() - 4)) {
pix = QPixmap(dir.absolutePath() + "/" + fileName);
Expand Down
File renamed without changes.
Empty file added generic/skinsplugin/skins.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@
#include "skin.h"
#include "ui_skinsplugin.h"

#define cVer "0.3.3"

class SkinsPlugin : public QObject,
public PsiPlugin,
public ApplicationInfoAccessor,
Expand All @@ -45,18 +43,15 @@ class SkinsPlugin : public QObject,
public:
SkinsPlugin();
virtual QString name() const;
virtual QString shortName() const;
virtual QString version() const;
virtual QWidget *options();
virtual bool enable();
virtual bool disable();
virtual void applyOptions() {};
virtual void applyOptions();
virtual void restoreOptions();
virtual void setApplicationInfoAccessingHost(ApplicationInfoAccessingHost *host);
virtual void setOptionAccessingHost(OptionAccessingHost *host);
virtual void optionChanged(const QString & /*option*/) {};
virtual QString pluginInfo();
virtual QPixmap icon() const;

private:
bool enabled;
Expand Down Expand Up @@ -91,11 +86,7 @@ SkinsPlugin::SkinsPlugin()
psiOptions = nullptr;
}

QString SkinsPlugin::name() const { return "Skins Plugin"; }

QString SkinsPlugin::shortName() const { return "skins"; }

QString SkinsPlugin::version() const { return cVer; }
QString SkinsPlugin::name() const { return "Skins Plugin"; };

bool SkinsPlugin::enable()
{
Expand Down Expand Up @@ -143,27 +134,43 @@ QWidget *SkinsPlugin::options()
connect(ui_.pb_save, &QPushButton::released, this, &SkinsPlugin::overwrite);
connect(ui_.lw_skins, &QListWidget::currentRowChanged, this, &SkinsPlugin::enableButton);
connect(ui_.lw_skins, &QListWidget::doubleClicked, this, &SkinsPlugin::loadPreview);
connect(ui_.cb_backup, &QCheckBox::toggled, this, [this]() {
ui_.cb_hack->toggle(); /* enable Apply button */
});

ui_.cb_hack->setVisible(false); // Hack, to enable Apply button
ui_.cb_hack->setVisible(false); // Hide hack widget needed to enable Apply button

return optionsWidget;
}

void SkinsPlugin::restoreOptions() { }
void SkinsPlugin::applyOptions()
{
if (!ui_.cb_backup)
return;
bool checked = psiOptions->getPluginOption("backup", false).toBool();
if (ui_.cb_backup->isChecked() != checked)
psiOptions->setPluginOption("backup", QVariant(ui_.cb_backup->isChecked()));
}

void SkinsPlugin::restoreOptions()
{
if (!ui_.cb_backup)
return;
ui_.cb_backup->setChecked(psiOptions->getPluginOption("backup", true).toBool());
}

void SkinsPlugin::setApplicationInfoAccessingHost(ApplicationInfoAccessingHost *host) { appInfo = host; }

void SkinsPlugin::setOptionAccessingHost(OptionAccessingHost *host) { psiOptions = host; }

void SkinsPlugin::updateSkins()
{
QStringList dirs;
dirs << appInfo->appHomeDir(ApplicationInfoAccessingHost::DataLocation) << appInfo->appResourcesDir() + "/skins"
<< appInfo->appHomeDir(ApplicationInfoAccessingHost::DataLocation) + "/skins";
const QStringList dirs
= { appInfo->appHomeDir(ApplicationInfoAccessingHost::DataLocation), appInfo->appResourcesDir() + "/skins",
appInfo->appHomeDir(ApplicationInfoAccessingHost::DataLocation) + "/skins" };

for (auto dirName : dirs) {
for (const auto &dirName : dirs)
findSkins(dirName);
}
}

void SkinsPlugin::findSkins(QString path)
Expand All @@ -172,7 +179,8 @@ void SkinsPlugin::findSkins(QString path)
return;

QDir dir(path);
for (auto filename : dir.entryList(QDir::Files)) {
const auto dirList = dir.entryList(QDir::Files);
for (const auto &filename : dirList) {
if (filename.endsWith(".skn", Qt::CaseInsensitive)) {
QString file = dir.absolutePath() + QString("/") + filename;
if (skins_.contains(file))
Expand All @@ -185,9 +193,9 @@ void SkinsPlugin::findSkins(QString path)
}
}

for (auto subDir : dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) {
const auto subDirList = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
for (const auto &subDir : subDirList)
findSkins(path + QDir::separator() + subDir);
}
}

void SkinsPlugin::updateButtonPressed()
Expand All @@ -202,7 +210,7 @@ void SkinsPlugin::updateButtonPressed()

void SkinsPlugin::loadPreview()
{
Skin *skin = (Skin *)ui_.lw_skins->currentItem();
Skin *skin = static_cast<Skin *>(ui_.lw_skins->currentItem());
if (!skin)
return;

Expand Down Expand Up @@ -249,7 +257,7 @@ void SkinsPlugin::enableButton()
void SkinsPlugin::getSkinName()
{
QString name, author, version;
Skin * skin = (Skin *)ui_.lw_skins->currentItem();
Skin *skin = static_cast<Skin *>(ui_.lw_skins->currentItem());
if (skin) {
QFile file(skin->filePass());
QDomDocument doc;
Expand Down Expand Up @@ -311,7 +319,7 @@ void SkinsPlugin::createSkin(const QString &name, const QString &author, const Q

void SkinsPlugin::applySkin()
{
Skin *skin = (Skin *)ui_.lw_skins->currentItem();
Skin *skin = static_cast<Skin *>(ui_.lw_skins->currentItem());
if (!skin)
return;

Expand Down Expand Up @@ -416,7 +424,7 @@ bool SkinsPlugin::validateOption(QString optionName)
{
bool b = (optionName.contains("options.ui.") || optionName.contains("options.iconsets."))
&& !optionName.contains("notifications.send-receipts") && !optionName.contains("spell-check.enabled")
&& !optionName.contains("service-discovery");
&& !optionName.contains("service-discovery") && !optionName.contains("options.ui.contactlist.toolbars");

return b;
}
Expand All @@ -428,7 +436,7 @@ void SkinsPlugin::overwrite()
if (ret == QMessageBox::Cancel)
return;

Skin *skin = (Skin *)ui_.lw_skins->currentItem();
Skin *skin = static_cast<Skin *>(ui_.lw_skins->currentItem());
if (!skin)
return;

Expand Down Expand Up @@ -460,7 +468,7 @@ void SkinsPlugin::overwrite()

void SkinsPlugin::removeSkin()
{
Skin *skin = (Skin *)ui_.lw_skins->currentItem();
Skin *skin = static_cast<Skin *>(ui_.lw_skins->currentItem());
if (!skin)
return;

Expand Down Expand Up @@ -494,6 +502,4 @@ QString SkinsPlugin::pluginInfo()
"This allows all settings (icons, toolbar layout) to be picked up correctly. ");
}

QPixmap SkinsPlugin::icon() const { return QPixmap(":/skinsplugin/skins.png"); }

#include "skinsplugin.moc"
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 1fb5a47

Please sign in to comment.