Brmbar v3: Support for simple GUI

All the CLI functionality implemented in the GUI.
This commit is contained in:
Petr Baudis 2012-09-05 03:35:09 +02:00
parent 049271118d
commit e428d28e20
15 changed files with 973 additions and 2 deletions

View file

@ -15,7 +15,6 @@ active_credit = None
for line in sys.stdin:
barcode = line.rstrip()
# TODO $neco
if barcode[0] == "$":
credits = {'$02': 20, '$05': 50, '$10': 100, '$20': 200, '$50': 500, '$1k': 1000}
credit = credits[barcode]
@ -25,7 +24,7 @@ for line in sys.stdin:
print("CREDIT " + str(credit))
active_inv_item = None
active_credit = credit
continue;
continue
if barcode == "SCR":
print("SHOW CREDIT")

74
brmbar3/brmbar-gui-qt4.py Executable file
View file

@ -0,0 +1,74 @@
#!/usr/bin/python3
import sys
import psycopg2
from PySide import QtCore, QtGui, QtDeclarative
import brmbar
class ShopAdapter(QtCore.QObject):
""" Interface between QML and the brmbar package """
def __init__(self):
QtCore.QObject.__init__(self)
@QtCore.Slot(str, result='QVariant')
def barcodeInput(self, barcode):
""" Evaluate barcode received on input
Normally, we would return just the account object, but
passing that to QML appears to be very non-trivial.
Therefore, we construct a map that we can pass around easily.
We return None on unrecognized barcode. """
barcode = str(barcode)
if barcode and barcode[0] == "$":
credits = {'$02': 20, '$05': 50, '$10': 100, '$20': 200, '$50': 500, '$1k': 1000}
credit = credits[barcode]
if credit is None:
return None
return { "acctype": "recharge", "amount": str(credit)+".00" }
acct = brmbar.Account.load_by_barcode(db, barcode)
if acct is None:
return None
if acct.acctype == 'debt':
map = acct.__dict__.copy()
map["balance"] = str(acct.balance())
map["negbalance"] = str(-acct.balance())
map["negbalance_str"] = acct.negbalance_str()
return map
elif acct.acctype == "inventory":
buy, sell = acct.currency.rates(currency)
map = acct.__dict__.copy()
map["price"] = str(sell)
return map
else:
return None
@QtCore.Slot('QVariant', 'QVariant', result='QVariant')
def sellItem(self, itemid, userid):
user = brmbar.Account.load(db, id = userid)
shop.sell(item = brmbar.Account.load(db, id = itemid), user = user)
return user.negbalance_str()
@QtCore.Slot('QVariant', 'QVariant', result='QVariant')
def chargeCredit(self, credit, userid):
user = brmbar.Account.load(db, id = userid)
shop.add_credit(credit = credit, user = user)
return user.negbalance_str()
db = psycopg2.connect("dbname=brmbar")
shop = brmbar.Shop.new_with_defaults(db)
currency = shop.currency
app = QtGui.QApplication(sys.argv)
view = QtDeclarative.QDeclarativeView()
ctx = view.rootContext()
ctx.setContextProperty('shop', ShopAdapter())
view.setSource('brmbar-gui-qt4/main.qml')
view.show()
app.exec_()

View file

@ -0,0 +1,34 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
Rectangle {
id: rectangle1
width: 240
height: 83
color: "#000000"
border.color: "#ffffff"
property string text: "Button"
property int fontSize: 46
signal buttonClick
onButtonClick: { /* Supplied by component user. */ }
Text {
id: text1
color: "#ffffff"
text: parent.text
font.pointSize: 44
scale: if (!mousearea1.pressed) { 1 } else { 0.95 }
horizontalAlignment: Text.AlignHCenter
anchors.fill: parent
smooth: true
verticalAlignment: Text.AlignVCenter
}
MouseArea {
id: mousearea1
anchors.fill: parent
onClicked: buttonClick()
}
}

View file

@ -0,0 +1,27 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
Rectangle {
id: clock
width: 320
height: 65
property variant now: new Date()
property variant textColor: "#000000"
property variant textSize: 12
Timer {
id: clockUpdater
interval: 1000 // update clock every second
running: true
repeat: true
onTriggered: {
parent.now = new Date()
}
}
Text {
id: clockLabel
anchors.centerIn: parent
text: Qt.formatDateTime(parent.now, "hh:mm:ss")
color: parent.textColor
font.pointSize: parent.textSize
}
}

View file

@ -0,0 +1,38 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
Item {
id: main_hint
width: 894
height: 80
property variant hint_goal: ""
property variant hint_action: ""
Text {
id: text1
x: 0
y: 0
color: "#ffffff"
text: parent.hint_goal
anchors.bottom: parent.bottom
anchors.bottomMargin: 0
anchors.top: parent.top
anchors.topMargin: 0
font.pointSize: 44
}
Text {
id: text2
x: 11
color: "#40ff5d";
text: parent.hint_action;
anchors.bottom: parent.bottom
anchors.bottomMargin: 0
anchors.top: parent.top
anchors.topMargin: 0
anchors.right: parent.right
anchors.rightMargin: 0
transformOrigin: Item.Center; smooth: true; font.bold: false; wrapMode: Text.NoWrap; font.pointSize: 44;horizontalAlignment: Text.AlignHCenter
}
}

View file

@ -0,0 +1,18 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
TextInput {
id: barcode
x: 433
y: 65
width: 80
height: 100
color: "#ff6464"
text: ""
transformOrigin: Item.Center
visible: true
opacity: 0
font.pixelSize: 12
focus: true
validator: RegExpValidator { regExp: /..*/ } /* non-empty strings; barcode readers send empty lines, ignore these */
}

View file

@ -0,0 +1,80 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import QtQuick 1.0
Rectangle {
width: 1024
height: 768
color: "#000000"
Text {
id: title
x: 65
y: 35
color: "#71cccc"
text: "brmbar v3"
font.pointSize: 36
}
BarClock {
id: clock
x: 328
y: 35
color: "#000000"
textColor: "#71cccc"
textSize: 36
}
Image {
id: image1
x: 688
y: 41
height: 65
smooth: true
fillMode: Image.PreserveAspectFit
source: "brmlab.svg"
}
property alias status_text: status_text_id
Text {
id: status_text_id
x: 65
y: 112
width: 894
color: "#ff4444"
text: ""
horizontalAlignment: Text.AlignHCenter
//anchors.horizontalCenter: clock.horizontalCenter
font.pointSize: 36
state: "HIDDEN"
opacity: 0
states: [
State {
name: "HIDDEN"
PropertyChanges { target: status_text; opacity: 0 }
},
State {
name: "VISIBLE"
PropertyChanges { target: status_text; opacity: 100 }
}
]
transitions: [
Transition {
from: "VISIBLE"
to: "HIDDEN"
NumberAnimation { property: "opacity"; duration: 12000; easing.type: Easing.InOutCubic }
}
]
function setStatus(statusText, statusColor) {
text = statusText
color = statusColor
state = "VISIBLE"
state = "HIDDEN"
}
function hideStatus() {
state = "HIDDEN"
}
}
}

