Signin UI improvements and icons update

This commit is contained in:
Muki 2019-03-02 14:02:23 +01:00
parent 7e990982c7
commit 5b1bdf869f
38 changed files with 1426 additions and 210 deletions

View file

@ -143,7 +143,8 @@ OTHER_FILES += \
TextSwitchWithIcon.qml \
TTRssSignInDialog.qml \
UnreadAllDialog.qml \
WebPreviewPage.qml
WebPreviewPage.qml \
ClickableLabel.qml
OTHER_FILES += \
rpm/$${TARGET}.yaml \

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View file

@ -46,10 +46,10 @@ Page {
height: app.flickHeight
model: ListModel {
ListElement { name: "Netvibes"; iconSource: "nv.png"; type: 1}
ListElement { name: "Old Reader"; iconSource: "oldreader.png"; type: 2}
ListElement { name: "Netvibes"; iconSource: "image://icons/icon-m-netvibes"; type: 1}
ListElement { name: "Old Reader"; iconSource: "image://icons/icon-m-oldreader"; type: 2}
/*ListElement { name: "Feedly (comming soon)"; iconSource: "feedly.png"; type: 3}*/
ListElement { name: "Tiny Tiny Rss"; iconSource: "ttrss.png"; type: 4}
ListElement { name: "Tiny Tiny Rss"; iconSource: "image://icons/icon-m-ttrss"; type: 4}
}
header: PageHeader {
@ -59,7 +59,7 @@ Page {
delegate: ListItem {
id: listItem
contentHeight: item.height + 2 * Theme.paddingMedium
highlighted: root.accountType == type
highlighted: root.accountType === type
enabled: type != 3
opacity: enabled ? 1.0 : 0.5

View file

@ -0,0 +1,54 @@
/*
Copyright (C) 2016-2019 Michal Kosciesza <michal@mkiol.net>
This file is part of Kaktus.
Kaktus is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Kaktus is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Kaktus. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.0
import Sailfish.Silica 1.0
ListItem {
id: root
property alias text: label.text
property alias menuText: menuItem.text
signal triggered
onClicked: {
triggered();
}
menu: ContextMenu {
MenuItem {
id: menuItem
onClicked: {
root.triggered()
}
}
}
contentHeight: label.height + 2 * Theme.paddingMedium
Label {
id: label
anchors.verticalCenter: parent.verticalCenter
x: Theme.horizontalPageMargin
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
width: parent.width - 2 * x
color: highlighted ? Theme.highlightColor : Theme.primaryColor
}
}

View file

@ -27,7 +27,7 @@ Dialog {
property bool showBar: false
property int code
canAccept: user.text != "" && validateEmail(user.text) && password.text != ""
canAccept: user.text.length > 0 && password.text.length > 0
allowedOrientations: {
switch (settings.allowedOrientations) {
@ -42,8 +42,7 @@ Dialog {
ActiveDetector {}
SilicaFlickable {
anchors {left: parent.left; right: parent.right }
anchors {top: parent.top}
anchors {left: parent.left; right: parent.right; top: parent.top }
height: app.flickHeight
clip: true
contentHeight: content.height
@ -61,55 +60,37 @@ Dialog {
acceptText : qsTr("Sign in")
}
/*PaddedLabel {
text: qsTr("Only connecting with Netvibes credentials are supported right now.")
}*/
Item {
anchors { left: parent.left; right: parent.right}
Row {
anchors { right: parent.right; rightMargin: Theme.horizontalPageMargin}
spacing: Theme.paddingMedium
height: Math.max(icon.height, label.height)
Image {
id: icon
anchors { right: label.left; rightMargin: Theme.paddingMedium }
source: "nv.png"
anchors.verticalCenter: parent.verticalCenter
source: "image://icons/icon-m-netvibes"
width: Theme.iconSizeMedium
height: Theme.iconSizeMedium
}
Label {
id: label
anchors { right: parent.right; rightMargin: Theme.paddingLarge}
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Netvibes")
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignRight
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeSmall
y: Theme.paddingSmall/2
}
}
Item {
height: Theme.paddingMedium
width: Theme.paddingMedium
}
PaddedLabel {
text: qsTr("Enter username and password below.")
}
Item {
height: Theme.paddingMedium
width: Theme.paddingMedium
}
Spacer {}
TextField {
id: user
anchors.left: parent.left; anchors.right: parent.right
inputMethodHints: Qt.ImhEmailCharactersOnly| Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
placeholderText: qsTr("Enter username here!")
label: qsTr("Username (your e-mail)")
inputMethodHints: Qt.ImhEmailCharactersOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
placeholderText: qsTr("Enter username")
label: qsTr("Username (your e-mail address)")
Component.onCompleted: {
text = settings.getUsername();
@ -126,82 +107,43 @@ Dialog {
anchors.left: parent.left; anchors.right: parent.right
inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | Qt.ImhSensitiveData
echoMode: TextInput.Password
placeholderText: qsTr("Enter password here!")
placeholderText: qsTr("Enter password")
label: qsTr("Password")
EnterKey.iconSource: user.text!=="" ? "image://theme/icon-m-enter-accept" : "image://theme/icon-m-enter-close"
EnterKey.iconSource: user.text.length > 0 ? "image://theme/icon-m-enter-accept" : "image://theme/icon-m-enter-close"
EnterKey.onClicked: {
Qt.inputMethod.hide();
if (user.text!=="")
if (user.text.length > 0)
root.accept();
}
}
SectionHeader {
text: qsTr("Third party services")
text: qsTr("Sign in with other account")
}
Row {
height: 80
spacing: Theme.paddingLarge
x: Theme.paddingLarge
Image {
anchors.verticalCenter: parent.verticalCenter
source: "twitter.png"
width: Theme.iconSizeMedium
height: Theme.iconSizeMedium
}
Button {
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Sign in with Twitter")
onClicked: {
utils.resetQtWebKit();
fetcher.getConnectUrl(1);
}
ClickableLabel {
text: "Twitter"
menuText: qsTr("Sign in")
onTriggered: {
utils.resetQtWebKit();
fetcher.getConnectUrl(1);
}
}
Item {
height: Theme.paddingSmall
width: Theme.paddingSmall
}
Row {
height: 80
spacing: Theme.paddingLarge
x: Theme.paddingLarge
Image {
anchors.verticalCenter: parent.verticalCenter
source: "fb.png"
width: Theme.iconSizeMedium
height: Theme.iconSizeMedium
}
Button {
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Sign in with Facebook")
onClicked: {
utils.resetQtWebKit();
fetcher.getConnectUrl(2);
}
ClickableLabel {
text: "Facebook"
menuText: qsTr("Sign in")
onTriggered: {
utils.resetQtWebKit();
fetcher.getConnectUrl(2);
}
}
Item {
height: Theme.itemSizeLarge
width: Theme.itemSizeLarge
}
Spacer {}
}
}
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
onAccepted: {
settings.setUsername(user.text);
settings.setPassword(password.text);
@ -212,7 +154,7 @@ Dialog {
if (code == 0) {
fetcher.checkCredentials();
} else {
if (! dm.busy)
if (!dm.busy)
dm.cancel();
m.doUpdate = true;
}

View file

@ -26,7 +26,7 @@ Dialog {
property bool showBar: false
property int code
canAccept: user.text != "" && validateEmail(user.text) && password.text != ""
canAccept: user.text.length > 0 && password.text.length > 0
allowedOrientations: {
switch (settings.allowedOrientations) {
@ -41,8 +41,7 @@ Dialog {
ActiveDetector {}
SilicaFlickable {
anchors {left: parent.left; right: parent.right }
anchors {top: parent.top}
anchors {left: parent.left; right: parent.right; top: parent.top }
height: app.flickHeight
clip: true
contentHeight: content.height
@ -60,51 +59,37 @@ Dialog {
acceptText : qsTr("Sign in")
}
Item {
anchors { left: parent.left; right: parent.right}
Row {
anchors { right: parent.right; rightMargin: Theme.horizontalPageMargin}
spacing: Theme.paddingMedium
height: Math.max(icon.height, label.height)
Image {
id: icon
anchors { right: label.left; rightMargin: Theme.paddingMedium }
source: "oldreader.png"
anchors.verticalCenter: parent.verticalCenter
source: "image://icons/icon-m-oldreader"
width: Theme.iconSizeMedium
height: Theme.iconSizeMedium
}
Label {
id: label
anchors { right: parent.right; rightMargin: Theme.paddingLarge}
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Old Reader")
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignRight
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeSmall
y: Theme.paddingSmall/2
}
}
Item {
height: Theme.paddingMedium
width: Theme.paddingMedium
}
PaddedLabel {
text: qsTr("Enter username and password below.")
}
Item {
height: Theme.paddingMedium
width: Theme.paddingMedium
}
Spacer {}
TextField {
id: user
anchors.left: parent.left; anchors.right: parent.right
inputMethodHints: Qt.ImhEmailCharactersOnly| Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
placeholderText: qsTr("Enter username here!")
label: qsTr("Username (your e-mail)")
placeholderText: qsTr("Enter username")
label: qsTr("Username (your e-mail address)")
Component.onCompleted: {
text = settings.getUsername();
@ -121,22 +106,19 @@ Dialog {
anchors.left: parent.left; anchors.right: parent.right
inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | Qt.ImhSensitiveData
echoMode: TextInput.Password
placeholderText: qsTr("Enter password here!")
placeholderText: qsTr("Enter password")
label: qsTr("Password")
EnterKey.iconSource: user.text!=="" ? "image://theme/icon-m-enter-accept" : "image://theme/icon-m-enter-close"
EnterKey.iconSource: user.text.length > 0 ? "image://theme/icon-m-enter-accept" : "image://theme/icon-m-enter-close"
EnterKey.onClicked: {
Qt.inputMethod.hide();
if (user.text!=="")
if (user.text.length > 0)
root.accept();
}
}
}
}
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
Spacer {}
}
}
onAccepted: {
@ -149,7 +131,7 @@ Dialog {
if (code == 0) {
fetcher.checkCredentials();
} else {
if (! dm.busy)
if (!dm.busy)
dm.cancel();
m.doUpdate = true;
}
@ -169,5 +151,4 @@ Dialog {
fetcher.update();
}
}
}

View file

@ -72,10 +72,9 @@ Page {
rightMargin: Theme.paddingMedium
verticalCenter: parent.verticalCenter
}
source: app.isNetvibes ? "nv.png" :
app.isOldReader ? "oldreader.png" :
app.isFeedly ? "feedly.png" :
app.isTTRss ? "ttrss.png" : null
source: app.isNetvibes ? "image://icons/icon-m-netvibes" :
app.isOldReader ? "image://icons/icon-m-oldreader" :
app.isTTRss ? "image://icons/icon-m-ttrss" : null
width: Theme.iconSizeMedium
height: Theme.iconSizeMedium
@ -90,7 +89,6 @@ Page {
}
text: app.isNetvibes ? "Netvibes":
app.isOldReader ? "Old Reader" :
app.isFeedly ? "Feedly" :
app.isTTRss ? "Tiny Tiny Rss" : null
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignRight
@ -309,8 +307,8 @@ Page {
currentIndex: settings.offlineMode ? 1 : 0
menu: ContextMenu {
MenuIconItem { text: qsTr("Online"); iconSource: "image://theme/icon-m-wlan" }
MenuIconItem { text: qsTr("Offline"); iconSource: "image://theme/icon-m-wlan-no-signal" }
MenuItem { text: qsTr("Online"); }
MenuItem { text: qsTr("Offline"); }
}
onCurrentIndexChanged: {
@ -765,7 +763,7 @@ Page {
menu: ContextMenu {
MenuIconItem { text: qsTr("All articles"); iconSource: "image://icons/icon-m-filter-0" }
MenuIconItem { text: app.isNetvibes || app.isFeedly ? qsTr("Unread or saved") : qsTr("Unread or starred"); iconSource: "image://icons/icon-m-filter-1" }
MenuIconItem { text: app.isNetvibes ? qsTr("Unread or saved") : qsTr("Unread or starred"); iconSource: "image://icons/icon-m-filter-1" }
MenuIconItem { text: qsTr("Only unread"); iconSource: "image://icons/icon-m-filter-2" }
}
@ -773,7 +771,7 @@ Page {
settings.filter = currentIndex;
}
description: app.isNetvibes || app.isFeedly ?
description: app.isNetvibes ?
qsTr("List of articles can be filtered to display all articles, unread and saved or only unread.") :
qsTr("List of articles can be filtered to display all articles, unread and starred or only unread.")
}
@ -803,9 +801,7 @@ Page {
TextSwitch {
text: app.isTablet ? qsTr("Double-pane reader") : qsTr("Double-pane reader in landscape")
//text: qsTr("Double-pane reader in landscape")
description: app.isTablet ? qsTr("View with the articles will be splited in to two colums.") : qsTr("View with the articles in the landscape orientation will be splited in to two colums.")
//description: qsTr("View with the articles in the landscape orientation will be splited in to two colums.")
onCheckedChanged: {
settings.doublePane = checked;
}
@ -916,7 +912,7 @@ Page {
}
/*SectionHeader {
text: qsTr("Experimental")
text: qsTr("Experiments")
}
Column {
@ -956,19 +952,6 @@ Page {
}
}*/
/*SectionHeader {
text: qsTr("Other")
}
Button {
text: qsTr("Show User Guide")
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
guide.show();
}
}*/
SectionHeader {
text: qsTr("Other")
}
@ -979,6 +962,14 @@ Page {
Component.onCompleted: checked = settings.ignoreSslErrors
}
/*Button {
text: qsTr("Show User Guide")
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
guide.show();
}
}*/
Spacer {}
}
}

View file

@ -27,7 +27,7 @@ Dialog {
property bool showBar: false
property int code
canAccept: url.text != "" && user.text != "" && password.text != ""
canAccept: url.text.length > 0 && user.text.length > 0 && password.text.length > 0
allowedOrientations: {
switch (settings.allowedOrientations) {
@ -42,8 +42,7 @@ Dialog {
ActiveDetector {}
SilicaFlickable {
anchors {left: parent.left; right: parent.right }
anchors {top: parent.top}
anchors {left: parent.left; right: parent.right; top: parent.top }
height: app.flickHeight
clip: true
contentHeight: content.height
@ -61,50 +60,36 @@ Dialog {
acceptText : qsTr("Sign in")
}
Item {
anchors { left: parent.left; right: parent.right}
Row {
anchors { right: parent.right; rightMargin: Theme.horizontalPageMargin}
spacing: Theme.paddingMedium
height: Math.max(icon.height, label.height)
Image {
id: icon
anchors { right: label.left; rightMargin: Theme.paddingMedium }
source: "ttrss.png"
anchors.verticalCenter: parent.verticalCenter
source: "image://icons/icon-m-ttrss"
width: Theme.iconSizeMedium
height: Theme.iconSizeMedium
}
Label {
id: label
anchors { right: parent.right; rightMargin: Theme.paddingLarge}
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Tiny Tiny Rss")
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignRight
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeSmall
y: Theme.paddingSmall/2
}
}
Item {
height: Theme.paddingMedium
width: Theme.paddingMedium
}
PaddedLabel {
text: qsTr("Enter server url and credentials below.")
}
Item {
height: Theme.paddingMedium
width: Theme.paddingMedium
}
Spacer {}
TextField {
id: url
anchors.left:parent.left; anchors.right: parent.right
inputMethodHints: Qt.ImhEmailCharactersOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
placeholderText: qsTr("Enter the url of your server here!")
placeholderText: qsTr("Enter the url of your server")
label: qsTr("Server Url")
Component.onCompleted: {
@ -121,8 +106,8 @@ Dialog {
id: user
anchors.left: parent.left; anchors.right: parent.right
inputMethodHints: Qt.ImhEmailCharactersOnly| Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
placeholderText: qsTr("Enter username here!")
inputMethodHints: Qt.ImhEmailCharactersOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
placeholderText: qsTr("Enter username")
label: qsTr("Username")
Component.onCompleted: {
@ -140,13 +125,13 @@ Dialog {
anchors.left: parent.left; anchors.right: parent.right
inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | Qt.ImhSensitiveData
echoMode: TextInput.Password
placeholderText: qsTr("Enter password here!")
placeholderText: qsTr("Enter password")
label: qsTr("Password")
EnterKey.iconSource: url.text!=="" && user.text!=="" ? "image://theme/icon-m-enter-accept" : "image://theme/icon-m-enter-close"
EnterKey.iconSource: url.text.length > 0 && user.text.length > 0 ? "image://theme/icon-m-enter-accept" : "image://theme/icon-m-enter-close"
EnterKey.onClicked: {
Qt.inputMethod.hide();
if (url.text!=="" && user.text!=="")
if (url.text.length > 0 && user.text.length > 0)
root.accept();
}
}
@ -159,10 +144,7 @@ Dialog {
Component.onCompleted: checked = settings.ignoreSslErrors
}
Item {
height: Theme.itemSizeLarge
width: Theme.itemSizeLarge
}
Spacer {}
}
}
@ -182,7 +164,7 @@ Dialog {
if (code == 0) {
fetcher.checkCredentials();
} else {
if (! dm.busy)
if (!dm.busy)
dm.cancel();
m.doUpdate = true;
}
@ -202,5 +184,4 @@ Dialog {
fetcher.update();
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -56,7 +56,10 @@ icons = {
"filter-0" : [1],
"filter-2" : [1],
"filter-1" : [1],
"pocket" : [1]
"pocket" : [1],
"netvibes" : [1],
"oldreader" : [1],
"ttrss" : [1]
}
size_names = {

View file

@ -14,7 +14,7 @@
height="64"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="item.svg"
inkscape:export-filename="/home/mkiol/dev/Qt/kaktus/sailfish/images/z1.75/vm0.png"
inkscape:export-xdpi="157.5"
@ -126,13 +126,13 @@
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ff00ff"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="7.9195959"
inkscape:cx="2.698042"
inkscape:cx="2.9936218"
inkscape:cy="20.262003"
inkscape:document-units="px"
inkscape:current-layer="g4227"
@ -142,29 +142,34 @@
inkscape:guide-bbox="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1139"
inkscape:window-height="1131"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:snap-to-guides="false"
inkscape:object-paths="true">
inkscape:object-paths="true"
inkscape:pagecheckerboard="true">
<sodipodi:guide
orientation="1,0"
position="56,0"
id="guide3854" />
id="guide3854"
inkscape:locked="false" />
<sodipodi:guide
orientation="0,1"
position="0,8"
id="guide3858" />
id="guide3858"
inkscape:locked="false" />
<sodipodi:guide
orientation="0,1"
position="0,56"
id="guide3860" />
id="guide3860"
inkscape:locked="false" />
<sodipodi:guide
orientation="1,0"
position="8,0"
id="guide3862" />
id="guide3862"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata7">
@ -174,7 +179,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

248
sailfish/res/netvibes.svg Normal file
View file

@ -0,0 +1,248 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
id="svg2"
version="1.1"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="netvibes.svg"
inkscape:export-filename="/home/mkiol/dev/Qt/kaktus/sailfish/images/z1.75/vm0.png"
inkscape:export-xdpi="157.5"
inkscape:export-ydpi="157.5">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient4596">
<stop
style="stop-color:#39bd00;stop-opacity:1;"
offset="0"
id="stop4592" />
<stop
style="stop-color:#42d900;stop-opacity:1"
offset="1"
id="stop4594" />
</linearGradient>
<linearGradient
y2="73.193703"
x2="73.193497"
y1="12.8066"
x1="12.8064"
gradientUnits="userSpaceOnUse"
id="SVGID_1_"
gradientTransform="translate(-24.964286,937.39789)">
<stop
id="stop4163"
style="stop-color:#1E9BFF"
offset="0.0054" />
<stop
id="stop4165"
style="stop-color:#00C8DE"
offset="1" />
</linearGradient>
<linearGradient
x1="86.129997"
y1="105.11"
x2="84.639999"
y2="20.895"
id="F"
xlink:href="#B"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.25901877,-0.10503029,0.10502386,0.25903461,1.643477,1002.7673)" />
<linearGradient
id="B">
<stop
id="S"
stop-color="#fff"
stop-opacity="0.679" />
<stop
id="T"
offset="1"
stop-opacity="0.333" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.86137996,0,0,0.86143266,4.164053,992.55162)"
y1="2.3900001"
x2="0"
y2="43.610001"
id="I"
xlink:href="#7"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="7">
<stop
id="J"
stop-color="#fff"
stop-opacity="0.8" />
<stop
id="K"
offset="1"
stop-color="#fff"
stop-opacity="0" />
</linearGradient>
<radialGradient
cx="25.25"
cy="41.18"
r="22"
id="G"
xlink:href="#C"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.55866295,-1.635037,1.4491366,0.4952046,-42.065233,1047.3615)" />
<linearGradient
y1="3.0999999"
x2="0"
y2="122.9"
id="C"
gradientUnits="userSpaceOnUse">
<stop
id="U"
stop-color="#888a85" />
<stop
id="V"
offset="1"
stop-color="#babdb6" />
</linearGradient>
<linearGradient
x1="2.3499999"
y1="1.35"
x2="45.650002"
y2="44.650002"
id="H"
xlink:href="#8"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.86137996,0,0,0.86143263,4.1640529,992.55159)" />
<linearGradient
id="8">
<stop
id="L"
stop-color="#888a85" />
<stop
id="M"
offset="0.78"
stop-color="#555753" />
<stop
id="N"
offset="1"
stop-color="#2e3436" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4596"
id="linearGradient4598"
x1="60.816723"
y1="1049.0361"
x2="-3.7898071"
y2="984.42572"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="6.1335332"
inkscape:cx="28.244458"
inkscape:cy="25.542239"
inkscape:document-units="px"
inkscape:current-layer="g4227"
showgrid="false"
borderlayer="false"
showguides="false"
inkscape:guide-bbox="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1131"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:snap-to-guides="false"
inkscape:object-paths="true"
inkscape:pagecheckerboard="true">
<sodipodi:guide
orientation="1,0"
position="56,0"
id="guide3854"
inkscape:locked="false" />
<sodipodi:guide
orientation="0,1"
position="0,8"
id="guide3858"
inkscape:locked="false" />
<sodipodi:guide
orientation="0,1"
position="0,56"
id="guide3860"
inkscape:locked="false" />
<sodipodi:guide
orientation="1,0"
position="8,0"
id="guide3862"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-988.36218)"
style="display:inline">
<g
style="display:none"
id="Layer_2"
display="none"
transform="translate(-105.5,966.32646)" />
<g
id="g4227"
style="display:inline;opacity:1"
inkscape:export-xdpi="134.40314"
inkscape:export-ydpi="134.40314"
transform="matrix(1.1117426,0,0,1.1116746,-3.6125428,-113.8247)">
<rect
style="opacity:1;fill:url(#linearGradient4598);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89951628;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.62745098;paint-order:markers fill stroke"
id="rect4573"
width="57.567284"
height="57.570728"
x="3.2494409"
y="991.46539" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89951628;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.62745098;paint-order:markers fill stroke"
id="rect4575"
width="10.793865"
height="33.283119"
x="26.63615"
y="1003.6093" />
<rect
style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89951628;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.62745098;paint-order:markers fill stroke"
id="rect4575-4"
width="10.794525"
height="33.281082"
x="1014.8535"
y="-48.673622"
transform="rotate(90)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

324
sailfish/res/oldreader.svg Normal file
View file

@ -0,0 +1,324 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
id="svg2"
version="1.1"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="oldreader.svg"
inkscape:export-filename="/home/mkiol/dev/Qt/kaktus/sailfish/images/z1.75/vm0.png"
inkscape:export-xdpi="157.5"
inkscape:export-ydpi="157.5">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient962">
<stop
style="stop-color:#fe2300;stop-opacity:1;"
offset="0"
id="stop958" />
<stop
style="stop-color:#f82000;stop-opacity:1"
offset="1"
id="stop960" />
</linearGradient>
<inkscape:path-effect
effect="bspline"
id="path-effect926"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect4661"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect4643"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect4639"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<linearGradient
y2="73.193703"
x2="73.193497"
y1="12.8066"
x1="12.8064"
gradientUnits="userSpaceOnUse"
id="SVGID_1_"
gradientTransform="translate(-24.964286,937.39789)">
<stop
id="stop4163"
style="stop-color:#1E9BFF"
offset="0.0054" />
<stop
id="stop4165"
style="stop-color:#00C8DE"
offset="1" />
</linearGradient>
<linearGradient
x1="86.129997"
y1="105.11"
x2="84.639999"
y2="20.895"
id="F"
xlink:href="#B"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.25901877,-0.10503029,0.10502386,0.25903461,1.643477,1002.7673)" />
<linearGradient
id="B">
<stop
id="S"
stop-color="#fff"
stop-opacity="0.679" />
<stop
id="T"
offset="1"
stop-opacity="0.333" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.86137996,0,0,0.86143266,4.164053,992.55162)"
y1="2.3900001"
x2="0"
y2="43.610001"
id="I"
xlink:href="#7"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="7">
<stop
id="J"
stop-color="#fff"
stop-opacity="0.8" />
<stop
id="K"
offset="1"
stop-color="#fff"
stop-opacity="0" />
</linearGradient>
<radialGradient
cx="25.25"
cy="41.18"
r="22"
id="G"
xlink:href="#C"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.55866295,-1.635037,1.4491366,0.4952046,-42.065233,1047.3615)" />
<linearGradient
y1="3.0999999"
x2="0"
y2="122.9"
id="C"
gradientUnits="userSpaceOnUse">
<stop
id="U"
stop-color="#888a85" />
<stop
id="V"
offset="1"
stop-color="#babdb6" />
</linearGradient>
<linearGradient
x1="2.3499999"
y1="1.35"
x2="45.650002"
y2="44.650002"
id="H"
xlink:href="#8"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.86137996,0,0,0.86143263,4.1640529,992.55159)" />
<linearGradient
id="8">
<stop
id="L"
stop-color="#888a85" />
<stop
id="M"
offset="0.78"
stop-color="#555753" />
<stop
id="N"
offset="1"
stop-color="#2e3436" />
</linearGradient>
<inkscape:path-effect
effect="bspline"
id="path-effect926-2"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient962"
id="linearGradient964"
x1="52.604267"
y1="1041.9965"
x2="-3.2032022"
y2="984.35913"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="6.1335332"
inkscape:cx="42.652996"
inkscape:cy="24.595063"
inkscape:document-units="px"
inkscape:current-layer="g4227"
showgrid="false"
borderlayer="false"
showguides="false"
inkscape:guide-bbox="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1131"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:snap-to-guides="false"
inkscape:object-paths="true"
inkscape:pagecheckerboard="true">
<sodipodi:guide
orientation="1,0"
position="56,0"
id="guide3854"
inkscape:locked="false" />
<sodipodi:guide
orientation="0,1"
position="0,8"
id="guide3858"
inkscape:locked="false" />
<sodipodi:guide
orientation="0,1"
position="0,56"
id="guide3860"
inkscape:locked="false" />
<sodipodi:guide
orientation="1,0"
position="8,0"
id="guide3862"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-988.36218)"
style="display:inline">
<g
style="display:none"
id="Layer_2"
display="none"
transform="translate(-105.5,966.32646)" />
<g
id="g4227"
style="display:inline;opacity:1"
inkscape:export-xdpi="134.40314"
inkscape:export-ydpi="134.40314"
transform="matrix(1.1117426,0,0,1.1116746,-3.6125428,-113.8247)">
<rect
style="opacity:1;fill:url(#linearGradient964);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89951628;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.62745098;paint-order:markers fill stroke"
id="rect4573"
width="57.567284"
height="57.570728"
x="3.2494404"
y="991.46539" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.62745098;paint-order:markers fill stroke"
d="M 0 9.4980469 L 0 42.212891 A 13.858244 18.42331 0 0 0 7.5 25.849609 A 13.858244 18.42331 0 0 0 0 9.4980469 z "
transform="matrix(0.89948878,0,0,0.89954381,3.2494417,991.46538)"
id="path4632" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
d="m 12.94521,998.12717 c 2.422868,3.34563 5.169562,8.82983 5.169565,16.62733 6e-6,14.5189 -11.439829,27.0954 -24.1043454,27.0954"
id="path4663"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.39709711;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
d="m 17.840982,1009.0482 h 12.37118 c 3.371719,0 6.086135,2.2455 6.086135,5.2924 v 0.4928 c 0,3.0469 -2.714416,5.4479 -6.086135,5.4479 h -12.37118"
id="rect4698"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssc" />
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.39709711;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
d="m 13.42057,997.81663 h 17.281249 c 9.122684,0 16.466936,6.76187 16.466936,15.93687 v 1.4839 c 0,9.175 -7.344252,16.4049 -16.466936,16.4049 h -5.674704"
id="rect4698-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.39709759;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:1"
d="m 47.839546,1042.9176 c -3.743493,-3.8755 -7.486972,-7.751 -11.230434,-11.6265"
id="path924"
inkscape:connector-curvature="0"
inkscape:original-d="m 47.839546,1042.9176 c -3.742578,-3.8764 -7.486057,-7.7519 -11.230434,-11.6265"
sodipodi:nodetypes="cc"
transform="translate(0.10998825,-0.18332495)"
inkscape:path-effect="#path-effect926" />
<path
style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.39709759;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 47.796593,1042.5243 c -0.01626,-3.7444 -0.03252,-7.4898 -0.04877,-11.2332"
id="path924-2"
inkscape:connector-curvature="0"
inkscape:original-d="m 47.796593,1042.5243 c 0,0 -0.03161,-7.4898 -0.04877,-11.2332"
sodipodi:nodetypes="cc"
transform="translate(-22.720708,0.3512)"
inkscape:path-effect="#path-effect926-2" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

643
sailfish/res/ttrss.svg Normal file
View file

@ -0,0 +1,643 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
id="svg2"
version="1.1"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="ttrss.svg"
inkscape:export-filename="/home/mkiol/dev/Qt/kaktus/sailfish/images/z1.75/vm0.png"
inkscape:export-xdpi="157.5"
inkscape:export-ydpi="157.5">
<defs
id="defs4">
<linearGradient
id="linearGradient1086">
<stop
stop-color="#d2d2d2"
id="stop1084"
offset="0" />
<stop
stop-color="#eee"
id="stop1082"
offset="1" />
</linearGradient>
<inkscape:path-effect
effect="bspline"
id="path-effect1208"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="spiro"
id="path-effect1204"
is_visible="true" />
<inkscape:path-effect
effect="bspline"
id="path-effect1196"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect1192"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect926"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect4661"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect4643"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect4639"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<linearGradient
y2="73.193703"
x2="73.193497"
y1="12.8066"
x1="12.8064"
gradientUnits="userSpaceOnUse"
id="SVGID_1_"
gradientTransform="translate(-24.964286,937.39789)">
<stop
id="stop4163"
style="stop-color:#1E9BFF"
offset="0.0054" />
<stop
id="stop4165"
style="stop-color:#00C8DE"
offset="1" />
</linearGradient>
<linearGradient
x1="86.129997"
y1="105.11"
x2="84.639999"
y2="20.895"
id="F"
xlink:href="#B"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.25901877,-0.10503029,0.10502386,0.25903461,1.643477,1002.7673)" />
<linearGradient
id="B">
<stop
id="S"
stop-color="#fff"
stop-opacity="0.679" />
<stop
id="T"
offset="1"
stop-opacity="0.333" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.86137996,0,0,0.86143266,4.164053,992.55162)"
y1="2.3900001"
x2="0"
y2="43.610001"
id="I"
xlink:href="#7"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="7">
<stop
id="J"
stop-color="#fff"
stop-opacity="0.8" />
<stop
id="K"
offset="1"
stop-color="#fff"
stop-opacity="0" />
</linearGradient>
<radialGradient
cx="25.25"
cy="41.18"
r="22"
id="G"
xlink:href="#C"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.55866295,-1.635037,1.4491366,0.4952046,-42.065233,1047.3615)" />
<linearGradient
y1="3.0999999"
x2="0"
y2="122.9"
id="C"
gradientUnits="userSpaceOnUse">
<stop
id="U"
stop-color="#888a85" />
<stop
id="V"
offset="1"
stop-color="#babdb6" />
</linearGradient>
<linearGradient
x1="2.3499999"
y1="1.35"
x2="45.650002"
y2="44.650002"
id="H"
xlink:href="#8"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.86137996,0,0,0.86143263,4.1640529,992.55159)" />
<linearGradient
id="8">
<stop
id="L"
stop-color="#888a85" />
<stop
id="M"
offset="0.78"
stop-color="#555753" />
<stop
id="N"
offset="1"
stop-color="#2e3436" />
</linearGradient>
<inkscape:path-effect
effect="bspline"
id="path-effect926-2"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<linearGradient
id="8-8">
<stop
stop-opacity="0"
id="X" />
<stop
id="Y"
offset="0.5" />
<stop
stop-opacity="0.169"
offset="1"
id="Z" />
</linearGradient>
<linearGradient
id="9">
<stop
stop-opacity="0"
id="a" />
<stop
offset="0.5"
id="b" />
<stop
stop-opacity="0"
id="c"
offset="1" />
</linearGradient>
<linearGradient
id="A">
<stop
id="d" />
<stop
stop-opacity="0.579"
id="e"
offset="1" />
</linearGradient>
<linearGradient
id="B-5">
<stop
stop-color="#8bb300"
id="f" />
<stop
stop-color="#99c500"
id="g"
offset="1" />
</linearGradient>
<linearGradient
id="C-6">
<stop
stop-color="#eee"
id="h" />
<stop
stop-color="#d2d2d2"
id="i"
offset="1" />
</linearGradient>
<linearGradient
id="D">
<stop
id="j" />
<stop
stop-opacity="0.536"
id="k"
offset="1" />
</linearGradient>
<linearGradient
id="E">
<stop
id="l" />
<stop
stop-opacity="0"
stop-color="#ddd"
id="m"
offset="1" />
</linearGradient>
<filter
height="1.29"
y="-0.145"
width="1.294"
x="-0.147"
id="F-5">
<feGaussianBlur
id="n"
stdDeviation="1.81881" />
</filter>
<filter
id="G-2">
<feGaussianBlur
id="o"
stdDeviation="2.58594" />
</filter>
<radialGradient
id="H-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.97467889,0,0.43910718)"
cx="89.51"
cy="22.254"
r="18.279"
xlink:href="#D" />
<linearGradient
y2="25.1"
x2="86.82"
y1="14.793"
x1="98.33"
gradientTransform="matrix(0.86993949,0,0,0.86999271,38.474732,968.84596)"
gradientUnits="userSpaceOnUse"
id="I-9"
xlink:href="#E" />
<radialGradient
r="44.42"
cy="100.32"
cx="81.79"
gradientTransform="matrix(1.8013209,-1.4365997,1.5986914,2.0048092,-213.09128,990.24667)"
gradientUnits="userSpaceOnUse"
id="J-4"
xlink:href="#C-6" />
<linearGradient
gradientTransform="matrix(1,0,0,1.16279,-92.69,113.9685)"
gradientUnits="userSpaceOnUse"
id="K-9"
y2="-325.22"
x2="0"
y1="-195.22"
xlink:href="#Q" />
<linearGradient
gradientUnits="userSpaceOnUse"
id="L-6"
y2="291.34"
x2="0"
y1="33.543"
xlink:href="#S-6" />
<linearGradient
gradientUnits="userSpaceOnUse"
id="M-4"
y2="247.74"
x2="13.447"
y1="221.76"
x1="14.568"
xlink:href="#R" />
<linearGradient
gradientTransform="matrix(1,0,0,1.16279,-255.328,158.321)"
gradientUnits="userSpaceOnUse"
id="N-6"
y2="-325.22"
x2="0"
y1="-195.22"
xlink:href="#Q" />
<linearGradient
gradientTransform="translate(1116.72,504.337)"
gradientUnits="userSpaceOnUse"
id="O"
y2="225.94"
x2="225.94"
y1="30.06"
x1="30.06"
xlink:href="#P" />
<linearGradient
x1="30.06"
y1="30.06"
x2="225.94"
y2="225.94"
id="P"
gradientUnits="userSpaceOnUse">
<stop
stop-color="#e3702d"
id="p" />
<stop
stop-color="#ea7d31"
id="q"
offset="0.107" />
<stop
stop-color="#f69537"
id="r"
offset="0.35" />
<stop
stop-color="#fb9e3a"
id="s"
offset="0.5" />
<stop
stop-color="#ea7c31"
id="t"
offset="0.702" />
<stop
stop-color="#de642b"
id="u"
offset="0.887" />
<stop
stop-color="#d95b29"
id="v"
offset="1" />
</linearGradient>
<linearGradient
id="Q">
<stop
stop-color="#878787"
id="w" />
<stop
stop-opacity="0"
stop-color="#999"
id="x"
offset="1" />
</linearGradient>
<linearGradient
id="R">
<stop
stop-opacity="0.588"
stop-color="#f79537"
id="y" />
<stop
stop-opacity="0"
stop-color="#f79537"
id="z"
offset="1" />
</linearGradient>
<linearGradient
id="S-6">
<stop
stop-color="#f79537"
id="10" />
<stop
stop-opacity="0"
stop-color="#f79537"
id="11"
offset="1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1086"
id="linearGradient964"
x1="97.956642"
y1="1086.5344"
x2="16.408638"
y2="1004.2446"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1117426,0,0,1.1116746,-3.6125428,-1102.1869)" />
<linearGradient
id="linearGradient941"
inkscape:collect="always">
<stop
id="stop937"
offset="0"
style="stop-color:#dc612a;stop-opacity:1" />
<stop
id="stop939"
offset="1"
style="stop-color:#f99a37;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient941"
id="linearGradient964-0"
x1="52.604267"
y1="1041.9965"
x2="-3.2032022"
y2="984.35913"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1117426,0,0,1.1116746,-3.6125428,-1102.1869)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient941"
id="linearGradient1090"
x1="1199.2533"
y1="769.14886"
x2="1050.7297"
y2="619.2735"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="4.6700864"
inkscape:cx="10.200344"
inkscape:cy="9.07672"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
borderlayer="false"
showguides="false"
inkscape:guide-bbox="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1131"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:snap-to-guides="false"
inkscape:object-paths="true"
inkscape:pagecheckerboard="true"
inkscape:snap-nodes="false">
<sodipodi:guide
orientation="1,0"
position="56,0"
id="guide3854"
inkscape:locked="false" />
<sodipodi:guide
orientation="0,1"
position="0,8"
id="guide3858"
inkscape:locked="false" />
<sodipodi:guide
orientation="0,1"
position="0,56"
id="guide3860"
inkscape:locked="false" />
<sodipodi:guide
orientation="1,0"
position="8,0"
id="guide3862"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="bg-yellow"
style="display:none">
<rect
y="3.0000001e-06"
x="-1.4460336e-06"
height="63.999916"
width="64"
id="rect4573"
style="display:inline;opacity:1;fill:url(#linearGradient964);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.62745098;paint-order:markers fill stroke" />
<g
id="7-7-5"
transform="matrix(0.29297324,0,0,0.29297325,-293.73407,-166.99947)"
style="display:inline;opacity:0.75;fill:url(#linearGradient1090);fill-opacity:1;stroke:none;stroke-width:1.10295844">
<circle
style="fill:url(#linearGradient1090);fill-opacity:1;stroke:none;stroke-width:1.10295844"
id="U-1-5"
transform="translate(980.571,555.791)"
r="24"
cy="189"
cx="68" />
<path
style="fill:url(#linearGradient1090);fill-opacity:1;stroke:none;stroke-width:1.10295844"
id="V-3-8"
d="m 1140.5714,768.79075 h -34 c 0,-45.28735 -36.7126,-82 -82,-82 v -34 c 64.0651,0 116,51.93497 116,116 z"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient1090);fill-opacity:1;stroke:none;stroke-width:1.10295844"
id="W-8"
d="m 1164.5714,768.79075 c 0,-77.31986 -62.6801,-140 -140,-140 v -35 c 96.6499,0 175,78.35017 175,175 z"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="bg-white"
style="display:inline"
sodipodi:insensitive="true">
<rect
y="3.0000001e-06"
x="-1.4460336e-06"
height="63.999916"
width="64"
id="rect4573-4"
style="display:inline;opacity:1;fill:url(#linearGradient964-0);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.62745098;paint-order:markers fill stroke" />
</g>
<g
inkscape:label="rss"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-988.36218)"
style="display:none"
sodipodi:insensitive="true">
<g
style="display:none"
id="Layer_2"
display="none"
transform="translate(-105.5,966.32646)" />
<g
id="7-7"
transform="matrix(0.29297324,0,0,0.29297325,-293.73407,821.36271)"
style="display:inline;opacity:0.75;fill:#f99b37;fill-opacity:1;stroke:none;stroke-width:1.10295844">
<circle
style="fill:#f99b37;fill-opacity:1;stroke:none;stroke-width:1.10295844"
id="U-1"
transform="translate(980.571,555.791)"
r="24"
cy="189"
cx="68" />
<path
style="fill:#f99b37;fill-opacity:1;stroke:none;stroke-width:1.10295844"
id="V-3"
d="m 1140.5714,768.79075 h -34 c 0,-45.28735 -36.7126,-82 -82,-82 v -34 c 64.0651,0 116,51.93497 116,116 z"
inkscape:connector-curvature="0" />
<path
style="fill:#f99b37;fill-opacity:1;stroke:none;stroke-width:1.10295844"
id="W"
d="m 1164.5714,768.79075 c 0,-77.31986 -62.6801,-140 -140,-140 v -35 c 96.6499,0 175,78.35017 175,175 z"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="t"
style="display:inline">
<path
sodipodi:nodetypes="ccccccccccccccccc"
inkscape:connector-curvature="0"
id="path1198"
d="m 32.186447,43.31662 4.122342,-16.7933 10.397458,0.091 2.519206,-8.9013 -10.763887,0.091 2.977247,-11.7462798 -14.153369,3.02845 -2.387997,8.7343298 -6.702047,0.066 -2.625744,8.5655 6.93107,-0.066 -3.497923,14.2755 v 0 l -0.320626,1.4224 c -3.986917,17.8761 14.51174,13.7653 21.069451,12.4314 0.669895,-2.908 1.461308,-5.8002 2.099419,-8.6766 -6.822374,1.9084 -10.740126,1.5236 -9.6646,-2.5243 z"
style="display:inline;fill:#ffffff;fill-rule:evenodd;stroke:#2b4265;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -1,3 +1,22 @@
/*
Copyright (C) 2014-2019 Michal Kosciesza <michal@mkiol.net>
This file is part of Kaktus.
Kaktus is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Kaktus is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Kaktus. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef SAILFISH
#include <sailfishapp.h>
#include <mlite5/MGConfItem>
@ -11,10 +30,14 @@
IconProvider::IconProvider() : QQuickImageProvider(QQuickImageProvider::Pixmap)
{
this->themeDir = IconProvider::themeDirPath();
}
QString IconProvider::themeDirPath()
{
QString themeDir;
#ifdef SAILFISH
// Getting pixel ratio
double ratio = MGConfItem("/desktop/sailfish/silica/theme_pixel_ratio").value().toDouble();
//qDebug() << "ratio:" << ratio;
if (ratio == 0) {
qWarning() << "Pixel ratio is 0, defaulting to 1.0.";
themeDir = SailfishApp::pathTo("images/z1.0").toString(QUrl::RemoveScheme);
@ -31,19 +54,19 @@ IconProvider::IconProvider() : QQuickImageProvider(QQuickImageProvider::Pixmap)
}
if (!QDir(themeDir).exists()) {
qWarning() << "Theme " + themeDir + " for ratio " + ratio + " doesn't exist!";
qWarning() << "Theme" << themeDir << "for ratio" << ratio << "doesn't exist!";
themeDir = SailfishApp::pathTo("images/z1.0").toString(QUrl::RemoveScheme);
}
#else
//TODO theme dir for desktop
#endif
#if ANDROID
//TODO
themeDir = "";
#endif
return themeDir;
}
QPixmap IconProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
{
QStringList parts = id.split('?');
QString filepath = themeDir + "/" + parts.at(0) + ".png";
if (!QFile::exists(filepath)) {
// Icon file is not exist -> fallback to default icon
@ -56,8 +79,7 @@ QPixmap IconProvider::requestPixmap(const QString &id, QSize *size, const QSize
*size = sourcePixmap.size();
if (parts.length() > 1)
if (QColor::isValidColor(parts.at(1)))
{
if (QColor::isValidColor(parts.at(1))) {
QPainter painter(&sourcePixmap);
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
painter.fillRect(sourcePixmap.rect(), parts.at(1));

View file

@ -1,3 +1,22 @@
/*
Copyright (C) 2014-2019 Michal Kosciesza <michal@mkiol.net>
This file is part of Kaktus.
Kaktus is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Kaktus is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Kaktus. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef ICONPROVIDER_H
#define ICONPROVIDER_H
@ -9,6 +28,8 @@
class IconProvider : public QQuickImageProvider
{
public:
static QString themeDirPath();
IconProvider();
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize);