Some skins rework, preparation for newspaper mode.

This commit is contained in:
Martin Rotter 2014-01-03 11:16:23 +01:00
parent e26c54fb2f
commit 335e965581
6 changed files with 34 additions and 19 deletions

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.12">
<name>luxuous</name>
<author>
<name>Martin Rotter</name>
<email>rotter.martinos@gmail.com</email>
</author>
<style>oxygen,fusion,plastique</style>
<markup>PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgIHByZSB7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcCB9DQoNCiAgICAgIC5oZWFkZXJ0ZXh0IHsNCiAgICAgICAgICBmb250LXNpemU6IDE5cHg7DQogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciB7DQogICAgICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxcyBlYXNlLW91dDsNCiAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAlLCM0NTQ4NGQpLGNvbG9yLXN0b3AoMTAwJSwjMDAwMDAwKSk7DQogICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCM0NTQ4NGQgMCwjMDAwMDAwIDEwMCUpOw0KICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMXB4ICNmZmY7DQogICAgICAgICAgZmlsdGVyOiBkcm9wc2hhZG93KGNvbG9yPSNmZmZmZmYsb2ZmeD0wLG9mZnk9MCk7DQogICAgICAgICAgcGFkZGluZzogOHB4Ow0KICAgICAgICAgIG1hcmdpbjogNXB4IGF1dG8gNXB4IGF1dG87DQogICAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgfQ0KDQogICAgICAgLmhlYWRlciBhIHsgY29sb3I6IHdoaXRlIH0NCg0KICAgICAgLmNvbnRlbnQgew0KICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAlLHJnYmEoMjM4LDIzOCwyMzgsMC42NikpLGNvbG9yLXN0b3AoMTAwJSxyZ2JhKDIzOCwyMzgsMjM4LDAuNjYpKSk7DQogICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHJnYmEoMjM4LDIzOCwyMzgsMC42NikgMCxyZ2JhKDIzOCwyMzgsMjM4LDAuNjYpIDEwMCUpOw0KICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgIG1hcmdpbjogNXB4IGF1dG8gNXB4IGF1dG87DQogICAgICAgICAgcGFkZGluZzogOHB4Ow0KICAgICAgfQ0KDQogICAgICAuZm9vdGVyIHsNCiAgICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDFzIGVhc2Utb3V0Ow0KICAgICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoMCUsIzQ1NDg0ZCksY29sb3Itc3RvcCgxMDAlLCMwMDAwMDApKTsNCiAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzQ1NDg0ZCAwLCMwMDAwMDAgMTAwJSk7DQogICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7DQogICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAxcHggI2ZmZjsNCiAgICAgICAgICBmaWx0ZXI6IGRyb3BzaGFkb3coY29sb3I9I2ZmZmZmZixvZmZ4PTAsb2ZmeT0wKTsNCiAgICAgICAgICBwYWRkaW5nOiA4cHg7DQogICAgICAgICAgbWFyZ2luOiA1cHggYXV0byA1cHggYXV0bzsNCiAgICAgICAgICBjb2xvcjogd2hpdGU7DQogICAgICB9DQogICAgPC9zdHlsZT4NCiAgICA8dGl0bGU+JTE8L3RpdGxlPg0KICA8L2hlYWQ+DQogIDxib2R5Pg0KICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj4NCiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJ0ZXh0XCI+JTE8L2Rpdj4NCiAgICAgICUyPGJyLz4NCiAgICAgIDxhIGhyZWY9XCIlM1wiPiUzPC9hPiANCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPiAlNCA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+ICU1IDwvZGl2Pg0KICA8L2JvZHk+DQo8L2h0bWw+</markup>
<data/>
</skin>

View File

@ -6,7 +6,9 @@
<email>rotter.martinos@gmail.com</email>
</author>
<style/>
<markup> PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgIGJvZHkgew0KICAgICAgICBtYXJnaW46IDBweDsNCiAgICAgICAgcGFkZGluZzogMHB4Ow0KICAgICAgfQ0KICAgIA0KICAgICAgcHJlIHsNCiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVydGV4dCB7DQogICAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciB7DQogICAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDFzIGVhc2Utb3V0Ow0KICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAlLCM0NTQ4NGQpLGNvbG9yLXN0b3AoMTAwJSwjMDAwMDAwKSk7DQogICAgICAgIHRleHQtc2hhZG93OiAwIDAgMXB4ICNmZmY7DQogICAgICAgIGZpbHRlcjogZHJvcHNoYWRvdyhjb2xvcj0jZmZmZmZmLG9mZng9MCxvZmZ5PTApOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIG1hcmdpbjogMHB4IGF1dG87DQogICAgICAgIGNvbG9yOiB3aGl0ZTsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciBhIHsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgfQ0KDQogICAgICAuY29udGVudCB7DQogICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCgkJYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSxyZ2JhKDAsMCwwLDEpKSwgY29sb3Itc3RvcCgxJSxyZ2JhKDAsMCwwLDEpKSwgY29sb3Itc3RvcCgxMyUscmdiYSgyMjQsMjI0LDIyNCwxKSksIGNvbG9yLXN0b3AoMjQlLHJnYmEoMjU1LDI1NSwyNTUsMSkpLCBjb2xvci1zdG9wKDU4JSxyZ2JhKDI1NSwyNTUsMjU1LDEpKSwgY29sb3Itc3RvcCg3MSUscmdiYSgyNTUsMjU1LDI1NSwxKSksIGNvbG9yLXN0b3AoMTAwJSxyZ2JhKDI1NSwyNTUsMjU1LDApKSk7IC8qIENocm9tZSxTYWZhcmk0KyAqLw0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQoJCXBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgIDwvc3R5bGU+DQogICAgPHRpdGxlPg0KICAgICAgJTENCiAgICA8L3RpdGxlPg0KICA8L2hlYWQ+DQogIDxib2R5Pg0KICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJ0ZXh0Ij4NCiAgICAgICAgJTENCiAgICAgIDwvZGl2Pg0KICAgICAgJTIgKCU1KQ0KICAgICAgPGJyPg0KICAgICAgPGEgaHJlZj0iJTMiPg0KICAgICAgJTMNCiAgICAgIDwvYT4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4NCiAgICAgICU0IA0KICAgIDwvZGl2Pg0KICA8L2JvZHk+DQo8L2h0bWw+
<markup_wrapper> PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgIGJvZHkgew0KICAgICAgICBtYXJnaW46IDBweDsNCiAgICAgICAgcGFkZGluZzogMHB4Ow0KICAgICAgfQ0KICAgIA0KICAgICAgcHJlIHsNCiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVydGV4dCB7DQogICAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciB7DQogICAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDFzIGVhc2Utb3V0Ow0KICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAlLCM0NTQ4NGQpLGNvbG9yLXN0b3AoMTAwJSwjMDAwMDAwKSk7DQogICAgICAgIHRleHQtc2hhZG93OiAwIDAgMXB4ICNmZmY7DQogICAgICAgIGZpbHRlcjogZHJvcHNoYWRvdyhjb2xvcj0jZmZmZmZmLG9mZng9MCxvZmZ5PTApOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIG1hcmdpbjogMHB4IGF1dG87DQogICAgICAgIGNvbG9yOiB3aGl0ZTsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciBhIHsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgfQ0KDQogICAgICAuY29udGVudCB7DQogICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCgkJYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSxyZ2JhKDAsMCwwLDEpKSwgY29sb3Itc3RvcCgxJSxyZ2JhKDAsMCwwLDEpKSwgY29sb3Itc3RvcCgxMyUscmdiYSgyMjQsMjI0LDIyNCwxKSksIGNvbG9yLXN0b3AoMjQlLHJnYmEoMjU1LDI1NSwyNTUsMSkpLCBjb2xvci1zdG9wKDU4JSxyZ2JhKDI1NSwyNTUsMjU1LDEpKSwgY29sb3Itc3RvcCg3MSUscmdiYSgyNTUsMjU1LDI1NSwxKSksIGNvbG9yLXN0b3AoMTAwJSxyZ2JhKDI1NSwyNTUsMjU1LDApKSk7IC8qIENocm9tZSxTYWZhcmk0KyAqLw0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQoJCXBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgIDwvc3R5bGU+DQogICAgPHRpdGxlPg0KICAgICAgJTENCiAgICA8L3RpdGxlPg0KICA8L2hlYWQ+DQogIDxib2R5Pg0KCSUyDQogIDwvYm9keT4NCjwvaHRtbD4=
</markup_wrapper>
<markup> PGRpdiBjbGFzcz0iaGVhZGVyIj4NCiAgPGRpdiBjbGFzcz0iaGVhZGVydGV4dCI+DQoJJTENCiAgPC9kaXY+DQogICUyICglNSkNCiAgPGJyPg0KICA8YSBocmVmPSIlMyI+DQogICUzDQogIDwvYT4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iY29udGVudCI+DQogICU0IA0KPC9kaXY+
</markup>
<data/>
</skin>

View File

@ -4,6 +4,15 @@
#include <QTreeView>
// TODO: http://soundguyrob.files.wordpress.com/2011/03/screen-shot-2011-03-01-at-7-45-23-pm.jpg
// přepsat počet nepřečtených zpráv podle screenshotu (tedy smazat asi sloupec "unread")
// a počet nepřečtených přes drawRow kreslit do prvního sloupce
// taky použít ten layout pro zobrazení zprávy
// + NEWSPAPER view -> v currentChanged MessagesView se
// vytáhnou všechny vybrané zprávy a pro každou se vygeneruje ten HTML templejt
// - na tohle udelat metodu v WebBrowseru, neco
// jako navigateToMessages(const QList<Message> &messages)
class FeedsModel;
class FeedsProxyModel;
class FeedsModelFeed;

View File

@ -103,6 +103,10 @@ QString SkinFactory::getCurrentMarkup() {
return m_currentSkin.m_layoutMarkup;
}
QString SkinFactory::getCurrentMarkupLayout() {
return m_currentSkin.m_layoutMarkupWrapper;
}
Skin SkinFactory::getSkinInfo(const QString &skin_name, bool *ok) {
Skin skin;
QString styles;
@ -139,6 +143,10 @@ Skin SkinFactory::getSkinInfo(const QString &skin_name, bool *ok) {
// Obtain version.
skin.m_version = skin_node.attributes().namedItem("version").toAttr().value();
// Obtain layout markup wrapper.
skin.m_layoutMarkupWrapper = skin_node.namedItem("markup_wrapper").toElement().text();
skin.m_layoutMarkupWrapper = QByteArray::fromBase64(skin.m_layoutMarkupWrapper.toLocal8Bit());
// Obtain layout markup.
skin.m_layoutMarkup = skin_node.namedItem("markup").toElement().text();
skin.m_layoutMarkup = QByteArray::fromBase64(skin.m_layoutMarkup.toLocal8Bit());

View File

@ -15,6 +15,7 @@ struct Skin {
QString m_email;
QString m_version;
QString m_rawData;
QString m_layoutMarkupWrapper;
QString m_layoutMarkup;
};
@ -47,6 +48,7 @@ class SkinFactory : public QObject {
// Returns contents of current layout markup.
QString getCurrentMarkup();
QString getCurrentMarkupLayout();
// Returns the name of the skin, that should be activated
// after application restart.

View File

@ -166,13 +166,18 @@ void WebBrowser::clear() {
}
void WebBrowser::navigateToMessage(const Message &message) {
m_webView->setHtml(SkinFactory::getInstance()->getCurrentMarkup().arg(message.m_title,
tr("Written by ") + (message.m_author.isEmpty() ?
tr("uknown author") :
message.m_author),
message.m_url,
message.m_contents,
message.m_created.toString(Qt::DefaultLocaleShortDate)));
QString message_layout = SkinFactory::getInstance()->getCurrentMarkup().arg(message.m_title,
tr("Written by ") + (message.m_author.isEmpty() ?
tr("uknown author") :
message.m_author),
message.m_url,
message.m_contents,
message.m_created.toString(Qt::DefaultLocaleShortDate));
QString layout_wrapper = SkinFactory::getInstance()->getCurrentMarkupLayout().arg(tr("Newspaper view"),
message_layout);
m_webView->setHtml(layout_wrapper);
emit iconChanged(m_index,
IconThemeFactory::getInstance()->fromTheme("mail-mark-read"));
}