diff --git a/resources/skins/base/luxuous.xml b/resources/skins/base/luxuous.xml
new file mode 100644
index 000000000..dbc8bed5a
--- /dev/null
+++ b/resources/skins/base/luxuous.xml
@@ -0,0 +1,36 @@
+
+
+ plain
+
+ Martin Rotter
+ rotter.martinos@gmail.com
+
+
+ PGh0bWw+IDxoZWFkPiA8c3R5bGU+cHJle3doaXRlLXNwYWNlOnByZS13cmFwfS5oZWFkZXJ0ZXh0
+e2ZvbnQtc2l6ZToxOXB4O21hcmdpbi1ib3R0b206MTBweH0uaGVhZGVye2ZvbnQtc2l6ZToxNXB4
+Oy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDFzIGVhc2Utb3V0O2JhY2tncm91bmQ6LXdl
+YmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCgwJSwj
+NDU0ODRkKSxjb2xvci1zdG9wKDEwMCUsIzAwMDAwMCkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5l
+YXItZ3JhZGllbnQodG9wLCM0NTQ4NGQgMCwjMDAwMDAwIDEwMCUpOy13ZWJraXQtYm9yZGVyLXJh
+ZGl1czozcHg7dGV4dC1zaGFkb3c6MCAwIDFweCAjZmZmO2ZpbHRlcjpkcm9wc2hhZG93KGNvbG9y
+PSNmZmZmZmYsb2ZmeD0wLG9mZnk9MCk7cGFkZGluZzo4cHg7bWFyZ2luOjVweCBhdXRvIDVweCBh
+dXRvO2NvbG9yOndoaXRlfS5oZWFkZXIgYXtjb2xvcjp3aGl0ZX0uY29udGVudHtmb250LXNpemU6
+MTRweDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90
+dG9tLGNvbG9yLXN0b3AoMCUscmdiYSgyMzgsMjM4LDIzOCwwLjY2KSksY29sb3Itc3RvcCgxMDAl
+LHJnYmEoMjM4LDIzOCwyMzgsMC42NikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRp
+ZW50KHRvcCxyZ2JhKDIzOCwyMzgsMjM4LDAuNjYpIDAscmdiYSgyMzgsMjM4LDIzOCwwLjY2KSAx
+MDAlKTstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4O21hcmdpbjo1cHggYXV0byA1cHggYXV0bztw
+YWRkaW5nOjhweH0uZm9vdGVye2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRp
+Y2FsLWFsaWduOm1pZGRsZTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZCAxcyBlYXNlLW91
+dDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9t
+LGNvbG9yLXN0b3AoMCUsIzQ1NDg0ZCksY29sb3Itc3RvcCgxMDAlLCMwMDAwMDApKTtiYWNrZ3Jv
+dW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjNDU0ODRkIDAsIzAwMDAwMCAxMDAlKTst
+d2Via2l0LWJvcmRlci1yYWRpdXM6M3B4O3RleHQtc2hhZG93OjAgMCAxcHggI2ZmZjtmaWx0ZXI6
+ZHJvcHNoYWRvdyhjb2xvcj0jZmZmZmZmLG9mZng9MCxvZmZ5PTApO3BhZGRpbmc6OHB4O21hcmdp
+bjo1cHggYXV0byA1cHggYXV0bztjb2xvcjp3aGl0ZX08L3N0eWxlPiA8dGl0bGU+JTE8L3RpdGxl
+PiA8L2hlYWQ+IDxib2R5PiA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+IDxkaXYgY2xhc3M9XCJoZWFk
+ZXJ0ZXh0XCI+JTE8L2Rpdj4gJTI8YnI+IDxhIGhyZWY9XCIlM1wiPiUzPC9hPiA8L2Rpdj4gPGRp
+diBjbGFzcz1cImNvbnRlbnRcIj4gJTQgPC9kaXY+IDxkaXYgY2xhc3M9XCJmb290ZXJcIj4gJTUg
+PC9kaXY+IDwvYm9keT4gPC9odG1sPg==
+
+
\ No newline at end of file
diff --git a/resources/skins/base/plain.xml b/resources/skins/base/plain.xml
deleted file mode 100644
index 2cd28f993..000000000
--- a/resources/skins/base/plain.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- plain
-
- Martin Rotter
- rotter.martinos@gmail.com
-
-
-
- %1 %4
-
-
-
\ No newline at end of file
diff --git a/resources/skins/base/vergilius.xml b/resources/skins/base/vergilius.xml
new file mode 100644
index 000000000..a8e59d906
--- /dev/null
+++ b/resources/skins/base/vergilius.xml
@@ -0,0 +1,36 @@
+
+
+ vergilius
+
+ Martin Rotter
+ rotter.martinos@gmail.com
+
+
+ PGh0bWw+IDxoZWFkPiA8c3R5bGU+cHJle3doaXRlLXNwYWNlOnByZS13cmFwfS5oZWFkZXJ0ZXh0
+e2ZvbnQtc2l6ZToxOXB4O21hcmdpbi1ib3R0b206MTBweH0uaGVhZGVye2ZvbnQtc2l6ZToxNXB4
+Oy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDFzIGVhc2Utb3V0O2JhY2tncm91bmQ6LXdl
+YmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCgwJSwj
+NDU0ODRkKSxjb2xvci1zdG9wKDEwMCUsIzAwMDAwMCkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5l
+YXItZ3JhZGllbnQodG9wLCM0NTQ4NGQgMCwjMDAwMDAwIDEwMCUpOy13ZWJraXQtYm9yZGVyLXJh
+ZGl1czozcHg7dGV4dC1zaGFkb3c6MCAwIDFweCAjZmZmO2ZpbHRlcjpkcm9wc2hhZG93KGNvbG9y
+PSNmZmZmZmYsb2ZmeD0wLG9mZnk9MCk7cGFkZGluZzo4cHg7bWFyZ2luOjVweCBhdXRvIDVweCBh
+dXRvO2NvbG9yOndoaXRlfS5oZWFkZXIgYXtjb2xvcjp3aGl0ZX0uY29udGVudHtmb250LXNpemU6
+MTRweDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90
+dG9tLGNvbG9yLXN0b3AoMCUscmdiYSgyMzgsMjM4LDIzOCwwLjY2KSksY29sb3Itc3RvcCgxMDAl
+LHJnYmEoMjM4LDIzOCwyMzgsMC42NikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRp
+ZW50KHRvcCxyZ2JhKDIzOCwyMzgsMjM4LDAuNjYpIDAscmdiYSgyMzgsMjM4LDIzOCwwLjY2KSAx
+MDAlKTstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4O21hcmdpbjo1cHggYXV0byA1cHggYXV0bztw
+YWRkaW5nOjhweH0uZm9vdGVye2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRp
+Y2FsLWFsaWduOm1pZGRsZTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZCAxcyBlYXNlLW91
+dDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9t
+LGNvbG9yLXN0b3AoMCUsIzQ1NDg0ZCksY29sb3Itc3RvcCgxMDAlLCMwMDAwMDApKTtiYWNrZ3Jv
+dW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjNDU0ODRkIDAsIzAwMDAwMCAxMDAlKTst
+d2Via2l0LWJvcmRlci1yYWRpdXM6M3B4O3RleHQtc2hhZG93OjAgMCAxcHggI2ZmZjtmaWx0ZXI6
+ZHJvcHNoYWRvdyhjb2xvcj0jZmZmZmZmLG9mZng9MCxvZmZ5PTApO3BhZGRpbmc6OHB4O21hcmdp
+bjo1cHggYXV0byA1cHggYXV0bztjb2xvcjp3aGl0ZX08L3N0eWxlPiA8dGl0bGU+JTE8L3RpdGxl
+PiA8L2hlYWQ+IDxib2R5PiA8ZGl2IGNsYXNzPSJoZWFkZXIiPiA8ZGl2IGNsYXNzPSJoZWFkZXJ0
+ZXh0Ij4lMTwvZGl2PiAlMjxicj4gPGEgaHJlZj0iJTMiPiUzPC9hPiA8L2Rpdj4gPGRpdiBjbGFz
+cz0iY29udGVudCI+ICU0IDwvZGl2PiA8ZGl2IGNsYXNzPSJmb290ZXIiPiAlNSA8L2Rpdj4gPC9i
+b2R5PiA8L2h0bWw+
+
+
\ No newline at end of file
diff --git a/src/gui/skinfactory.cpp b/src/gui/skinfactory.cpp
index 4be44a61e..b698d65f3 100644
--- a/src/gui/skinfactory.cpp
+++ b/src/gui/skinfactory.cpp
@@ -14,6 +14,10 @@ QPointer SkinFactory::s_instance;
SkinFactory::SkinFactory(QObject *parent) : QObject(parent) {
}
+// TODO: Skin "base/vergilius.xml" is now NEEDED for rssguard
+// to run. IT IS DEFAULT skin. It sets no styles and stylesheet.
+// It just contains markup for webbrowser.
+
SkinFactory::~SkinFactory() {
qDebug("Destroying SkinFactory instance.");
}
@@ -28,16 +32,6 @@ SkinFactory *SkinFactory::getInstance() {
void SkinFactory::loadCurrentSkin() {
QString skin_name_from_settings = getSelectedSkinName();
-
- if (skin_name_from_settings == APP_THEME_SYSTEM) {
- m_currentSkin = generateDefaultSkin();
-
- // User selected default skin for loading.
- // NOTE: No need to do anything here.
- qDebug("'Default system skin' loaded.");
- return;
- }
-
bool skin_parsed;
Skin skin_data = getSkinInfo(skin_name_from_settings, &skin_parsed);
@@ -62,21 +56,6 @@ void SkinFactory::loadCurrentSkin() {
}
}
-Skin SkinFactory::generateDefaultSkin() {
- Skin default_skin;
-
- default_skin.m_author = "-";
- default_skin.m_baseName = APP_THEME_SYSTEM;
- default_skin.m_email = "-";
- default_skin.m_version = "-";
- default_skin.m_visibleName = tr("default system skin");
-
- // NOTE: Used http://www.htmlcompressor.com/compressor/ for compression.
- default_skin.m_layoutMarkup = " %1 %4
";
-
- return default_skin;
-}
-
bool SkinFactory::loadSkinFromData(QString skin_data, const QString &skin_path) {
QStringList skin_parts = skin_path.split('/', QString::SkipEmptyParts);
@@ -112,7 +91,7 @@ void SkinFactory::setCurrentSkinName(const QString &skin_name) {
QString SkinFactory::getSelectedSkinName() {
return Settings::getInstance()->value(APP_CFG_GUI,
"skin",
- APP_THEME_SYSTEM).toString();
+ "base/vergilius.xml").toString();
}
QString SkinFactory::getCurrentSkinName() {
@@ -123,26 +102,13 @@ QString SkinFactory::getCurrentMarkup() {
return m_currentSkin.m_layoutMarkup;
}
-Skin SkinFactory::getSkinInfo(const QString &skin_name, bool *ok) {
- if (skin_name == APP_THEME_SYSTEM) {
- if (ok != NULL) {
- *ok = true;
- }
-
- if (m_currentSkin.m_baseName == APP_THEME_SYSTEM) {
- return m_currentSkin;
- }
- else {
- return generateDefaultSkin();
- }
- }
-
+Skin SkinFactory::getSkinInfo(const QString &skin_name, bool *ok) {
Skin skin;
QXmlQuery query;
QString styles;
QFile skin_file(APP_SKIN_PATH + QDir::separator() + skin_name);
- if (!skin_file.open(QIODevice::ReadOnly) || !query.setFocus(&skin_file)) {
+ if (!skin_file.open(QIODevice::Text | QIODevice::ReadOnly) || !query.setFocus(&skin_file)) {
if (ok) {
*ok = false;
}
@@ -157,6 +123,7 @@ Skin SkinFactory::getSkinInfo(const QString &skin_name, bool *ok) {
// Obtain skin raw data.
query.setQuery("string(skin/data)");
query.evaluateTo(&skin.m_rawData);
+ skin.m_rawData = QByteArray::fromBase64(skin.m_rawData.toLocal8Bit());
// Obtain style name.
query.setQuery("string(/skin/style)");
@@ -181,6 +148,7 @@ Skin SkinFactory::getSkinInfo(const QString &skin_name, bool *ok) {
// Obtain layout markup.
query.setQuery("string(/skin/markup)");
query.evaluateTo(&skin.m_layoutMarkup);
+ skin.m_layoutMarkup = QByteArray::fromBase64(skin.m_layoutMarkup.toLocal8Bit());
// Obtain other information.
skin.m_baseName = skin_name;
@@ -192,7 +160,7 @@ Skin SkinFactory::getSkinInfo(const QString &skin_name, bool *ok) {
if (ok) {
*ok = !skin.m_author.isEmpty() && !skin.m_version.isEmpty() &&
!skin.m_baseName.isEmpty() && !skin.m_email.isEmpty() &&
- !skin.m_rawData.isEmpty() && !skin.m_stylesNames.isEmpty();
+ !skin.m_layoutMarkup.isEmpty();
}
return skin;
@@ -200,9 +168,6 @@ Skin SkinFactory::getSkinInfo(const QString &skin_name, bool *ok) {
QList SkinFactory::getInstalledSkins() {
QList skins;
-
- skins.append(generateDefaultSkin());
-
bool skin_load_ok;
QStringList skin_directories = QDir(APP_SKIN_PATH).entryList(QDir::Dirs |
QDir::NoDotAndDotDot |
diff --git a/src/gui/skinfactory.h b/src/gui/skinfactory.h
index f9e6c8451..ee81ef758 100644
--- a/src/gui/skinfactory.h
+++ b/src/gui/skinfactory.h
@@ -31,9 +31,6 @@ class SkinFactory : public QObject {
// external resources.
bool loadSkinFromData(QString skin_data, const QString &skin_path);
- // Generates "default" skin.
- Skin generateDefaultSkin();
-
public:
// Singleton getter.
static SkinFactory *getInstance();