summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkali <kali@leap.se>2014-08-13 14:16:09 -0500
committerkali <kali@leap.se>2014-08-13 14:16:09 -0500
commit481b5e51b88bd5e0c2d856fbc0593d81634442da (patch)
tree7c8e1bdc72916535ab5fd14697d8dc05e696b4bc
parentab28bd5056e5d3e1c5a6b14307e67cea618e3359 (diff)
parent8eff8582f39c5f3872f75ebd2c530a17d366310d (diff)
Merge branch 'develop' into deb-0.6.1-rc
-rw-r--r--Makefile2
-rw-r--r--changes/bug_5939_wait-for-eip-to-autologin1
-rw-r--r--changes/minor-ui-adjustments1
-rw-r--r--data/images/Arrow-Down-32.pngbin1458 -> 0 bytes
-rw-r--r--data/images/Arrow-Up-32.pngbin1400 -> 0 bytes
-rw-r--r--data/images/Blue-Arrow-Right-32.pngbin1432 -> 0 bytes
-rw-r--r--data/images/Dialog-accept.pngbin1316 -> 0 bytes
-rw-r--r--data/images/Dialog-error.pngbin1380 -> 0 bytes
-rw-r--r--data/images/Emblem-question.pngbin1260 -> 0 bytes
-rw-r--r--data/images/black/22/off.pngbin0 -> 542 bytes
-rw-r--r--data/images/black/22/on.pngbin0 -> 519 bytes
-rw-r--r--data/images/black/22/question.pngbin0 -> 562 bytes
-rw-r--r--data/images/black/22/wait.pngbin0 -> 596 bytes
-rw-r--r--data/images/black/32/cloud.pngbin468 -> 0 bytes
-rw-r--r--data/images/black/32/contract.pngbin417 -> 0 bytes
-rw-r--r--data/images/black/32/earth-square.pngbin1068 -> 0 bytes
-rw-r--r--data/images/black/32/email-square.pngbin787 -> 0 bytes
-rw-r--r--data/images/black/32/expand.pngbin451 -> 0 bytes
-rw-r--r--data/images/black/32/gear.pngbin644 -> 0 bytes
-rw-r--r--data/images/black/32/off.pngbin695 -> 0 bytes
-rw-r--r--data/images/black/32/on.pngbin667 -> 0 bytes
-rw-r--r--data/images/black/32/refresh.pngbin624 -> 0 bytes
-rw-r--r--data/images/black/32/wait.pngbin836 -> 0 bytes
-rw-r--r--data/images/black/off.svg88
-rw-r--r--data/images/black/on.svg78
-rw-r--r--data/images/black/question.svg82
-rw-r--r--data/images/black/wait.svg75
-rw-r--r--data/images/conn_connected-light.pngbin426 -> 0 bytes
-rw-r--r--data/images/conn_connected.pngbin426 -> 0 bytes
-rw-r--r--data/images/conn_connecting-light.pngbin791 -> 0 bytes
-rw-r--r--data/images/conn_connecting.pngbin712 -> 0 bytes
-rw-r--r--data/images/conn_error-light.pngbin1457 -> 0 bytes
-rw-r--r--data/images/conn_error.pngbin1429 -> 0 bytes
-rwxr-xr-xdata/images/countries/ar.pngbin0 -> 506 bytes
-rwxr-xr-xdata/images/countries/at.pngbin0 -> 403 bytes
-rwxr-xr-xdata/images/countries/au.pngbin0 -> 673 bytes
-rwxr-xr-xdata/images/countries/bd.pngbin0 -> 504 bytes
-rwxr-xr-xdata/images/countries/be.pngbin0 -> 449 bytes
-rwxr-xr-xdata/images/countries/br.pngbin0 -> 593 bytes
-rwxr-xr-xdata/images/countries/ca.pngbin0 -> 628 bytes
-rw-r--r--data/images/countries/cat.pngbin0 -> 398 bytes
-rwxr-xr-xdata/images/countries/ch.pngbin0 -> 367 bytes
-rwxr-xr-xdata/images/countries/cl.pngbin0 -> 450 bytes
-rwxr-xr-xdata/images/countries/cn.pngbin0 -> 472 bytes
-rwxr-xr-xdata/images/countries/co.pngbin0 -> 483 bytes
-rwxr-xr-xdata/images/countries/cy.pngbin0 -> 428 bytes
-rwxr-xr-xdata/images/countries/cz.pngbin0 -> 476 bytes
-rwxr-xr-xdata/images/countries/de.pngbin0 -> 545 bytes
-rwxr-xr-xdata/images/countries/dk.pngbin0 -> 495 bytes
-rwxr-xr-xdata/images/countries/ec.pngbin0 -> 500 bytes
-rwxr-xr-xdata/images/countries/ee.pngbin0 -> 429 bytes
-rwxr-xr-xdata/images/countries/es.pngbin0 -> 469 bytes
-rwxr-xr-xdata/images/countries/fi.pngbin0 -> 489 bytes
-rwxr-xr-xdata/images/countries/fr.pngbin0 -> 545 bytes
-rw-r--r--data/images/countries/gb.pngbin0 -> 599 bytes
-rwxr-xr-xdata/images/countries/gr.pngbin0 -> 487 bytes
-rwxr-xr-xdata/images/countries/hk.pngbin0 -> 527 bytes
-rwxr-xr-xdata/images/countries/hu.pngbin0 -> 432 bytes
-rwxr-xr-xdata/images/countries/id.pngbin0 -> 430 bytes
-rwxr-xr-xdata/images/countries/ie.pngbin0 -> 481 bytes
-rwxr-xr-xdata/images/countries/il.pngbin0 -> 431 bytes
-rwxr-xr-xdata/images/countries/in.pngbin0 -> 503 bytes
-rwxr-xr-xdata/images/countries/iq.pngbin0 -> 515 bytes
-rwxr-xr-xdata/images/countries/ir.pngbin0 -> 512 bytes
-rwxr-xr-xdata/images/countries/is.pngbin0 -> 532 bytes
-rwxr-xr-xdata/images/countries/it.pngbin0 -> 420 bytes
-rwxr-xr-xdata/images/countries/jp.pngbin0 -> 420 bytes
-rwxr-xr-xdata/images/countries/kh.pngbin0 -> 549 bytes
-rwxr-xr-xdata/images/countries/kr.pngbin0 -> 592 bytes
-rwxr-xr-xdata/images/countries/lb.pngbin0 -> 517 bytes
-rwxr-xr-xdata/images/countries/ly.pngbin0 -> 419 bytes
-rwxr-xr-xdata/images/countries/mx.pngbin0 -> 574 bytes
-rwxr-xr-xdata/images/countries/my.pngbin0 -> 571 bytes
-rwxr-xr-xdata/images/countries/ng.pngbin0 -> 482 bytes
-rwxr-xr-xdata/images/countries/no.pngbin0 -> 512 bytes
-rwxr-xr-xdata/images/countries/nz.pngbin0 -> 639 bytes
-rwxr-xr-xdata/images/countries/pe.pngbin0 -> 397 bytes
-rwxr-xr-xdata/images/countries/pk.pngbin0 -> 569 bytes
-rwxr-xr-xdata/images/countries/pl.pngbin0 -> 374 bytes
-rwxr-xr-xdata/images/countries/ps.pngbin0 -> 472 bytes
-rwxr-xr-xdata/images/countries/py.pngbin0 -> 473 bytes
-rwxr-xr-xdata/images/countries/ru.pngbin0 -> 420 bytes
-rwxr-xr-xdata/images/countries/se.pngbin0 -> 542 bytes
-rwxr-xr-xdata/images/countries/sg.pngbin0 -> 468 bytes
-rwxr-xr-xdata/images/countries/tn.pngbin0 -> 495 bytes
-rwxr-xr-xdata/images/countries/ua.pngbin0 -> 446 bytes
-rwxr-xr-xdata/images/countries/ve.pngbin0 -> 528 bytes
-rwxr-xr-xdata/images/countries/vn.pngbin0 -> 474 bytes
-rwxr-xr-xdata/images/countries/za.pngbin0 -> 642 bytes
-rw-r--r--data/images/favicon.icobin1150 -> 0 bytes
-rw-r--r--data/images/leap-client.icnsbin27456 -> 0 bytes
-rw-r--r--data/images/leap-client.tiffbin3598 -> 0 bytes
-rw-r--r--data/images/leap-color-big.pngbin30322 -> 0 bytes
-rw-r--r--data/images/leap-gray-big.pngbin17246 -> 0 bytes
-rw-r--r--data/images/light/16/accept.pngbin285 -> 0 bytes
-rw-r--r--data/images/light/16/down-arrow.pngbin356 -> 0 bytes
-rw-r--r--data/images/light/16/error.pngbin355 -> 0 bytes
-rw-r--r--data/images/light/16/refresh.pngbin472 -> 0 bytes
-rw-r--r--data/images/light/16/up-arrow.pngbin357 -> 0 bytes
-rw-r--r--data/images/light/64/network-eip-acquiring.pngbin791 -> 0 bytes
-rw-r--r--data/images/light/64/network-eip-down.pngbin1429 -> 0 bytes
-rw-r--r--data/images/light/64/network-eip-up.pngbin426 -> 0 bytes
-rw-r--r--data/images/mail-locked.pngbin2326 -> 0 bytes
-rw-r--r--data/images/mail-unlocked.pngbin2791 -> 0 bytes
-rw-r--r--data/images/mask-launcher.pngbin37759 -> 0 bytes
-rw-r--r--data/images/mask-small.pngbin18172 -> 0 bytes
-rw-r--r--data/images/white/22/off.pngbin0 -> 587 bytes
-rw-r--r--data/images/white/22/on.pngbin0 -> 533 bytes
-rw-r--r--data/images/white/22/question.pngbin0 -> 558 bytes
-rw-r--r--data/images/white/22/wait.pngbin0 -> 588 bytes
-rw-r--r--data/images/white/32/arrow-down.pngbin486 -> 0 bytes
-rw-r--r--data/images/white/32/arrow-up.pngbin463 -> 0 bytes
-rw-r--r--data/images/white/32/cloud.pngbin504 -> 0 bytes
-rw-r--r--data/images/white/32/contract.pngbin417 -> 0 bytes
-rw-r--r--data/images/white/32/earth-square.pngbin1068 -> 0 bytes
-rw-r--r--data/images/white/32/earth.pngbin896 -> 0 bytes
-rw-r--r--data/images/white/32/email-square.pngbin787 -> 0 bytes
-rw-r--r--data/images/white/32/email.pngbin622 -> 0 bytes
-rw-r--r--data/images/white/32/expand.pngbin451 -> 0 bytes
-rw-r--r--data/images/white/32/gear.pngbin656 -> 0 bytes
-rw-r--r--data/images/white/32/off.pngbin703 -> 0 bytes
-rw-r--r--data/images/white/32/on.pngbin677 -> 0 bytes
-rw-r--r--data/images/white/32/refresh.pngbin654 -> 0 bytes
-rw-r--r--data/images/white/32/user.pngbin556 -> 0 bytes
-rw-r--r--data/images/white/32/wait.pngbin855 -> 0 bytes
-rw-r--r--data/images/white/off.svg89
-rw-r--r--data/images/white/on.svg78
-rw-r--r--data/images/white/question.svg82
-rw-r--r--data/images/white/wait.svg76
-rw-r--r--data/resources/eipstatus.qrc7
-rw-r--r--data/resources/flags.qrc63
-rw-r--r--data/resources/icons.qrc41
-rw-r--r--data/resources/mainwindow.qrc38
-rw-r--r--src/leap/bitmask/gui/eip_status.py15
-rw-r--r--src/leap/bitmask/gui/mail_status.py12
-rw-r--r--src/leap/bitmask/gui/mainwindow.py186
-rw-r--r--src/leap/bitmask/gui/ui/advanced_key_management.ui4
-rw-r--r--src/leap/bitmask/gui/ui/eip_status.ui14
-rw-r--r--src/leap/bitmask/gui/ui/eippreferences.ui4
-rw-r--r--src/leap/bitmask/gui/ui/loggerwindow.ui4
-rw-r--r--src/leap/bitmask/gui/ui/login.ui64
-rw-r--r--src/leap/bitmask/gui/ui/logout.ui74
-rw-r--r--src/leap/bitmask/gui/ui/mail_status.ui6
-rw-r--r--src/leap/bitmask/gui/ui/mainwindow.ui28
-rw-r--r--src/leap/bitmask/gui/ui/preferences.ui4
-rw-r--r--src/leap/bitmask/gui/ui/wizard.ui126
-rw-r--r--src/leap/bitmask/gui/wizard.py21
147 files changed, 1121 insertions, 242 deletions
diff --git a/Makefile b/Makefile
index 8db92f8a..3b4e006a 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@ PROJFILE = data/bitmask.pro
#UI files to compile
UI_FILES = loggerwindow.ui mainwindow.ui wizard.ui login.ui preferences.ui eip_status.ui mail_status.ui eippreferences.ui advanced_key_management.ui
#Qt resource files to compile
-RESOURCES = locale.qrc loggerwindow.qrc mainwindow.qrc icons.qrc eipstatus.qrc
+RESOURCES = icons.qrc flags.qrc locale.qrc loggerwindow.qrc
#pyuic4 and pyrcc4 binaries
PYUIC = pyside-uic
diff --git a/changes/bug_5939_wait-for-eip-to-autologin b/changes/bug_5939_wait-for-eip-to-autologin
new file mode 100644
index 00000000..5dec8331
--- /dev/null
+++ b/changes/bug_5939_wait-for-eip-to-autologin
@@ -0,0 +1 @@
+- Wait until EIP is up to autologin. Closes #5939
diff --git a/changes/minor-ui-adjustments b/changes/minor-ui-adjustments
new file mode 100644
index 00000000..33e27964
--- /dev/null
+++ b/changes/minor-ui-adjustments
@@ -0,0 +1 @@
+- minor adjustments to the layout of UI elements (#5514, #5515, #5510).
diff --git a/data/images/Arrow-Down-32.png b/data/images/Arrow-Down-32.png
deleted file mode 100644
index c5c607a1..00000000
--- a/data/images/Arrow-Down-32.png
+++ /dev/null
Binary files differ
diff --git a/data/images/Arrow-Up-32.png b/data/images/Arrow-Up-32.png
deleted file mode 100644
index 85370ac5..00000000
--- a/data/images/Arrow-Up-32.png
+++ /dev/null
Binary files differ
diff --git a/data/images/Blue-Arrow-Right-32.png b/data/images/Blue-Arrow-Right-32.png
deleted file mode 100644
index 66e50b0d..00000000
--- a/data/images/Blue-Arrow-Right-32.png
+++ /dev/null
Binary files differ
diff --git a/data/images/Dialog-accept.png b/data/images/Dialog-accept.png
deleted file mode 100644
index 5a8a0bdb..00000000
--- a/data/images/Dialog-accept.png
+++ /dev/null
Binary files differ
diff --git a/data/images/Dialog-error.png b/data/images/Dialog-error.png
deleted file mode 100644
index 51da2f5b..00000000
--- a/data/images/Dialog-error.png
+++ /dev/null
Binary files differ
diff --git a/data/images/Emblem-question.png b/data/images/Emblem-question.png
deleted file mode 100644
index b2163e5b..00000000
--- a/data/images/Emblem-question.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/22/off.png b/data/images/black/22/off.png
new file mode 100644
index 00000000..65afeef2
--- /dev/null
+++ b/data/images/black/22/off.png
Binary files differ
diff --git a/data/images/black/22/on.png b/data/images/black/22/on.png
new file mode 100644
index 00000000..229140a3
--- /dev/null
+++ b/data/images/black/22/on.png
Binary files differ
diff --git a/data/images/black/22/question.png b/data/images/black/22/question.png
new file mode 100644
index 00000000..bb259fac
--- /dev/null
+++ b/data/images/black/22/question.png
Binary files differ
diff --git a/data/images/black/22/wait.png b/data/images/black/22/wait.png
new file mode 100644
index 00000000..c267363b
--- /dev/null
+++ b/data/images/black/22/wait.png
Binary files differ
diff --git a/data/images/black/32/cloud.png b/data/images/black/32/cloud.png
deleted file mode 100644
index 10cbd62d..00000000
--- a/data/images/black/32/cloud.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/contract.png b/data/images/black/32/contract.png
deleted file mode 100644
index 9f0ee605..00000000
--- a/data/images/black/32/contract.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/earth-square.png b/data/images/black/32/earth-square.png
deleted file mode 100644
index da7bf2cf..00000000
--- a/data/images/black/32/earth-square.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/email-square.png b/data/images/black/32/email-square.png
deleted file mode 100644
index 499d7a8f..00000000
--- a/data/images/black/32/email-square.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/expand.png b/data/images/black/32/expand.png
deleted file mode 100644
index c581503d..00000000
--- a/data/images/black/32/expand.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/gear.png b/data/images/black/32/gear.png
deleted file mode 100644
index 93c8742d..00000000
--- a/data/images/black/32/gear.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/off.png b/data/images/black/32/off.png
deleted file mode 100644
index 6ddde746..00000000
--- a/data/images/black/32/off.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/on.png b/data/images/black/32/on.png
deleted file mode 100644
index bbd28bad..00000000
--- a/data/images/black/32/on.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/refresh.png b/data/images/black/32/refresh.png
deleted file mode 100644
index ad67f563..00000000
--- a/data/images/black/32/refresh.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/32/wait.png b/data/images/black/32/wait.png
deleted file mode 100644
index a01ce923..00000000
--- a/data/images/black/32/wait.png
+++ /dev/null
Binary files differ
diff --git a/data/images/black/off.svg b/data/images/black/off.svg
new file mode 100644
index 00000000..35c49a56
--- /dev/null
+++ b/data/images/black/off.svg
@@ -0,0 +1,88 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg3243"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="off.svg">
+ <defs
+ id="defs3245" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="2.564547"
+ inkscape:cy="9.5625231"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1056"
+ inkscape:window-x="1920"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3273" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3248">
+ <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
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#f08080;stroke:#000000;stroke-width:1.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;fill-opacity:1"
+ d="m 26.607099,9.8590516 c 1.095245,1.8715414 1.642877,3.9185224 1.642901,6.1409504 -2.4e-5,2.222445 -0.547656,4.274746 -1.642901,6.156901 -1.095291,1.87153 -2.584007,3.354927 -4.466146,4.450195 C 20.269405,27.702363 18.222426,28.249996 16,28.25 13.77755,28.249996 11.725251,27.702363 9.8430986,26.607098 7.9715637,25.51183 6.4881674,24.028433 5.3929018,22.156903 4.2976327,20.274748 3.75,18.222447 3.75,16.000002 3.75,13.777574 4.2976327,11.730593 5.3929018,9.8590516 6.4881674,7.9769071 7.9715637,6.4881926 9.8430986,5.392906 11.725251,4.2976563 13.77755,3.7500236 16,3.75 c 2.222426,2.36e-5 4.269405,0.5476563 6.140953,1.642906 1.882139,1.0952866 3.370855,2.5840011 4.466146,4.4661456"
+ id="path3275"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g3758"
+ transform="matrix(0.865313,0,0,0.865313,2.163376,2.175981)">
+ <rect
+ transform="matrix(-0.70710678,-0.70710678,-0.70710678,0.70710678,0,0)"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="rect4057"
+ width="18"
+ height="3"
+ x="-31.781626"
+ y="-1.4338233"
+ ry="0" />
+ <rect
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+ ry="0"
+ y="21.281626"
+ x="-9.0661755"
+ height="3"
+ width="18"
+ id="rect4059"
+ style="fill:#000000;fill-opacity:1;stroke:none" />
+ </g>
+ </g>
+</svg>
diff --git a/data/images/black/on.svg b/data/images/black/on.svg
new file mode 100644
index 00000000..36938e0a
--- /dev/null
+++ b/data/images/black/on.svg
@@ -0,0 +1,78 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg3243"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="on.svg">
+ <defs
+ id="defs3245" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="76.360017"
+ inkscape:cy="-4.203893"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1056"
+ inkscape:window-x="1920"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3273" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3248">
+ <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
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#9acd32;stroke:#000000;stroke-width:1.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;fill-opacity:1"
+ d="m 26.607098,9.8590516 c 1.095246,1.8715424 1.642877,3.9185224 1.642902,6.1409504 -2.5e-5,2.222447 -0.547656,4.274744 -1.642902,6.156901 -1.095289,1.871529 -2.584005,3.354927 -4.466145,4.450195 C 20.269406,27.702363 18.222425,28.249996 16,28.25 13.77755,28.249996 11.725251,27.702363 9.843099,26.607098 7.9715637,25.51183 6.4881673,24.028432 5.3929019,22.156903 4.2976327,20.274746 3.75,18.222449 3.75,16.000002 3.75,13.777574 4.2976327,11.730594 5.3929019,9.8590516 6.4881673,7.9769072 7.9715637,6.4881927 9.843099,5.3929062 11.725251,4.2976564 13.77755,3.7500236 16,3.75 c 2.222425,2.36e-5 4.269406,0.5476564 6.140953,1.6429062 1.88214,1.0952865 3.370856,2.584001 4.466145,4.4661454"
+ id="path3275"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ d="M 16.816995,19.463899 11.276562,13.923466 8.7414,16.458629 14.281832,21.999061 z"
+ id="rect4057"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ d="m 11.792505,19.521247 9.473539,-9.340956 2.535164,2.535163 -9.473539,9.340957 z"
+ id="rect4059"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/data/images/black/question.svg b/data/images/black/question.svg
new file mode 100644
index 00000000..60038638
--- /dev/null
+++ b/data/images/black/question.svg
@@ -0,0 +1,82 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg3243"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="question.svg">
+ <defs
+ id="defs3245" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.9999996"
+ inkscape:cx="12.965251"
+ inkscape:cy="9.8979426"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="false"
+ inkscape:window-width="1328"
+ inkscape:window-height="840"
+ inkscape:window-x="1987"
+ inkscape:window-y="24"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3273" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3248">
+ <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
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#f0e68c;stroke:#000000;stroke-width:1.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;fill-opacity:1"
+ d="m 26.607099,9.8590516 c 1.095245,1.8715424 1.642877,3.9185224 1.642901,6.1409504 -2.4e-5,2.222446 -0.547656,4.274745 -1.642901,6.1569 -1.09529,1.871531 -2.584007,3.354928 -4.466146,4.450196 C 20.269406,27.702362 18.222426,28.249996 16,28.25 13.77755,28.249996 11.725251,27.702362 9.8430986,26.607098 7.9715638,25.51183 6.4881674,24.028433 5.392902,22.156902 4.2976328,20.274747 3.75,18.222448 3.75,16.000002 3.75,13.777574 4.2976328,11.730594 5.392902,9.8590516 6.4881674,7.9769072 7.9715638,6.4881927 9.8430986,5.3929062 11.725251,4.2976564 13.77755,3.7500236 16,3.75 c 2.222426,2.36e-5 4.269406,0.5476564 6.140953,1.6429062 1.882139,1.0952865 3.370856,2.584001 4.466146,4.4661454"
+ id="path3275"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(0.93378097,0,0,0.80060225,2.1910082,2.2390946)"
+ style="font-size:24.20675278px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="text2987">
+ <path
+ style="font-weight:bold;font-family:Droid Sans;-inkscape-font-specification:Droid Sans Bold"
+ d="m 13.191315,20.187003 0,-0.859172 c -3e-6,-0.394747 0.03717,-0.750801 0.111525,-1.068159 0.08178,-0.325085 0.200741,-0.630826 0.35688,-0.917225 0.163567,-0.294121 0.371746,-0.576642 0.62454,-0.847561 0.252786,-0.27864 0.55762,-0.565031 0.914506,-0.859172 0.312264,-0.255419 0.576207,-0.483757 0.791827,-0.685016 0.21561,-0.201235 0.390332,-0.398613 0.524168,-0.592131 0.133823,-0.201235 0.230479,-0.410223 0.289965,-0.626963 0.05947,-0.216716 0.08921,-0.468275 0.08922,-0.754678 -7e-6,-0.441183 -0.144989,-0.804977 -0.434948,-1.09138 -0.282536,-0.286378 -0.717484,-0.429572 -1.304843,-0.429586 -0.513019,1.4e-5 -1.066927,0.112248 -1.661723,0.336702 -0.587368,0.224482 -1.197037,0.499262 -1.82901,0.82434 -1.453521,0.818948 -2.5794663,-1.530369 -1.137556,-2.565904 0.319705,-0.1934915 0.665432,-0.3753865 1.037183,-0.5456882 0.379184,-0.1780102 0.769521,-0.3328158 1.171013,-0.4644172 0.408922,-0.1393083 0.821564,-0.2476722 1.237927,-0.325092 0.416357,-0.077386 0.825282,-0.1160872 1.226776,-0.1161044 0.758365,1.72e-5 1.442385,0.096771 2.052061,0.2902608 0.609663,0.1857836 1.126395,0.4605635 1.550198,0.8243395 0.423786,0.3638075 0.747208,0.8050035 0.970268,1.3235875 0.230475,0.518614 0.345718,1.110745 0.345727,1.776396 -9e-6,0.48765 -0.05205,0.924976 -0.156135,1.311978 -0.104099,0.379285 -0.260234,0.735339 -0.468404,1.06816 -0.200755,0.325102 -0.457263,0.642454 -0.769524,0.952055 -0.304843,0.301881 -0.661723,0.623102 -1.070639,0.963666 -0.312278,0.255437 -0.568786,0.479906 -0.769524,0.673405 -0.193316,0.185774 -0.345734,0.363801 -0.457252,0.534079 -0.111531,0.170295 -0.189599,0.348321 -0.234203,0.534081 -0.03718,0.178033 -0.05576,0.390891 -0.05576,0.638574 l 0,0.696625 c -0.345863,2.197824 -2.53083,2.209243 -2.944261,0"
+ id="path2996"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csccccccccccccccccccccccccccscscc" />
+ <path
+ style="font-weight:bold;font-family:Droid Sans;-inkscape-font-specification:Droid Sans Bold"
+ d="m 13.14689,25.354041 c -3e-6,-0.326839 0.03795,-0.601524 0.113851,-0.824056 0.08174,-0.229482 0.192668,-0.413764 0.332795,-0.552849 0.140122,-0.139078 0.303601,-0.239911 0.490435,-0.302501 0.192667,-0.06259 0.397016,-0.09388 0.613044,-0.09388 0.204344,3e-6 0.397016,0.03129 0.578014,0.09388 0.186828,0.06259 0.350305,0.163423 0.490434,0.302501 0.14012,0.139085 0.251052,0.323367 0.332796,0.552849 0.08174,0.222532 0.122603,0.497217 0.122609,0.824056 -6e-6,0.312934 -0.04088,0.580665 -0.122609,0.803194 -0.08175,0.222531 -0.192676,0.406813 -0.332796,0.552848 -0.140129,0.146036 -0.303606,0.250347 -0.490434,0.312933 -0.180998,0.06954 -0.37367,0.104311 -0.578014,0.104311 -0.216028,0 -0.420377,-0.03477 -0.613044,-0.104311 -0.186834,-0.06259 -0.350313,-0.166897 -0.490435,-0.312933 -0.140127,-0.146035 -0.251058,-0.330317 -0.332795,-0.552848 -0.07591,-0.222529 -0.113854,-0.49026 -0.113851,-0.803194"
+ id="path2992"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/data/images/black/wait.svg b/data/images/black/wait.svg
new file mode 100644
index 00000000..2ae0113a
--- /dev/null
+++ b/data/images/black/wait.svg
@@ -0,0 +1,75 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg3243"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="wait.svg">
+ <defs
+ id="defs3245" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="-30.255727"
+ inkscape:cy="10.507144"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1056"
+ inkscape:window-x="1920"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3273" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3248">
+ <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
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#f0e68c;stroke:#000000;stroke-width:1.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;fill-opacity:1"
+ d="m 26.607099,9.8590516 c 1.095245,1.8715424 1.642877,3.9185224 1.642901,6.1409504 -2.4e-5,2.222446 -0.547656,4.274745 -1.642901,6.1569 -1.09529,1.871531 -2.584007,3.354928 -4.466146,4.450196 C 20.269406,27.702362 18.222426,28.249996 16,28.25 13.77755,28.249996 11.725251,27.702362 9.8430986,26.607098 7.9715638,25.51183 6.4881674,24.028433 5.392902,22.156902 4.2976328,20.274747 3.75,18.222448 3.75,16.000002 3.75,13.777574 4.2976328,11.730594 5.392902,9.8590516 6.4881674,7.9769072 7.9715638,6.4881927 9.8430986,5.3929062 11.725251,4.2976564 13.77755,3.7500236 16,3.75 c 2.222426,2.36e-5 4.269406,0.5476564 6.140953,1.6429062 1.882139,1.0952865 3.370856,2.584001 4.466146,4.4661454"
+ id="path3275"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(0.23090279,0,0,0.23090276,-12.029146,-19.708792)"
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome"
+ id="text2993">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 151.24208,161.07719 c -6e-5,0.13394 -0.0135,0.22769 -0.0402,0.28125 -1.71434,7.17858 -5.30363,13.00447 -10.76786,17.47767 -5.46433,4.44643 -11.86611,6.66964 -19.20535,6.66965 -3.91075,-1e-5 -7.70092,-0.73661 -11.37054,-2.20982 -3.64287,-1.47322 -6.89733,-3.5759 -9.76339,-6.30804 l -5.183039,5.18304 c -0.508932,0.50892 -1.11161,0.76339 -1.808035,0.76339 -0.696431,0 -1.299109,-0.25447 -1.808036,-0.76339 -0.508929,-0.50893 -0.763393,-1.11161 -0.763393,-1.80804 l 0,-18 c 0,-0.69641 0.254464,-1.29909 0.763393,-1.80804 0.508927,-0.5089 1.111605,-0.76337 1.808036,-0.76339 l 18.000004,0 c 0.6964,2e-5 1.29908,0.25449 1.80803,0.76339 0.50891,0.50895 0.76337,1.11163 0.76339,1.80804 -2e-5,0.69645 -0.25448,1.29912 -0.76339,1.80804 l -5.50446,5.50446 c 1.90176,1.76787 4.05801,3.13394 6.46875,4.09821 2.41069,0.9643 4.91515,1.44644 7.51339,1.44643 3.58925,10e-6 6.93746,-0.87053 10.04464,-2.6116 3.1071,-1.74107 5.59817,-4.13839 7.47322,-7.19197 0.29459,-0.45534 1.00441,-2.0223 2.12946,-4.70089 0.21424,-0.61605 0.61602,-0.92409 1.20536,-0.92411 l 7.71428,0 c 0.34816,2e-5 0.6428,0.13395 0.88393,0.40179 0.2678,0.24109 0.40173,0.53573 0.40179,0.88393 m 1.00446,-32.14286 0,18 c -6e-5,0.69646 -0.25452,1.29914 -0.76339,1.80803 -0.50899,0.50896 -1.11167,0.76343 -1.80804,0.7634 l -18,0 c -0.69646,3e-5 -1.29914,-0.25444 -1.80803,-0.7634 -0.50897,-0.50889 -0.76343,-1.11157 -0.76339,-1.80803 -4e-5,-0.6964 0.25442,-1.29907 0.76339,-1.80804 l 5.54464,-5.54464 c -3.96433,-3.6696 -8.63843,-5.50442 -14.02232,-5.50446 -3.58931,4e-5 -6.93752,0.87058 -10.04464,2.6116 -3.10716,1.74112 -5.59823,4.13844 -7.47322,7.19197 -0.29465,0.45539 -1.00447,2.02235 -2.12946,4.70089 -0.2143,0.6161 -0.61608,0.92414 -1.20536,0.92411 l -7.995534,0 c -0.348216,3e-5 -0.656252,-0.12051 -0.924107,-0.36161 -0.241073,-0.26783 -0.361608,-0.57586 -0.361608,-0.92411 l 0,-0.28125 c 1.741069,-7.17853 5.357137,-12.99102 10.848219,-17.4375 5.49105,-4.47316 11.91962,-6.70976 19.28571,-6.70982 3.91068,6e-5 7.71425,0.75006 11.41071,2.25 3.69639,1.47327 6.97763,3.56255 9.84375,6.26786 l 5.22322,-5.18304 c 0.50887,-0.50887 1.11155,-0.76334 1.80803,-0.76339 0.69637,5e-5 1.29905,0.25452 1.80804,0.76339 0.50887,0.50898 0.76333,1.11166 0.76339,1.80804"
+ id="path3126" />
+ </g>
+ </g>
+</svg>
diff --git a/data/images/conn_connected-light.png b/data/images/conn_connected-light.png
deleted file mode 100644
index a0db2a22..00000000
--- a/data/images/conn_connected-light.png
+++ /dev/null
Binary files differ
diff --git a/data/images/conn_connected.png b/data/images/conn_connected.png
deleted file mode 100644
index a5d20497..00000000
--- a/data/images/conn_connected.png
+++ /dev/null
Binary files differ
diff --git a/data/images/conn_connecting-light.png b/data/images/conn_connecting-light.png
deleted file mode 100644
index 83e3ea75..00000000
--- a/data/images/conn_connecting-light.png
+++ /dev/null
Binary files differ
diff --git a/data/images/conn_connecting.png b/data/images/conn_connecting.png
deleted file mode 100644
index 31b6e617..00000000
--- a/data/images/conn_connecting.png
+++ /dev/null
Binary files differ
diff --git a/data/images/conn_error-light.png b/data/images/conn_error-light.png
deleted file mode 100644
index 8cee20fe..00000000
--- a/data/images/conn_error-light.png
+++ /dev/null
Binary files differ
diff --git a/data/images/conn_error.png b/data/images/conn_error.png
deleted file mode 100644
index 85669af6..00000000
--- a/data/images/conn_error.png
+++ /dev/null
Binary files differ
diff --git a/data/images/countries/ar.png b/data/images/countries/ar.png
new file mode 100755
index 00000000..e5ef8f1f
--- /dev/null
+++ b/data/images/countries/ar.png
Binary files differ
diff --git a/data/images/countries/at.png b/data/images/countries/at.png
new file mode 100755
index 00000000..0f15f34f
--- /dev/null
+++ b/data/images/countries/at.png
Binary files differ
diff --git a/data/images/countries/au.png b/data/images/countries/au.png
new file mode 100755
index 00000000..a01389a7
--- /dev/null
+++ b/data/images/countries/au.png
Binary files differ
diff --git a/data/images/countries/bd.png b/data/images/countries/bd.png
new file mode 100755
index 00000000..076a8bf8
--- /dev/null
+++ b/data/images/countries/bd.png
Binary files differ
diff --git a/data/images/countries/be.png b/data/images/countries/be.png
new file mode 100755
index 00000000..d86ebc80
--- /dev/null
+++ b/data/images/countries/be.png
Binary files differ
diff --git a/data/images/countries/br.png b/data/images/countries/br.png
new file mode 100755
index 00000000..9b1a5538
--- /dev/null
+++ b/data/images/countries/br.png
Binary files differ
diff --git a/data/images/countries/ca.png b/data/images/countries/ca.png
new file mode 100755
index 00000000..1f204193
--- /dev/null
+++ b/data/images/countries/ca.png
Binary files differ
diff --git a/data/images/countries/cat.png b/data/images/countries/cat.png
new file mode 100644
index 00000000..5041e308
--- /dev/null
+++ b/data/images/countries/cat.png
Binary files differ
diff --git a/data/images/countries/ch.png b/data/images/countries/ch.png
new file mode 100755
index 00000000..242ec01a
--- /dev/null
+++ b/data/images/countries/ch.png
Binary files differ
diff --git a/data/images/countries/cl.png b/data/images/countries/cl.png
new file mode 100755
index 00000000..29c6d61b
--- /dev/null
+++ b/data/images/countries/cl.png
Binary files differ
diff --git a/data/images/countries/cn.png b/data/images/countries/cn.png
new file mode 100755
index 00000000..89144146
--- /dev/null
+++ b/data/images/countries/cn.png
Binary files differ
diff --git a/data/images/countries/co.png b/data/images/countries/co.png
new file mode 100755
index 00000000..a118ff4a
--- /dev/null
+++ b/data/images/countries/co.png
Binary files differ
diff --git a/data/images/countries/cy.png b/data/images/countries/cy.png
new file mode 100755
index 00000000..5b1ad6c0
--- /dev/null
+++ b/data/images/countries/cy.png
Binary files differ
diff --git a/data/images/countries/cz.png b/data/images/countries/cz.png
new file mode 100755
index 00000000..c8403dd2
--- /dev/null
+++ b/data/images/countries/cz.png
Binary files differ
diff --git a/data/images/countries/de.png b/data/images/countries/de.png
new file mode 100755
index 00000000..ac4a9773
--- /dev/null
+++ b/data/images/countries/de.png
Binary files differ
diff --git a/data/images/countries/dk.png b/data/images/countries/dk.png
new file mode 100755
index 00000000..e2993d3c
--- /dev/null
+++ b/data/images/countries/dk.png
Binary files differ
diff --git a/data/images/countries/ec.png b/data/images/countries/ec.png
new file mode 100755
index 00000000..0caa0b1e
--- /dev/null
+++ b/data/images/countries/ec.png
Binary files differ
diff --git a/data/images/countries/ee.png b/data/images/countries/ee.png
new file mode 100755
index 00000000..0c82efb7
--- /dev/null
+++ b/data/images/countries/ee.png
Binary files differ
diff --git a/data/images/countries/es.png b/data/images/countries/es.png
new file mode 100755
index 00000000..c2de2d71
--- /dev/null
+++ b/data/images/countries/es.png
Binary files differ
diff --git a/data/images/countries/fi.png b/data/images/countries/fi.png
new file mode 100755
index 00000000..14ec091b
--- /dev/null
+++ b/data/images/countries/fi.png
Binary files differ
diff --git a/data/images/countries/fr.png b/data/images/countries/fr.png
new file mode 100755
index 00000000..8332c4ec
--- /dev/null
+++ b/data/images/countries/fr.png
Binary files differ
diff --git a/data/images/countries/gb.png b/data/images/countries/gb.png
new file mode 100644
index 00000000..ff701e19
--- /dev/null
+++ b/data/images/countries/gb.png
Binary files differ
diff --git a/data/images/countries/gr.png b/data/images/countries/gr.png
new file mode 100755
index 00000000..8651ade7
--- /dev/null
+++ b/data/images/countries/gr.png
Binary files differ
diff --git a/data/images/countries/hk.png b/data/images/countries/hk.png
new file mode 100755
index 00000000..d5c380ca
--- /dev/null
+++ b/data/images/countries/hk.png
Binary files differ
diff --git a/data/images/countries/hu.png b/data/images/countries/hu.png
new file mode 100755
index 00000000..7baafe44
--- /dev/null
+++ b/data/images/countries/hu.png
Binary files differ
diff --git a/data/images/countries/id.png b/data/images/countries/id.png
new file mode 100755
index 00000000..c6bc0faf
--- /dev/null
+++ b/data/images/countries/id.png
Binary files differ
diff --git a/data/images/countries/ie.png b/data/images/countries/ie.png
new file mode 100755
index 00000000..26baa31e
--- /dev/null
+++ b/data/images/countries/ie.png
Binary files differ
diff --git a/data/images/countries/il.png b/data/images/countries/il.png
new file mode 100755
index 00000000..2ca772d0
--- /dev/null
+++ b/data/images/countries/il.png
Binary files differ
diff --git a/data/images/countries/in.png b/data/images/countries/in.png
new file mode 100755
index 00000000..e4d7e81a
--- /dev/null
+++ b/data/images/countries/in.png
Binary files differ
diff --git a/data/images/countries/iq.png b/data/images/countries/iq.png
new file mode 100755
index 00000000..878a3514
--- /dev/null
+++ b/data/images/countries/iq.png
Binary files differ
diff --git a/data/images/countries/ir.png b/data/images/countries/ir.png
new file mode 100755
index 00000000..c5fd136a
--- /dev/null
+++ b/data/images/countries/ir.png
Binary files differ
diff --git a/data/images/countries/is.png b/data/images/countries/is.png
new file mode 100755
index 00000000..b8f6d0f0
--- /dev/null
+++ b/data/images/countries/is.png
Binary files differ
diff --git a/data/images/countries/it.png b/data/images/countries/it.png
new file mode 100755
index 00000000..89692f74
--- /dev/null
+++ b/data/images/countries/it.png
Binary files differ
diff --git a/data/images/countries/jp.png b/data/images/countries/jp.png
new file mode 100755
index 00000000..325fbad3
--- /dev/null
+++ b/data/images/countries/jp.png
Binary files differ
diff --git a/data/images/countries/kh.png b/data/images/countries/kh.png
new file mode 100755
index 00000000..30f6bb1b
--- /dev/null
+++ b/data/images/countries/kh.png
Binary files differ
diff --git a/data/images/countries/kr.png b/data/images/countries/kr.png
new file mode 100755
index 00000000..9c0a78eb
--- /dev/null
+++ b/data/images/countries/kr.png
Binary files differ
diff --git a/data/images/countries/lb.png b/data/images/countries/lb.png
new file mode 100755
index 00000000..d0d452bf
--- /dev/null
+++ b/data/images/countries/lb.png
Binary files differ
diff --git a/data/images/countries/ly.png b/data/images/countries/ly.png
new file mode 100755
index 00000000..b163a9f8
--- /dev/null
+++ b/data/images/countries/ly.png
Binary files differ
diff --git a/data/images/countries/mx.png b/data/images/countries/mx.png
new file mode 100755
index 00000000..5bc58ab3
--- /dev/null
+++ b/data/images/countries/mx.png
Binary files differ
diff --git a/data/images/countries/my.png b/data/images/countries/my.png
new file mode 100755
index 00000000..9034cbab
--- /dev/null
+++ b/data/images/countries/my.png
Binary files differ
diff --git a/data/images/countries/ng.png b/data/images/countries/ng.png
new file mode 100755
index 00000000..3eea2e02
--- /dev/null
+++ b/data/images/countries/ng.png
Binary files differ
diff --git a/data/images/countries/no.png b/data/images/countries/no.png
new file mode 100755
index 00000000..160b6b5b
--- /dev/null
+++ b/data/images/countries/no.png
Binary files differ
diff --git a/data/images/countries/nz.png b/data/images/countries/nz.png
new file mode 100755
index 00000000..10d6306d
--- /dev/null
+++ b/data/images/countries/nz.png
Binary files differ
diff --git a/data/images/countries/pe.png b/data/images/countries/pe.png
new file mode 100755
index 00000000..62a04977
--- /dev/null
+++ b/data/images/countries/pe.png
Binary files differ
diff --git a/data/images/countries/pk.png b/data/images/countries/pk.png
new file mode 100755
index 00000000..e9df70ca
--- /dev/null
+++ b/data/images/countries/pk.png
Binary files differ
diff --git a/data/images/countries/pl.png b/data/images/countries/pl.png
new file mode 100755
index 00000000..d413d010
--- /dev/null
+++ b/data/images/countries/pl.png
Binary files differ
diff --git a/data/images/countries/ps.png b/data/images/countries/ps.png
new file mode 100755
index 00000000..f5f54776
--- /dev/null
+++ b/data/images/countries/ps.png
Binary files differ
diff --git a/data/images/countries/py.png b/data/images/countries/py.png
new file mode 100755
index 00000000..cb8723c0
--- /dev/null
+++ b/data/images/countries/py.png
Binary files differ
diff --git a/data/images/countries/ru.png b/data/images/countries/ru.png
new file mode 100755
index 00000000..47da4214
--- /dev/null
+++ b/data/images/countries/ru.png
Binary files differ
diff --git a/data/images/countries/se.png b/data/images/countries/se.png
new file mode 100755
index 00000000..1994653d
--- /dev/null
+++ b/data/images/countries/se.png
Binary files differ
diff --git a/data/images/countries/sg.png b/data/images/countries/sg.png
new file mode 100755
index 00000000..dd34d612
--- /dev/null
+++ b/data/images/countries/sg.png
Binary files differ
diff --git a/data/images/countries/tn.png b/data/images/countries/tn.png
new file mode 100755
index 00000000..183cdd3d
--- /dev/null
+++ b/data/images/countries/tn.png
Binary files differ
diff --git a/data/images/countries/ua.png b/data/images/countries/ua.png
new file mode 100755
index 00000000..09563a21
--- /dev/null
+++ b/data/images/countries/ua.png
Binary files differ
diff --git a/data/images/countries/ve.png b/data/images/countries/ve.png
new file mode 100755
index 00000000..00c90f9a
--- /dev/null
+++ b/data/images/countries/ve.png
Binary files differ
diff --git a/data/images/countries/vn.png b/data/images/countries/vn.png
new file mode 100755
index 00000000..ec7cd48a
--- /dev/null
+++ b/data/images/countries/vn.png
Binary files differ
diff --git a/data/images/countries/za.png b/data/images/countries/za.png
new file mode 100755
index 00000000..57c58e21
--- /dev/null
+++ b/data/images/countries/za.png
Binary files differ
diff --git a/data/images/favicon.ico b/data/images/favicon.ico
deleted file mode 100644
index 7f41dd1d..00000000
--- a/data/images/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/data/images/leap-client.icns b/data/images/leap-client.icns
deleted file mode 100644
index d5d52cdc..00000000
--- a/data/images/leap-client.icns
+++ /dev/null
Binary files differ
diff --git a/data/images/leap-client.tiff b/data/images/leap-client.tiff
deleted file mode 100644
index 71c95b0d..00000000
--- a/data/images/leap-client.tiff
+++ /dev/null
Binary files differ
diff --git a/data/images/leap-color-big.png b/data/images/leap-color-big.png
deleted file mode 100644
index eafacdcd..00000000
--- a/data/images/leap-color-big.png
+++ /dev/null
Binary files differ
diff --git a/data/images/leap-gray-big.png b/data/images/leap-gray-big.png
deleted file mode 100644
index 1529a74f..00000000
--- a/data/images/leap-gray-big.png
+++ /dev/null
Binary files differ
diff --git a/data/images/light/16/accept.png b/data/images/light/16/accept.png
deleted file mode 100644
index 917a68c4..00000000
--- a/data/images/light/16/accept.png
+++ /dev/null
Binary files differ
diff --git a/data/images/light/16/down-arrow.png b/data/images/light/16/down-arrow.png
deleted file mode 100644
index 9beb5de3..00000000
--- a/data/images/light/16/down-arrow.png
+++ /dev/null
Binary files differ
diff --git a/data/images/light/16/error.png b/data/images/light/16/error.png
deleted file mode 100644
index edc20985..00000000
--- a/data/images/light/16/error.png
+++ /dev/null
Binary files differ
diff --git a/data/images/light/16/refresh.png b/data/images/light/16/refresh.png
deleted file mode 100644
index a948a071..00000000
--- a/data/images/light/16/refresh.png
+++ /dev/null
Binary files differ
diff --git a/data/images/light/16/up-arrow.png b/data/images/light/16/up-arrow.png
deleted file mode 100644
index 4e0ec404..00000000
--- a/data/images/light/16/up-arrow.png
+++ /dev/null
Binary files differ
diff --git a/data/images/light/64/network-eip-acquiring.png b/data/images/light/64/network-eip-acquiring.png
deleted file mode 100644
index 83e3ea75..00000000
--- a/data/images/light/64/network-eip-acquiring.png
+++ /dev/null
Binary files differ
diff --git a/data/images/light/64/network-eip-down.png b/data/images/light/64/network-eip-down.png
deleted file mode 100644
index 85669af6..00000000
--- a/data/images/light/64/network-eip-down.png
+++ /dev/null
Binary files differ
diff --git a/data/images/light/64/network-eip-up.png b/data/images/light/64/network-eip-up.png
deleted file mode 100644
index a0db2a22..00000000
--- a/data/images/light/64/network-eip-up.png
+++ /dev/null
Binary files differ
diff --git a/data/images/mail-locked.png b/data/images/mail-locked.png
deleted file mode 100644
index 2108ca1c..00000000
--- a/data/images/mail-locked.png
+++ /dev/null
Binary files differ
diff --git a/data/images/mail-unlocked.png b/data/images/mail-unlocked.png
deleted file mode 100644
index fc3c11b0..00000000
--- a/data/images/mail-unlocked.png
+++ /dev/null
Binary files differ
diff --git a/data/images/mask-launcher.png b/data/images/mask-launcher.png
deleted file mode 100644
index cb27f8d3..00000000
--- a/data/images/mask-launcher.png
+++ /dev/null
Binary files differ
diff --git a/data/images/mask-small.png b/data/images/mask-small.png
deleted file mode 100644
index 5f5f1b41..00000000
--- a/data/images/mask-small.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/22/off.png b/data/images/white/22/off.png
new file mode 100644
index 00000000..bd4bb0ee
--- /dev/null
+++ b/data/images/white/22/off.png
Binary files differ
diff --git a/data/images/white/22/on.png b/data/images/white/22/on.png
new file mode 100644
index 00000000..3a3d5b55
--- /dev/null
+++ b/data/images/white/22/on.png
Binary files differ
diff --git a/data/images/white/22/question.png b/data/images/white/22/question.png
new file mode 100644
index 00000000..bd2a6292
--- /dev/null
+++ b/data/images/white/22/question.png
Binary files differ
diff --git a/data/images/white/22/wait.png b/data/images/white/22/wait.png
new file mode 100644
index 00000000..e0fb53df
--- /dev/null
+++ b/data/images/white/22/wait.png
Binary files differ
diff --git a/data/images/white/32/arrow-down.png b/data/images/white/32/arrow-down.png
deleted file mode 100644
index 02ccc540..00000000
--- a/data/images/white/32/arrow-down.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/arrow-up.png b/data/images/white/32/arrow-up.png
deleted file mode 100644
index fbe1f816..00000000
--- a/data/images/white/32/arrow-up.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/cloud.png b/data/images/white/32/cloud.png
deleted file mode 100644
index 39d589ef..00000000
--- a/data/images/white/32/cloud.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/contract.png b/data/images/white/32/contract.png
deleted file mode 100644
index 262ff3c0..00000000
--- a/data/images/white/32/contract.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/earth-square.png b/data/images/white/32/earth-square.png
deleted file mode 100644
index da7bf2cf..00000000
--- a/data/images/white/32/earth-square.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/earth.png b/data/images/white/32/earth.png
deleted file mode 100644
index efca7ccb..00000000
--- a/data/images/white/32/earth.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/email-square.png b/data/images/white/32/email-square.png
deleted file mode 100644
index 499d7a8f..00000000
--- a/data/images/white/32/email-square.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/email.png b/data/images/white/32/email.png
deleted file mode 100644
index abb36035..00000000
--- a/data/images/white/32/email.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/expand.png b/data/images/white/32/expand.png
deleted file mode 100644
index 0ec28dcc..00000000
--- a/data/images/white/32/expand.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/gear.png b/data/images/white/32/gear.png
deleted file mode 100644
index 83f8d5ff..00000000
--- a/data/images/white/32/gear.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/off.png b/data/images/white/32/off.png
deleted file mode 100644
index 22621594..00000000
--- a/data/images/white/32/off.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/on.png b/data/images/white/32/on.png
deleted file mode 100644
index 8946f763..00000000
--- a/data/images/white/32/on.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/refresh.png b/data/images/white/32/refresh.png
deleted file mode 100644
index 36a89da9..00000000
--- a/data/images/white/32/refresh.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/user.png b/data/images/white/32/user.png
deleted file mode 100644
index ff8edd00..00000000
--- a/data/images/white/32/user.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/32/wait.png b/data/images/white/32/wait.png
deleted file mode 100644
index 8562d636..00000000
--- a/data/images/white/32/wait.png
+++ /dev/null
Binary files differ
diff --git a/data/images/white/off.svg b/data/images/white/off.svg
new file mode 100644
index 00000000..9c7cacfe
--- /dev/null
+++ b/data/images/white/off.svg
@@ -0,0 +1,89 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg3243"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="off.svg">
+ <defs
+ id="defs3245" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="16.939547"
+ inkscape:cy="16.062523"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="false"
+ inkscape:window-width="884"
+ inkscape:window-height="545"
+ inkscape:window-x="882"
+ inkscape:window-y="329"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3273" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3248">
+ <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
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#a40000;stroke:#eeeeec;stroke-width:1.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;fill-opacity:1"
+ d="m 26.607099,9.8590516 c 1.095245,1.8715414 1.642877,3.9185224 1.642901,6.1409504 -2.4e-5,2.222445 -0.547656,4.274746 -1.642901,6.156901 -1.095291,1.87153 -2.584007,3.354927 -4.466146,4.450195 C 20.269405,27.702363 18.222426,28.249996 16,28.25 13.77755,28.249996 11.725251,27.702363 9.8430986,26.607098 7.9715637,25.51183 6.4881674,24.028433 5.3929018,22.156903 4.2976327,20.274748 3.75,18.222447 3.75,16.000002 3.75,13.777574 4.2976327,11.730593 5.3929018,9.8590516 6.4881674,7.9769071 7.9715637,6.4881926 9.8430986,5.392906 11.725251,4.2976563 13.77755,3.7500236 16,3.75 c 2.222426,2.36e-5 4.269405,0.5476563 6.140953,1.642906 1.882139,1.0952866 3.370855,2.5840011 4.466146,4.4661456"
+ id="path3275"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g3758"
+ transform="matrix(0.865313,0,0,0.865313,2.163376,2.175981)"
+ style="stroke:#eeeeec;fill:#eeeeec">
+ <rect
+ transform="matrix(-0.70710678,-0.70710678,-0.70710678,0.70710678,0,0)"
+ style="fill:#eeeeec;fill-opacity:1;stroke:#eeeeec"
+ id="rect4057"
+ width="18"
+ height="3"
+ x="-31.781626"
+ y="-1.4338233"
+ ry="0" />
+ <rect
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+ ry="0"
+ y="21.281626"
+ x="-9.0661755"
+ height="3"
+ width="18"
+ id="rect4059"
+ style="fill:#eeeeec;fill-opacity:1;stroke:#eeeeec" />
+ </g>
+ </g>
+</svg>
diff --git a/data/images/white/on.svg b/data/images/white/on.svg
new file mode 100644
index 00000000..4d4bc5b8
--- /dev/null
+++ b/data/images/white/on.svg
@@ -0,0 +1,78 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg3243"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="on.svg">
+ <defs
+ id="defs3245" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="35.709077"
+ inkscape:cy="11.915427"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1056"
+ inkscape:window-x="1920"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3273" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3248">
+ <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
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#4e9a06;stroke:#eeeeec;stroke-width:1.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;fill-opacity:1"
+ d="m 26.607098,9.8590516 c 1.095246,1.8715424 1.642877,3.9185224 1.642902,6.1409504 -2.5e-5,2.222447 -0.547656,4.274744 -1.642902,6.156901 -1.095289,1.871529 -2.584005,3.354927 -4.466145,4.450195 C 20.269406,27.702363 18.222425,28.249996 16,28.25 13.77755,28.249996 11.725251,27.702363 9.843099,26.607098 7.9715637,25.51183 6.4881673,24.028432 5.3929019,22.156903 4.2976327,20.274746 3.75,18.222449 3.75,16.000002 3.75,13.777574 4.2976327,11.730594 5.3929019,9.8590516 6.4881673,7.9769072 7.9715637,6.4881927 9.843099,5.3929062 11.725251,4.2976564 13.77755,3.7500236 16,3.75 c 2.222425,2.36e-5 4.269406,0.5476564 6.140953,1.6429062 1.88214,1.0952865 3.370856,2.584001 4.466145,4.4661454"
+ id="path3275"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#eeeeec;fill-opacity:1;stroke:none"
+ d="M 16.816995,19.463899 11.276562,13.923466 8.7414,16.458629 14.281832,21.999061 z"
+ id="rect4057"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#eeeeec;fill-opacity:1;stroke:none"
+ d="m 11.792505,19.521247 9.473539,-9.340956 2.535164,2.535163 -9.473539,9.340957 z"
+ id="rect4059"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/data/images/white/question.svg b/data/images/white/question.svg
new file mode 100644
index 00000000..dd4aa200
--- /dev/null
+++ b/data/images/white/question.svg
@@ -0,0 +1,82 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg3243"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="question.svg">
+ <defs
+ id="defs3245" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6568542"
+ inkscape:cx="-4.5781666"
+ inkscape:cy="11.131084"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="false"
+ inkscape:window-width="1328"
+ inkscape:window-height="840"
+ inkscape:window-x="1987"
+ inkscape:window-y="24"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3273" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3248">
+ <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
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#c4a000;stroke:#eeeeec;stroke-width:1.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;fill-opacity:1"
+ d="m 26.607099,9.8590516 c 1.095245,1.8715424 1.642877,3.9185224 1.642901,6.1409504 -2.4e-5,2.222446 -0.547656,4.274745 -1.642901,6.1569 -1.09529,1.871531 -2.584007,3.354928 -4.466146,4.450196 C 20.269406,27.702362 18.222426,28.249996 16,28.25 13.77755,28.249996 11.725251,27.702362 9.8430986,26.607098 7.9715638,25.51183 6.4881674,24.028433 5.392902,22.156902 4.2976328,20.274747 3.75,18.222448 3.75,16.000002 3.75,13.777574 4.2976328,11.730594 5.392902,9.8590516 6.4881674,7.9769072 7.9715638,6.4881927 9.8430986,5.3929062 11.725251,4.2976564 13.77755,3.7500236 16,3.75 c 2.222426,2.36e-5 4.269406,0.5476564 6.140953,1.6429062 1.882139,1.0952865 3.370856,2.584001 4.466146,4.4661454"
+ id="path3275"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(0.93378097,0,0,0.80060225,2.1910082,2.2390946)"
+ style="font-size:24.20675277999999864px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#eeeeec;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="text2987">
+ <path
+ style="font-weight:bold;font-family:Droid Sans;-inkscape-font-specification:Droid Sans Bold;fill:#eeeeec"
+ d="m 13.191315,20.187003 0,-0.859172 c -3e-6,-0.394747 0.03717,-0.750801 0.111525,-1.068159 0.08178,-0.325085 0.200741,-0.630826 0.35688,-0.917225 0.163567,-0.294121 0.371746,-0.576642 0.62454,-0.847561 0.252786,-0.27864 0.55762,-0.565031 0.914506,-0.859172 0.312264,-0.255419 0.576207,-0.483757 0.791827,-0.685016 0.21561,-0.201235 0.390332,-0.398613 0.524168,-0.592131 0.133823,-0.201235 0.230479,-0.410223 0.289965,-0.626963 0.05947,-0.216716 0.08921,-0.468275 0.08922,-0.754678 -7e-6,-0.441183 -0.144989,-0.804977 -0.434948,-1.09138 -0.282536,-0.286378 -0.717484,-0.429572 -1.304843,-0.429586 -0.513019,1.4e-5 -1.066927,0.112248 -1.661723,0.336702 -0.587368,0.224482 -1.197037,0.499262 -1.82901,0.82434 -1.453521,0.818948 -2.5794663,-1.530369 -1.137556,-2.565904 0.319705,-0.1934915 0.665432,-0.3753865 1.037183,-0.5456882 0.379184,-0.1780102 0.769521,-0.3328158 1.171013,-0.4644172 0.408922,-0.1393083 0.821564,-0.2476722 1.237927,-0.325092 0.416357,-0.077386 0.825282,-0.1160872 1.226776,-0.1161044 0.758365,1.72e-5 1.442385,0.096771 2.052061,0.2902608 0.609663,0.1857836 1.126395,0.4605635 1.550198,0.8243395 0.423786,0.3638075 0.747208,0.8050035 0.970268,1.3235875 0.230475,0.518614 0.345718,1.110745 0.345727,1.776396 -9e-6,0.48765 -0.05205,0.924976 -0.156135,1.311978 -0.104099,0.379285 -0.260234,0.735339 -0.468404,1.06816 -0.200755,0.325102 -0.457263,0.642454 -0.769524,0.952055 -0.304843,0.301881 -0.661723,0.623102 -1.070639,0.963666 -0.312278,0.255437 -0.568786,0.479906 -0.769524,0.673405 -0.193316,0.185774 -0.345734,0.363801 -0.457252,0.534079 -0.111531,0.170295 -0.189599,0.348321 -0.234203,0.534081 -0.03718,0.178033 -0.05576,0.390891 -0.05576,0.638574 l 0,0.696625 c -0.345863,2.197824 -2.53083,2.209243 -2.944261,0"
+ id="path2996"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csccccccccccccccccccccccccccscscc" />
+ <path
+ style="font-weight:bold;font-family:Droid Sans;-inkscape-font-specification:Droid Sans Bold;fill:#eeeeec"
+ d="m 13.14689,25.354041 c -3e-6,-0.326839 0.03795,-0.601524 0.113851,-0.824056 0.08174,-0.229482 0.192668,-0.413764 0.332795,-0.552849 0.140122,-0.139078 0.303601,-0.239911 0.490435,-0.302501 0.192667,-0.06259 0.397016,-0.09388 0.613044,-0.09388 0.204344,3e-6 0.397016,0.03129 0.578014,0.09388 0.186828,0.06259 0.350305,0.163423 0.490434,0.302501 0.14012,0.139085 0.251052,0.323367 0.332796,0.552849 0.08174,0.222532 0.122603,0.497217 0.122609,0.824056 -6e-6,0.312934 -0.04088,0.580665 -0.122609,0.803194 -0.08175,0.222531 -0.192676,0.406813 -0.332796,0.552848 -0.140129,0.146036 -0.303606,0.250347 -0.490434,0.312933 -0.180998,0.06954 -0.37367,0.104311 -0.578014,0.104311 -0.216028,0 -0.420377,-0.03477 -0.613044,-0.104311 -0.186834,-0.06259 -0.350313,-0.166897 -0.490435,-0.312933 -0.140127,-0.146035 -0.251058,-0.330317 -0.332795,-0.552848 -0.07591,-0.222529 -0.113854,-0.49026 -0.113851,-0.803194"
+ id="path2992"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/data/images/white/wait.svg b/data/images/white/wait.svg
new file mode 100644
index 00000000..8963b0cf
--- /dev/null
+++ b/data/images/white/wait.svg
@@ -0,0 +1,76 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg3243"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="wait.svg">
+ <defs
+ id="defs3245" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="-30.255727"
+ inkscape:cy="10.507144"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1056"
+ inkscape:window-x="1920"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3273" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3248">
+ <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
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#c4a000;stroke:#eeeeec;stroke-width:1.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;fill-opacity:1"
+ d="m 26.607099,9.8590516 c 1.095245,1.8715424 1.642877,3.9185224 1.642901,6.1409504 -2.4e-5,2.222446 -0.547656,4.274745 -1.642901,6.1569 -1.09529,1.871531 -2.584007,3.354928 -4.466146,4.450196 C 20.269406,27.702362 18.222426,28.249996 16,28.25 13.77755,28.249996 11.725251,27.702362 9.8430986,26.607098 7.9715638,25.51183 6.4881674,24.028433 5.392902,22.156902 4.2976328,20.274747 3.75,18.222448 3.75,16.000002 3.75,13.777574 4.2976328,11.730594 5.392902,9.8590516 6.4881674,7.9769072 7.9715638,6.4881927 9.8430986,5.3929062 11.725251,4.2976564 13.77755,3.7500236 16,3.75 c 2.222426,2.36e-5 4.269406,0.5476564 6.140953,1.6429062 1.882139,1.0952865 3.370856,2.584001 4.466146,4.4661454"
+ id="path3275"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(0.23090279,0,0,0.23090276,-12.029146,-19.708792)"
+ style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#eeeeec;fill-opacity:1;stroke:none;font-family:FontAwesome;-inkscape-font-specification:FontAwesome"
+ id="text2993">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 151.24208,161.07719 c -6e-5,0.13394 -0.0135,0.22769 -0.0402,0.28125 -1.71434,7.17858 -5.30363,13.00447 -10.76786,17.47767 -5.46433,4.44643 -11.86611,6.66964 -19.20535,6.66965 -3.91075,-1e-5 -7.70092,-0.73661 -11.37054,-2.20982 -3.64287,-1.47322 -6.89733,-3.5759 -9.76339,-6.30804 l -5.183039,5.18304 c -0.508932,0.50892 -1.11161,0.76339 -1.808035,0.76339 -0.696431,0 -1.299109,-0.25447 -1.808036,-0.76339 -0.508929,-0.50893 -0.763393,-1.11161 -0.763393,-1.80804 l 0,-18 c 0,-0.69641 0.254464,-1.29909 0.763393,-1.80804 0.508927,-0.5089 1.111605,-0.76337 1.808036,-0.76339 l 18.000004,0 c 0.6964,2e-5 1.29908,0.25449 1.80803,0.76339 0.50891,0.50895 0.76337,1.11163 0.76339,1.80804 -2e-5,0.69645 -0.25448,1.29912 -0.76339,1.80804 l -5.50446,5.50446 c 1.90176,1.76787 4.05801,3.13394 6.46875,4.09821 2.41069,0.9643 4.91515,1.44644 7.51339,1.44643 3.58925,10e-6 6.93746,-0.87053 10.04464,-2.6116 3.1071,-1.74107 5.59817,-4.13839 7.47322,-7.19197 0.29459,-0.45534 1.00441,-2.0223 2.12946,-4.70089 0.21424,-0.61605 0.61602,-0.92409 1.20536,-0.92411 l 7.71428,0 c 0.34816,2e-5 0.6428,0.13395 0.88393,0.40179 0.2678,0.24109 0.40173,0.53573 0.40179,0.88393 m 1.00446,-32.14286 0,18 c -6e-5,0.69646 -0.25452,1.29914 -0.76339,1.80803 -0.50899,0.50896 -1.11167,0.76343 -1.80804,0.7634 l -18,0 c -0.69646,3e-5 -1.29914,-0.25444 -1.80803,-0.7634 -0.50897,-0.50889 -0.76343,-1.11157 -0.76339,-1.80803 -4e-5,-0.6964 0.25442,-1.29907 0.76339,-1.80804 l 5.54464,-5.54464 c -3.96433,-3.6696 -8.63843,-5.50442 -14.02232,-5.50446 -3.58931,4e-5 -6.93752,0.87058 -10.04464,2.6116 -3.10716,1.74112 -5.59823,4.13844 -7.47322,7.19197 -0.29465,0.45539 -1.00447,2.02235 -2.12946,4.70089 -0.2143,0.6161 -0.61608,0.92414 -1.20536,0.92411 l -7.995534,0 c -0.348216,3e-5 -0.656252,-0.12051 -0.924107,-0.36161 -0.241073,-0.26783 -0.361608,-0.57586 -0.361608,-0.92411 l 0,-0.28125 c 1.741069,-7.17853 5.357137,-12.99102 10.848219,-17.4375 5.49105,-4.47316 11.91962,-6.70976 19.28571,-6.70982 3.91068,6e-5 7.71425,0.75006 11.41071,2.25 3.69639,1.47327 6.97763,3.56255 9.84375,6.26786 l 5.22322,-5.18304 c 0.50887,-0.50887 1.11155,-0.76334 1.80803,-0.76339 0.69637,5e-5 1.29905,0.25452 1.80804,0.76339 0.50887,0.50898 0.76333,1.11166 0.76339,1.80804"
+ id="path3126"
+ style="fill:#eeeeec" />
+ </g>
+ </g>
+</svg>
diff --git a/data/resources/eipstatus.qrc b/data/resources/eipstatus.qrc
deleted file mode 100644
index 5d0f2924..00000000
--- a/data/resources/eipstatus.qrc
+++ /dev/null
@@ -1,7 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>../images/countries/nl.png</file>
- <file>../images/countries/tr.png</file>
- <file>../images/countries/us.png</file>
- </qresource>
-</RCC>
diff --git a/data/resources/flags.qrc b/data/resources/flags.qrc
new file mode 100644
index 00000000..8bdc9c4c
--- /dev/null
+++ b/data/resources/flags.qrc
@@ -0,0 +1,63 @@
+<RCC>
+ <qresource prefix="/">
+ <file>../images/countries/ar.png</file>
+ <file>../images/countries/at.png</file>
+ <file>../images/countries/au.png</file>
+ <file>../images/countries/bd.png</file>
+ <file>../images/countries/be.png</file>
+ <file>../images/countries/br.png</file>
+ <file>../images/countries/ca.png</file>
+ <file>../images/countries/cat.png</file>
+ <file>../images/countries/ch.png</file>
+ <file>../images/countries/cl.png</file>
+ <file>../images/countries/cn.png</file>
+ <file>../images/countries/co.png</file>
+ <file>../images/countries/cy.png</file>
+ <file>../images/countries/cz.png</file>
+ <file>../images/countries/de.png</file>
+ <file>../images/countries/dk.png</file>
+ <file>../images/countries/ec.png</file>
+ <file>../images/countries/ee.png</file>
+ <file>../images/countries/es.png</file>
+ <file>../images/countries/fi.png</file>
+ <file>../images/countries/fr.png</file>
+ <file>../images/countries/gb.png</file>
+ <file>../images/countries/gr.png</file>
+ <file>../images/countries/hk.png</file>
+ <file>../images/countries/hu.png</file>
+ <file>../images/countries/id.png</file>
+ <file>../images/countries/ie.png</file>
+ <file>../images/countries/il.png</file>
+ <file>../images/countries/in.png</file>
+ <file>../images/countries/iq.png</file>
+ <file>../images/countries/ir.png</file>
+ <file>../images/countries/is.png</file>
+ <file>../images/countries/it.png</file>
+ <file>../images/countries/jp.png</file>
+ <file>../images/countries/kh.png</file>
+ <file>../images/countries/kr.png</file>
+ <file>../images/countries/lb.png</file>
+ <file>../images/countries/ly.png</file>
+ <file>../images/countries/mx.png</file>
+ <file>../images/countries/my.png</file>
+ <file>../images/countries/ng.png</file>
+ <file>../images/countries/nl.png</file>
+ <file>../images/countries/no.png</file>
+ <file>../images/countries/nz.png</file>
+ <file>../images/countries/pe.png</file>
+ <file>../images/countries/pk.png</file>
+ <file>../images/countries/pl.png</file>
+ <file>../images/countries/ps.png</file>
+ <file>../images/countries/py.png</file>
+ <file>../images/countries/ru.png</file>
+ <file>../images/countries/se.png</file>
+ <file>../images/countries/sg.png</file>
+ <file>../images/countries/tn.png</file>
+ <file>../images/countries/tr.png</file>
+ <file>../images/countries/ua.png</file>
+ <file>../images/countries/us.png</file>
+ <file>../images/countries/ve.png</file>
+ <file>../images/countries/vn.png</file>
+ <file>../images/countries/za.png</file>
+ </qresource>
+</RCC> \ No newline at end of file
diff --git a/data/resources/icons.qrc b/data/resources/icons.qrc
index 1cc574e2..7fda6197 100644
--- a/data/resources/icons.qrc
+++ b/data/resources/icons.qrc
@@ -1,11 +1,38 @@
<RCC>
<qresource prefix="/">
- <file>../images/mail-locked.png</file>
- <file>../images/mail-unlocked.png</file>
- <file>../images/light/16/down-arrow.png</file>
- <file>../images/light/16/up-arrow.png</file>
- <file>../images/light/64/network-eip-acquiring.png</file>
- <file>../images/light/64/network-eip-down.png</file>
- <file>../images/light/64/network-eip-up.png</file>
+
+ <!-- used as window icon -->
+ <file>../images/mask-icon.png</file>
+
+ <!-- round status icons -->
+ <file>../images/black/off.svg</file>
+ <file>../images/black/on.svg</file>
+ <file>../images/black/question.svg</file>
+ <file>../images/black/wait.svg</file>
+ <file>../images/black/22/off.png</file>
+ <file>../images/black/22/on.png</file>
+ <file>../images/black/22/question.png</file>
+ <file>../images/black/22/wait.png</file>
+
+ <file>../images/white/off.svg</file>
+ <file>../images/white/on.svg</file>
+ <file>../images/white/question.svg</file>
+ <file>../images/white/wait.svg</file>
+ <file>../images/white/22/off.png</file>
+ <file>../images/white/22/on.png</file>
+ <file>../images/white/22/question.png</file>
+ <file>../images/white/22/wait.png</file>
+
+ <!-- used by login -->
+ <file>../images/black/32/user.png</file>
+
+ <!-- used by eip status -->
+ <file>../images/black/32/earth.png</file>
+ <file>../images/black/32/arrow-down.png</file>
+ <file>../images/black/32/arrow-up.png</file>
+
+ <!-- used by email status -->
+ <file>../images/black/32/email.png</file>
+
</qresource>
</RCC>
diff --git a/data/resources/mainwindow.qrc b/data/resources/mainwindow.qrc
deleted file mode 100644
index 0a917d5a..00000000
--- a/data/resources/mainwindow.qrc
+++ /dev/null
@@ -1,38 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>../images/white/32/off.png</file>
- <file>../images/white/32/on.png</file>
- <file>../images/white/32/wait.png</file>
- <file>../images/black/32/arrow-down.png</file>
- <file>../images/black/32/arrow-up.png</file>
- <file>../images/black/32/cloud.png</file>
- <file>../images/black/32/contract.png</file>
- <file>../images/black/32/earth-square.png</file>
- <file>../images/black/32/earth.png</file>
- <file>../images/black/32/email-square.png</file>
- <file>../images/black/32/email.png</file>
- <file>../images/black/32/expand.png</file>
- <file>../images/black/32/gear.png</file>
- <file>../images/black/32/off.png</file>
- <file>../images/black/32/on.png</file>
- <file>../images/black/32/refresh.png</file>
- <file>../images/black/32/user.png</file>
- <file>../images/black/32/wait.png</file>
- <file>../images/mask-launcher.png</file>
- <file>../images/mask-icon.png</file>
- <file>../images/leap-gray-big.png</file>
- <file>../images/Blue-Arrow-Right-32.png</file>
- <file>../images/leap-color-big.png</file>
- <file>../images/Arrow-Down-32.png</file>
- <file>../images/Arrow-Up-32.png</file>
- <file>../images/conn_connecting.png</file>
- <file>../images/conn_connected.png</file>
- <file>../images/conn_error.png</file>
- <file>../images/conn_connecting-light.png</file>
- <file>../images/conn_connected-light.png</file>
- <file>../images/conn_error-light.png</file>
- <file>../images/Dialog-accept.png</file>
- <file>../images/Dialog-error.png</file>
- <file>../images/Emblem-question.png</file>
- </qresource>
-</RCC>
diff --git a/src/leap/bitmask/gui/eip_status.py b/src/leap/bitmask/gui/eip_status.py
index 1e764a8c..abd6e2c9 100644
--- a/src/leap/bitmask/gui/eip_status.py
+++ b/src/leap/bitmask/gui/eip_status.py
@@ -214,15 +214,15 @@ class EIPStatusWidget(QtGui.QWidget):
WIN : light icons
"""
EIP_ICONS = EIP_ICONS_TRAY = (
- ":/images/black/32/wait.png",
- ":/images/black/32/on.png",
- ":/images/black/32/off.png")
+ ":/images/black/22/wait.png",
+ ":/images/black/22/on.png",
+ ":/images/black/22/off.png")
if IS_LINUX:
EIP_ICONS_TRAY = (
- ":/images/white/32/wait.png",
- ":/images/white/32/on.png",
- ":/images/white/32/off.png")
+ ":/images/white/22/wait.png",
+ ":/images/white/22/on.png",
+ ":/images/white/22/off.png")
self.CONNECTING_ICON = QtGui.QPixmap(EIP_ICONS[0])
self.CONNECTED_ICON = QtGui.QPixmap(EIP_ICONS[1])
@@ -793,6 +793,3 @@ class EIPStatusWidget(QtGui.QWidget):
"""
self.set_eip_status("", error=error)
self.set_eip_status_icon("error")
-
-import eipstatus_rc
-assert(eipstatus_rc)
diff --git a/src/leap/bitmask/gui/mail_status.py b/src/leap/bitmask/gui/mail_status.py
index bb755b5c..d523f449 100644
--- a/src/leap/bitmask/gui/mail_status.py
+++ b/src/leap/bitmask/gui/mail_status.py
@@ -134,15 +134,15 @@ class MailStatusWidget(QtGui.QWidget):
WIN : light icons
"""
EIP_ICONS = EIP_ICONS_TRAY = (
- ":/images/black/32/wait.png",
- ":/images/black/32/on.png",
- ":/images/black/32/off.png")
+ ":/images/black/22/wait.png",
+ ":/images/black/22/on.png",
+ ":/images/black/22/off.png")
if IS_LINUX:
EIP_ICONS_TRAY = (
- ":/images/white/32/wait.png",
- ":/images/white/32/on.png",
- ":/images/white/32/off.png")
+ ":/images/white/22/wait.png",
+ ":/images/white/22/on.png",
+ ":/images/white/22/off.png")
self.CONNECTING_ICON = QtGui.QPixmap(EIP_ICONS[0])
self.CONNECTED_ICON = QtGui.QPixmap(EIP_ICONS[1])
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index 389ff172..0518350e 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -237,8 +237,8 @@ class MainWindow(QtGui.QMainWindow):
self._action_eip_startstop = QtGui.QAction("", self)
self._eip_status.set_action_eip_startstop(self._action_eip_startstop)
- self._action_visible = QtGui.QAction(self.tr("Hide Main Window"), self)
- self._action_visible.triggered.connect(self._toggle_visible)
+ self._action_visible = QtGui.QAction(self.tr("Show Main Window"), self)
+ self._action_visible.triggered.connect(self._ensure_visible)
# disable buttons for now, may come back later.
# self.ui.btnPreferences.clicked.connect(self._show_preferences)
@@ -285,14 +285,8 @@ class MainWindow(QtGui.QMainWindow):
self.logout.connect(self._mail_conductor.stop_mail_services)
- # Eip machine is a public attribute where the state machine for
- # the eip connection will be available to the different components.
- # Remember that this will not live in the +1600LOC mainwindow for
- # all the eternity, so at some point we will be moving this to
- # the EIPConductor or some other clever component that we will
- # instantiate from here.
+ # start event machines from within the eip and mail conductors
- # start event machines
# TODO should encapsulate all actions into one object
self._eip_conductor.start_eip_machine(
action=self._action_eip_startstop)
@@ -963,8 +957,6 @@ class MainWindow(QtGui.QMainWindow):
Display the context menu from the tray icon
"""
- self._update_hideshow_menu()
-
context_menu = self._systray.contextMenu()
if not IS_MAC:
# for some reason, context_menu.show()
@@ -973,50 +965,38 @@ class MainWindow(QtGui.QMainWindow):
# this works however.
context_menu.exec_(self._systray.geometry().center())
- def _update_hideshow_menu(self):
- """
- Update the Hide/Show main window menu text based on the
- visibility of the window.
+ @QtCore.Slot()
+ def _ensure_visible(self):
"""
- get_action = lambda visible: (
- self.tr("Show Main Window"),
- self.tr("Hide Main Window"))[int(visible)]
+ TRIGGERS:
+ self._action_visible.triggered
- # set labels
- visible = self.isVisible() and self.isActiveWindow()
- self._action_visible.setText(get_action(visible))
+ Ensure that the window is visible and raised.
+ """
+ QtGui.QApplication.setQuitOnLastWindowClosed(True)
+ self.show()
+ if IS_LINUX:
+ # On ubuntu, activateWindow doesn't work reliably, so
+ # we do the following as a workaround. See
+ # https://bugreports.qt-project.org/browse/QTBUG-24932
+ # for more details
+ QtGui.QX11Info.setAppUserTime(0)
+ self.activateWindow()
+ self.raise_()
@QtCore.Slot()
- def _toggle_visible(self):
+ def _ensure_invisible(self):
"""
TRIGGERS:
self._action_visible.triggered
- Toggle the window visibility
+ Ensure that the window is hidden.
"""
- visible = self.isVisible() and self.isActiveWindow()
-
- if not visible:
- QtGui.QApplication.setQuitOnLastWindowClosed(True)
- self.show()
- if IS_LINUX:
- # On ubuntu, activateWindow doesn't work reliably, so
- # we do the following as a workaround. See
- # https://bugreports.qt-project.org/browse/QTBUG-24932
- # for more details
- QtGui.QX11Info.setAppUserTime(0)
- self.activateWindow()
- self.raise_()
- else:
- # We set this in order to avoid dialogs shutting down the
- # app on close, as they will be the only visible window.
- # e.g.: PreferencesWindow, LoggerWindow
- QtGui.QApplication.setQuitOnLastWindowClosed(False)
- self.hide()
-
- # Wait a bit until the window visibility has changed so
- # the menu is set with the correct value.
- QtDelayedCall(500, self._update_hideshow_menu)
+ # We set this in order to avoid dialogs shutting down the
+ # app on close, as they will be the only visible window.
+ # e.g.: PreferencesWindow, LoggerWindow
+ QtGui.QApplication.setQuitOnLastWindowClosed(False)
+ self.hide()
def _center_window(self):
"""
@@ -1079,22 +1059,38 @@ class MainWindow(QtGui.QMainWindow):
# TODO: don't hardcode!
smtp_port = 2013
- url = ("<a href='https://addons.mozilla.org/es/thunderbird/"
- "addon/bitmask/'>bitmask addon</a>")
-
- msg = self.tr(
- "<strong>Instructions to use mail:</strong><br>"
- "If you use Thunderbird you can use the Bitmask extension helper. "
- "Search for 'Bitmask' in the add-on manager or download it "
- "from: {0}.<br><br>"
- "You can configure Bitmask manually with these options:<br>"
- "<em>"
- " Incoming -> IMAP, port: {1}<br>"
- " Outgoing -> SMTP, port: {2}<br>"
- " Username -> your bitmask username.<br>"
- " Password -> does not matter, use any text. "
- " Just don't leave it empty and don't use your account's password."
- "</em>").format(url, IMAP_PORT, smtp_port)
+ help_url = "<p><a href='https://{0}'>{0}</a></p>".format(
+ self.tr("bitmask.net/help"))
+
+ lang = QtCore.QLocale.system().name().replace('_','-')
+ thunderbird_extension_url = \
+ "https://addons.mozilla.org/{0}/" \
+ "thunderbird/addon/bitmask/".format(lang)
+
+ email_quick_reference = self.tr("Email quick reference")
+ thunderbird_text = self.tr("For Thunderbird, you can use the "
+ "Bitmask extension. Search for \"Bitmask\" in the add-on "
+ "manager or download it from <a href='{0}'>"
+ "addons.mozilla.org</a>.".format(thunderbird_extension_url))
+ manual_text = self.tr("Alternately, you can manually configure "
+ "your mail client to use Bitmask Email with these options:")
+ manual_imap = self.tr("IMAP: localhost, port {0}".format(IMAP_PORT))
+ manual_smtp = self.tr("SMTP: localhost, port {0}".format(smtp_port))
+ manual_username = self.tr("Username: your full email address")
+ manual_password = self.tr("Password: any non-empty text")
+
+ msg = help_url + self.tr(
+ "<p><strong>{0}</strong></p>"
+ "<p>{1}</p>"
+ "<p>{2}"
+ "<ul>"
+ "<li>&nbsp;{3}</li>"
+ "<li>&nbsp;{4}</li>"
+ "<li>&nbsp;{5}</li>"
+ "<li>&nbsp;{6}</li>"
+ "</ul></p>").format(email_quick_reference, thunderbird_text,
+ manual_text, manual_imap, manual_smtp,
+ manual_username, manual_password)
QtGui.QMessageBox.about(self, self.tr("Bitmask Help"), msg)
def _needs_update(self):
@@ -1120,19 +1116,6 @@ class MainWindow(QtGui.QMainWindow):
"Error: API version incompatible.")
QtGui.QMessageBox.warning(self, self.tr("Incompatible Provider"), msg)
- def changeEvent(self, e):
- """
- Reimplementation of changeEvent method to minimize to tray
- """
- if not IS_MAC and \
- QtGui.QSystemTrayIcon.isSystemTrayAvailable() and \
- e.type() == QtCore.QEvent.WindowStateChange and \
- self.isMinimized():
- self._toggle_visible()
- e.accept()
- return
- QtGui.QMainWindow.changeEvent(self, e)
-
def closeEvent(self, e):
"""
Reimplementation of closeEvent to close to tray
@@ -1145,7 +1128,7 @@ class MainWindow(QtGui.QMainWindow):
if QtGui.QSystemTrayIcon.isSystemTrayAvailable() and \
not self._really_quit:
- self._toggle_visible()
+ self._ensure_invisible()
e.ignore()
return
@@ -1165,12 +1148,14 @@ class MainWindow(QtGui.QMainWindow):
skip_first_run = self._settings.get_skip_first_run()
return not (has_provider_on_disk and skip_first_run)
+ @QtCore.Slot()
def _download_provider_config(self):
"""
Start the bootstrapping sequence. It will download the
provider configuration if it's not present, otherwise will
emit the corresponding signals inmediately
"""
+ self._disconnect_scheduled_login()
domain = self._login_widget.get_selected_provider()
self._backend.provider_setup(provider=domain)
@@ -1204,6 +1189,40 @@ class MainWindow(QtGui.QMainWindow):
self.tr("Unable to login: Problem with provider"))
self._login_widget.set_enabled(True)
+ def _schedule_login(self):
+ """
+ Schedule the login sequence to go after the EIP started.
+
+ The login sequence is connected to all finishing status of EIP
+ (connected, disconnected, aborted or died) to continue with the login
+ after EIP.
+ """
+ logger.debug('Login scheduled when eip_connected is triggered')
+ eip_sigs = self._eip_conductor.qtsigs
+ eip_sigs.connected_signal.connect(self._download_provider_config)
+ eip_sigs.disconnected_signal.connect(self._download_provider_config)
+ eip_sigs.connection_aborted_signal.connect(self._download_provider_config)
+ eip_sigs.connection_died_signal.connect(self._download_provider_config)
+
+ def _disconnect_scheduled_login(self):
+ """
+ Disconnect scheduled login signals if exists
+ """
+ try:
+ eip_sigs = self._eip_conductor.qtsigs
+ eip_sigs.connected_signal.disconnect(
+ self._download_provider_config)
+ eip_sigs.disconnected_signal.disconnect(
+ self._download_provider_config)
+ eip_sigs.connection_aborted_signal.disconnect(
+ self._download_provider_config)
+ eip_sigs.connection_died_signal.disconnect(
+ self._download_provider_config)
+ except Exception:
+ # signal not connected
+ pass
+
+
@QtCore.Slot()
def _login(self):
"""
@@ -1229,7 +1248,10 @@ class MainWindow(QtGui.QMainWindow):
else:
self.ui.action_create_new_account.setEnabled(False)
if self._login_widget.start_login():
- self._download_provider_config()
+ if self._trying_to_start_eip:
+ self._schedule_login()
+ else:
+ self._download_provider_config()
@QtCore.Slot(unicode)
def _authentication_error(self, msg):
@@ -1258,8 +1280,13 @@ class MainWindow(QtGui.QMainWindow):
Stop the login sequence.
"""
logger.debug("Cancelling log in.")
+ self._disconnect_scheduled_login()
+
self._cancel_ongoing_defers()
+ # Needed in case of EIP starting and login deferer never set
+ self._set_login_cancelled()
+
def _cancel_ongoing_defers(self):
"""
Cancel the running defers to avoid app blocking.
@@ -1673,8 +1700,9 @@ class MainWindow(QtGui.QMainWindow):
"""
passed = data[PASSED_KEY]
if not passed:
- self._login_widget.set_status(
- self.tr("Unable to connect: Problem with provider"))
+ self._eip_status.set_eip_status(
+ self.tr("Unable to connect: Problem with provider"),
+ error=True)
logger.error(data[ERROR_KEY])
self._already_started_eip = False
self._eip_status.aborted()
diff --git a/src/leap/bitmask/gui/ui/advanced_key_management.ui b/src/leap/bitmask/gui/ui/advanced_key_management.ui
index 3b567347..72f70d24 100644
--- a/src/leap/bitmask/gui/ui/advanced_key_management.ui
+++ b/src/leap/bitmask/gui/ui/advanced_key_management.ui
@@ -14,7 +14,7 @@
<string>Advanced Key Management</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/icons.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout_4">
@@ -184,7 +184,7 @@
</layout>
</widget>
<resources>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/eip_status.ui b/src/leap/bitmask/gui/ui/eip_status.ui
index e0996620..0fb861bc 100644
--- a/src/leap/bitmask/gui/ui/eip_status.ui
+++ b/src/leap/bitmask/gui/ui/eip_status.ui
@@ -60,7 +60,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/black/32/earth.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/32/earth.png</pixmap>
</property>
</widget>
</item>
@@ -103,15 +103,15 @@
<widget class="QLabel" name="lblVPNStatusIcon">
<property name="maximumSize">
<size>
- <width>24</width>
- <height>24</height>
+ <width>22</width>
+ <height>22</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/black/32/off.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/off.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
@@ -162,7 +162,7 @@
<string>0.0 KB/s</string>
</property>
<property name="icon">
- <iconset resource="../../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/icons.qrc">
<normaloff>:/images/black/32/arrow-down.png</normaloff>:/images/black/32/arrow-down.png</iconset>
</property>
<property name="flat">
@@ -213,7 +213,7 @@
<string>0.0 KB/s</string>
</property>
<property name="icon">
- <iconset resource="../../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/icons.qrc">
<normaloff>:/images/black/32/arrow-up.png</normaloff>:/images/black/32/arrow-up.png</iconset>
</property>
<property name="flat">
@@ -265,8 +265,8 @@
</layout>
</widget>
<resources>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
<include location="../../../../../data/resources/icons.qrc"/>
+ <include location="../../../../../data/resources/flags.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/eippreferences.ui b/src/leap/bitmask/gui/ui/eippreferences.ui
index a3050683..1a5fcd24 100644
--- a/src/leap/bitmask/gui/ui/eippreferences.ui
+++ b/src/leap/bitmask/gui/ui/eippreferences.ui
@@ -14,7 +14,7 @@
<string>Encrypted Internet Preferences</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/icons.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout_2">
@@ -96,7 +96,7 @@
<tabstop>pbSaveGateway</tabstop>
</tabstops>
<resources>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/loggerwindow.ui b/src/leap/bitmask/gui/ui/loggerwindow.ui
index b19ed91a..fd8644c9 100644
--- a/src/leap/bitmask/gui/ui/loggerwindow.ui
+++ b/src/leap/bitmask/gui/ui/loggerwindow.ui
@@ -14,7 +14,7 @@
<string>Logs</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/icons.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout">
@@ -180,7 +180,7 @@
</tabstops>
<resources>
<include location="../../../../../data/resources/loggerwindow.qrc"/>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/login.ui b/src/leap/bitmask/gui/ui/login.ui
index 216eca9e..26decc6d 100644
--- a/src/leap/bitmask/gui/ui/login.ui
+++ b/src/leap/bitmask/gui/ui/login.ui
@@ -33,7 +33,7 @@
<number>0</number>
</property>
<property name="verticalSpacing">
- <number>-1</number>
+ <number>6</number>
</property>
<item row="2" column="0">
<spacer name="horizontalSpacer_2">
@@ -79,8 +79,14 @@
</property>
</widget>
</item>
- <item row="3" column="0">
+ <item row="4" column="1">
<widget class="QPushButton" name="btnLogin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>Log In</string>
</property>
@@ -164,7 +170,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/black/32/user.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/32/user.png</pixmap>
</property>
<property name="scaledContents">
<bool>false</bool>
@@ -198,26 +204,17 @@
</item>
<item row="3" column="2" colspan="2">
<widget class="QWidget" name="logged_widget" native="true">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <layout class="QGridLayout" name="gridLayout_5">
+ <layout class="QHBoxLayout" name="horizontalLayout">
<property name="topMargin">
<number>0</number>
</property>
+ <property name="rightMargin">
+ <number>25</number>
+ </property>
<property name="bottomMargin">
- <number>12</number>
+ <number>18</number>
</property>
- <item row="0" column="0" colspan="2">
+ <item>
<widget class="QLabel" name="lblUser">
<property name="font">
<font>
@@ -231,22 +228,41 @@
</property>
</widget>
</item>
- <item row="1" column="0">
+ <item>
+ <spacer name="expandingSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>24</width>
+ <height>24</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
<widget class="QPushButton" name="btnLogout">
<property name="text">
<string>Logout</string>
</property>
</widget>
</item>
- <item row="1" column="1">
- <spacer name="horizontalSpacer">
+ <item>
+ <spacer name="fixedSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
<property name="sizeHint" stdset="0">
<size>
- <width>40</width>
- <height>20</height>
+ <width>24</width>
+ <height>24</height>
</size>
</property>
</spacer>
@@ -283,7 +299,7 @@
<tabstop>chkRemember</tabstop>
</tabstops>
<resources>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/logout.ui b/src/leap/bitmask/gui/ui/logout.ui
new file mode 100644
index 00000000..3faa93b6
--- /dev/null
+++ b/src/leap/bitmask/gui/ui/logout.ui
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Form</class>
+ <widget class="QWidget" name="Form">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>434</width>
+ <height>202</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="lblUser">
+ <property name="font">
+ <font>
+ <pointsize>15</pointsize>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="expandingSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>24</width>
+ <height>24</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnLogout">
+ <property name="text">
+ <string>Logout</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="fixedSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>24</width>
+ <height>24</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/leap/bitmask/gui/ui/mail_status.ui b/src/leap/bitmask/gui/ui/mail_status.ui
index 22976f39..6fd63aec 100644
--- a/src/leap/bitmask/gui/ui/mail_status.ui
+++ b/src/leap/bitmask/gui/ui/mail_status.ui
@@ -60,7 +60,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/black/32/off.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/off.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
@@ -104,14 +104,14 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/black/32/email.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/32/email.png</pixmap>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/mainwindow.ui b/src/leap/bitmask/gui/ui/mainwindow.ui
index 1eeb636f..5dc48f29 100644
--- a/src/leap/bitmask/gui/ui/mainwindow.ui
+++ b/src/leap/bitmask/gui/ui/mainwindow.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>524</width>
- <height>640</height>
+ <height>600</height>
</rect>
</property>
<property name="sizePolicy">
@@ -32,7 +32,7 @@
<string>Bitmask</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/icons.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<property name="inputMethodHints">
@@ -216,6 +216,28 @@
</property>
</spacer>
</item>
+ <item>
+ <widget class="QFrame" name="frame">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="autoFillBackground">
+ <bool>false</bool>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">background-color: rgba(0,0,0,20); border-top: 1px solid rgba(0,0,0,30);</string>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>16</height>
+ </size>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</widget>
@@ -377,7 +399,7 @@
</action>
</widget>
<resources>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
<include location="../../../../../data/resources/locale.qrc"/>
</resources>
<connections/>
diff --git a/src/leap/bitmask/gui/ui/preferences.ui b/src/leap/bitmask/gui/ui/preferences.ui
index e187c016..cd4d3a77 100644
--- a/src/leap/bitmask/gui/ui/preferences.ui
+++ b/src/leap/bitmask/gui/ui/preferences.ui
@@ -14,7 +14,7 @@
<string>Preferences</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/icons.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout_3">
@@ -174,7 +174,7 @@
</layout>
</widget>
<resources>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/wizard.ui b/src/leap/bitmask/gui/ui/wizard.ui
index 8c52897d..0e28ecbf 100644
--- a/src/leap/bitmask/gui/ui/wizard.ui
+++ b/src/leap/bitmask/gui/ui/wizard.ui
@@ -23,10 +23,10 @@
</size>
</property>
<property name="windowTitle">
- <string>Bitmask first run</string>
+ <string>Bitmask Provider Setup</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/icons.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<property name="modal">
@@ -40,10 +40,10 @@
</property>
<widget class="WizardPage" name="introduction_page">
<property name="title">
- <string>Welcome</string>
+ <string>Welcome to Bitmask</string>
</property>
<property name="subTitle">
- <string>This is the Bitmask first run wizard</string>
+ <string> </string>
</property>
<attribute name="pageId">
<string notr="true">0</string>
@@ -59,7 +59,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
- <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Now we will guide you through some configuration that is needed before you can connect for the first time.&lt;/p&gt;&lt;p&gt;If you ever need to modify these options again, you can find the wizard in the &lt;span style=&quot; font-style:italic;&quot;&gt;'Bitmask -&amp;gt; Create new account...'&lt;/span&gt; menu from the main window.&lt;/p&gt;&lt;p&gt;Do you want to &lt;span style=&quot; font-weight:600;&quot;&gt;sign up&lt;/span&gt; for a new account, or &lt;span style=&quot; font-weight:600;&quot;&gt;log in&lt;/span&gt; with an already existing username?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ <string></string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
@@ -109,10 +109,10 @@
</widget>
<widget class="WizardPage" name="select_provider_page">
<property name="title">
- <string>Provider selection</string>
+ <string>Choose a provider</string>
</property>
<property name="subTitle">
- <string>Please enter the domain of the provider you want to use for your connection</string>
+ <string> </string>
</property>
<attribute name="pageId">
<string notr="true">1</string>
@@ -156,7 +156,7 @@
<item row="3" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
- <string>Getting provider information</string>
+ <string>Getting provider information.</string>
</property>
</widget>
</item>
@@ -177,15 +177,24 @@
</property>
<property name="minimumSize">
<size>
- <width>24</width>
- <height>24</height>
+ <width>22</width>
+ <height>22</height>
</size>
</property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
<property name="text">
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/question.png</pixmap>
</property>
</widget>
</item>
@@ -199,15 +208,24 @@
</property>
<property name="minimumSize">
<size>
- <width>24</width>
- <height>24</height>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
</size>
</property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
<property name="text">
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/question.png</pixmap>
</property>
</widget>
</item>
@@ -221,15 +239,24 @@
</property>
<property name="minimumSize">
<size>
- <width>24</width>
- <height>24</height>
+ <width>22</width>
+ <height>22</height>
</size>
</property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
<property name="text">
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/question.png</pixmap>
</property>
</widget>
</item>
@@ -350,10 +377,10 @@
</widget>
<widget class="QWizardPage" name="provider_info_page">
<property name="title">
- <string>Provider Information</string>
+ <string>About this provider</string>
</property>
<property name="subTitle">
- <string>Description of services offered by this provider</string>
+ <string> </string>
</property>
<attribute name="pageId">
<string notr="true">2</string>
@@ -495,7 +522,7 @@
<string>Provider setup</string>
</property>
<property name="subTitle">
- <string>Gathering configuration options for this provider</string>
+ <string> </string>
</property>
<attribute name="pageId">
<string notr="true">3</string>
@@ -517,7 +544,7 @@
<item>
<widget class="QLabel" name="lblSetupProviderExpl">
<property name="text">
- <string>We are downloading some bits that we need to establish a secure connection with the provider for the first time.</string>
+ <string>Bitmask is attempting to establish a secure connection with this provider for the first time.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -553,15 +580,24 @@
</property>
<property name="minimumSize">
<size>
- <width>24</width>
- <height>24</height>
+ <width>22</width>
+ <height>22</height>
</size>
</property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
<property name="text">
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/question.png</pixmap>
</property>
</widget>
</item>
@@ -575,36 +611,45 @@
</property>
<property name="minimumSize">
<size>
- <width>24</width>
- <height>24</height>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
</size>
</property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
<property name="text">
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/question.png</pixmap>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
- <string>Getting info from the Certificate Authority</string>
+ <string>Fetching provider credentials.</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
- <string>Do we trust this Certificate Authority?</string>
+ <string>Do we trust these credentials?</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
- <string>Establishing a trust relationship with this provider</string>
+ <string>Connecting to provider.</string>
</property>
</widget>
</item>
@@ -618,15 +663,24 @@
</property>
<property name="minimumSize">
<size>
- <width>24</width>
- <height>24</height>
+ <width>22</width>
+ <height>22</height>
</size>
</property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
<property name="text">
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/question.png</pixmap>
</property>
</widget>
</item>
@@ -666,7 +720,7 @@
<string>Register new user</string>
</property>
<property name="subTitle">
- <string>Register a new user with provider</string>
+ <string> </string>
</property>
<attribute name="pageId">
<string notr="true">4</string>
@@ -791,7 +845,7 @@
<string>Service selection</string>
</property>
<property name="subTitle">
- <string>Please select the services you would like to have</string>
+ <string> </string>
</property>
<attribute name="pageId">
<string notr="true">5</string>
@@ -829,7 +883,7 @@
<tabstop>rdoLogin</tabstop>
</tabstops>
<resources>
- <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
<include location="../../../../../data/resources/locale.qrc"/>
</resources>
<connections>
diff --git a/src/leap/bitmask/gui/wizard.py b/src/leap/bitmask/gui/wizard.py
index be5bde52..0223c053 100644
--- a/src/leap/bitmask/gui/wizard.py
+++ b/src/leap/bitmask/gui/wizard.py
@@ -70,9 +70,9 @@ class Wizard(QtGui.QWizard):
self.setPixmap(QtGui.QWizard.LogoPixmap,
QtGui.QPixmap(":/images/mask-icon.png"))
- self.QUESTION_ICON = QtGui.QPixmap(":/images/Emblem-question.png")
- self.ERROR_ICON = QtGui.QPixmap(":/images/Dialog-error.png")
- self.OK_ICON = QtGui.QPixmap(":/images/Dialog-accept.png")
+ self.QUESTION_ICON = QtGui.QPixmap(":/images/black/22/question.png")
+ self.ERROR_ICON = QtGui.QPixmap(":/images/black/22/off.png")
+ self.OK_ICON = QtGui.QPixmap(":/images/black/22/on.png")
self._selected_services = set()
self._shown_services = set()
@@ -679,7 +679,7 @@ class Wizard(QtGui.QWizard):
the user to enable or disable.
"""
self.ui.grpServices.setTitle(
- self.tr("Services by {0}").format(self._provider_details['name']))
+ self.tr("Services by {0}").format(self._provider_details['domain']))
services = get_supported(self._provider_details['services'])
@@ -723,18 +723,11 @@ class Wizard(QtGui.QWizard):
if pageId == self.SETUP_PROVIDER_PAGE:
if not self._provider_setup_ok:
self._reset_provider_setup()
- sub_title = self.tr("Gathering configuration options for {0}")
- sub_title = sub_title.format(self._provider_details['name'])
- self.page(pageId).setSubTitle(sub_title)
self.ui.lblDownloadCaCert.setPixmap(self.QUESTION_ICON)
self._provider_setup_defer = self._backend.\
provider_bootstrap(provider=self._domain)
if pageId == self.PRESENT_PROVIDER_PAGE:
- sub_title = self.tr("Description of services offered by {0}")
- sub_title = sub_title.format(self._provider_details['name'])
- self.page(pageId).setSubTitle(sub_title)
-
details = self._provider_details
name = "<b>{0}</b>".format(details['name'])
domain = "https://{0}".format(details['domain'])
@@ -746,9 +739,9 @@ class Wizard(QtGui.QWizard):
self.ui.lblProviderPolicy.setText(details['enrollment_policy'])
if pageId == self.REGISTER_USER_PAGE:
- sub_title = self.tr("Register a new user with {0}")
- sub_title = sub_title.format(self._provider_details['name'])
- self.page(pageId).setSubTitle(sub_title)
+ title = self.tr("Register a new user with {0}")
+ title = title.format(self._provider_details['domain'])
+ self.page(pageId).setTitle(title)
self.ui.chkRemember.setVisible(False)
if pageId == self.SERVICES_PAGE: