Commit 7ba2e311 authored by Jonah Brüchert's avatar Jonah Brüchert 🌳 Committed by Linus Jahn

Add about page (#79)

Closes #69.
parent ee83a3e0
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="512"
width="512"
viewBox="0 0 511.99999 511.99999"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="kaidan.svg"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs8">
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter3374">
<feFlood
flood-opacity="0.498039"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood3376" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite3378" />
<feGaussianBlur
in="composite1"
stdDeviation="16.0317"
result="blur"
id="feGaussianBlur3380" />
<feOffset
dx="6"
dy="6"
result="offset"
id="feOffset3382" />
<feComposite
in2="SourceGraphic"
operator="out"
result="composite2"
id="feComposite3384"
in="offset" />
</filter>
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter4106">
<feFlood
flood-opacity="0.498039"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood4108" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite4110" />
<feGaussianBlur
in="composite1"
stdDeviation="0.4"
result="blur"
id="feGaussianBlur4112" />
<feOffset
dx="0.3"
dy="0.5"
result="offset"
id="feOffset4114" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="composite2"
id="feComposite4116" />
</filter>
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter4262">
<feFlood
flood-opacity="0.498039"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood4264" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="xor"
result="composite1"
id="feComposite4266" />
<feGaussianBlur
in="composite1"
stdDeviation="12.1693"
result="blur"
id="feGaussianBlur4268" />
<feOffset
dx="0.3"
dy="0.5"
result="offset"
id="feOffset4270" />
<feComposite
in="offset"
in2="SourceGraphic"
operator="atop"
result="composite2"
id="feComposite4272" />
</filter>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="959"
id="namedview6"
showgrid="false"
units="px"
inkscape:zoom="1"
inkscape:cx="271.84225"
inkscape:cy="215.72799"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<metadata
id="metadata4">
<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
id="g3475"
transform="matrix(0.93998932,0,0,0.93998932,15.595123,15.13034)">
<path
sodipodi:nodetypes="ssssss"
inkscape:connector-curvature="0"
id="path3142"
d="m 477.93542,256 c 0,122.57154 -99.36387,221.93541 -221.93542,221.93541 -61.28577,0 -148.76963,7.15903 -188.932044,-33.00337 C 26.905544,404.76963 34.064575,317.28577 34.064575,256 34.064575,133.42846 133.42845,34.064587 256,34.06459 c 122.57155,0 221.93542,99.36387 221.93542,221.93541 z"
style="fill:#ffffff;fill-opacity:1;stroke:#2e8c4f;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3374)" />
<path
sodipodi:nodetypes="ssssss"
inkscape:connector-curvature="0"
id="path3142-3"
d="m 463.61417,256 c 0,114.66214 -92.95203,207.61417 -207.61417,207.61417 -57.33107,0 -141.23461,8.76199 -178.80538,-28.80878 C 39.623841,397.23461 48.385834,313.33107 48.385834,256 48.385834,141.33786 141.33786,48.385836 256,48.385834 370.66214,48.385834 463.61417,141.33786 463.61417,256 Z"
style="fill:#3bb566;fill-opacity:1;stroke:#349e59;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4262)" />
</g>
<flowRoot
xml:space="preserve"
id="flowRoot3222"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.32816887;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4106)"
transform="matrix(2.2837215,-0.31626359,0.37102306,2.182668,1115.1127,448.91465)"><flowRegion
id="flowRegion3224"><rect
id="rect3226"
width="198"
height="214"
x="-354"
y="-278"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.32816887;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRegion><flowPara
id="flowPara3228"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:180px;line-height:125%;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.32816887;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRoot> <g
id="g3468"
transform="matrix(0.93998932,0,0,0.93998932,15.595123,15.13034)">
<rect
ry="21.276838"
rx="21.276838"
y="130"
x="118.99999"
height="41"
width="278"
id="rect4252"
style="opacity:1;fill:#35a45c;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="opacity:1;fill:#35a45c;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3468"
width="351"
height="41"
x="84.999992"
y="213.66666"
rx="21.276838"
ry="21.276838" />
<rect
ry="21.276838"
rx="21.276838"
y="297.33331"
x="84.999992"
height="41"
width="340"
id="rect3470"
style="opacity:1;fill:#35a45c;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="opacity:1;fill:#35a45c;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4276"
width="190"
height="41"
x="172"
y="381"
rx="21.276838"
ry="21.276838" />
<circle
r="20.5"
cy="401.5"
cx="130.5"
id="path3474"
style="opacity:1;fill:#35a45c;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
transform="matrix(8.1756744,-0.74654333,0.93521524,8.2151983,-1083.1735,-876.90377)"
style="font-style:normal;font-weight:normal;font-size:37.37741852px;line-height:125.19999743%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#246d3d;stroke-width:0.3105686;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4106);image-rendering:optimizeQuality"
id="flowRoot3214">
<path
d="m 146.43772,148.50726 q -0.78126,-4.37505 -3.12504,-9.68761 l 3.9063,-1.09377 q 2.34377,5.78132 3.12503,9.84387 l -3.90629,0.93751 z m 15.46893,-9.06261 q -1.87502,21.71901 -21.25025,26.40656 l -2.03128,-3.75004 q 18.12522,-3.75004 19.21898,-23.12527 l 4.06255,0.46875 z m -23.75028,11.56264 q -2.34378,-6.25007 -4.5313,-9.21886 l 3.59379,-1.40627 q 2.03127,2.65629 4.68755,9.06261 l -3.75004,1.56252 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40.00046921px;line-height:125%;font-family:'DejaVu Serif';-inkscape-font-specification:'DejaVu Serif Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#246d3d;stroke-width:0.3105686;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4447"
inkscape:connector-curvature="0" />
</g>
</svg>
......@@ -60,5 +60,9 @@
<source>Logout</source>
<translation>Abmelden</translation>
</message>
<message>
<source>About</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
......@@ -56,5 +56,9 @@
<source>Logout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
......@@ -56,5 +56,9 @@
<source>Logout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
......@@ -60,5 +60,9 @@
<source>Logout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
......@@ -4,5 +4,6 @@
<file alias="qml/RosterPage.qml">src/qml/RosterPage.qml</file>
<file alias="qml/LoginPage.qml">src/qml/LoginPage.qml</file>
<file alias="qml/ChatPage.qml">src/qml/ChatPage.qml</file>
<file alias="qml/AboutPage.qml">src/qml/AboutPage.qml</file>
</qresource>
</RCC>
......@@ -216,3 +216,8 @@ QString Kaidan::getResourcePath(QString name_)
qWarning() << "Could NOT find media file:" << name_;
return QString("");
}
QString Kaidan::getVersionString()
{
return QString(VERSION_STRING);
}
......@@ -62,6 +62,8 @@ public:
MessageController* getMessageController();
Q_INVOKABLE QString getResourcePath(QString);
Q_INVOKABLE QString getVersionString();
signals:
void rosterControllerChanged();
......
/*
* Kaidan - Cross platform XMPP client
*
* Copyright (C) 2017 JBBgameich <jbb.mail@gmx.de>
*
* Kaidan 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.
*
* Kaidan 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 Kaidan. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.1
import QtQuick.Layouts 1.2
import QtQuick.Controls 2.0 as Controls
import org.kde.kirigami 1.0 as Kirigami
Kirigami.ScrollablePage {
id: aboutPage
title: qsTr("About")
Column {
width: parent.width
Image {
source: kaidan.getResourcePath("images/kaidan.svg")
height: aboutPage.height * 0.5
fillMode: Image.PreserveAspectFit
anchors.horizontalCenter: parent.horizontalCenter
}
Kirigami.Label {
font.bold: true
text: "<h2>Kaidan " + kaidan.getVersionString() + "</h2>"
anchors.horizontalCenter: parent.horizontalCenter
}
Kirigami.Label {
text: qsTr("A simple, user-friendly Jabber/XMPP client")
anchors.horizontalCenter: parent.horizontalCenter
}
Kirigami.Label {
text: qsTr("License:") + " GPLv3+ / CC BY-SA 4.0"
anchors.horizontalCenter: parent.horizontalCenter
}
Kirigami.Label {
text: "Copyright (C) 2016-2017 Kaidan developers and contributors"
anchors.horizontalCenter: parent.horizontalCenter
}
Controls.ToolButton {
text: qsTr("Sourcecode on Github")
onClicked: Qt.openUrlExternally("https://github.com/KaidanIM/Kaidan")
anchors.horizontalCenter: parent.horizontalCenter
}
Controls.Button {
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Close")
onClicked: pageStack.pop()
}
}
}
......@@ -49,6 +49,16 @@ Kirigami.ApplicationWindow {
// open login page
pageStack.push(loginPage);
}
},
Kirigami.Action {
text: qsTr("About")
iconName: "help-about"
onTriggered: {
// prevent opening the about page multiple times
pageStack.pop(rosterPage);
// open login page
pageStack.push(aboutPage);
}
}
]
}
......@@ -57,6 +67,7 @@ Kirigami.ApplicationWindow {
Component {id: chatPage; ChatPage {}}
Component {id: loginPage; LoginPage {}}
Component {id: rosterPage; RosterPage {}}
Component {id: aboutPage; AboutPage {}}
// when the window was closed, disconnect from jabber server
onClosing: {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment