mirror of
https://github.com/martinrotter/rssguard.git
synced 2025-02-06 12:25:31 +01:00
allow optional style file for skins
This commit is contained in:
parent
c19469a9b0
commit
3bfee2c8c8
@ -26,7 +26,7 @@
|
|||||||
<url type="donation">https://github.com/sponsors/martinrotter</url>
|
<url type="donation">https://github.com/sponsors/martinrotter</url>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
<releases>
|
<releases>
|
||||||
<release version="4.0.3" date="2021-10-01"/>
|
<release version="4.0.3" date="2021-10-04"/>
|
||||||
</releases>
|
</releases>
|
||||||
<content_rating type="oars-1.0">
|
<content_rating type="oars-1.0">
|
||||||
<content_attribute id="violence-cartoon">none</content_attribute>
|
<content_attribute id="violence-cartoon">none</content_attribute>
|
||||||
|
@ -75,6 +75,7 @@
|
|||||||
<file>skins/vergilius/html_enclosure_image.html</file>
|
<file>skins/vergilius/html_enclosure_image.html</file>
|
||||||
<file>skins/vergilius/html_single_message.html</file>
|
<file>skins/vergilius/html_single_message.html</file>
|
||||||
<file>skins/vergilius/html_wrapper.html</file>
|
<file>skins/vergilius/html_wrapper.html</file>
|
||||||
|
<file>skins/vergilius/html_style.css</file>
|
||||||
<file>skins/vergilius/metadata.xml</file>
|
<file>skins/vergilius/metadata.xml</file>
|
||||||
<file>skins/vergilius/theme.css</file>
|
<file>skins/vergilius/theme.css</file>
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Here is overview of all placeholders used throughtout the skin:
|
|||||||
%data% - is replaced by current absolute path to user data folder.
|
%data% - is replaced by current absolute path to user data folder.
|
||||||
|
|
||||||
html_wrapper.html:
|
html_wrapper.html:
|
||||||
|
%style% - Skin-wide CSS, will be replaced by custom CSS if skin provides it in file "style.css".
|
||||||
%1 - Title of the article.
|
%1 - Title of the article.
|
||||||
%2 - Body of the preview which is composed from:
|
%2 - Body of the preview which is composed from:
|
||||||
- single html_single_message.html (single article preview),
|
- single html_single_message.html (single article preview),
|
||||||
|
2052
resources/skins/vergilius/html_style.css
Executable file
2052
resources/skins/vergilius/html_style.css
Executable file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -91,7 +91,9 @@
|
|||||||
|
|
||||||
#define EXECUTION_LINE_SEPARATOR "#"
|
#define EXECUTION_LINE_SEPARATOR "#"
|
||||||
#define EXTERNAL_TOOL_SEPARATOR "|||"
|
#define EXTERNAL_TOOL_SEPARATOR "|||"
|
||||||
|
|
||||||
#define USER_DATA_PLACEHOLDER "%data%"
|
#define USER_DATA_PLACEHOLDER "%data%"
|
||||||
|
#define SKIN_STYLE_PLACEHOLDER "%style%"
|
||||||
|
|
||||||
#define CLI_VER_SHORT "v"
|
#define CLI_VER_SHORT "v"
|
||||||
#define CLI_VER_LONG "version"
|
#define CLI_VER_LONG "version"
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include "miscellaneous/skinfactory.h"
|
#include "miscellaneous/skinfactory.h"
|
||||||
|
|
||||||
|
#include "exceptions/ioexception.h"
|
||||||
#include "miscellaneous/application.h"
|
#include "miscellaneous/application.h"
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
@ -143,9 +144,24 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const {
|
|||||||
// So if one uses "%data%/images/border.png" in QSS then it is
|
// So if one uses "%data%/images/border.png" in QSS then it is
|
||||||
// replaced by fully absolute path and target file can
|
// replaced by fully absolute path and target file can
|
||||||
// be safely loaded.
|
// be safely loaded.
|
||||||
|
//
|
||||||
|
// %style% placeholder is used in main wrapper HTML file to be replaced with custom skin-wide CSS.
|
||||||
skin.m_layoutMarkupWrapper = QString::fromUtf8(IOFactory::readFile(skin_folder + QL1S("html_wrapper.html")));
|
skin.m_layoutMarkupWrapper = QString::fromUtf8(IOFactory::readFile(skin_folder + QL1S("html_wrapper.html")));
|
||||||
skin.m_layoutMarkupWrapper = skin.m_layoutMarkupWrapper.replace(QSL(USER_DATA_PLACEHOLDER),
|
skin.m_layoutMarkupWrapper = skin.m_layoutMarkupWrapper.replace(QSL(USER_DATA_PLACEHOLDER),
|
||||||
skin_folder_no_sep);
|
skin_folder_no_sep);
|
||||||
|
|
||||||
|
try {
|
||||||
|
auto custom_css = IOFactory::readFile(skin_folder + QL1S("html_style.css"));
|
||||||
|
|
||||||
|
skin.m_layoutMarkupWrapper = skin.m_layoutMarkupWrapper.replace(QSL(SKIN_STYLE_PLACEHOLDER),
|
||||||
|
QString::fromUtf8(custom_css));
|
||||||
|
}
|
||||||
|
catch (const IOException& ex) {
|
||||||
|
qWarningNN << "Skin"
|
||||||
|
<< QUOTE_W_SPACE(skin_name)
|
||||||
|
<< "does not support separated custom CSS.";
|
||||||
|
}
|
||||||
|
|
||||||
skin.m_enclosureImageMarkup = QString::fromUtf8(IOFactory::readFile(skin_folder + QL1S("html_enclosure_image.html")));
|
skin.m_enclosureImageMarkup = QString::fromUtf8(IOFactory::readFile(skin_folder + QL1S("html_enclosure_image.html")));
|
||||||
skin.m_enclosureImageMarkup = skin.m_enclosureImageMarkup.replace(QSL(USER_DATA_PLACEHOLDER),
|
skin.m_enclosureImageMarkup = skin.m_enclosureImageMarkup.replace(QSL(USER_DATA_PLACEHOLDER),
|
||||||
skin_folder_no_sep);
|
skin_folder_no_sep);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user