View file

@ -0,0 +1,113 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import QtQuick 1.0
Item {
id: page
anchors.fill: parent
property variant username: ""
property variant userdbid: ""
property variant amount: ""
Text {
id: item_name
x: 65
y: 156
width: 537
height: 160
color: "#ffffff"
text: parent.username ? parent.username : "Credit charge"
wrapMode: Text.WordWrap
verticalAlignment: Text.AlignVCenter
font.pointSize: 44
}
Text {
id: text3
x: 611
y: 156
height: 160
width: 348
color: "#ffff7c"
text: parent.amount
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
font.pointSize: 90
}
BarTextHint {
x: 65
y: 430
hint_goal: parent.amount ? (parent.username ? "Charge now?" : "Charge user:") : "Charge credit:"
hint_action: !(parent.amount && parent.userdbid) ? "Scan barcode now" : ""
}
BarcodeInput {
color: "#00ff00" /* just for debugging */
onAccepted: {
var acct = shop.barcodeInput(text)
text = ""
if (typeof(acct) == "undefined" || (parent.username && acct.acctype != "recharge") || (parent.amount && acct.acctype != "debt")) {
status_text.setStatus("Unknown barcode", "#ff4444")
return
}
if (acct.acctype == "debt") {
username = acct.name
userdbid = acct.id
} else {
amount = acct.amount
}
if (username && amount) {
parent.chargeCredit()
}
}
}
BarButton {
id: charge_button
x: 65
y: 582
width: 360
text: "Charge"
fontSize: 44
visible: parent.amount && parent.userdbid
onButtonClick: {
parent.chargeCredit()
}
}
BarButton {
id: cancel
x: 599
y: 582
width: 360
text: "Cancel"
onButtonClick: {
status_text.setStatus("Charging cancelled", "#ff4444")
loadPage("MainPage")
}
}
Text {
id: text1
x: 112
y: 333
width: 800
height: 80
color: "#ffffff"
text: "Put "+amount+" Kč in the money box now."
visible: amount ? true : false
anchors.horizontalCenterOffset: 0
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pointSize: 36
anchors.horizontalCenter: parent.horizontalCenter
}
function chargeCredit() {
var balance = shop.chargeCredit(amount, userdbid)
status_text.setStatus("Charged! "+username+"'s credit is "+balance+".", "#ffff7c")
loadPage("MainPage")
}
}

View file

@ -0,0 +1,90 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import QtQuick 1.0
Item {
id: page
anchors.fill: parent
property variant name: ""
property variant dbid: ""
property variant price: ""
Text {
id: item_name
x: 65
y: 156
width: 537
height: 160
color: "#ffffff"
text: parent.name
wrapMode: Text.WordWrap
verticalAlignment: Text.AlignVCenter
font.pointSize: 44
}
Text {
id: text3
x: 611
y: 156
height: 160
width: 348
color: "#ffff7c"
text: parent.price
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
font.pointSize: 90
}
BarTextHint {
x: 65
y: 430
hint_goal: "Buy on credit:"
hint_action: "Scan barcode now"
}
BarcodeInput {
color: "#00ff00" /* just for debugging */
onAccepted: {
var acct = shop.barcodeInput(text)
text = ""
if (typeof(acct) == "undefined") {
status_text.setStatus("Unknown barcode", "#ff4444")
return
}
if (acct.acctype != "debt") {
loadPageByAcct(acct)
return
}
var balance = shop.sellItem(dbid, acct.id)
status_text.setStatus("Sold! "+acct.name+"'s credit is "+balance+".", "#ffff7c")
loadPage("MainPage")
}
}
BarButton {
id: pay_cash
x: 65
y: 582
width: 360
text: "Pay by cash"
fontSize: 44
onButtonClick: {
// TODO
status_text.setStatus("Sold! Put " + price + " Kč in the money box.", "#ffff7c")
loadPage("MainPage")
}
}
BarButton {
id: cancel
x: 599
y: 582
width: 360
text: "Cancel"
onButtonClick: {
status_text.setStatus("Transaction cancelled", "#ff4444")
loadPage("MainPage")
}
}
}

View file

@ -0,0 +1,63 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import QtQuick 1.0
Item {
id: page
anchors.fill: parent
BarTextHint {
x: 65
y: 234
hint_goal: "Buy item:"
hint_action: "Scan barcode now"
}
BarcodeInput {
onAccepted: {
var acct = shop.barcodeInput(text)
text = ""
if (typeof(acct) == "undefined") {
status_text.setStatus("Unknown barcode", "#ff4444")
return
}
loadPageByAcct(acct)
}
}
BarButton {
id: select_item
x: 65
y: 430
width: 360
text: "Select Item"
fontSize: 44
}
BarButton {
id: select_credit_user
x: 599
y: 430
width: 360
text: "Credit"
onButtonClick: {
loadPage("ChargeCredit")
}
}
BarButton {
id: stock_manager
x: 65
y: 582
width: 360
text: "Stock Mgmt"
}
BarButton {
id: user_manager
x: 599
y: 582
width: 360
text: "User Mgmt"
}
}

View file

@ -0,0 +1,77 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
Item {
id: page
anchors.fill: parent
property variant name: ""
property variant dbid: ""
property variant negbalance: ""
Text {
id: item_name
x: 65
y: 156
width: 337
height: 160
color: "#ffffff"
text: parent.name
wrapMode: Text.WordWrap
verticalAlignment: Text.AlignVCenter
font.pointSize: 44
}
Text {
id: text3
x: 411
y: 156
height: 160
width: 548
color: "#ffff7c"
text: parent.negbalance
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
font.pointSize: 90
}
BarcodeInput {
onAccepted: {
var acct = shop.barcodeInput(text)
text = ""
if (typeof(acct) == "undefined") {
status_text.setStatus("Unknown barcode", "#ff4444")
return
}
if (acct.acctype == "recharge") {
loadPage("ChargeCredit", { "username": name, "userdbid": dbid, "amount": acct.amount })
return
}
loadPageByAcct(acct)
}
}
BarButton {
id: charge_credit
x: 65
y: 582
width: 360
text: "Charge"
fontSize: 44
onButtonClick: {
loadPage("ChargeCredit", { "username": name, "userdbid": dbid })
}
}
BarButton {
id: cancel
x: 599
y: 582
width: 360
text: "Main Screen"
onButtonClick: {
loadPage("MainPage")
}
}
}

View file

@ -0,0 +1,20 @@
/* File generated by Qt Creator, version 2.5.0 */
import QmlProject 1.1
Project {
mainFile: "brmbar-gui-qt4.qml"
/* Include .qml, .js, and image files from current directory and subdirectories */
QmlFiles {
directory: "."
}
JavaScriptFiles {
directory: "."
}
ImageFiles {
directory: "."
}
/* List of plugin directories passed to QML runtime */
// importPaths: [ "../exampleplugin" ]
}

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by Qt Creator 2.5.0, 2012-09-05T02:10:11. -->
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QString" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">System</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap"/>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">QML Viewer</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">QML Viewer</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmlProjectManager.QmlTarget</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">-1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">-1</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">0</value>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Project.UseGlobal">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">QML Viewer</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmlProjectManager.QmlRunConfiguration</value>
<value type="QString" key="QmlProjectManager.QmlRunConfiguration.MainScript">CurrentFile</value>
<value type="QString" key="QmlProjectManager.QmlRunConfiguration.QDeclarativeViewerArguments"></value>
<value type="int" key="QmlProjectManager.QmlRunConfiguration.QtVersion">2</value>
<valuelist type="QVariantList" key="QmlProjectManager.QmlRunConfiguration.UserEnvironmentChanges"/>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
<value type="QString">{a277f310-b549-4ad7-87ca-cd03f76f19ff}</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">11</value>
</data>
</qtcreator>

View file

@ -0,0 +1,189 @@
<?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"
xml:space="preserve"
height="96"
width="400"
version="1.1"
id="svg2"
inkscape:version="0.47 r22583"
sodipodi:docname="brmlab.svg"><metadata
id="metadata78"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1024"
inkscape:window-height="720"
id="namedview76"
showgrid="false"
inkscape:zoom="2"
inkscape:cx="208.2391"
inkscape:cy="36.746036"
inkscape:window-x="-3"
inkscape:window-y="-3"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:snap-bbox="true"
inkscape:snap-global="true" />
<defs
id="defs4"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 48 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="400 : 48 : 1"
inkscape:persp3d-origin="200 : 32 : 1"
id="perspective80" />
</defs>
<path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 138.5235,47.9225 c -0.80875,2.085 -1.82875,3.32875 -2.725,3.32875 -7.195,0 -24.94,0.0225 -31.97375,0.03125 l 0,-27.4475 31.97375,0.0012 c 1.815,0 4.34625,5.215 4.34625,13.7075 0,3.94625 -0.5925,7.73 -1.62125,10.37875 m 5.475,-22.88625 c -2.39375,-6.155 -6.16375,-7.075 -8.2,-7.075 l -31.97375,-0.0025 0,-12.80625 -5.875,0 0,52.0125 2.9425,-0.0037 c 0,0 25.835,-0.03625 34.90625,-0.03625 2.03625,0 5.80625,-0.9175 8.2,-7.0725 1.30375,-3.35125 2.02,-7.7925 2.02,-12.50875 0,-4.715 -0.71625,-9.1575 -2.02,-12.5075"
id="path10" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 389.4235,47.9225 c -0.80875,2.085 -1.82875,3.32875 -2.7225,3.32875 -7.1975,0 -24.94125,0.0225 -31.97625,0.03125 l 0,-27.4475 31.97625,0.0012 c 1.81375,0 4.345,5.215 4.345,13.7075 0,3.94625 -0.5925,7.73 -1.6225,10.37875 m 5.47625,-22.88625 c -2.39375,-6.155 -6.165,-7.075 -8.19875,-7.075 l -31.97625,-0.0025 0,-12.80625 -5.87375,0 0,52.0125 2.94125,-0.0037 c 0,0 25.83625,-0.03625 34.90875,-0.03625 2.03375,0 5.805,-0.9175 8.19875,-7.0725 1.30375,-3.35125 2.02,-7.7925 2.02,-12.50875 0,-4.715 -0.71625,-9.1575 -2.02,-12.5075"
id="path12" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 301.7235,23.835 c -0.89625,0 -1.91375,1.24375 -2.725,3.32875 -1.03,2.64875 -1.62125,6.43125 -1.62125,10.37875 0,8.4925 2.53125,13.7075 4.34625,13.7075 7.19625,0 24.94,0.0225 31.975,0.03125 l 0,-27.44625 -31.975,0 z m 37.84875,33.32875 -2.94,-0.0038 c 0,0 -25.83625,-0.035 -34.90875,-0.035 -2.035,0 -5.80625,-0.91875 -8.2,-7.07375 -1.3025,-3.35125 -2.02,-7.7925 -2.02,-12.50875 0,-4.715 0.7175,-9.1575 2.02,-12.5075 2.39375,-6.155 6.165,-7.075 8.2,-7.075 l 34.9125,0 2.91979,0.0058 0.0165,39.198 z"
id="path14"
sodipodi:nodetypes="cssscccccssssccc" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 277.2735,57.16 5.874,0 0,-52.0075 -5.874,0 0,52.0075 z"
id="path16" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 191.061,23.06 c -1.0075,-1.47125 -2.7675,-2.98 -5.79125,-4.15625 -3.35,-1.3025 -7.79375,-2.02 -12.50875,-2.02 -4.715,0 -9.15875,0.7175 -12.5075,2.02 -6.155,2.39375 -7.07375,6.16375 -7.07375,8.19875 0,9.87875 -0.0175,30.04875 -0.0175,30.04875 l 5.87375,0.005 c 0,0 0.0175,-20.17375 0.0175,-30.05375 0,-1.81375 5.21375,-4.345 13.7075,-4.345 3.9475,0 7.73,0.59 10.37875,1.62125 1.58875,0.6175 2.6875,1.355 3.1225,2.0675 L 191.061,23.06 z"
id="path18" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 234.6235,27.11 c 0,-1.815 5.24,-4.345 13.73375,-4.345 3.94875,0 7.73,0.59 10.37875,1.62 2.085,0.81125 3.32875,1.83 3.32875,2.725 0,9.0725 0.0188,30.05375 0.0188,30.05375 L 267.956,57.16 c 0,-0.0012 -0.0175,-20.97875 -0.0175,-30.05 0,-2.035 -0.9175,-5.805 -7.0725,-8.2 -3.35125,-1.3025 -7.7925,-2.01875 -12.50875,-2.01875 -4.71625,0 -9.15875,0.71625 -12.50875,2.01875 -1.7975,0.7 -3.16375,1.50625 -4.175,2.3625 -1.01,-0.8475 -2.3675,-1.66875 -4.15,-2.3625 -3.34875,-1.3025 -7.79125,-2.01875 -12.50875,-2.01875 -4.715,0 -9.15625,0.71625 -12.50625,2.01875 -6.15625,2.395 -7.075,6.165 -7.075,8.2 0,9.8775 -0.0163,30.04875 -0.0163,30.04875 l 5.87375,0.005 c 0,0 0.0175,-20.17375 0.0175,-30.05375 0,-1.815 5.215,-4.345 13.70625,-4.345 3.94875,0 7.73125,0.59 10.38,1.62 2.08375,0.81125 3.32875,1.83 3.32875,2.725 0,9.0725 0.0175,30.0575 0.0175,30.0575 l 5.87375,-0.005 c 0,0 0.009,-20.98125 0.009,-30.0525"
id="path20" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 44.7185,8.4475 c -19.99875,0 -36.2675,16.27125 -36.2675,36.27 0,9.6875 3.7725,18.795 10.6225,25.645 6.85125,6.85 15.9575,10.6225 25.645,10.6225 19.99875,0 36.27,-16.27 36.27,-36.2675 -0.0012,-20 -16.27125,-36.27 -36.27,-36.27 m 0,77.91 c -11.12125,0 -21.58,-4.33125 -29.44375,-12.19625 C 7.40975,66.29625 3.0785,55.84 3.0785,44.7175 c 0,-22.96125 18.68,-41.64125 41.64,-41.6425 22.96125,0 41.64125,18.68 41.64125,41.6425 0,22.96 -18.68,41.64 -41.64125,41.64"
id="path22" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 29.611,69.135 c 4.505,2.77875 9.67125,4.24125 15.015,4.24125 5.34375,0 10.51125,-1.4625 15.01625,-4.24125 -1.4825,-2.65375 -1.06625,-6.01 1.16125,-8.2375 1.305,-1.305 3.04,-2.02375 4.885,-2.02375 1.1775,0 2.33125,0.3025 3.34875,0.865 6.91875,-11.21625 5.2525,-25.8825 -4.14625,-35.2825 -3.775,-3.775 -8.46375,-6.3925 -13.61875,-7.615 -0.82875,2.92375 -3.49625,5.0025 -6.645,5.0025 -3.14875,0 -5.81625,-2.07875 -6.645,-5.0025 -5.155,1.2225 -9.845,3.84125 -13.61875,7.61625 -9.40125,9.4 -11.0675,24.065 -4.15,35.28125 1.01875,-0.5625 2.17375,-0.865 3.35,-0.865 1.84625,0 3.58,0.71875 4.88625,2.02375 2.22875,2.2275 2.645,5.58375 1.16125,8.2375 m 15.01375,6.50125 c -6.17625,0 -12.135,-1.8125 -17.2325,-5.24125 l -1.0375,-0.69625 0.795,-0.96125 C 28.681,66.88125 28.55225,64.2 26.8485,62.49625 25.971,61.61875 24.8035,61.135 23.56225,61.135 c -1.0775,0 -2.12625,0.37625 -2.95375,1.05875 L 19.646,62.9875 18.94975,61.9525 C 10.7285,49.73 12.331,33.2875 22.76225,22.8575 27.12475,18.4925 32.621,15.56125 38.656,14.37875 l 1.225,-0.23875 0.12,1.24125 c 0.22875,2.39375 2.2175,4.19875 4.625,4.19875 2.4075,0 4.39625,-1.805 4.62625,-4.19875 l 0.12,-1.24125 1.22375,0.23875 c 6.0325,1.1825 11.53,4.11375 15.89375,8.47625 10.43,10.43125 12.03375,26.875 3.81125,39.0975 l -0.69625,1.035 -0.96125,-0.795 C 67.8135,61.51 66.766,61.135 65.68725,61.135 c -1.24125,0 -2.4075,0.4825 -3.28625,1.36 -1.7025,1.70375 -1.83125,4.38625 -0.30125,6.2425 l 0.79375,0.96125 -1.035,0.69625 C 56.761,73.82375 50.801,75.63625 44.62475,75.63625"
id="path24" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 29.361,29.9225 c -1.17375,0 -2.12875,0.955 -2.12875,2.13 0,1.17375 0.955,2.12875 2.12875,2.12875 1.1725,0 2.12875,-0.955 2.12875,-2.12875 0,-1.175 -0.95625,-2.13 -2.12875,-2.13 m 0,6.52 c -2.4225,0 -4.3925,-1.97 -4.3925,-4.39125 0,-2.42125 1.97,-4.3925 4.3925,-4.3925 2.42125,0 4.39125,1.97125 4.39125,4.3925 0,2.42125 -1.97,4.39125 -4.39125,4.39125"
id="path26" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 25.501,45.1975 c -1.17375,0 -2.12875,0.955 -2.12875,2.13 0,1.175 0.955,2.12875 2.12875,2.12875 1.17375,0 2.13,-0.95375 2.13,-2.12875 0,-1.175 -0.95625,-2.13 -2.13,-2.13 m 0,6.52125 c -2.4225,0 -4.39125,-1.97 -4.39125,-4.39125 0,-2.42125 1.96875,-4.3925 4.39125,-4.3925 2.4225,0 4.3925,1.97125 4.3925,4.3925 0,2.42125 -1.97,4.39125 -4.3925,4.39125"
id="path28" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 63.7485,45.1975 c -1.1725,0 -2.13,0.955 -2.13,2.13 0,1.175 0.9575,2.12875 2.13,2.12875 1.17375,0 2.13,-0.95375 2.13,-2.12875 0,-1.175 -0.95625,-2.13 -2.13,-2.13 m 0,6.52125 c -2.42125,0 -4.3925,-1.97 -4.3925,-4.39125 0,-2.42125 1.97125,-4.3925 4.3925,-4.3925 2.4225,0 4.3925,1.97125 4.3925,4.3925 0,2.42125 -1.97,4.39125 -4.3925,4.39125"
id="path30" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 36.84225,60.385 c -1.17375,0 -2.1275,0.955 -2.1275,2.13 0,1.17375 0.95375,2.12875 2.1275,2.12875 1.17375,0 2.13,-0.955 2.13,-2.12875 0,-1.175 -0.95625,-2.13 -2.13,-2.13 m 0,6.52125 c -2.42125,0 -4.39,-1.97 -4.39,-4.39125 0,-2.42125 1.96875,-4.3925 4.39,-4.3925 2.4225,0 4.3925,1.97125 4.3925,4.3925 0,2.42125 -1.97,4.39125 -4.3925,4.39125"
id="path32" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 59.886,29.9225 c -1.17375,0 -2.13,0.955 -2.13,2.13 0,1.17375 0.95625,2.12875 2.13,2.12875 1.17375,0 2.1275,-0.955 2.1275,-2.12875 0,-1.175 -0.95375,-2.13 -2.1275,-2.13 m 0,6.52 c -2.4225,0 -4.3925,-1.97 -4.3925,-4.39125 0,-2.42125 1.97,-4.3925 4.3925,-4.3925 2.42125,0 4.39,1.97125 4.39,4.3925 0,2.42125 -1.96875,4.39125 -4.39,4.39125"
id="path34" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 52.411,60.385 c -1.17375,0 -2.13,0.95625 -2.13,2.13 0,1.17375 0.95625,2.12875 2.13,2.12875 1.1725,0 2.12875,-0.955 2.12875,-2.12875 0,-1.17375 -0.95625,-2.13 -2.12875,-2.13 m 0,6.52125 c -2.4225,0 -4.3925,-1.97 -4.3925,-4.39125 0,-2.42125 1.97,-4.3925 4.3925,-4.3925 2.42125,0 4.39125,1.97125 4.39125,4.3925 0,2.42125 -1.97,4.39125 -4.39125,4.39125"
id="path36" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 44.636,29.9225 c -1.17375,0 -2.13,0.955 -2.13,2.13 0,1.17375 0.95625,2.12875 2.13,2.12875 1.1725,0 2.12875,-0.955 2.12875,-2.12875 0,-1.175 -0.95625,-2.13 -2.12875,-2.13 m 0,6.52 c -2.4225,0 -4.3925,-1.97 -4.3925,-4.39125 0,-2.42125 1.97,-4.3925 4.3925,-4.3925 2.42125,0 4.39125,1.97125 4.39125,4.3925 0,2.42125 -1.97,4.39125 -4.39125,4.39125"
id="path38" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 38.596,47.2975 12.0775,0 0,-5.075 -12.0775,0 0,5.075 z m 14.34,2.2625 -16.60125,0 0,-9.59875 16.60125,0 0,9.59875 z"
id="path40" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 98.0985,67.81 2.72625,0 0,6.13125 c 1.13875,-1.38875 2.5525,-2.0825 4.23875,-2.0825 0.92,0 1.74375,0.23 2.47375,0.69 0.7275,0.45875 1.27,1.0925 1.625,1.9025 0.355,0.8075 0.53125,2.0125 0.53125,3.61 l 0,7.85 -2.72625,0 0,-8.52375 c 0,-1.00875 -0.2475,-1.82125 -0.74125,-2.435 -0.495,-0.61375 -1.14625,-0.92125 -1.955,-0.92125 -0.59875,0 -1.16375,0.155 -1.69375,0.465 -0.53,0.30875 -1.11375,0.82375 -1.7525,1.5425 l 0,9.8725 -2.72625,0 0,-18.10125 z"
id="path42" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 122.2485,83.185 0,-4.08875 L 120.421,79.8 c -0.92875,0.36875 -1.585,0.74125 -1.97,1.11625 -0.385,0.37375 -0.5775,0.84125 -0.5775,1.4 0,0.56875 0.1825,1.03375 0.54625,1.39375 0.365,0.35875 0.8375,0.53875 1.41625,0.53875 0.87,0 1.6725,-0.355 2.4125,-1.06375 m 2.6825,-5.55875 0,5.85875 c 0,0.47 0.15875,0.70375 0.47875,0.70375 0.33,0 0.84375,-0.245 1.54375,-0.73375 l 0,1.6625 c -0.61875,0.4 -1.11625,0.67125 -1.4925,0.8175 -0.37375,0.14375 -0.76625,0.21625 -1.175,0.21625 -1.16875,0 -1.8575,-0.45875 -2.0675,-1.3775 -1.15875,0.8975 -2.3925,1.3475 -3.7,1.3475 -0.95875,0 -1.75875,-0.31625 -2.39625,-0.95125 -0.64,-0.63375 -0.96,-1.43125 -0.96,-2.38875 0,-0.87 0.3125,-1.64625 0.9375,-2.33 0.62375,-0.68375 1.51,-1.22625 2.65875,-1.625 l 3.49,-1.2 0,-0.73375 c 0,-1.6575 -0.82875,-2.48625 -2.48625,-2.48625 -1.49,0 -2.93625,0.76875 -4.345,2.3075 l 0,-2.9825 c 1.05875,-1.24875 2.5825,-1.8725 4.56875,-1.8725 1.48875,0 2.6825,0.38875 3.58125,1.16875 0.3,0.25 0.57,0.5825 0.80875,0.99625 0.24125,0.415 0.3925,0.82875 0.45625,1.24375 0.065,0.415 0.0987,1.20125 0.0987,2.35875"
id="path44" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 142.461,82.685 0,2.6975 c -1.36875,0.50875 -2.7075,0.76375 -4.015,0.76375 -2.1575,0 -3.87625,-0.64 -5.16125,-1.9175 -1.2825,-1.27875 -1.925,-2.9925 -1.925,-5.13875 0,-2.1675 0.62375,-3.915 1.8725,-5.24375 1.2475,-1.32875 2.8925,-1.9925 4.93,-1.9925 0.7075,0 1.34625,0.0675 1.91,0.20125 0.56375,0.135 1.26,0.3875 2.09,0.7575 l 0,2.90625 c -1.37875,-0.87875 -2.6575,-1.3175 -3.83625,-1.3175 -1.2275,0 -2.2375,0.43125 -3.02625,1.295 -0.78875,0.865 -1.18375,1.965 -1.18375,3.30375 0,1.4075 0.4275,2.52625 1.2825,3.355 0.8525,0.83 2.00375,1.24375 3.45125,1.24375 1.05,0 2.2525,-0.30375 3.61125,-0.91375"
id="path46" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 157.2985,72.1225 3.2375,0 -5.88,6.7425 7.07875,7.04125 -3.65875,0 -6.9025,-7.035 6.125,-6.74875 z m -8.9725,-4.31875 2.7275,0 0,18.10125 -2.7275,0 0,-18.10125 z"
id="path48" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 167.8985,77.6225 6.93625,0 c -0.07,-1.08875 -0.395,-1.9275 -0.97375,-2.51625 -0.57875,-0.58875 -1.3575,-0.885 -2.3375,-0.885 -0.97875,0 -1.78,0.29625 -2.40375,0.885 -0.62375,0.58875 -1.0325,1.4275 -1.22125,2.51625 m -0.0613,1.63375 c 0.07,1.3175 0.51125,2.36625 1.32625,3.14625 0.81375,0.77875 1.865,1.1675 3.1525,1.1675 1.79875,0 3.45625,-0.55875 4.975,-1.6775 l 0,2.66625 c -0.83875,0.56 -1.67125,0.96 -2.49375,1.19875 -0.82625,0.24 -1.79125,0.36 -2.9,0.36 -1.51875,0 -2.74625,-0.315 -3.685,-0.94375 -0.94,-0.62875 -1.69125,-1.47625 -2.25625,-2.53875 -0.56375,-1.065 -0.845,-2.295 -0.845,-3.69375 0,-2.0975 0.59375,-3.8025 1.7825,-5.11625 1.1875,-1.31375 2.73125,-1.97 4.62875,-1.97 1.8275,0 3.285,0.64 4.375,1.9175 1.08875,1.27875 1.62692,3.336068 1.62692,5.483568 l -9.68692,1.82e-4 z"
id="path50"
sodipodi:nodetypes="ccsssccssccssssssssc" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 186.161,72.1225 0,3.16125 0.15125,-0.24 c 1.31875,-2.1275 2.635,-3.19 3.95375,-3.19 1.02875,0 2.1025,0.51875 3.22125,1.5575 l -1.4375,2.3975 c -0.95,-0.9 -1.82875,-1.34875 -2.6375,-1.34875 -0.87875,0 -1.64,0.42 -2.285,1.2575 -0.6425,0.84 -0.96625,1.83375 -0.96625,2.9825 l 0,7.20625 -2.74,0 0,-13.78375 2.74,0 z"
id="path52" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 197.4735,84.9225 0,-2.93625 c 0.7675,0.53875 1.55375,0.97625 2.35875,1.31 0.80375,0.335 1.48,0.5025 2.03,0.5025 0.57,0 1.05875,-0.14 1.46875,-0.42 0.40875,-0.27875 0.61375,-0.61375 0.61375,-1.00375 0,-0.39875 -0.1325,-0.73125 -0.3975,-0.995 -0.26375,-0.265 -0.83625,-0.6475 -1.715,-1.14625 -1.7575,-0.98 -2.90875,-1.81625 -3.4525,-2.51 -0.545,-0.69375 -0.8175,-1.45 -0.8175,-2.27 0,-1.0575 0.4125,-1.9225 1.2375,-2.59125 0.82375,-0.67 1.88375,-1.00375 3.1825,-1.00375 1.34875,0 2.73125,0.38 4.15125,1.1375 l 0,2.6975 C 204.51475,74.715 203.18975,74.225 202.16225,74.225 c -0.53,0 -0.95625,0.1125 -1.28125,0.3375 -0.325,0.22625 -0.48625,0.5225 -0.48625,0.8925 0,0.32125 0.14625,0.625 0.44,0.915 0.295,0.29 0.81125,0.64 1.55125,1.04875 l 0.97375,0.55375 c 2.2975,1.29875 3.44625,2.73625 3.44625,4.315 0,1.1275 -0.4425,2.05375 -1.32625,2.7775 -0.8825,0.72375 -2.01875,1.085 -3.4075,1.085 -0.82,0 -1.55,-0.08625 -2.1875,-0.26125 -0.63875,-0.175 -1.44375,-0.4975 -2.41125,-0.96625"
id="path54" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 217.2485,74.6725 -1.92875,0 0,8.48 c 0.8375,0.42875 1.71375,0.64375 2.6325,0.64375 1.275,0 2.31875,-0.445 3.13,-1.33375 0.81375,-0.88875 1.21875,-2.0325 1.21875,-3.43 0,-0.89875 -0.19125,-1.6925 -0.575,-2.38125 -0.38375,-0.69 -0.9075,-1.1925 -1.57,-1.50625 -0.6625,-0.315 -1.63125,-0.4725 -2.9075,-0.4725 m -4.71375,16.56625 0,-19.11375 4.7725,0 c 2.44375,0 4.34625,0.61 5.7075,1.82875 1.3625,1.21875 2.04375,2.92125 2.04375,5.10875 0,2.0675 -0.6425,3.765 -1.9225,5.0925 -1.28125,1.32875 -2.915,1.99375 -4.89875,1.99375 -0.8775,0 -1.84875,-0.19625 -2.9175,-0.585 l 0,5.675 -2.785,0 z"
id="path56" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 236.7985,83.185 0,-4.08875 -1.82625,0.70375 c -0.92875,0.36875 -1.585,0.74125 -1.97,1.11625 -0.385,0.37375 -0.5775,0.84125 -0.5775,1.4 0,0.56875 0.1825,1.03375 0.54625,1.39375 0.365,0.35875 0.83625,0.53875 1.41625,0.53875 0.87,0 1.67375,-0.355 2.41125,-1.06375 m 2.6825,-5.55875 0,5.85875 c 0,0.47 0.15875,0.70375 0.48,0.70375 0.33,0 0.84375,-0.245 1.54375,-0.73375 l 0,1.6625 c -0.61875,0.4 -1.1175,0.67125 -1.4925,0.8175 -0.375,0.14375 -0.76625,0.21625 -1.175,0.21625 -1.16875,0 -1.8575,-0.45875 -2.0675,-1.3775 -1.15875,0.8975 -2.3925,1.3475 -3.7,1.3475 -0.95875,0 -1.75875,-0.31625 -2.39625,-0.95125 -0.64,-0.63375 -0.96,-1.43125 -0.96,-2.38875 0,-0.87 0.3125,-1.64625 0.9375,-2.33 0.62375,-0.68375 1.51,-1.22625 2.65875,-1.625 l 3.48875,-1.2 0,-0.73375 c 0,-1.6575 -0.8275,-2.48625 -2.485,-2.48625 -1.49,0 -2.9375,0.76875 -4.34625,2.3075 l 0,-2.9825 c 1.06,-1.24875 2.58375,-1.8725 4.57,-1.8725 1.48875,0 2.68125,0.38875 3.58125,1.16875 0.3,0.25 0.57,0.5825 0.80875,0.99625 0.24125,0.415 0.3925,0.82875 0.45625,1.24375 0.065,0.415 0.0975,1.20125 0.0975,2.35875"
id="path58" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 257.011,82.685 0,2.6975 c -1.36875,0.50875 -2.7075,0.76375 -4.015,0.76375 -2.1575,0 -3.87625,-0.64 -5.16125,-1.9175 -1.2825,-1.27875 -1.925,-2.9925 -1.925,-5.13875 0,-2.1675 0.62375,-3.915 1.8725,-5.24375 1.2475,-1.32875 2.8925,-1.9925 4.93,-1.9925 0.70875,0 1.34625,0.0675 1.91,0.20125 0.56375,0.135 1.26,0.3875 2.09,0.7575 l 0,2.90625 c -1.38,-0.87875 -2.6575,-1.3175 -3.83625,-1.3175 -1.2275,0 -2.2375,0.43125 -3.02625,1.295 -0.78875,0.865 -1.18375,1.965 -1.18375,3.30375 0,1.4075 0.4275,2.52625 1.2825,3.355 0.8525,0.83 2.00375,1.24375 3.45125,1.24375 1.05,0 2.2525,-0.30375 3.61125,-0.91375"
id="path60" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 264.986,77.6225 6.93625,0 c -0.07,-1.08875 -0.395,-1.9275 -0.9725,-2.51625 -0.58,-0.58875 -1.35875,-0.885 -2.33875,-0.885 -0.97875,0 -1.77875,0.29625 -2.40375,0.885 -0.62375,0.58875 -1.03125,1.4275 -1.22125,2.51625 m -0.06,1.63375 c 0.07,1.3175 0.5125,2.36625 1.32625,3.14625 0.81375,0.77875 1.865,1.1675 3.15375,1.1675 1.79875,0 3.45625,-0.55875 4.97375,-1.6775 l 0,2.66625 c -0.8375,0.56 -1.67,0.96 -2.49375,1.19875 -0.825,0.24 -1.79,0.36 -2.9,0.36 -1.51875,0 -2.74625,-0.315 -3.685,-0.94375 -0.94,-0.62875 -1.69125,-1.47625 -2.25625,-2.53875 -0.5625,-1.065 -0.845,-2.295 -0.845,-3.69375 0,-2.0975 0.59375,-3.8025 1.7825,-5.11625 1.18875,-1.31375 2.7325,-1.97 4.62875,-1.97 1.82875,0 3.28625,0.64 4.375,1.9175 1.08875,1.27875 1.64156,3.342812 1.64156,5.490312 l -9.70156,-0.0066 z"
id="path62"
sodipodi:nodetypes="ccsssccssccssssssssc" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 296.1485,74.6725 -1.92875,0 0,8.48 c 0.8375,0.42875 1.71375,0.64375 2.6325,0.64375 1.275,0 2.31875,-0.445 3.13,-1.33375 0.8125,-0.88875 1.22,-2.0325 1.22,-3.43 0,-0.89875 -0.1925,-1.6925 -0.57625,-2.38125 -0.385,-0.69 -0.9075,-1.1925 -1.57,-1.50625 -0.6625,-0.315 -1.63125,-0.4725 -2.9075,-0.4725 m -4.71375,16.56625 0,-19.11375 4.7725,0 c 2.44375,0 4.34625,0.61 5.7075,1.82875 1.3625,1.21875 2.0425,2.92125 2.0425,5.10875 0,2.0675 -0.64125,3.765 -1.92125,5.0925 -1.28125,1.32875 -2.91375,1.99375 -4.89875,1.99375 -0.8775,0 -1.85,-0.19625 -2.9175,-0.585 l 0,5.675 -2.785,0 z"
id="path64" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 312.636,72.1225 0,3.16125 0.15,-0.24 c 1.31875,-2.1275 2.63625,-3.19 3.955,-3.19 1.0275,0 2.1025,0.51875 3.22125,1.5575 l -1.43875,2.3975 c -0.94875,-0.9 -1.82625,-1.34875 -2.63625,-1.34875 -0.87875,0 -1.64,0.42 -2.28625,1.2575 -0.6425,0.84 -0.965,1.83375 -0.965,2.9825 l 0,7.20625 -2.74,0 0,-13.78375 2.74,0 z"
id="path66" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 330.611,83.185 0,-4.08875 -1.82625,0.70375 c -0.93,0.36875 -1.58625,0.74125 -1.97125,1.11625 -0.385,0.37375 -0.5775,0.84125 -0.5775,1.4 0,0.56875 0.1825,1.03375 0.54625,1.39375 0.365,0.35875 0.8375,0.53875 1.4175,0.53875 0.86875,0 1.6725,-0.355 2.41125,-1.06375 m 2.68125,-5.55875 0,5.85875 c 0,0.47 0.15875,0.70375 0.47875,0.70375 0.33,0 0.845,-0.245 1.54375,-0.73375 l 0,1.6625 c -0.61875,0.4 -1.11625,0.67125 -1.49125,0.8175 -0.375,0.14375 -0.7675,0.21625 -1.17625,0.21625 -1.16875,0 -1.85625,-0.45875 -2.06625,-1.3775 -1.16,0.8975 -2.39375,1.3475 -3.7,1.3475 -0.96,0 -1.76,-0.31625 -2.3975,-0.95125 -0.63875,-0.63375 -0.95875,-1.43125 -0.95875,-2.38875 0,-0.87 0.31125,-1.64625 0.93625,-2.33 0.62375,-0.68375 1.51,-1.22625 2.65875,-1.625 l 3.49,-1.2 0,-0.73375 c 0,-1.6575 -0.82875,-2.48625 -2.48625,-2.48625 -1.48875,0 -2.93625,0.76875 -4.345,2.3075 l 0,-2.9825 c 1.05875,-1.24875 2.5825,-1.8725 4.56875,-1.8725 1.48875,0 2.6825,0.38875 3.58125,1.16875 0.3,0.25 0.57,0.5825 0.81,0.99625 0.24,0.415 0.39125,0.82875 0.455,1.24375 0.065,0.415 0.0988,1.20125 0.0988,2.35875"
id="path68" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 344.911,74.485 c -0.73875,0 -1.3675,0.25 -1.8875,0.74875 -0.51875,0.5 -0.77875,1.09875 -0.77875,1.7975 0,0.71 0.25375,1.29625 0.765,1.76 0.50875,0.465 1.1525,0.6975 1.93125,0.6975 0.77,0 1.41125,-0.2375 1.925,-0.71125 0.515,-0.475 0.7725,-1.06625 0.7725,-1.775 0,-0.72 -0.26,-1.31875 -0.77875,-1.79875 C 346.341,74.72375 345.691,74.485 344.911,74.485 m -0.64375,12.06 c -0.91875,0 -1.67,0.195 -2.25375,0.58375 -0.58375,0.39 -0.8775,0.88875 -0.8775,1.49875 0,1.4175 1.27875,2.1275 3.83625,2.1275 1.20875,0 2.145,-0.1775 2.8075,-0.5325 0.665,-0.35375 0.9975,-0.85625 0.9975,-1.505 0,-0.64 -0.41875,-1.16125 -1.25875,-1.56625 C 346.67975,86.7475 345.596,86.545 344.26725,86.545 m -4.48,-9.66375 c 0,-1.4675 0.5375,-2.62875 1.61125,-3.4825 1.07375,-0.85375 2.54,-1.28125 4.3975,-1.28125 l 5.6775,0 0,2.1275 -2.78625,0 c 0.53875,0.55 0.91375,1.04875 1.12375,1.4975 0.21,0.45 0.315,0.965 0.315,1.54375 0,0.71875 -0.205,1.42625 -0.615,2.12 -0.40875,0.69375 -0.935,1.225 -1.58125,1.595 -0.64375,0.37 -1.7,0.665 -3.1675,0.88375 -1.02875,0.15125 -1.54375,0.505 -1.54375,1.06375 0,0.32 0.1925,0.5825 0.57625,0.7875 0.385,0.20375 1.0825,0.41625 2.09,0.63625 1.68875,0.37 2.77375,0.66 3.26,0.86875 0.48375,0.21 0.92,0.51 1.31125,0.89875 0.65875,0.66 0.98875,1.48875 0.98875,2.4875 0,1.3075 -0.5825,2.35125 -1.74625,3.13125 -1.165,0.77875 -2.72,1.1675 -4.66625,1.1675 -1.97,0 -3.53875,-0.39125 -4.71125,-1.175 -1.17375,-0.785 -1.76125,-1.835 -1.76125,-3.15375 0,-1.8675 1.15375,-3.07125 3.46,-3.61125 -0.91875,-0.58875 -1.3775,-1.17375 -1.3775,-1.7525 0,-0.43875 0.19625,-0.83875 0.5925,-1.1975 0.39375,-0.36 0.925,-0.625 1.59375,-0.795 -2.02625,-0.8975 -3.04125,-2.3525 -3.04125,-4.36"
id="path70" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 365.1235,85.91 0,-1.76875 c -0.57875,0.635 -1.24,1.1275 -1.98375,1.48 -0.745,0.3525 -1.485,0.5275 -2.225,0.5275 -0.87,0 -1.67,-0.21625 -2.405,-0.65125 -0.735,-0.435 -1.28875,-1.02375 -1.6625,-1.7675 -0.375,-0.74375 -0.56125,-1.98 -0.56125,-3.7075 l 0,-7.89625 2.725,0 0,7.855 c 0,1.4475 0.2075,2.4575 0.62125,3.03125 0.415,0.5725 1.1425,0.86 2.1825,0.86 1.2975,0 2.4,-0.635 3.30875,-1.90375 l 0,-9.8425 2.7275,0 0,13.78375 -2.7275,0 z"
id="path72" /><path
style="fill:#71cccc;fill-rule:nonzero;stroke:none;stroke-opacity:1;fill-opacity:1"
d="m 376.561,77.6225 6.9375,0 c -0.0725,-1.08875 -0.39625,-1.9275 -0.975,-2.51625 -0.58,-0.58875 -1.35875,-0.885 -2.33875,-0.885 -0.9775,0 -1.77875,0.29625 -2.40375,0.885 -0.62375,0.58875 -1.03125,1.4275 -1.22,2.51625 m -0.06,1.63375 c 0.07,1.3175 0.51125,2.36625 1.32625,3.14625 0.81375,0.77875 1.865,1.1675 3.1525,1.1675 1.79875,0 3.45625,-0.55875 4.975,-1.6775 l 0,2.66625 c -0.83875,0.56 -1.67125,0.96 -2.495,1.19875 -0.825,0.24 -1.79,0.36 -2.89875,0.36 -1.52,0 -2.74625,-0.315 -3.68625,-0.94375 -0.9375,-0.62875 -1.69,-1.47625 -2.255,-2.53875 -0.5625,-1.065 -0.845,-2.295 -0.845,-3.69375 0,-2.0975 0.59375,-3.8025 1.78125,-5.11625 1.18875,-1.31375 2.7325,-1.97 4.62875,-1.97 1.82875,0 3.28625,0.64 4.375,1.9175 1.09,1.27875 1.62984,3.342813 1.62984,5.490313 l -9.68859,-0.0066 z"
id="path74"
sodipodi:nodetypes="ccsssccssccssssssssc" />
</svg>

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -0,0 +1,28 @@
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
BasePage {
id: canvas
property variant page: Qt.createComponent("MainPage.qml").createObject(canvas)
function loadPage(name, properties) {
status_text.hideStatus()
name += ".qml"
page.destroy();
if (typeof(properties) == "undefined") {
page = Qt.createComponent(name).createObject(canvas)
} else {
page = Qt.createComponent(name).createObject(canvas, properties)
}
}
function loadPageByAcct(acct) {
if (acct.acctype == "inventory") {
loadPage("ItemInfo", { name: acct["name"], dbid: acct["id"], price: acct["price"] })
} else if (acct.acctype == "debt") {
loadPage("UserInfo", { name: acct["name"], dbid: acct["id"], negbalance: acct["negbalance"] })
} else if (acct.acctype == "recharge") {
loadPage("ChargeCredit", { amount: acct["amount"] })
}
}
}