Compare commits

...

489 Commits

Author SHA1 Message Date
luigi1111
57fefba386 Merge pull request #4030
b1f1080 build: prepare v0.18.1.1 (selsta)
2022-09-18 17:40:22 -05:00
luigi1111
fa55575973 Merge pull request #4031
0851609 translations from webalte (netrik182)
2022-09-18 00:36:27 -05:00
netrik182
0851609840 translations from webalte
Author: Monero-Weblate <translate@getmonero.org>

Indonesian

Currently translated at 49.0% (406 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/id/
Author: Kareem <kareem.lukitomo@gmail.com>

Co-authored-by: Kareem <kareem.lukitomo@gmail.com>

Russian

Currently translated at 100.0% (827 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ru/
Author: v1docq47 <chiptune@protonmail.ch>

Russian

Currently translated at 100.0% (827 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ru/
Author: v1docq47 <chiptune@protonmail.ch>

Russian

Currently translated at 100.0% (827 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ru/
Author: v1docq47 <chiptune@protonmail.ch>

Russian

Currently translated at 99.3% (822 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ru/
Author: v1docq47 <chiptune@protonmail.ch>

Russian

Currently translated at 95.8% (793 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ru/
Author: v1docq47 <chiptune@protonmail.ch>

Co-authored-by: v1docq47 <chiptune@protonmail.ch>

Korean

Currently translated at 21.6% (179 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ko/
Author: John Lee <john3374@gmail.com>

Korean

Currently translated at 21.5% (178 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ko/
Author: John Lee <john3374@gmail.com>

Co-authored-by: John Lee <john3374@gmail.com>

Spanish

Currently translated at 84.1% (696 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/es/
Author: Miguel Medina <michaelizergit@gmail.com>

Spanish

Currently translated at 82.8% (685 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/es/
Author: Miguel Medina <michaelizergit@gmail.com>

Co-authored-by: Miguel Medina <michaelizergit@gmail.com>

Ukrainian

Currently translated at 68.3% (565 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/uk/
Author: 12 <symphonicnightcore@gmail.com>

Co-authored-by: 12 <symphonicnightcore@gmail.com>

Ukrainian

Currently translated at 68.3% (565 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/uk/
Author: foresle <foresle@tutanota.com>

Co-authored-by: foresle <foresle@tutanota.com>

Ukrainian

Currently translated at 68.3% (565 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/uk/
Author: castorp <masimov@me.com>

Co-authored-by: castorp <masimov@me.com>

Greek

Currently translated at 85.0% (703 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/el/
Author: ZeoZ <zeoz_olikis@proton.me>

German

Currently translated at 95.8% (794 of 828 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: ZeoZ <zeoz_olikis@proton.me>

Greek

Currently translated at 84.4% (698 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/el/
Author: ZeoZ <zeoz_olikis@proton.me>

Co-authored-by: ZeoZ <zeoz_olikis@proton.me>

Spanish

Currently translated at 84.1% (696 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/es/
Author: juanda-097 <juanda097@protonmail.ch>

Co-authored-by: juanda-097 <juanda097@protonmail.ch>

French

Currently translated at 83.0% (688 of 828 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: tedtei <tedtei@pm.me>

Co-authored-by: tedtei <tedtei@pm.me>

Chinese (Traditional)

Currently translated at 93.4% (774 of 828 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hant/
Author: awdfffr <awdfffr@gmail.com>

Chinese (Traditional)

Currently translated at 92.7% (768 of 828 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hant/
Author: awdfffr <awdfffr@gmail.com>

Co-authored-by: awdfffr <awdfffr@gmail.com>

Chinese (Traditional)

Currently translated at 92.7% (768 of 828 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hant/
Author: Lafudoci <chunhsi.tso@gmail.com>

Co-authored-by: Lafudoci <chunhsi.tso@gmail.com>

Chinese (Traditional)

Currently translated at 92.7% (768 of 828 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hant/
Author: cryptoouob <cryptoouob@gmail.com>

Co-authored-by: cryptoouob <cryptoouob@gmail.com>

Spanish

Currently translated at 84.2% (697 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/es/
Author: W4ikiky <12raimon@gmail.com>

Co-authored-by: W4ikiky <12raimon@gmail.com>

Finnish

Currently translated at 90.8% (751 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fi/
Author: Jiri <crypto@nakola.fi>

Co-authored-by: Jiri <crypto@nakola.fi>

Finnish

Currently translated at 96.2% (796 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fi/
Author: vaa red <vaa.red@protonmail.com>

Finnish

Currently translated at 90.8% (751 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fi/
Author: vaa red <vaa.red@protonmail.com>

Co-authored-by: vaa red <vaa.red@protonmail.com>

Finnish

Currently translated at 96.3% (797 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fi/
Author: MahtiAnkka <mrkujansuu@gmail.com>

Finnish

Currently translated at 96.2% (796 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fi/
Author: MahtiAnkka <mrkujansuu@gmail.com>

Co-authored-by: MahtiAnkka <mrkujansuu@gmail.com>

Vietnamese

Currently translated at 22.7% (188 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/vi/
Author: Tony Nguyen <tony.d.nguyen@protonmail.com>

Co-authored-by: Tony Nguyen <tony.d.nguyen@protonmail.com>

Vietnamese

Currently translated at 22.9% (190 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/vi/
Author: Tabula Rasa <klpohuy@gmail.com>

Vietnamese

Currently translated at 22.7% (188 of 827 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/vi/
Author: Tabula Rasa <klpohuy@gmail.com>

Co-authored-by: Tabula Rasa <klpohuy@gmail.com>

translations from weblate
2022-09-17 10:44:14 +02:00
selsta
b1f1080111 build: prepare v0.18.1.1 2022-09-15 23:53:39 +02:00
luigi1111
6c3b1c56f8 Merge pull request #4026
0f43fbe installer: allow to install on arm64 (selsta)
2022-09-15 00:38:54 -05:00
luigi1111
210f3e301b Merge pull request #4025
10e28c5 docker: update qt to 5.15.6 (tobtoht)
2022-09-15 00:38:25 -05:00
luigi1111
c73bc32f8e Merge pull request #4013
a3c25af cmake: update libicu dll version (selsta)
2022-09-15 00:38:02 -05:00
luigi1111
62878a042c Merge pull request #4011
21831c9 main: add --no-igd to simple mode flags (selsta)
2022-09-15 00:37:38 -05:00
luigi1111
84c6d35634 Merge pull request #4003
d1f9b0e docker: update linux dependencies (selsta)
2022-09-15 00:37:14 -05:00
luigi1111
0f94f1b416 Merge pull request #4000
b0d5584 repo: remove ldns leftovers (selsta)
2022-09-15 00:36:08 -05:00
selsta
0f43fbe6d4 installer: allow to install on arm64 2022-09-09 22:20:09 +02:00
tobtoht
10e28c5ba4 docker: update qt to 5.15.6 2022-09-09 13:29:51 +02:00
selsta
a3c25afb66 cmake: update libicu dll version 2022-08-21 23:29:30 +02:00
selsta
21831c9b24 main: add --no-igd to simple mode flags
Should solve issues with monerod taking a while to exit.
Simple mode nodes aren't beneficial to the network anyway,
so having no incoming connections in some cases should be
fine.
2022-08-21 02:42:07 +02:00
selsta
d1f9b0eaf0 docker: update linux dependencies 2022-08-12 00:53:49 +02:00
selsta
b0d5584d53 repo: remove ldns leftovers 2022-08-11 00:28:00 +02:00
luigi1111
bbe4fe3763 Merge pull request #3999
87f9d28 Dockerfile: fix hash (selsta)
2022-08-10 14:20:04 -05:00
selsta
87f9d28fea Dockerfile: fix hash 2022-08-10 19:47:56 +02:00
luigi1111
58ddd8c2bc Merge pull request #3998
91959d3 build: prepare v0.18.1.0 (selsta)
2022-08-10 12:21:43 -05:00
luigi1111
264d3694c5 Merge pull request #3995
7184c45 main: only check mining status when using local node (selsta)
2022-08-10 12:19:48 -05:00
luigi1111
79d56af921 Merge pull request #3994
fc26150 libwalletqt: refresh once on wallet opening (selsta)
2022-08-10 12:19:26 -05:00
luigi1111
e668995673 Merge pull request #3988
f796be3 trim restore height at info -> change height input (plowsof)
2022-08-10 12:19:05 -05:00
luigi1111
8b2fe88824 Merge pull request #3985
fa3b49c Windows installer: Welcome image for 0.18 (rbrunner7)
2022-08-10 12:18:43 -05:00
luigi1111
80830584d1 Merge pull request #3978
9e6f116 TxUtils: don't show resolve for float (reemuru)
2022-08-10 12:18:08 -05:00
luigi1111
ae21f79040 Merge pull request #3973
b70a984 README: Update copyright to 2022 (garth-xmr)
2022-08-10 12:17:33 -05:00
luigi1111
b7ab50759a Merge pull request #3734
0ded8dc Settings: option to skip stop local node screen (selsta)
2022-08-10 12:17:06 -05:00
selsta
91959d3e2e build: prepare v0.18.1.0 2022-08-10 19:15:20 +02:00
selsta
7184c45043 main: only check mining status when using local node 2022-08-06 23:32:11 +02:00
selsta
fc261502d1 libwalletqt: refresh once on wallet opening
Co-authored-by: tobtoht <thotbot@protonmail.com>
2022-08-06 21:58:21 +02:00
plowsof
f796be37ce trim restore height at info -> change height input
If you accidentally copy and paste a date with a new line character 
```
2022-01-01

```
The gui will restore from 2022. I ran into this problem when helping someone just now, after giving them the correct date to copy and paste so they can restore quicker xD caused some confusion.

the reg exp method used here 064c145aa8/wizard/WizardRestoreWallet1.qml (L277) prevents you from copy and pasting the 'wrong' string which might be annoying
2022-07-28 01:57:41 +01:00
rbrunner7
fa3b49ca91 Windows installer: Welcome image for 0.18 2022-07-25 20:28:20 +02:00
reemuru
9e6f116bc9 TxUtils: don't show resolve for float
Add parseFloat() checks so that the 'Resolve' button
for OpenAlias remains hidden. Also add a length check
for one character with a dot. IP addresses will not be
respected, but the whole point of domain names and OA is
for facilitating human readable / user friendly information.

Co-authored-by: selsta <selsta@users.noreply.github.com>
2022-07-22 10:21:29 -04:00
garth-xmr
b70a9842f5 README: Update copyright to 2022 2022-07-17 19:10:50 +00:00
luigi1111
064c145aa8 Merge pull request #3972
e197544 build: prepare v0.18.0.0 (selsta)
2022-07-15 22:34:59 -04:00
selsta
e197544903 build: prepare v0.18.0.0 2022-07-15 22:22:01 +02:00
luigi1111
ca1e66453e Merge pull request #3970
2a9c6c6 docker: update linux and android openssl (selsta)
2022-07-14 13:02:09 -04:00
luigi1111
c795d4b2f1 Merge pull request #3969
bd30c3b docker: fix linux build (selsta)
2022-07-14 13:01:36 -04:00
luigi1111
cb28263cb1 Merge pull request #3968
aac43e8 display wallet files with . in name (plowsof)
2022-07-14 13:00:44 -04:00
luigi1111
d2768a4f6b Merge pull request #3966
b576b9e Updated to p2pool v2.2.1 (SChernykh)
2022-07-14 12:59:39 -04:00
luigi1111
c6af02353e Merge pull request #3965
8199ef0 convert nettype to int to return correct rpc port (plowsof)
2022-07-14 12:58:35 -04:00
luigi1111
425623d6d3 Merge pull request #3932
5591061 SettingsWallet: add scan transaction option (selsta)
6e0b5e2 libwallet: add scanTransactions function (selsta)
2022-07-14 12:58:01 -04:00
selsta
2a9c6c662f docker: update linux and android openssl 2022-07-14 06:05:53 +02:00
selsta
bd30c3babb docker: fix linux build 2022-07-14 00:14:13 +02:00
plowsof
aac43e8a1a display wallet files with "." in name 2022-07-13 02:12:33 +01:00
SChernykh
b576b9e4f6 Updated to p2pool v2.2.1 2022-07-09 19:19:28 +02:00
plowsof
8199ef004d convert nettype to int to return correct rpc port 2022-07-09 17:41:06 +01:00
luigi1111
b26f38d37e Merge pull request #3959
b951338 Updated to p2pool v2.2 (SChernykh)
2022-07-08 13:56:18 -04:00
luigi1111
87f25c49ad Merge pull request #3958
0184c3a WizardRestoreWallet1: trim whitespaces from seed (selsta)
2022-07-08 13:55:47 -04:00
luigi1111
160eb8e074 Merge pull request #3957
d514845 DaemonManagerDialog: close dialog when GUI is connected (selsta)
2022-07-08 13:55:24 -04:00
luigi1111
39f0323a81 Merge pull request #3955
9bed455 oshelper: fix openContainingFolder on Linux (selsta)
2022-07-08 13:54:27 -04:00
luigi1111
e9a8b042ab Merge pull request #3954
a10d416 Transfer: don't create offline tx before wallet is synced (selsta)
2022-07-08 13:53:58 -04:00
luigi1111
07e7628182 Merge pull request #3949
c0b3789 docker: update Qt to 5.15.5 (selsta)
2022-07-08 13:53:18 -04:00
luigi1111
3d07d80648 Merge pull request #3947
85d0c75 translations from weblate (netrik182)
2022-07-08 13:51:10 -04:00
luigi1111
887688f092 Merge pull request #3946
d4de529 Mining: add info to start gui as admin for p2pool installation (selsta)
2022-07-08 13:48:04 -04:00
selsta
0184c3a314 WizardRestoreWallet1: trim whitespaces from seed 2022-07-04 03:45:25 +02:00
SChernykh
b951338642 Updated to p2pool v2.2
p2pool v2.2 has full support for the coming Monero network upgrade
2022-07-01 10:51:28 +02:00
selsta
d514845e4a DaemonManagerDialog: close dialog when GUI is connected 2022-06-28 23:38:06 +02:00
selsta
9bed4554eb oshelper: fix openContainingFolder on Linux 2022-06-27 00:41:56 +02:00
selsta
a10d41642a Transfer: don't create offline tx before wallet is synced 2022-06-26 21:59:26 +02:00
selsta
c0b3789fda docker: update Qt to 5.15.5 2022-06-21 19:26:34 +02:00
netrik182
85d0c7575c translations from weblate
Portuguese (Brazil)

Currently translated at 95.1% (761 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/pt_BR/
Author: netrik182 <netrik@tuta.io>

Co-authored-by: netrik182 <netrik@tuta.io>

Slovak

Currently translated at 96.2% (770 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: Boris Sipos <siposboris@protonmail.ch>

Slovak

Currently translated at 73.2% (586 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: Boris Sipos <siposboris@protonmail.ch>

Slovak

Currently translated at 58.3% (467 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: Boris Sipos <siposboris@protonmail.ch>

Slovak

Currently translated at 58.2% (466 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: Boris Sipos <siposboris@protonmail.ch>

Co-authored-by: Boris Sipos <siposboris@protonmail.ch>

Chinese (Simplified)

Currently translated at 74.7% (598 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: Lekton Zhang <takato3000@gmail.com>

Chinese (Simplified)

Currently translated at 74.2% (594 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: Lekton Zhang <takato3000@gmail.com>

Chinese (Simplified)

Currently translated at 74.1% (593 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: Lekton Zhang <takato3000@gmail.com>

Co-authored-by: Lekton Zhang <takato3000@gmail.com>

Chinese (Simplified)

Currently translated at 74.1% (593 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: TaoHuachen <iamthc@sina.cn>

Co-authored-by: TaoHuachen <iamthc@sina.cn>

French

Currently translated at 86.2% (691 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: Casimir <bgfd5u8tds454g@dispostable.com>

French

Currently translated at 86.2% (691 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: Casimir <bgfd5u8tds454g@dispostable.com>

French

Currently translated at 84.3% (676 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: Casimir <bgfd5u8tds454g@dispostable.com>

Co-authored-by: Casimir <bgfd5u8tds454g@dispostable.com>

Chinese (Simplified)

Currently translated at 74.2% (594 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: jindouyunz <492906398@qq.com>

Co-authored-by: jindouyunz <492906398@qq.com>

Russian

Currently translated at 100.0% (800 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ru/
Author: v1docq47 <chiptune@protonmail.ch>

Russian

Currently translated at 99.0% (792 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ru/
Author: v1docq47 <chiptune@protonmail.ch>

Co-authored-by: v1docq47 <chiptune@protonmail.ch>

Hungarian

Currently translated at 79.6% (637 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/hu/
Author: Pozsonyi Péter <ck7ii8h3sx@bestparadize.com>

Co-authored-by: Pozsonyi Péter <ck7ii8h3sx@bestparadize.com>

Ukrainian

Currently translated at 70.3% (563 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/uk/
Author: foresle <foresle@tutanota.com>

Co-authored-by: foresle <foresle@tutanota.com>

Ukrainian

Currently translated at 70.3% (563 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/uk/
Author: reketen <reketen@gmail.com>

Co-authored-by: reketen <reketen@gmail.com>

Ukrainian

Currently translated at 70.3% (563 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/uk/
Author: TheFuzzStone <thefuzzstone@protonmail.com>

Co-authored-by: TheFuzzStone <thefuzzstone@protonmail.com>

Ukrainian

Currently translated at 70.3% (563 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/uk/
Author: Agent LvM <agent.lvm@gmail.com>

Co-authored-by: Agent LvM <agent.lvm@gmail.com>

Spanish

Currently translated at 85.7% (686 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/es/
Author: Miguel Medina <michaelizergit@gmail.com>

Co-authored-by: Miguel Medina <michaelizergit@gmail.com>

Turkish

Currently translated at 64.0% (512 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/tr/
Author: xmoreee <sskacarfun@gmail.com>

Co-authored-by: xmoreee <sskacarfun@gmail.com>

Turkish

Currently translated at 64.0% (512 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/tr/
Author: snipeTR <snipetr@gmail.com>

Co-authored-by: snipeTR <snipetr@gmail.com>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Lennard Merten <cb39@fn.de>

German

Currently translated at 94.1% (754 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Lennard Merten <cb39@fn.de>

Co-authored-by: Lennard Merten <cb39@fn.de>

Chinese (Simplified)

Currently translated at 75.5% (604 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: WinslowEric <i@winsloweric.cn>

Chinese (Simplified)

Currently translated at 74.7% (598 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: WinslowEric <i@winsloweric.cn>

Co-authored-by: WinslowEric <i@winsloweric.cn>

Chinese (Simplified)

Currently translated at 74.7% (598 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: Muge Niu <mugeniu12138@gmail.com>

Co-authored-by: Muge Niu <mugeniu12138@gmail.com>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Paul Janowitz <janowitz@gmail.com>

Polish

Currently translated at 100.0% (800 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/pl/
Author: Paul Janowitz <janowitz@gmail.com>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Paul Janowitz <janowitz@gmail.com>

Co-authored-by: Paul Janowitz <janowitz@gmail.com>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Crusty <trepoleth@protonmail.com>

Co-authored-by: Crusty <trepoleth@protonmail.com>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: GreenPiece <villa@posteo.net>

Co-authored-by: GreenPiece <villa@posteo.net>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Wobole <wobole@throwaway.io>

Co-authored-by: Wobole <wobole@throwaway.io>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: PauleBertt <paulebertt@googlemail.com>

Co-authored-by: PauleBertt <paulebertt@googlemail.com>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Marta Kozera <martusia1984@gmail.com>

Co-authored-by: Marta Kozera <martusia1984@gmail.com>

Indonesian

Currently translated at 51.0% (408 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/id/
Author: I. Musthafa <i.musthafa66@gmail.com>

Co-authored-by: I. Musthafa <i.musthafa66@gmail.com>

Indonesian

Currently translated at 51.0% (408 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/id/
Author: liimee <alt3753.7@gmail.com>

Co-authored-by: liimee <alt3753.7@gmail.com>

Indonesian

Currently translated at 51.0% (408 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/id/
Author: siptruk <siptruks@gmail.com>

Co-authored-by: siptruk <siptruks@gmail.com>

Chinese (Simplified)

Currently translated at 75.7% (606 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: MaxQiu0108 <maxqqqq@hotmail.com>

Chinese (Simplified)

Currently translated at 75.6% (605 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: MaxQiu0108 <maxqqqq@hotmail.com>

Co-authored-by: MaxQiu0108 <maxqqqq@hotmail.com>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Paul Janowitz <janowitz@gmail.com>

German

Currently translated at 100.0% (801 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Paul Janowitz <janowitz@gmail.com>

Co-authored-by: Paul Janowitz <janowitz@gmail.com>

Esperanto

Currently translated at 70.0% (560 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/eo/
Author: Gilberto F da Silva <gfs1989@gmx.net>

Co-authored-by: Gilberto F da Silva <gfs1989@gmx.net>

Esperanto

Currently translated at 70.0% (560 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/eo/
Author: Gregg S <ph0enixd0wn@protonmail.com>

Co-authored-by: Gregg S <ph0enixd0wn@protonmail.com>

Italian

Currently translated at 77.5% (620 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/it/
Author: alreadyburnt <alreadyburnt@mailbox.org>

Italian

Currently translated at 77.3% (619 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/it/
Author: alreadyburnt <alreadyburnt@mailbox.org>

Italian

Currently translated at 77.3% (619 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/it/
Author: alreadyburnt <alreadyburnt@mailbox.org>

Co-authored-by: alreadyburnt <alreadyburnt@mailbox.org>

Spanish

Currently translated at 86.3% (691 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/es/
Author: Josep Mengual <josepmengual@protonmail.com>

Co-authored-by: Josep Mengual <josepmengual@protonmail.com>

Esperanto

Currently translated at 70.2% (562 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/eo/
Author: MasFlam <masflam@masflam.com>

Co-authored-by: MasFlam <masflam@masflam.com>

Hindi

Currently translated at 53.8% (431 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/hi/
Author: CryptoMonero <cryptocake7@outlook.com>

Co-authored-by: CryptoMonero <cryptocake7@outlook.com>

Tamil

Currently translated at 88.7% (710 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ta/
Author: kingoflove <morpheus3542@tutanota.com>

Co-authored-by: kingoflove <morpheus3542@tutanota.com>

Persian

Currently translated at 13.2% (106 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fa/
Author: Parsa Abbasi <parsa.abbasi1996@gmail.com>

Co-authored-by: Parsa Abbasi <parsa.abbasi1996@gmail.com>

Persian

Currently translated at 13.2% (106 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fa/
Author: E-Moji <mnz1988@aol.com>

Co-authored-by: E-Moji <mnz1988@aol.com>

Persian

Currently translated at 13.2% (106 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fa/
Author: Nima Ghotbi <ghotbi.nima@gmail.com>

Co-authored-by: Nima Ghotbi <ghotbi.nima@gmail.com>

French

Currently translated at 86.2% (691 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: darckme <darck9me@protonmail.com>

Co-authored-by: darckme <darck9me@protonmail.com>

French

Currently translated at 86.7% (695 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: tedtei <tedtei@pm.me>

French

Currently translated at 86.2% (691 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: tedtei <tedtei@pm.me>

Co-authored-by: tedtei <tedtei@pm.me>

French

Currently translated at 86.7% (695 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: nightwolf3 <georgesbattikha_123@hotmail.com>

French

Currently translated at 86.2% (691 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: nightwolf3 <georgesbattikha_123@hotmail.com>

French

Currently translated at 86.2% (691 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: nightwolf3 <georgesbattikha_123@hotmail.com>

Co-authored-by: nightwolf3 <georgesbattikha_123@hotmail.com>

Slovak

Currently translated at 96.2% (770 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: tomas <tvanco.reg@gmail.com>

Slovak

Currently translated at 73.2% (586 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: tomas <tvanco.reg@gmail.com>

Co-authored-by: tomas <tvanco.reg@gmail.com>

Slovak

Currently translated at 73.2% (586 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: Peter Liska <liska.peto@gmail.com>

Co-authored-by: Peter Liska <liska.peto@gmail.com>

French

Currently translated at 86.2% (691 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: Julian Fouquet <Truitosse@protonmail.com>

Co-authored-by: Julian Fouquet <Truitosse@protonmail.com>

French

Currently translated at 86.7% (695 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: Casimir <bgfd5u8tds454g@dispostable.com>

Co-authored-by: Casimir <bgfd5u8tds454g@dispostable.com>

French

Currently translated at 86.7% (695 of 801 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/fr/
Author: Simon Fouilleul <sfouilleulb@gmail.com>

Co-authored-by: Simon Fouilleul <sfouilleulb@gmail.com>

Slovak

Currently translated at 96.2% (770 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: Carlo <getmonero.2u0ah@slmail.me>

Co-authored-by: Carlo <getmonero.2u0ah@slmail.me>

Slovak

Currently translated at 96.2% (770 of 800 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/sk/
Author: Júlia Forgáčová <marek.forgi@protonmail.com>

Co-authored-by: Júlia Forgáčová <marek.forgi@protonmail.com>

update languagues from weblate
2022-06-12 20:01:13 +02:00
selsta
d4de52974b Mining: add info to start gui as admin for p2pool installation 2022-06-11 18:19:08 +02:00
luigi1111
96cca79b70 Merge pull request #3933
4326500 Use p2pool folder for p2pool on Windows (SChernykh)
2022-06-09 16:30:45 -05:00
SChernykh
432650008c Use p2pool folder for p2pool on Windows
And set the correct file permissions on it so it can be run without administrator privileges.
2022-06-09 23:22:30 +02:00
luigi1111
3f3eb643e4 Merge pull request #3942
8229979 Mining: save selected dropdown index (selsta)
2022-06-09 14:00:23 -05:00
luigi1111
6ba617d84f Merge pull request #3920
e16f8c8 docker: qt 5.15.4 (selsta)
2022-06-09 13:59:29 -05:00
luigi1111
1c23ca3a76 Merge pull request #3917
c87482d Only kill p2pool if we started it (ComputeryPony)
2022-06-09 13:59:06 -05:00
luigi1111
17f657673f Merge pull request #3916
5977e61 qt: remove QTextCodec (selsta)
2022-06-09 13:58:23 -05:00
luigi1111
35d1546110 Merge pull request #3915
7b729fc qt: replace QRegExp with QRegularExpression (selsta)
2022-06-09 13:57:57 -05:00
luigi1111
c4bebbf173 Merge pull request #3914
372a591 main: disable setting -platformpluginpath (selsta)
2022-06-09 13:57:36 -05:00
luigi1111
a67865b969 Merge pull request #3910
cddf3c3 History: fix payment proof button (reemuru)
2022-06-09 13:57:12 -05:00
luigi1111
38a63ddcdb Merge pull request #3908
20c4516 workflows: add caching for docker android (selsta)
2022-06-09 13:56:46 -05:00
luigi1111
17dfd2e9ed Merge pull request #3906
9b7bca6 main: add compile time option to disable updates (selsta)
2022-06-09 13:56:25 -05:00
luigi1111
49d8a6b91d Merge pull request #3905
3ba9766 js: minimize frameless window when clicking on taskbar icon (selsta)
2022-06-09 13:55:40 -05:00
luigi1111
953cb8d302 Merge pull request #3903
434ac21 WizardCreateDevice1: add Ledger Nano S Plus (selsta)
2022-06-09 13:54:42 -05:00
luigi1111
e1d3cf1b98 Merge pull request #3902
1f5b221 WizardCreateDevice1: set default restore height to 1 (selsta)
2022-06-09 13:54:17 -05:00
luigi1111
b1ee39cd28 Merge pull request #3883
bcaf9ba Makefile: set CMAKE_BUILD_TYPE to debug for debug target (selsta)
2022-06-09 13:53:52 -05:00
luigi1111
3031e7c37f Merge pull request #3846
ef56194 Wizard: fix stagenet approx blockheight (selsta)
2022-06-09 13:53:20 -05:00
luigi1111
ab69b9c9b2 Merge pull request #3688
841f061 main: remove outdated code (selsta)
2022-06-09 13:52:52 -05:00
luigi1111
837f332ac9 Merge pull request #3560
214ba8a images: update mac icon (selsta)
2022-06-09 13:52:15 -05:00
luigi1111
59f189d264 Merge pull request #3483
04c2d84 WizardModeSelection: disable simple mode on Tails (selsta)
2022-06-09 13:51:20 -05:00
selsta
8229979cec Mining: save selected dropdown index 2022-06-07 20:15:03 +02:00
selsta
559106174e SettingsWallet: add scan transaction option 2022-05-28 03:15:23 +02:00
selsta
6e0b5e2be5 libwallet: add scanTransactions function 2022-05-28 03:15:18 +02:00
selsta
e16f8c8d07 docker: qt 5.15.4 2022-05-12 01:16:03 +02:00
ComputeryPony
c87482db9c Only kill p2pool if we started it 2022-05-10 00:56:06 -05:00
selsta
7b729fc885 qt: replace QRegExp with QRegularExpression
QRegExp is removed in Qt6
2022-05-07 18:36:16 +02:00
selsta
5977e61a02 qt: remove QTextCodec
QTextCodec is removed in Qt6
2022-05-07 18:26:32 +02:00
selsta
372a591ac7 main: disable setting -platformpluginpath 2022-05-07 17:40:31 +02:00
reemuru
cddf3c3cdb History: fix payment proof button
Adding support for reserve proof added an additional
argument to the getProofClicked signal. The payment
proof button on the transaction list from history.qml
does not pass this argument and fails with insufficient
argument error.

Fixes: 0f67580e ("Advanced: ReserveProof: Add support for reserve proof")
2022-05-05 10:18:15 -05:00
selsta
20c4516c8e workflows: add caching for docker android 2022-05-02 12:46:32 +02:00
selsta
3ba976638f js: minimize frameless window when clicking on taskbar icon
Co-authored-by: rating89us <45968869+rating89us@users.noreply.github.com>
2022-05-02 05:19:53 +02:00
selsta
9b7bca6116 main: add compile time option to disable updates 2022-05-01 06:09:29 +02:00
selsta
04c2d8437e WizardModeSelection: disable simple mode on Tails 2022-04-30 13:41:01 +02:00
selsta
bcaf9ba61d Makefile: set CMAKE_BUILD_TYPE to debug for debug target 2022-04-30 13:30:05 +02:00
selsta
214ba8a34d images: update mac icon 2022-04-30 09:18:14 +02:00
selsta
434ac2182a WizardCreateDevice1: add Ledger Nano S Plus 2022-04-30 09:05:40 +02:00
selsta
1f5b22149c WizardCreateDevice1: set default restore height to 1
Due to API reasons height 0 means to approximate the current
block height during hardware device restore. That's not what
we want by default. Until this gets changed upstream we will
set the default to 1.
2022-04-30 08:36:09 +02:00
luigi1111
2e2ae5c88f Merge pull request #3897
2021d61 TxConfirmationDialog: warn high fees (selsta)
2022-04-27 21:55:34 -05:00
selsta
2021d61d91 TxConfirmationDialog: warn high fees 2022-04-27 17:40:58 +02:00
luigi1111
46d0b6b0ff Merge pull request #3894
8ae8019 build: prepare v0.17.3.2 (selsta)
2022-04-26 23:47:12 -05:00
selsta
8ae8019f5a build: prepare v0.17.3.2 2022-04-26 19:52:15 +02:00
luigi1111
1a6ea3302c Merge pull request #3890
37a5bdc main: only update fiat price with open wallet (selsta)
2022-04-25 11:04:51 -05:00
luigi1111
4de4e82ee6 Merge pull request #3889
cc4815a Mining: only update mining status when page is open (selsta)
2022-04-25 11:04:26 -05:00
luigi1111
5da0d5768a Merge pull request #3888
1cc9e8a FutureScheduler: delete unused function declarations (selsta)
2022-04-25 11:04:04 -05:00
luigi1111
58586ce2dc Merge pull request #3887
46eba83 workflows: action-docker-layer-caching v0.0.11 (selsta)
2022-04-25 11:03:36 -05:00
selsta
1cc9e8af49 FutureScheduler: delete unused function declarations 2022-04-23 08:36:08 +02:00
selsta
37a5bdc331 main: only update fiat price with open wallet 2022-04-23 07:26:52 +02:00
selsta
cc4815a3db Mining: only update mining status when page is open 2022-04-23 07:13:17 +02:00
selsta
46eba838f5 workflows: action-docker-layer-caching v0.0.11 2022-04-22 05:19:30 +02:00
luigi1111
b31cc36de2 Merge pull request #3879
85dff32 cmake: bump windows deploy lib versions (selsta)
0468e0e workflows: deploy on windows (selsta)
2022-04-19 22:30:59 -05:00
luigi1111
76dd4fee2f Merge pull request #3875
2cc3ebd Docker: Update zlib for android (devhyper)
2022-04-19 22:30:01 -05:00
luigi1111
55a4b67880 Merge pull request #3871
877f822 Docker: update Qt 5.15.2 -> 5.15.3 (selsta)
2022-04-19 22:29:37 -05:00
luigi1111
97fb3d4982 Merge pull request #3869
0feef22 TitleBar: Remove lock icon on essentials display (reemuru)
2022-04-19 22:29:12 -05:00
luigi1111
28f0645d9e Merge pull request #3829
377a1a9 Integrate P2Pool (devhyper)
2022-04-19 22:27:27 -05:00
selsta
85dff323c8 cmake: bump windows deploy lib versions 2022-04-06 04:43:57 +02:00
selsta
0468e0e43a workflows: deploy on windows 2022-04-06 04:43:13 +02:00
devhyper
2cc3ebd315 Docker: Update zlib for android 2022-04-01 10:41:48 -07:00
devhyper
377a1a9680 Integrate P2Pool 2022-04-01 10:27:35 -07:00
selsta
877f822de0 Docker: update Qt 5.15.2 -> 5.15.3 2022-03-25 17:16:21 +01:00
reemuru
0feef2268d TitleBar: Remove lock icon on essentials display
The lock functionality is shown on the initial welcome screen
and the WizardHome. Remove the lock icon until the wallet is
actually open, similar to the "Close this wallet" logic.

Fixes 346913f: ("SettingsWallet: lock wallet on demand")
2022-03-20 06:06:15 -05:00
luigi1111
002fe8eefa Merge pull request #3865
62748b6 AddressBook: fix adding new entry (selsta)
2022-03-18 16:22:57 -05:00
luigi1111
1dba06a7ff Merge pull request #3862
8bbf2bf Transfer: fix offline signing (reemuru)
2022-03-18 16:22:24 -05:00
luigi1111
838b0179e5 Merge pull request #3860
de81af0 RemoteNodeDialog: bind ok to return key (reemuru)
2022-03-18 16:21:57 -05:00
luigi1111
b12ad939ad Merge pull request #3859
346913f SettingsWallet: lock wallet on demand (reemuru)
2022-03-18 16:21:27 -05:00
luigi1111
74fbf77f62 Merge pull request #3851
4ef5ca5 Doc: Minimize boost deps in README.md (mj-xmr)
2022-03-18 16:21:04 -05:00
luigi1111
211ef24d18 Merge pull request #3720
06fe68b cmake: remove including non-existent directory (selsta)
2022-03-18 16:20:38 -05:00
luigi1111
a2e0ea4faf Merge pull request #3719
b811d6a cmake: don't print verbose make (selsta)
2022-03-18 16:19:41 -05:00
luigi1111
6ab104ead7 Merge pull request #3470
2057904 cmake: remove unneeded monero_gui_add_library() (selsta)
2022-03-18 16:18:58 -05:00
selsta
62748b6121 AddressBook: fix adding new entry 2022-03-16 13:43:26 +01:00
reemuru
8bbf2bfcbb Transfer: fix offline signing
Remove logic for processing an array to derive the confirmation.
Use confirmation from the transaction object.
2022-03-16 06:30:22 -05:00
reemuru
de81af0e8d RemoteNodeDialog: bind ok to return key
This commit binds the enter / return key on the remote
node dialog. If cursor is in the host, port or password
input fields the keyboard can be used to continue. It is not
bound to the username field because ideally a user would
enter password or port last.
2022-03-13 15:02:11 -04:00
reemuru
346913f3db SettingsWallet: lock wallet on demand
This commit adds the ability to lock the wallet on demand instead
of waiting for the user inactivity time out. It is binded to the
hot keys Ctrl+L. Pressing cancel or the esc key will send the user
back to the wizard home for wallet selection. Incorrect password
returns the error message. Correct password will remove the
PasswordDialog allowing access. Add lock functionality in the
wallet settings section and title bar.
2022-03-13 12:37:43 -04:00
luigi1111
fd8983a7ff Merge pull request #3849
119deb4 libwalletqt: fix typo in type (selsta)
2022-03-07 23:31:50 -05:00
mj-xmr
4ef5ca5721 Doc: Minimize boost deps in README.md 2022-03-07 19:07:53 +01:00
selsta
119deb4e82 libwalletqt: fix typo in type 2022-03-04 01:55:04 +01:00
luigi1111
ea92f3f272 Merge pull request #3841
da63ab2 workflows: fix windows build error (reemuru)
2022-03-02 19:06:28 -05:00
luigi1111
9c383bcc24 Merge pull request #3838
ddd95f7 settings: bind return key after password change (reemuru)
2022-03-02 19:05:53 -05:00
luigi1111
4fba8e654d Merge pull request #3832
08e386f update languages from weblate and add flags (Paul Janowitz)
2022-03-02 19:05:01 -05:00
luigi1111
14383a1922 Merge pull request #3831
bf324ec bug: reset wallet path on network change (reemuru)
2022-03-02 19:04:08 -05:00
luigi1111
1610b93975 Merge pull request #3828
2bf0dd8 Advanced: ReserveProof: Resolve review by selsta (reemuru)
0f67580 Advanced: ReserveProof: Add support for reserve proof (reemuru)
2022-03-02 19:03:14 -05:00
luigi1111
8ece450f18 Merge pull request #3825
5990338 WizardRestoreWallet4, WizardCreateWallet4: disable double-click on 'Create wallet' button (rating89us)
2022-03-02 18:59:24 -05:00
luigi1111
ced654707d Merge pull request #3781
817b015 Docker: bump hidapi on Linux (selsta)
2022-03-02 18:58:50 -05:00
selsta
ef561949ca Wizard: fix stagenet approx blockheight 2022-03-01 00:18:09 +01:00
reemuru
da63ab2e05 workflows: fix windows build error
Windows build log has an error message for including
winsock2.h and the build fails at the updater.cpp file.
Use the MONERO_GUI_STATIC definition for driving the import
logic since it is already defined for the docker static build.

Co-authored-by: jeffro256 <jeffro256@users.noreply.github.com>
2022-02-19 15:38:08 -05:00
reemuru
ddd95f73b4 settings: bind return key after password change
The enter / return key is not bound to the information
popup that appears after a successful password change.
The functionality exists on the previous menu. Make it
possible to use the return key on this popup as well.

Co-authored-by: selsta <selsta@users.noreply.github.com>
2022-02-18 19:35:04 -05:00
Paul Janowitz
08e386f63f update languages from weblate and add flags 2022-02-05 16:08:29 +01:00
reemuru
bf324ec2d9 bug: reset wallet path on network change
When changing network type without changing
wallet path the gui will attempt to open the
most recently used wallet path and network type
even if they don't match. This commit forces the
user back to wallet setup under this condition.
As long as network type and wallet path are both
updated before closing the issue will no longer occur.
2022-01-31 23:34:24 -05:00
luigi1111
e9afaa9cc8 Merge pull request #3822
de49ddc WizardRestoreWallet3: remove unused code (rating89us)
2022-01-24 15:25:19 -05:00
luigi1111
78e3b947d1 Merge pull request #3817
d752117 WizardHome: restore binding of networkTypeDropdown.currentIndex when selecting an item; display networkTypeDropdown if stagenet or testnet is selected (rating89us)
2022-01-24 15:24:45 -05:00
luigi1111
05b4a3dd6b Merge pull request #3815
11a1695 LeftPanel: use correct shortcut modifier for Mac (selsta)
2022-01-24 15:23:22 -05:00
luigi1111
c2f706a28a Merge pull request #3808
621c119 main: add compile time option to disable desktop entry dialog (selsta)
2022-01-24 15:22:57 -05:00
luigi1111
4df925e8a8 Merge pull request #3799
f7792b7 RemoteNodeList: fix qml warning (selsta)
2022-01-24 15:22:33 -05:00
luigi1111
adf88c63ec Merge pull request #3791
6b926b3 History: disable payment proof for hardware wallets (selsta)
2022-01-24 15:22:11 -05:00
luigi1111
c2545e226b Merge pull request #3776
fa9285a SettingsInfo: translate tx description of 'Donate to Monero' button (rating89us)
2022-01-24 15:21:29 -05:00
luigi1111
5c7c4dde14 Merge pull request #3764
23b74a3 WizardSummary: use 'Mnemonic seed language' instead of 'Language' (rating89us)
2022-01-24 15:20:50 -05:00
luigi1111
2bbb6adb4f Merge pull request #3763
9194522 Wizard: display selected network (testnet/stagenet) on 'Create a new wallet' header (rating89us)
2022-01-24 15:19:58 -05:00
luigi1111
493105b457 Merge pull request #3680
f30570d Makefile: fix release-linux-armv8 (selsta)
2022-01-24 15:19:21 -05:00
reemuru
2bf0dd840f Advanced: ReserveProof: Resolve review by selsta
Fixes: 0f67580e
This commit updates qsTr() to avoid breaking previous
translations. Also removes an erroneous whitespace.
2022-01-21 01:21:17 -05:00
reemuru
0f67580e8f Advanced: ReserveProof: Add support for reserve proof
This change adds the ability to prove and check a reserve proof
to this existing "Prove/check" advanced menu. If the amount line has
a valid amount less than that of the current account index this input
will drive the logic for generating a reserve proof. Checking a reserve
proof is accomplished by validating the address and verifying that
signature.indexOf("ReserveProofV") === 0. The result displays the total
and spent amount of the proof.
2022-01-20 20:21:11 -05:00
rating89us
599033815a WizardRestoreWallet4, WizardCreateWallet4: disable double-click on "Create wallet" button 2022-01-17 21:58:38 +01:00
rating89us
de49ddcf5b WizardRestoreWallet3: remove unused code 2022-01-16 19:01:51 +01:00
rating89us
d752117ed3 WizardHome: restore binding of networkTypeDropdown.currentIndex when selecting an item; display networkTypeDropdown if stagenet or testnet is selected 2022-01-13 23:39:53 +01:00
rating89us
fa9285a108 SettingsInfo: translate tx description of "Donate to Monero" button 2022-01-13 21:20:29 +01:00
rating89us
9194522b56 Wizard: display selected network (testnet/stagenet) on "Create a new wallet" header 2022-01-13 20:56:00 +01:00
selsta
11a16952c5 LeftPanel: use correct shortcut modifier for Mac 2022-01-07 22:05:28 +01:00
luigi1111
a959919b8a Merge pull request #3813
6f88ad0 Fixed English mistake in Mining.qml (Igor Voytov)
2022-01-02 14:50:40 -05:00
Igor Voytov
6f88ad0a13 Fixed English mistake in Mining.qml 2022-01-02 19:23:12 +03:00
luigi1111
cb169f11d4 Merge pull request #3811
9199f95 update translations (netrik182)
2022-01-01 12:55:09 -05:00
luigi1111
98b81fa1ee Merge pull request #3810
f2b4e1e README: add more missing macOS dependencies (selsta)
2022-01-01 12:54:49 -05:00
luigi1111
a6fadd2140 Merge pull request #3804
a4cc91c DEPLOY: use correct ARCH (selsta)
2022-01-01 12:54:25 -05:00
luigi1111
09bf4a1e71 Merge pull request #3803
db4123c build: prepare v0.17.3.1 (selsta)
2022-01-01 12:53:55 -05:00
luigi1111
f44fcb4459 Merge pull request #3802
98f8f19 SettingsWallet: improve and translate trusted remote node error message (rating89us)
2022-01-01 12:53:32 -05:00
luigi1111
c5d598f401 Merge pull request #3800
f8a3a26 RemoteNodeList: fix trusted daemon icon margin (selsta)
2022-01-01 12:52:55 -05:00
luigi1111
9476a9880c Merge pull request #3798
d160828 SettingsWallet, SettingsListItem: disable 'Rescan wallet balance' buton if wallet is not synced (rating89us)
2022-01-01 12:51:03 -05:00
luigi1111
487f2ceecb Merge pull request #3797
e85b51e RemoteNodeList: reconnect after editing remote node (rating89us)
2022-01-01 12:50:17 -05:00
luigi1111
d0950499da Merge pull request #3795
2566f44 wizard: clear password field after wallet creation (selsta)
2022-01-01 12:49:38 -05:00
luigi1111
56df20ba27 Merge pull request #3788
008a38a main: verify if currentWallet is loaded before calling it (rating89us)
2022-01-01 12:48:17 -05:00
luigi1111
41b827b65d Merge pull request #3783
70e3c2d Settings, Advanced: mirror stack transition when clicking on a button on the left (rating89us)
2022-01-01 12:47:25 -05:00
luigi1111
0b6ceab25b Merge pull request #3769
3e159e0 WizardCreateDevice1: Use 'Restore wallet' instead of 'Create wallet' on Next button when restoring (rating89us)
2022-01-01 12:46:27 -05:00
selsta
2566f445b2 wizard: clear password field after wallet creation 2021-12-26 02:15:07 +01:00
netrik182
9199f95af5 update translations
Afrikaans

Currently translated at 100.0% (724 of 724 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/af/
Author: netrik182 <netrik@tuta.io>

Romanian

Currently translated at 99.4% (720 of 724 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ro/
Author: netrik182 <netrik@tuta.io>

Dutch

Currently translated at 83.7% (642 of 767 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/nl/
Author: netrik182 <netrik@tuta.io>

Japanese

Currently translated at 97.5% (706 of 724 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/ja/
Author: netrik182 <netrik@tuta.io>

Hungarian

Currently translated at 94.3% (683 of 724 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/hu/
Author: netrik182 <netrik@tuta.io>

Hebrew

Currently translated at 42.5% (326 of 767 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/he/
Author: netrik182 <netrik@tuta.io>

Co-authored-by: netrik182 <netrik@tuta.io>

Dutch

Currently translated at 83.7% (642 of 767 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/nl/
Author: Snowden <edwardissexy.uninteresting@aleeas.com>

Co-authored-by: Snowden <edwardissexy.uninteresting@aleeas.com>

Polish

Currently translated at 90.0% (691 of 767 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/pl/
Author: Paul Janowitz <janowitz@gmail.com>

Co-authored-by: Paul Janowitz <janowitz@gmail.com>

Chinese (Simplified)

Currently translated at 77.7% (596 of 767 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/zh_Hans/
Author: Lekton Zhang <takato3000@gmail.com>

Co-authored-by: Lekton Zhang <takato3000@gmail.com>

German

Currently translated at 90.2% (693 of 768 strings)
Translate-URL: https://translate.getmonero.org/projects/monero/gui-wallet/de/
Author: Wobole <wobole@throwaway.io>

Co-authored-by: Wobole <wobole@throwaway.io>
2021-12-22 09:08:40 +01:00
selsta
f2b4e1ea3e README: add more missing macOS dependencies 2021-12-18 21:35:03 +01:00
selsta
621c11925b main: add compile time option to disable desktop entry dialog 2021-12-17 16:43:00 +01:00
selsta
a4cc91cca2 DEPLOY: use correct ARCH 2021-12-15 10:03:28 +01:00
selsta
db4123ccb5 build: prepare v0.17.3.1 2021-12-14 07:02:43 +01:00
rating89us
98f8f194cd SettingsWallet: improve and translate trusted remote node error message 2021-12-13 15:30:24 +01:00
selsta
f8a3a26e0d RemoteNodeList: fix trusted daemon icon margin 2021-12-13 04:44:44 +01:00
selsta
f7792b72bf RemoteNodeList: fix qml warning 2021-12-13 04:33:32 +01:00
rating89us
d160828cda SettingsWallet, SettingsListItem: disable "Rescan wallet balance" buton if wallet is not synced 2021-12-12 18:26:44 +01:00
rating89us
e85b51e1c2 RemoteNodeList: reconnect after editing remote node 2021-12-12 16:32:45 +01:00
selsta
6b926b3199 History: disable payment proof for hardware wallets 2021-12-11 04:02:35 +01:00
rating89us
008a38aae2 main: verify if currentWallet is loaded before calling it 2021-12-10 11:03:37 +01:00
rating89us
70e3c2d3ad Settings, Advanced: mirror stack transition when clicking on a button on the left 2021-12-08 13:00:10 +01:00
selsta
817b015335 Docker: bump hidapi on Linux 2021-12-07 15:50:27 +01:00
luigi1111
bddb9b0050 Merge pull request #3773
78f7b05 Translations from Weblate (Weblate)
2021-12-02 15:13:21 -06:00
Anonymous
78f7b05ecb Translations from Weblate
* Ukrainian
  * TheFuzzStone (1)
  * reketen (1)
  * castorp (1)
  * Alex Osinniy (3)
* Spanish
  * nemecis rojas (1)
  * Samuel (1)
  * Josep Mengual (2)
  * jaime diaz (6)
* Esperanto
  * Dynse Clyde Sacote (11)
* Romanian
  * devuana (8)
  * mihaipe (40)
* Russian
  * v1docq47 (76)
* Portuguese (Brazil)
  * L. P. Pereira (1)
  * netrik182 (35)
  * Gilberto F da Silva (47)
* Hungarian
  * Zsolt András Kovács (1)
  * Pozsonyi Péter (3)
  * Közepes Gábor (5)
  * anonym szeretnék maradni (35)
* German
  * Nicolas (1)
  * Martin (1)
  * MortiZ (1)
  * GreenPiece (3)
  * Crusty (8)
  * Paul Janowitz (10)
2021-12-02 20:57:23 +01:00
luigi1111
999bc21d6b Merge pull request #3767
d922c91 main: hide TitleBar when MerchantTitleBar is visible (rating89us)
2021-12-02 00:16:15 -06:00
luigi1111
901b4b0f77 Merge pull request #3765
fa35410 build: prepare v0.17.3.0 (selsta)
2021-12-02 00:12:36 -06:00
luigi1111
69dc0b3570 Merge pull request #3761
6e24930 WizardOpenWallet1: new wallet icons; hide 'Mainnet' label in simple mode (rating89us)
2021-12-02 00:08:19 -06:00
luigi1111
0bebf412fd Merge pull request #3760
b8b96ee PasswordDialog: display wizard title bar when returning to wizard after canceling password dialog (rating89us)
2021-12-02 00:07:03 -06:00
luigi1111
ce1c5aebf7 Merge pull request #3759
22450cb main: hide wallet name in wizard titlebar (rating89us)
2021-12-02 00:05:42 -06:00
luigi1111
7eef4f3364 Merge pull request #3758
a4b907a WizardCreateDevice1: hide advanced options in simple mode (rating89us)
2021-12-02 00:05:20 -06:00
luigi1111
ecadd44a16 Merge pull request #3756
31ae9b3 WizardCreateDevice1: reset fields when opening page (rating89us)
2021-12-02 00:04:49 -06:00
luigi1111
4bd7d43588 Merge pull request #3753
8a8a384 add _ to names of fonts (Malte J├╝rgens)
00a95c1 change ttf name of Roboto-Regular to Roboto-Regular_ (Malte J├╝rgens)
2021-12-02 00:04:16 -06:00
luigi1111
50c8f30d0b Merge pull request #3755
843536c WizardAskPassword: clean password fields when clicking on Back button (rating89us)
2021-12-02 00:02:47 -06:00
luigi1111
e2203a871c Merge pull request #3736
4d2186f README: add missing macOS dependencies (selsta)
2021-12-02 00:01:42 -06:00
rating89us
3e159e0ed6 WizardCreateDevice1: Use "Restore wallet" instead of "Create wallet" on Next button when restoring 2021-12-01 21:50:55 +01:00
rating89us
d922c91071 main: hide TitleBar when MerchantTitleBar is visible 2021-12-01 16:48:14 +01:00
selsta
fa35410851 build: prepare v0.17.3.0 2021-11-30 23:22:39 +01:00
rating89us
23b74a3412 WizardSummary: use "Mnemonic seed language" instead of "Language" 2021-11-30 23:14:38 +01:00
rating89us
6e24930026 WizardOpenWallet1: new wallet icons; hide "Mainnet" label in simple mode 2021-11-29 20:16:23 +01:00
rating89us
b8b96ee719 PasswordDialog: display wizard title bar when returning to wizard after canceling password dialog 2021-11-28 13:39:45 +01:00
rating89us
22450cb68d main: hide wallet name in wizard titlebar 2021-11-28 13:33:54 +01:00
rating89us
a4b907a668 WizardCreateDevice1: hide advanced options in simple mode 2021-11-28 11:45:50 +01:00
rating89us
843536c7a1 WizardAskPassword: clean password fields when clicking on Back button 2021-11-27 19:50:09 +01:00
rating89us
31ae9b3947 WizardCreateDevice1: reset fields when opening page 2021-11-27 19:45:50 +01:00
luigi1111
c72729fa5d Merge pull request #3750
8f12e97 LeftPanel: display full keyboard shortcuts for Windows, Mac, and Linux (rating89us)
2021-11-26 22:57:54 -06:00
luigi1111
a07299f64d Merge pull request #3746
9e83942 Updated instructions for Gentoo (free-as-in-beer)
2021-11-26 22:57:26 -06:00
luigi1111
d55a001875 Merge pull request #3743
98b2727 StandardDropdown: remove bold text in dropdown items (rating89us)
2021-11-26 22:56:53 -06:00
luigi1111
917d6d4243 Merge pull request #3742
e390b43 Mining: add buttons/scroll to CPU threads input; improve button labels; set start mining button as primary (rating89us)
2021-11-26 22:56:26 -06:00
luigi1111
05e629c0eb Merge pull request #3740
9846bff AddressBook: use small StandardButton; adjust buttons alignment/order; remove paste button (rating89us)
2021-11-26 22:55:57 -06:00
luigi1111
9c901b33f0 Merge pull request #3739
a37c375 Account: use StandardButton for 'Create new account' (rating89us)
2021-11-26 22:55:24 -06:00
luigi1111
a0ff56fbef Merge pull request #3738
419a197 AddressBook: fix edit address button tooltip (rating89us)
2021-11-26 22:54:47 -06:00
luigi1111
fc8c1114b2 Merge pull request #3737
9961305 LabelSubheader: implement tooltip (rating89us)
2021-11-26 22:54:12 -06:00
luigi1111
93e5ef883c Merge pull request #3735
c844e3d zxcvbn: fix buffer overflow (selsta)
2021-11-26 22:50:17 -06:00
luigi1111
10a36f96f6 Merge pull request #3731
61d8b5e Makefile: don't hardcode x86_64 arch (selsta)
2021-11-26 22:49:47 -06:00
luigi1111
80cd2e08a4 Merge pull request #3689
d3780ab ContextMenu: add Cut, Copy, Delete and Select All (rating89us)
2021-11-26 22:48:40 -06:00
luigi1111
97755e1b34 Merge pull request #3635
cc8ddde Transfer: fix button colors, font size, bold; use secondary button for advanced options (rating89us)
2021-11-26 22:47:35 -06:00
Malte Jürgens
8a8a3847d7 add _ to names of fonts 2021-11-27 00:06:56 +01:00
Malte Jürgens
00a95c11a0 change ttf name of Roboto-Regular to Roboto-Regular_ 2021-11-26 23:39:01 +01:00
rating89us
8f12e97b79 LeftPanel: display full keyboard shortcuts for Windows, Mac, and Linux 2021-11-25 20:30:04 +01:00
rating89us
9961305867 LabelSubheader: implement tooltip 2021-11-22 23:19:41 +01:00
free-as-in-beer
9e83942920 Updated instructions for Gentoo 2021-11-22 22:28:58 +01:00
rating89us
e390b43bdc Mining: add buttons/scroll to CPU threads input; improve button labels; set start mining button as primary 2021-11-22 19:46:16 +01:00
rating89us
cc8ddde01b Transfer: fix button colors, font size, bold; use secondary button for advanced options 2021-11-21 19:28:36 +01:00
rating89us
98b2727857 StandardDropdown: remove bold text in dropdown items 2021-11-21 19:09:10 +01:00
selsta
4d2186fb75 README: add missing macOS dependencies 2021-11-21 03:36:36 +01:00
rating89us
419a1975eb AddressBook: fix edit address button tooltip 2021-11-20 20:18:49 +01:00
rating89us
9846bff226 AddressBook: use small StandardButton; adjust buttons alignment/order; remove paste button 2021-11-20 19:38:29 +01:00
rating89us
a37c3756b7 Account: use StandardButton for "Create new account" 2021-11-20 17:05:26 +01:00
selsta
c844e3d179 zxcvbn: fix buffer overflow
Original patch by hannob
2021-11-15 08:24:58 +01:00
selsta
0ded8dcf25 Settings: option to skip stop local node screen 2021-11-15 06:31:34 +01:00
selsta
61d8b5efb6 Makefile: don't hardcode x86_64 arch 2021-11-10 06:25:49 +01:00
luigi1111
ecf5c501d6 Merge pull request #3730
bdad630 remove reference from mattermost (netrik182)
2021-11-09 23:02:41 -06:00
luigi1111
db639b96a3 Merge pull request #3726
987bf92 Fix typos (Dimitris Apostolou)
2021-11-09 23:00:56 -06:00
luigi1111
e65956e910 Merge pull request #3723
f8e1b9b cmake: don't hardcode x86-64 arch (selsta)
2021-11-09 23:00:35 -06:00
luigi1111
09ce233f4b Merge pull request #3717
f91e179 Receive: set maximum length for qr string (selsta)
2021-11-09 23:00:14 -06:00
luigi1111
34893e169e Merge pull request #3716
49ade0d cmake: remove werror (selsta)
2021-11-09 22:59:55 -06:00
luigi1111
dd171c8b49 Merge pull request #3715
c970588 cmake: simplify version, fix tag if git isn't found (selsta)
2021-11-09 22:59:31 -06:00
luigi1111
985406e70f Merge pull request #3713
4aab43a add flatpak package (kinghat)
2021-11-09 22:59:06 -06:00
luigi1111
8bf457c864 Merge pull request #3711
c0aface workflows: add missing dependency, fix mac build (selsta)
2021-11-09 22:58:45 -06:00
luigi1111
96dab92f33 Merge pull request #3706
bd7bd43 AddressBook: add payment request URI prefix to address field placeholder (rating89us)
2021-11-09 22:58:20 -06:00
luigi1111
d348324f50 Merge pull request #3705
b44d359 Transfer: add payment request URI prefix to address field placeholder (rating89us)
2021-11-09 22:58:00 -06:00
luigi1111
4f5903e7fd Merge pull request #3697
4ec78b3 cmake: don't force -march=x86-64 (selsta)
2021-11-09 22:57:36 -06:00
luigi1111
bdadd98622 Merge pull request #3364
66d29a4 Makefile: Add ppc64le target (Jeremy Rand)
2021-11-09 22:57:10 -06:00
netrik182
bdad630d51 remove reference from mattermost
and add matrix room link
2021-11-09 10:22:18 +00:00
Dimitris Apostolou
987bf920c7 Fix typos 2021-11-04 21:19:11 +02:00
selsta
f8e1b9bdb6 cmake: don't hardcode x86-64 arch 2021-10-29 23:39:59 +02:00
selsta
06fe68b56c cmake: remove including non-existent directory 2021-10-28 14:27:53 +02:00
selsta
b811d6a84f cmake: don't print verbose make
If someone wants verbose make they can set the env var.
This is now in line with monero's behaviour.
2021-10-27 18:45:55 +02:00
selsta
f91e1791fe Receive: set maximum length for qr string 2021-10-21 02:28:41 +02:00
selsta
49ade0d689 cmake: remove werror 2021-10-19 18:02:45 +02:00
selsta
c970588c55 cmake: simplify version, fix tag if git isn't found 2021-10-19 17:58:39 +02:00
kinghat
4aab43a127 add flatpak package 2021-10-12 10:29:36 -05:00
selsta
c0aface962 workflows: add missing dependency, fix mac build 2021-10-07 04:34:07 +02:00
rating89us
bd7bd43504 AddressBook: add payment request URI prefix to address field placeholder 2021-09-27 12:23:23 +02:00
rating89us
b44d359f9e Transfer: add payment request URI prefix to address field placeholder 2021-09-27 12:22:25 +02:00
luigi1111
2f109d3333 Merge pull request #3702
1c31f2e Docker: add missing hash checks (selsta)
2021-09-23 21:56:49 -05:00
luigi1111
7cc225039c Merge pull request #3698
1173dd2 Docker: fix missing unbound on Android (selsta)
2021-09-23 21:56:24 -05:00
luigi1111
cef9be3d02 Merge pull request #3696
87b1518 Docker: fix missing unbound on Linux (selsta)
2021-09-23 21:55:38 -05:00
selsta
1c31f2e481 Docker: add missing hash checks 2021-09-15 17:52:12 +02:00
selsta
1173dd2826 Docker: fix missing unbound on Android 2021-09-15 17:49:23 +02:00
luigi1111
6239f949fe Merge pull request #3694
02c55e3 workflows: fix build on windows (selsta)
2021-09-13 01:47:04 -04:00
selsta
4ec78b35f8 cmake: don't force -march=x86-64 2021-09-13 02:33:34 +02:00
selsta
87b1518023 Docker: fix missing unbound on Linux 2021-09-12 20:55:29 +02:00
selsta
02c55e3fd1 workflows: fix build on windows 2021-09-11 02:24:11 +02:00
luigi1111
96762ebf09 Merge pull request #3687
f327d20 qml: use libwalletqt make_uri function (selsta)
dcc16a4 libwalletqt: add make_uri function (selsta)
2021-09-09 16:54:36 -04:00
luigi1111
702d3b8ec1 Merge pull request #3686
1ef9a5c Transfer: print success / error for key images (selsta)
2021-09-09 16:54:05 -04:00
luigi1111
a3069e4a58 Merge pull request #3472
bd9a2d7 cmake: cleanup openssl (selsta)
2021-09-09 16:53:34 -04:00
selsta
bd9a2d7bbb cmake: cleanup openssl 2021-09-06 02:21:00 +02:00
selsta
1ef9a5c2d7 Transfer: print success / error for key images 2021-09-06 02:19:10 +02:00
luigi1111
3f48e3ef1c Merge pull request #3685
5fa310c LineEdit: fix eye button overlap on password field (rating89us)
2021-09-05 13:06:00 -04:00
luigi1111
d9f7482ae8 Merge pull request #3684
27525b3 Add note about GUI releases to README.md (MoneroArbo)
2021-09-05 13:05:18 -04:00
luigi1111
facec65dfc Merge pull request #3683
d3d7841 Receive: remove highlight of QR code menu if no menu item is hovered (rating89us)
2021-09-05 13:04:38 -04:00
luigi1111
dc331f0e64 Merge pull request #3682
b99b333 WizardAskPassword: add colors to password strength meter; add 'Passwords match/do not match' message (rating89us)
2021-09-05 13:01:58 -04:00
luigi1111
67eb486e63 Merge pull request #3679
18a7629 cmake: cleanup redundant ccache file (selsta)
2021-09-05 13:00:20 -04:00
luigi1111
edb0358916 Merge pull request #3572
544cff7 TransactionHistory: add description to csv export (selsta)
57c2052 TransactionInfo: add isCoinbase and description (selsta)
2021-09-05 12:58:39 -04:00
luigi1111
569ba16df8 Merge pull request #3481
afb88ff workflows: don't use cache on release tag (selsta)
2021-09-05 12:57:33 -04:00
luigi1111
d48438aeef Merge pull request #3477
75746a8 cmake: explicitly link net and common (selsta)
2021-09-05 12:57:04 -04:00
luigi1111
92b3f5a2ee Merge pull request #3473
165817e cmake: cleanup test-libusb-version.c (selsta)
2021-09-05 12:56:31 -04:00
luigi1111
f430d49304 Merge pull request #3471
2f8f7c2 cmake: cleanup boost (selsta)
2021-09-05 12:55:47 -04:00
luigi1111
76c3b3cd1d Merge pull request #3452
95c07e1 workflows: replace qt download script for macos-bundle (selsta)
2021-09-05 12:55:07 -04:00
luigi1111
35aee155d7 Merge pull request #3435
36940f0 Transfer: add support for outputs import / export (selsta)
e36b166 Wallet: import / export output function (tobtoht)
2021-09-05 12:54:13 -04:00
luigi1111
d93af5a469 Merge pull request #3282
6dd7445 Transfer: export all key images by default (benevanoff)
2021-09-05 12:51:53 -04:00
luigi1111
051282931a Merge pull request #3096
AddressBook: description edits, remove hack (selsta)
2021-09-05 12:50:30 -04:00
rating89us
d3780abe33 ContextMenu: add Cut, Copy, Delete and Select All 2021-09-05 15:52:51 +02:00
selsta
841f061520 main: remove outdated code 2021-09-05 06:18:49 +02:00
selsta
f327d20deb qml: use libwalletqt make_uri function 2021-09-05 05:52:56 +02:00
selsta
dcc16a44be libwalletqt: add make_uri function 2021-09-05 05:52:53 +02:00
selsta
36940f07c9 Transfer: add support for outputs import / export 2021-09-04 00:14:07 +02:00
rating89us
b99b333b71 WizardAskPassword: add colors to password strength meter; add "Passwords match/do not match" message 2021-09-03 21:30:16 +02:00
rating89us
5fa310c961 LineEdit: fix eye button overlap on password field 2021-09-03 21:12:20 +02:00
tobtoht
e36b166edd Wallet: import / export output function 2021-09-03 05:36:58 +02:00
MoneroArbo
27525b37e0 Add note about GUI releases to README.md
Official GUI releases use monero-wallet-gui from the docker build process documented in the monero-gui README, alongisde the supporting binaries from the deterministic CLI builds. This should be noted for users looking for verify GUI builds against official releases.
2021-09-02 20:20:20 -04:00
rating89us
d3d78416d7 Receive: remove highlight of QR code menu if no menu item is hovered 2021-09-02 20:49:54 +02:00
selsta
f30570d54b Makefile: fix release-linux-armv8 2021-08-31 21:51:24 +02:00
selsta
20579049fa cmake: remove unneeded monero_gui_add_library() 2021-08-31 05:51:20 +02:00
selsta
544cff7dc1 TransactionHistory: add description to csv export 2021-08-31 05:50:54 +02:00
selsta
165817ec02 cmake: cleanup test-libusb-version.c 2021-08-31 05:50:33 +02:00
selsta
95c07e1a62 workflows: replace qt download script for macos-bundle 2021-08-31 05:48:53 +02:00
selsta
2f8f7c2054 cmake: cleanup boost 2021-08-31 05:31:30 +02:00
selsta
99ad8ef1ba AddressBook: description edits, remove hack
Co-authored-by: dsc <dsc@xmr.pm>
2021-08-31 05:26:49 +02:00
selsta
18a76299f2 cmake: cleanup redundant ccache file 2021-08-31 05:25:00 +02:00
luigi1111
113efbfdf0 Merge pull request #3678
0e1c6ae build: prepare v0.17.2.3 (selsta)
2021-08-30 16:14:30 -04:00
selsta
0e1c6ae60f build: prepare v0.17.2.3 2021-08-29 20:49:45 +02:00
luigi1111
b461373b8a Merge pull request #3674
3719f00 TxKey: fix get / check proof (selsta)
2021-08-26 21:30:02 -04:00
luigi1111
046124cd9b Merge pull request #3672
09003dd StandardDialog: use secondary color for cancel button (rating89us)
2021-08-26 21:29:18 -04:00
luigi1111
0ca7e4ec76 Merge pull request #3670
ac432fe InputDialog: use secondary color for cancel Button (rating89us)
2021-08-26 21:28:38 -04:00
luigi1111
376eaecf08 Merge pull request #3667
52c8d68 WizardRestoreWallet4: 'Open wallet' -> 'Create wallet'; add translation (rating89us)
2021-08-26 21:28:08 -04:00
luigi1111
316f8b1762 Merge pull request #3666
4fec3a4 WizardHeader: fix subtitle text width (rating89us)
2021-08-26 21:25:22 -04:00
luigi1111
cbed1ed6f7 Merge pull request #3665
02e0ac1 cmake: remove unnecessary steps (selsta)
2021-08-26 21:24:34 -04:00
luigi1111
3507e848cf Merge pull request #3650
946fa53 Receive: implement payment request (rating89us)
2021-08-26 21:23:23 -04:00
luigi1111
60967d3930 Merge pull request #3644
57f9cf9 History: fix transactions missing after midnight (selsta)
2021-08-26 21:22:05 -04:00
luigi1111
55a262b892 Merge pull request #3618
5234570 WizardCreateDevice1: display images; differentiate Ledger Nano X and S; add label to dropdown (rating89us)
2021-08-26 21:19:11 -04:00
selsta
3719f00953 TxKey: fix get / check proof 2021-08-20 23:51:04 +02:00
rating89us
09003dd140 StandardDialog: use secondary color for cancel button 2021-08-20 14:34:38 +02:00
rating89us
ac432fe947 InputDialog: use secondary color for cancel Button 2021-08-20 13:23:43 +02:00
rating89us
5234570afa WizardCreateDevice1: display images; differentiate Ledger Nano X and S; add label to dropdown 2021-08-19 17:26:32 +02:00
rating89us
946fa538b9 Receive: implement payment request 2021-08-19 17:13:57 +02:00
rating89us
52c8d68240 WizardRestoreWallet4: "Open wallet" -> "Create wallet"; add translation 2021-08-15 21:25:20 +02:00
rating89us
4fec3a4d6f WizardHeader: fix subtitle text width 2021-08-13 14:56:22 +02:00
selsta
02e0ac1309 cmake: remove unnecessary steps 2021-08-12 01:08:13 +02:00
luigi1111
51828babbb Merge pull request #3641
d8fb9ec Transfer: use defaultFontColor for text cursor when address field is blank (rating89us)
2021-07-26 15:37:47 -04:00
luigi1111
a13e4b622c Merge pull request #3640
7805430 Account, Receive, RemoteNodeList, SettingsNode: selection indicator in lists (rating89us)
2021-07-26 15:37:26 -04:00
luigi1111
56a17e0a85 Merge pull request #3638
faf9ec3 AddressBook: add Grab QR code inline button (rating89us)
2021-07-26 15:36:48 -04:00
luigi1111
e74ef368df Merge pull request #3637
22291b1 NetworkStatusItem: add tooltip to switch node button; adjust colors of lightning icon, switch node button and network status (rating89us)
2021-07-26 15:36:20 -04:00
luigi1111
857d034f18 Merge pull request #3634
b30be48 README: TOC, update building titles (rating89us)
2021-07-26 15:35:55 -04:00
luigi1111
3f4cedea54 Merge pull request #3630
284caf8 RemoteNodeList: truncate long addresses (rating89us)
2021-07-26 15:35:13 -04:00
luigi1111
4376880b46 Merge pull request #3627
d20c589 Tooltip: fix tooltip width (rating89us)
2021-07-26 15:34:50 -04:00
luigi1111
98057487f6 Merge pull request #3624
ea9ed3e openpgp: add missing include (selsta)
2021-07-26 15:34:29 -04:00
luigi1111
06025352ce Merge pull request #3620
c4c549e Upgrade Font Awesome icons to v5.15.3 (rating89us)
2021-07-26 15:31:58 -04:00
selsta
57f9cf9d85 History: fix transactions missing after midnight 2021-07-26 00:42:44 +02:00
rating89us
d8fb9ec081 Transfer: use defaultFontColor for text cursor when address field is blank 2021-07-25 20:09:52 +02:00
rating89us
faf9ec3027 AddressBook: add Grab QR code inline button
Co-authored-by: selsta <selsta@users.noreply.github.com>
2021-07-25 09:08:17 +02:00
rating89us
22291b1df1 NetworkStatusItem: add tooltip to switch node button; adjust colors of lightning icon, switch node button and network status 2021-07-23 08:14:20 +02:00
rating89us
7805430f4f Account, Receive, RemoteNodeList, SettingsNode: selection indicator in lists 2021-07-23 08:13:01 +02:00
rating89us
b30be48a24 README: TOC, update building titles 2021-07-22 18:06:44 +02:00
rating89us
284caf83f6 RemoteNodeList: truncate long addresses 2021-07-21 01:34:02 +02:00
rating89us
d20c589e42 Tooltip: fix tooltip width 2021-07-16 09:59:45 +02:00
selsta
ea9ed3e0be openpgp: add missing include 2021-07-15 19:43:41 +02:00
rating89us
c4c549e57a Upgrade Font Awesome icons to v5.15.3 2021-07-12 23:15:59 +02:00
luigi1111
b6682330a6 Merge pull request #3611
0ce3e4b WizardOpenWallet1: navigate with keyboard; enable accessibility (rating89us)
2021-07-11 22:19:28 -04:00
luigi1111
b54ee598d8 Merge pull request #3523
20106b2 Tooltip: fix binding loop (selsta)
2021-07-11 22:18:49 -04:00
luigi1111
7da11b050c Merge pull request #3617
94b6a5b cmake: fix incorrect rebase (selsta)
2021-07-10 20:08:56 -04:00
selsta
94b6a5bbf5 cmake: fix incorrect rebase 2021-07-11 02:03:46 +02:00
luigi1111
5a88d4a669 Merge pull request #3565
3d6e9ce cmake: remove unnecessary file globbing (selsta)
2021-07-10 18:02:58 -04:00
selsta
3d6e9ce571 cmake: remove unnecessary file globbing 2021-07-10 23:58:25 +02:00
luigi1111
987e716374 Merge pull request #3614
3631482 SettingsInfo: fix displaying of Graphics mode and Tails on clipboard output (rating89us)
2021-07-10 17:55:11 -04:00
luigi1111
f81bfa1865 Merge pull request #3613
6739b51 WizardWalletInput: red border if error; error messages; remove placeholders; smaller font; icon for browse button (rating89us)
2021-07-10 17:54:34 -04:00
luigi1111
e4a3e282b5 Merge pull request #3593
2c0cf0d WizardCreateDevice1: move 'choose your device' dropdown to the top (rating89us)
2021-07-10 17:53:26 -04:00
luigi1111
c017522a3c Merge pull request #3599
f82336c TxConfirmationDialog: fix displaying of '<' when using fontMonoRegular (rating89us)
2021-07-10 17:52:32 -04:00
rating89us
6739b51a5b WizardWalletInput: red border if error; error messages; remove placeholders; smaller font; icon for browse button
Update WizardWalletInput.qml
2021-07-10 20:14:23 +02:00
rating89us
3631482419 SettingsInfo: fix displaying of Graphics mode and Tails on clipboard output 2021-07-09 23:00:18 +02:00
luigi1111
1c61ec2511 Merge pull request #3603
8419fce LanguageSidebar: navigate/select language with keyboard; enable accessibility; selected indicator; remember previous focused item (rating89us)
2021-07-06 11:50:34 -04:00
luigi1111
d0707d78a1 Merge pull request #3602
15dbbaf cmake: enable position independent code for quirc (selsta)
2021-07-06 11:50:01 -04:00
luigi1111
083b0fb7a8 Merge pull request #3601
d8f9d2f Transfer: fix fee label alignment (selsta)
2021-07-06 11:49:37 -04:00
luigi1111
24d113377b Merge pull request #3598
dbc8c7d qr: scan valid addresses that miss an uri prefix (selsta)
2021-07-06 11:48:58 -04:00
luigi1111
5e076325cd Merge pull request #3590
2db8f77 Transfer: UI changes to description field (use LineEdit, decrease font size, new placeholder) (rating89us)
2021-07-06 11:48:27 -04:00
luigi1111
5aef186c8a Merge pull request #3588
0de95e3 RemoteNodeList: reduce spacing between icons (selsta)
2021-07-06 11:47:49 -04:00
luigi1111
81f0209006 Merge pull request #3582
54e183a SettingsInfo: add portable mode to wallet mode (selsta)
2021-07-06 11:47:06 -04:00
luigi1111
b4e6f20b53 Merge pull request #3580
0fd0fc5 Receive: selected address details on top; QR code click to ampliate/right click to save as image; click on description to edit; display full address; use standard button for 'create new address' (rating89us)
2021-07-06 11:46:35 -04:00
luigi1111
a278781abf Merge pull request #3562
6610f6f cmake: fix compilation with zxcvbn, always enable (selsta)
2021-07-06 11:44:20 -04:00
luigi1111
2d82439b56 Merge pull request #3559
3eae630 History: collapse 'Sort & Filter' when user types (rating89us)
2021-07-06 11:43:48 -04:00
luigi1111
0b0bc87184 Merge pull request #3544
f75a244 Wizard: set unused wallet name (selsta)
2021-07-06 11:43:09 -04:00
luigi1111
59fcda43c6 Merge pull request #3505
76be4b8 main: set correct size for pruned blockchain (selsta)
2021-07-06 11:42:37 -04:00
luigi1111
6e87e2cb5b Merge pull request #3504
8236277 main: simplify fiat ticker code (selsta)
2021-07-06 11:42:09 -04:00
luigi1111
8730743207 Merge pull request #3503
b2255cf main: use Utils.epoch() for epoch (selsta)
2021-07-06 11:41:11 -04:00
luigi1111
4c67007e5b Merge pull request #3502
aa8c1a5 main: remove redundant assignment (selsta)
2021-07-06 11:40:42 -04:00
luigi1111
0ae1c721ef Merge pull request #3491
dbda233 pages: set correct icon fallback opacity (selsta)
2021-07-06 11:40:10 -04:00
luigi1111
21cce4cfb4 Merge pull request #3487
b2fbe51 StandardButton: fix warning with fallbackicon (selsta)
2021-07-06 11:39:19 -04:00
luigi1111
d595957405 Merge pull request #3165
3907dac Account: remove 'Balance:' label; add XMR; align balances (rating89us)
2021-07-06 11:36:19 -04:00
rating89us
0ce3e4b1e7 WizardOpenWallet1: navigate with keyboard; enable accessibility 2021-07-06 10:41:03 +02:00
rating89us
8419fce062 LanguageSidebar: navigate/select language with keyboard; enable accessibility; selected indicator; remember previous focused item 2021-07-04 21:56:57 +02:00
selsta
15dbbaf691 cmake: enable position independent code for quirc 2021-07-01 18:36:43 +02:00
selsta
d8f9d2f160 Transfer: fix fee label alignment 2021-07-01 01:19:57 +02:00
selsta
dbda233b94 pages: set correct icon fallback opacity 2021-07-01 00:46:03 +02:00
rating89us
f82336ce8c TxConfirmationDialog: fix displaying of "<" when using fontMonoRegular 2021-06-29 12:34:39 +02:00
selsta
dbc8c7d473 qr: scan valid addresses that miss an uri prefix 2021-06-29 04:53:24 +02:00
rating89us
2c0cf0d652 WizardCreateDevice1: move "choose your device" dropdown to the top 2021-06-28 00:33:49 +02:00
rating89us
2db8f77a0a Transfer: UI changes to description field (use LineEdit, decrease font size, new placeholder) 2021-06-26 21:25:19 +02:00
rating89us
0fd0fc5ceb Receive: selected address details on top; QR code click to ampliate/right click to save as image; click on description to edit; display full address; use standard button for "create new address" 2021-06-26 16:01:59 +02:00
selsta
0de95e3071 RemoteNodeList: reduce spacing between icons 2021-06-25 01:58:07 +02:00
luigi1111
b58bff39a0 Merge pull request #3586
614a7a0 RemoteNodeList: display shield icon if trusted daemon (rating89us)
2021-06-24 13:55:08 -05:00
luigi1111
bea763d7f8 Merge pull request #3585
b9a1fa8 History: display Payment proof dialog immediately after clicking the button (rating89us)
2021-06-24 13:54:42 -05:00
luigi1111
59a0184ebd Merge pull request #3584
51ac3ca StandardDropdown: use ArrowCursor; remove rotation of dropdownIcon; change background color on mouse hover; smaller text (rating89us)
2021-06-24 13:54:16 -05:00
luigi1111
1a8e3111e4 Merge pull request #3583
192b36f StandardDropdown: remove dots from corners (rating89us)
2021-06-24 13:53:22 -05:00
rating89us
614a7a086a RemoteNodeList: display shield icon if trusted daemon 2021-06-23 03:09:29 +02:00
rating89us
b9a1fa8563 History: display Payment proof dialog immediately after clicking the button 2021-06-22 21:19:27 +02:00
rating89us
51ac3ca981 StandardDropdown: use ArrowCursor; remove rotation of dropdownIcon; change background color on mouse hover; smaller text 2021-06-22 20:38:21 +02:00
rating89us
192b36f74f StandardDropdown: remove dots from corners 2021-06-22 10:09:11 +02:00
selsta
54e183a7f5 SettingsInfo: add portable mode to wallet mode 2021-06-22 02:30:54 +02:00
luigi1111
453388f744 Merge pull request #3578
64dd55a TitleBar: maximize window when title bar is double clicked (rating89us)
2021-06-21 13:41:10 -05:00
luigi1111
afc2b35ed0 Merge pull request #3576
4e2b1ce Transfer: don't overlap inside borders; fix margins (rating89us)
2021-06-21 13:40:36 -05:00
luigi1111
9114887866 Merge pull request #3575
08dd89d Transfer: remove leftMargin of 'Address' label (rating89us)
2021-06-21 13:39:47 -05:00
luigi1111
2afb346563 Merge pull request #3574
eacc57f StandardDropdown: use ColumnLayout; use same height of LineEdit; include dropdownLabel (rating89us)
2021-06-21 13:39:00 -05:00
luigi1111
bc8f39c311 Merge pull request #3571
c15c5b5 TransactionHistory: use displayAmount for amount (selsta)
2021-06-21 13:38:37 -05:00
luigi1111
286a3d140d Merge pull request #3569
ffd31c5 AddressBook: use LineEdit on descriptionLine; add tab/backtab; forceActiveFocus on addressLine; use Enter/Return key to save; cancel/delete buttons (rating89us)
2021-06-21 13:38:02 -05:00
luigi1111
5f2b5d940c Merge pull request #3550
417eaea History: stay on the same page after editing description (rating89us)
2021-06-21 13:36:34 -05:00
rating89us
64dd55a9a6 TitleBar: maximize window when title bar is double clicked 2021-06-20 19:28:11 +02:00
rating89us
eacc57fb44 StandardDropdown: use ColumnLayout; use same height of LineEdit; include dropdownLabel 2021-06-20 00:02:59 +02:00
rating89us
4e2b1cec95 Transfer: don't overlap inside borders; fix margins 2021-06-19 21:16:54 +02:00
rating89us
08dd89de58 Transfer: remove leftMargin of "Address" label 2021-06-19 18:21:40 +02:00
selsta
57c205206c TransactionInfo: add isCoinbase and description 2021-06-18 03:34:47 +02:00
selsta
c15c5b5227 TransactionHistory: use displayAmount for amount 2021-06-18 02:08:37 +02:00
rating89us
ffd31c50da AddressBook: use LineEdit on descriptionLine; add tab/backtab; forceActiveFocus on addressLine; use Enter/Return key to save; cancel/delete buttons 2021-06-17 13:37:19 +02:00
luigi1111
b970cad48b Merge pull request #3564
dfe8146 SettingsInfo, WizardRestoreWallet1, WizardCreateDevice1: Correct restore height date when typed in wrong format (rating89us)
2021-06-16 14:53:44 -05:00
luigi1111
752f1faa93 Merge pull request #3563
b319dbb main: fixes bug not accepting new restore height (rating89us)
2021-06-16 14:53:17 -05:00
luigi1111
60b33d3a91 Merge pull request #3545
52aef11 LineEdit: use ColumnLayout instead of Item (also used in LineEditMulti) (rating89us)
2021-06-16 14:49:26 -05:00
luigi1111
5de306ab7a Merge pull request #3513
877fb9e README: freenode -> libera (selsta)
2021-06-16 14:47:59 -05:00
rating89us
dfe8146f5c SettingsInfo, WizardRestoreWallet1, WizardCreateDevice1: Correct restore height date when typed in wrong format 2021-06-15 16:34:07 +02:00
selsta
6610f6f2da cmake: fix compilation with zxcvbn, always enable 2021-06-14 21:47:54 +02:00
rating89us
b319dbb1b2 main: fixes bug not accepting new restore height 2021-06-14 21:21:16 +02:00
rating89us
3eae630cfe History: collapse "Sort & Filter" when user types 2021-06-12 20:43:35 +02:00
rating89us
52aef114fa LineEdit: use ColumnLayout instead of Item (also used in LineEditMulti) 2021-06-11 17:13:52 +02:00
luigi1111
7c379e2cda Merge pull request #3548
979e0da History: add fontAwesomeFallbackIcon (rating89us)
2021-06-10 11:07:53 -05:00
luigi1111
244459e606 Merge pull request #3546
8ac1b4e AddressBook: add 'See transactions' button (rating89us)
2021-06-10 11:07:10 -05:00
luigi1111
0e561de0a9 Merge pull request #3543
c5bad8e SettingsLog: fix text color bug on theme switch; new warning and green text colors (rating89us)
2021-06-10 11:06:31 -05:00
luigi1111
ceac6c8a47 Merge pull request #3542
f6a66b6 SettingsLog: ScrollBar always visible (except Mac) (rating89us)
2021-06-10 11:06:04 -05:00
luigi1111
b542f15531 Merge pull request #3541
2f1092d Slider: use MoneroComponents.TextPlain instead of Text on label (rating89us)
2021-06-10 11:05:38 -05:00
luigi1111
3621ab3344 Merge pull request #3539
b825f6e StandardDropdown: add FontAwesome fallback icons (rating89us)
2021-06-10 11:05:01 -05:00
luigi1111
4850e13895 Merge pull request #3538
ad38f15 DatePicker: date input with fixed size; longer animation; move up calendar rectangle (rating89us)
2021-06-10 11:04:39 -05:00
luigi1111
950e20d400 Merge pull request #3537
5a41849 SettingsLog: new placeholder text in command field (no commands in translation string) (rating89us)
2021-06-10 11:04:15 -05:00
luigi1111
124a8b5f4e Merge pull request #3536
cea712e History: close sortAndFilter when exiting Transactions page (rating89us)
2021-06-10 11:03:31 -05:00
luigi1111
0bd4d731d2 Merge pull request #3535
1f8aa0d History: change default dates of 'Date from' and 'Date to' DatePicker components (rating89us)
2021-06-10 11:02:36 -05:00
luigi1111
e3a17a66ff Merge pull request #3534
9ab104b DatePicker: display currently selected month when opening calendar (rating89us)
2021-06-10 11:01:52 -05:00
luigi1111
4f385b9a04 Merge pull request #3533
39d561d DatePicker: support mouse wheel to navigate months (rating89us)
2021-06-10 11:01:19 -05:00
luigi1111
2c54787644 Merge pull request #3532
23301da DatePicker: highlight selected date/today; hide invalid days (rating89us)
2021-06-10 10:27:42 -05:00
luigi1111
7770621a2f Merge pull request #3531
2c51762 DatePicker: FontAwesome fallback icons (rating89us)
2021-06-10 10:25:55 -05:00
luigi1111
b22fc4266c Merge pull request #3528
f06d6e0 Transfer: add XMR unit on transactions with a single recipient; move 'send all' button next to Amount label (rating89us)
2021-06-10 10:22:52 -05:00
luigi1111
2290e7e762 Merge pull request #3527
1512908 Transfer: fix y position of recipient elements (rating89us)
2021-06-10 10:21:07 -05:00
luigi1111
f8344ce7c6 Merge pull request #3525
ed1bc2e build: fix typo (rating89us)
2021-06-10 10:20:12 -05:00
luigi1111
1be9ea4828 Merge pull request #3524
aca6174 AddressBook: add Font Awesome fallback icons (rating89us)
2021-06-10 10:19:35 -05:00
luigi1111
b07016b7cd Merge pull request #3522
c9ee4bf History: move cursor to end of search input field after importing address (rating89us)
2021-06-10 10:18:59 -05:00
luigi1111
179b74e570 Merge pull request #3521
10a01fa Receive: add tooltip to search transactions button (rating89us)
2021-06-10 10:18:27 -05:00
luigi1111
0a6f6cb9ac Merge pull request #3520
0775b52 History: clean search bar inline button (rating89us)
2021-06-10 10:16:26 -05:00
rating89us
417eaeae28 History: stay on the same page after editing description 2021-06-10 12:59:39 +02:00
rating89us
8ac1b4ef58 AddressBook: add "See transactions" button 2021-06-10 09:05:09 +02:00
rating89us
979e0da9e0 History: add fontAwesomeFallbackIcon 2021-06-09 17:14:55 +02:00
rating89us
1f8aa0dff0 History: change default dates of "Date from" and "Date to" DatePicker components 2021-06-09 09:38:12 +02:00
selsta
f75a2447a7 Wizard: set unused wallet name 2021-06-09 01:00:16 +02:00
rating89us
f6a66b6779 SettingsLog: ScrollBar always visible (except Mac) 2021-06-07 22:37:39 +02:00
rating89us
c5bad8ec49 SettingsLog: fix text color bug on theme switch; new warning and green text colors 2021-06-07 22:35:54 +02:00
rating89us
2f1092de55 Slider: use MoneroComponents.TextPlain instead of Text on label 2021-06-07 15:30:18 +02:00
rating89us
b825f6e1bd StandardDropdown: add FontAwesome fallback icons 2021-06-07 14:02:19 +02:00
rating89us
ad38f155bc DatePicker: date input with fixed size; longer animation; move up calendar rectangle 2021-06-07 13:39:16 +02:00
rating89us
5a418499d4 SettingsLog: new placeholder text in command field (no commands in translation string) 2021-06-07 12:03:28 +02:00
rating89us
cea712e51d History: close sortAndFilter when exiting Transactions page 2021-06-07 11:31:40 +02:00
rating89us
39d561d9f2 DatePicker: support mouse wheel to navigate months 2021-06-06 23:21:32 +02:00
rating89us
23301da51b DatePicker: highlight selected date/today; hide invalid days 2021-06-06 23:15:53 +02:00
rating89us
9ab104b38a DatePicker: display currently selected month when opening calendar 2021-06-06 21:55:34 +02:00
rating89us
2c517623a1 DatePicker: FontAwesome fallback icons 2021-06-06 20:40:06 +02:00
rating89us
f06d6e067f Transfer: add XMR unit on transactions with a single recipient; move "send all" button next to Amount label 2021-06-04 19:39:21 +02:00
rating89us
1512908751 Transfer: fix y position of recipient elements 2021-06-04 19:35:19 +02:00
rating89us
ed1bc2eece build: fix typo 2021-06-02 19:33:22 +02:00
rating89us
0775b529c4 History: clean search bar inline button 2021-06-02 19:09:31 +02:00
rating89us
aca6174ef4 AddressBook: add Font Awesome fallback icons 2021-06-02 17:07:01 +02:00
selsta
20106b29ba Tooltip: fix binding loop 2021-06-02 17:06:45 +02:00
rating89us
c9ee4bf286 History: move cursor to end of search input field after importing address 2021-06-02 16:56:34 +02:00
rating89us
10a01fa5b4 Receive: add tooltip to search transactions button 2021-06-02 16:43:11 +02:00
luigi1111
2946127ed7 Merge pull request #3512
8411ec0 main: hide/show popups before/after inactivity screen lock (rating89us)
2021-06-01 01:39:21 -05:00
luigi1111
416979cdbd Merge pull request #3496
7997e6a AddressBook: highlight background when selecting contact for transfer page (rating89us)
2021-06-01 01:38:45 -05:00
luigi1111
1442215ce5 Merge pull request #3490
9d3864b Implement tooltips in multiple pages and components (rating89us)
2021-06-01 01:37:47 -05:00
luigi1111
ba3bdcd6a1 Merge pull request #3216
fa45b8f Receive: add search transactions button (rating89us)
2021-06-01 01:35:46 -05:00
selsta
877fb9ea87 README: freenode -> libera 2021-05-29 05:18:32 +02:00
rating89us
9d3864b7f0 Implement tooltips in multiple pages and components 2021-05-29 04:02:19 +02:00
rating89us
8411ec0787 main: hide/show popups before/after inactivity screen lock 2021-05-28 12:22:59 +02:00
selsta
76be4b8c0a main: set correct size for pruned blockchain 2021-05-26 03:39:35 +02:00
selsta
8236277906 main: simplify fiat ticker code 2021-05-26 01:09:30 +02:00
selsta
b2255cfd24 main: use Utils.epoch() for epoch 2021-05-26 00:55:50 +02:00
selsta
aa8c1a5421 main: remove redundant assignment 2021-05-26 00:28:58 +02:00
rating89us
7997e6aaf4 AddressBook: highlight background when selecting contact for transfer page 2021-05-22 11:31:05 +02:00
rating89us
fa45b8f96e Receive: add search transactions button 2021-05-22 10:59:17 +02:00
selsta
b2fbe51659 StandardButton: fix warning with fallbackicon 2021-05-19 02:01:10 +02:00
selsta
afb88ff511 workflows: don't use cache on release tag 2021-05-13 22:05:44 +02:00
selsta
75746a8153 cmake: explicitly link net and common 2021-05-10 23:35:40 +02:00
Jeremy Rand
66d29a4d40 Makefile: Add ppc64le target 2021-03-21 02:59:21 +00:00
benevanoff
6dd7445938 Transfer: export all key images by default 2020-12-25 02:16:15 -06:00
rating89us
3907dac198 Account: remove "Balance:" label; add XMR; align balances 2020-10-17 13:57:24 +02:00
219 changed files with 105084 additions and 325832 deletions

107
.github/qt_helper.py vendored Normal file
View File

@@ -0,0 +1,107 @@
#!/usr/bin/env python3
import defusedxml.ElementTree
import hashlib
import mmap
import pathlib
import subprocess
import sys
import urllib.parse
import urllib.request
import xml.etree.ElementTree as ET
MAX_TRIES = 32
def fetch_links_to_archives(os, target, major, minor, patch, toolchain):
MAX_XML_SIZE = 1024 * 1024 * 1024
MIRROR = 'download.qt.io'
base_url = f'https://{MIRROR}/online/qtsdkrepository/{os}/{target}/qt{major}_{major}{minor}{patch}'
url = f'{base_url}/Updates.xml'
for _ in range(MAX_TRIES):
try:
resp = urllib.request.urlopen(url).read(MAX_XML_SIZE)
update_xml = defusedxml.ElementTree.fromstring(resp)
break
except KeyboardInterrupt:
raise
except BaseException as e:
print('error', e, flush=True)
else:
return
for pkg in update_xml.findall('./PackageUpdate'):
name = pkg.find('.//Name')
if name == None:
continue
if name.text != f'qt.qt{major}.{major}{minor}{patch}.{toolchain}':
continue
version = pkg.find('.//Version')
if version == None:
continue
archives = pkg.find('.//DownloadableArchives')
if archives == None or archives.text == None:
continue
for archive in archives.text.split(', '):
url = f'{base_url}/{name.text}/{version.text}{archive}'
file_name = pathlib.Path(urllib.parse.urlparse(url).path).name
yield {'name': file_name, 'url': url}
def download(links):
metalink = ET.Element('metalink', xmlns = "urn:ietf:params:xml:ns:metalink")
for link in links:
file = ET.SubElement(metalink, 'file', name = link['name'])
ET.SubElement(file, 'url').text = link['url']
data = ET.tostring(metalink, encoding='UTF-8', xml_declaration=True)
for _ in range(MAX_TRIES):
with subprocess.Popen([
'aria2c',
'--connect-timeout=8',
'--console-log-level=warn',
'--continue',
'--follow-metalink=mem',
'--max-concurrent-downloads=100',
'--max-connection-per-server=16',
'--max-file-not-found=100',
'--max-tries=100',
'--min-split-size=1MB',
'--retry-wait=1',
'--split=100',
'--summary-interval=0',
'--timeout=8',
'--user-agent=',
'--metalink-file=-',
], stdin=subprocess.PIPE) as aria:
aria.communicate(data)
if aria.wait() == 0:
return True
return False
def calc_hash_sum(files):
obj = hashlib.new('sha256')
for path in files:
with open(path, 'rb') as f:
with mmap.mmap(f.fileno(), 0, mmap.MAP_SHARED, mmap.PROT_READ) as m:
file_hash = hashlib.new('sha256', m).digest()
obj.update(file_hash)
return obj.digest().hex()
def extract_archives(files, out='.', targets=[]):
for path in files:
if subprocess.Popen(['7z', 'x', '-bd', '-y', '-aoa', f'-o{out}', path] + targets,
stdout=subprocess.DEVNULL,
).wait() != 0:
return False
return True
def main():
os, target, version, toolchain, expect = sys.argv[1:]
major, minor, patch = version.split('.')
links = [*fetch_links_to_archives(os, target, major, minor, patch, toolchain)]
print(*[l['url'].encode() for l in links], sep='\n', flush=True)
assert download(links)
result = calc_hash_sum([l['name'] for l in links])
print('result', result, 'expect', expect, flush=True)
assert result == expect
assert extract_archives([l['name'] for l in links], '.', ['{}.{}.{}'.format(major, minor, patch)])
[pathlib.Path(l['name']).unlink() for l in links]
if __name__ == '__main__':
main()

View File

@@ -10,7 +10,7 @@ jobs:
with:
submodules: recursive
- name: install dependencies
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi zmq libpgm libsodium miniupnpc ldns expat libunwind-headers protobuf qt5 pkg-config
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi openssl zmq libpgm libsodium miniupnpc expat libunwind-headers protobuf qt5 pkg-config
- name: build
run: DEV_MODE=ON make release -j3
- name: test qml
@@ -52,9 +52,12 @@ jobs:
- uses: eine/setup-msys2@v2
with:
update: true
install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb git mingw-w64-x86_64-qt5 mingw-w64-x86_64-libgcrypt
install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb mingw-w64-x86_64-unbound git mingw-w64-x86_64-qt5 mingw-w64-x86_64-libgcrypt
- name: build
run: DEV_MODE=ON make release-win64 -j2
- name: deploy
run: make deploy
working-directory: build/release
- name: test qml
run: build/release/bin/monero-wallet-gui --test-qml
@@ -65,14 +68,11 @@ jobs:
with:
submodules: recursive
- name: install dependencies
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi zmq libpgm miniupnpc ldns expat libunwind-headers protobuf pkg-config python3 p7zip
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi openssl zmq libpgm miniupnpc expat libunwind-headers protobuf pkg-config python3 p7zip aria2
- name: install dependencies
run: pip3 install requests semantic_version lxml py7zr
run: pip3 install defusedxml
- name: download qt
run: |
curl -O https://raw.githubusercontent.com/engnr/qt-downloader/master/qt-downloader
chmod +x qt-downloader
./qt-downloader macos desktop 5.15.2 clang_64
run: python3 monero-gui/.github/qt_helper.py mac_x64 desktop 5.15.2 clang_64 c384008156fe63cc183bade0316828c598ff3e5074397c0c9ccc588d6cdc5aca
working-directory: ../
- name: build
run: CMAKE_PREFIX_PATH=/Users/runner/work/monero-gui/5.15.2/clang_64 make release -j3
@@ -95,15 +95,16 @@ jobs:
- uses: actions/checkout@v1
with:
submodules: recursive
- uses: satackey/action-docker-layer-caching@v0.0.10
- uses: satackey/action-docker-layer-caching@v0.0.11
if: "!startsWith(github.ref, 'refs/tags/v')"
continue-on-error: true
with:
key: docker-linux-static-{hash}
restore-keys: |
docker-linux-static-
- name: install dependencies
run: sudo apt -y install xvfb libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xkb1 libxkbcommon-x11-0
- name: preprare build enviroment
run: sudo apt -y install xvfb libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xkb1 libxcb-shape0 libxkbcommon-x11-0
- name: prepare build environment
run: docker build --tag monero:build-env-linux --build-arg THREADS=3 --file Dockerfile.linux .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -w /monero-gui monero:build-env-linux sh -c 'make release-static -j3'
@@ -124,13 +125,14 @@ jobs:
- uses: actions/checkout@v1
with:
submodules: recursive
- uses: satackey/action-docker-layer-caching@v0.0.10
- uses: satackey/action-docker-layer-caching@v0.0.11
if: "!startsWith(github.ref, 'refs/tags/v')"
continue-on-error: true
with:
key: docker-windows-static-{hash}
restore-keys: |
docker-windows-static-
- name: preprare build enviroment
- name: prepare build environment
run: docker build --tag monero:build-env-windows --build-arg THREADS=3 --file Dockerfile.windows .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -w /monero-gui monero:build-env-windows sh -c 'make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j3'
@@ -149,7 +151,14 @@ jobs:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: preprare build enviroment
- uses: satackey/action-docker-layer-caching@v0.0.11
if: "!startsWith(github.ref, 'refs/tags/v')"
continue-on-error: true
with:
key: docker-android-static-{hash}
restore-keys: |
docker-android-static-
- name: prepare build environment
run: docker build --tag monero:build-env-android --build-arg THREADS=3 --file Dockerfile.android .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -e THREADS=3 monero:build-env-android

View File

@@ -3,30 +3,25 @@ project(monero-gui)
message(STATUS "Initiating compile using CMake ${CMAKE_VERSION}")
set(VERSION_MAJOR "17")
set(VERSION_MINOR "2")
set(VERSION_REVISION "2")
set(VERSION_MAJOR "18")
set(VERSION_MINOR "1")
set(VERSION_REVISION "1")
set(VERSION "0.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}")
option(STATIC "Link libraries statically, requires static Qt")
option(USE_DEVICE_TREZOR "Trezor support compilation" ON)
option(ENABLE_PASS_STRENGTH_METER "Enable zxcvbn library for password strength" OFF)
option(WITH_SCANNER "Enable webcam QR scanner" OFF)
option(WITH_DESKTOP_ENTRY "Ask to install desktop entry on first startup" ON)
option(WITH_UPDATER "Regularly check for new updates" ON)
option(DEV_MODE "Checkout latest monero master on build" OFF)
list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_SOURCE_DIR}/cmake")
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
include(CheckLinkerFlag)
include(FindCcache)
if(DEBUG)
set(CMAKE_VERBOSE_MAKEFILE ON)
endif()
set(BUILD_GUI_DEPS ON)
set(ARCH "x86-64" CACHE STRING "Target architecture")
set(BUILD_64 ON CACHE BOOL "Build 64-bit binaries")
if(NOT MANUAL_SUBMODULES)
@@ -72,92 +67,35 @@ endif()
if(STATIC)
message(STATUS "Initiating static build")
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_STATIC_RUNTIME ON)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ${CMAKE_FIND_LIBRARY_SUFFIXES})
add_definitions(-DMONERO_GUI_STATIC)
endif()
# Include password strength library
if(ENABLE_PASS_STRENGTH_METER)
message(STATUS "Building with pass strength meter support.")
else()
add_definitions(-DDISABLE_PASS_STRENGTH_METER)
endif()
include(CMakePackageConfigHelpers)
# force version update
function (monero_gui_add_library_with_deps)
cmake_parse_arguments(MONERO_ADD_LIBRARY "" "NAME" "DEPENDS;SOURCES" ${ARGN})
source_group("${MONERO_ADD_LIBRARY_NAME}" FILES ${MONERO_ADD_LIBRARY_SOURCES})
# Define a ("virtual") object library and an actual library that links those
# objects together. The virtual libraries can be arbitrarily combined to link
# any subset of objects into one library archive. This is used for releasing
# libwallet, which combines multiple components.
set(objlib obj_${MONERO_ADD_LIBRARY_NAME})
add_library(${objlib} OBJECT ${MONERO_ADD_LIBRARY_SOURCES})
add_library("${MONERO_ADD_LIBRARY_NAME}" $<TARGET_OBJECTS:${objlib}>)
if (MONERO_ADD_LIBRARY_DEPENDS)
add_dependencies(${objlib} ${MONERO_ADD_LIBRARY_DEPENDS})
endif()
set_property(TARGET "${MONERO_ADD_LIBRARY_NAME}" PROPERTY FOLDER "libs")
target_compile_definitions(${objlib}
PRIVATE $<TARGET_PROPERTY:${MONERO_ADD_LIBRARY_NAME},INTERFACE_COMPILE_DEFINITIONS>)
endfunction ()
function (monero_gui_add_library name)
monero_gui_add_library_with_deps(NAME "${name}" SOURCES ${ARGN})
endfunction()
include_directories(${EASYLOGGING_INCLUDE})
link_directories(${EASYLOGGING_LIBRARY_DIRS})
include(VersionGui)
monero_gui_add_library(gui_version SOURCES version.js DEPENDS genversiongui)
message(STATUS "${CMAKE_MODULE_PATH}")
# OpenSSL
if(APPLE AND NOT OPENSSL_ROOT_DIR)
execute_process(COMMAND brew --prefix openssl OUTPUT_VARIABLE OPENSSL_ROOT_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
find_package(OpenSSL REQUIRED)
message(STATUS "OpenSSL: Version ${OPENSSL_VERSION}")
message(STATUS "OpenSSL: include dir at ${OPENSSL_INCLUDE_DIR}")
message(STATUS "OpenSSL: libraries at ${OPENSSL_LIBRARIES} ${OPENSSL_SSL_LIBRARIES}")
if(WITH_SCANNER)
add_definitions(-DWITH_SCANNER)
endif()
if(WITH_DESKTOP_ENTRY)
add_definitions(-DWITH_DESKTOP_ENTRY)
endif()
if(WITH_UPDATER)
add_definitions(-DWITH_UPDATER)
endif()
# Sodium
find_library(SODIUM_LIBRARY sodium)
message(STATUS "libsodium: libraries at ${SODIUM_LIBRARY}")
# Boost
if(DEBUG)
set(Boost_DEBUG ON)
endif()
if(APPLE AND NOT BOOST_ROOT)
execute_process(COMMAND brew --prefix boost OUTPUT_VARIABLE BOOST_ROOT OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
if(MINGW)
set(Boost_THREADAPI win32)
endif()
find_package(Boost 1.58 REQUIRED COMPONENTS
system
filesystem
thread
date_time
chrono
regex
serialization
program_options
locale)
if(UNIX AND NOT APPLE AND NOT ANDROID)
set(CMAKE_SKIP_RPATH ON)
set(CMAKE_FIND_LIBRARY_SUFFIXES_PREV ${CMAKE_FIND_LIBRARY_SUFFIXES})
@@ -175,19 +113,6 @@ if(UNIX AND NOT APPLE AND NOT ANDROID)
endif()
endif()
if(MINGW)
string(REGEX MATCH "^[^/]:/[^/]*" msys2_install_path "${CMAKE_C_COMPILER}")
message(STATUS "MSYS location: ${msys2_install_path}")
set(CMAKE_INCLUDE_PATH "${msys2_install_path}/mingw${ARCH_WIDTH}/include")
# This is necessary because otherwise CMake will make Boost libraries -lfoo
# rather than a full path. Unfortunately, this makes the shared libraries get
# linked due to a bug in CMake which misses putting -static flags around the
# -lfoo arguments.
set(DEFLIB ${msys2_install_path}/mingw${ARCH_WIDTH}/lib)
list(REMOVE_ITEM CMAKE_C_IMPLICIT_LINK_DIRECTORIES ${DEFLIB})
list(REMOVE_ITEM CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES ${DEFLIB})
endif()
set(QT5_LIBRARIES
Qt5Core
Qt5Quick
@@ -400,10 +325,6 @@ if(ANDROID)
endforeach()
endif()
message(STATUS "Using Boost include dir at ${Boost_INCLUDE_DIRS}")
message(STATUS "Using Boost libraries at ${Boost_LIBRARIES}")
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
if(MINGW)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wa,-mbig-obj")
set(EXTRA_LIBRARIES mswsock;ws2_32;iphlpapi;crypt32;bcrypt)
@@ -431,14 +352,11 @@ endif()
list(APPEND EXTRA_LIBRARIES ${CMAKE_DL_LIBS})
if(APPLE)
include_directories(SYSTEM /usr/include/malloc)
if(POLICY CMP0042)
cmake_policy(SET CMP0042 NEW)
endif()
cmake_policy(SET CMP0042 NEW)
endif()
if (APPLE AND NOT IOS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64 -fvisibility=default -std=c++11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default -std=c++11")
endif()
if(APPLE)
@@ -446,8 +364,6 @@ if(APPLE)
endif()
# warnings
add_c_flag_if_supported(-Werror C_SECURITY_FLAGS)
add_cxx_flag_if_supported(-Werror CXX_SECURITY_FLAGS)
add_c_flag_if_supported(-Wformat C_SECURITY_FLAGS)
add_cxx_flag_if_supported(-Wformat CXX_SECURITY_FLAGS)
add_c_flag_if_supported(-Wformat-security C_SECURITY_FLAGS)

View File

@@ -8,11 +8,16 @@ Use macOS 10.12 - 10.13 for better backwards compability.
3. `git clone --recursive -b v0.X.Y.Z --depth 1 https://github.com/monero-project/monero-gui`
4. `CMAKE_PREFIX_PATH=~/Qt5.12.8/5.12.8/clang_64 make release`
4. Compile `monero-wallet-gui.app`
5. `cd build/release && make deploy`
```
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D ARCH=default -D CMAKE_PREFIX_PATH=~/Qt5.12.8/5.12.8/clang_64 ..
make
make deploy
```
6. Replace the `monerod` binary inside `monero-wallet-gui.app/Contents/MacOS/` with one built using deterministic builds / gitian.
5. Replace the `monerod` binary inside `monero-wallet-gui.app/Contents/MacOS/` with one built using deterministic builds / gitian.
## Codesigning and notarizing

View File

@@ -40,9 +40,10 @@ RUN cp -r ${WORKDIR}/platforms ${WORKDIR}/platform-tools ${ANDROID_SDK_ROOT}
ENV HOST_PATH=${PATH}
ENV PATH=${TOOLCHAIN_DIR}/aarch64-linux-android/bin:${TOOLCHAIN_DIR}/bin:${PATH}
ARG ZLIB_VERSION=1.2.11
ARG ZLIB_HASH=c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
ARG ZLIB_VERSION=1.2.12
ARG ZLIB_HASH=91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9
RUN wget -q https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz \
&& echo "${ZLIB_HASH} zlib-${ZLIB_VERSION}.tar.gz" | sha256sum -c \
&& tar -xzf zlib-${ZLIB_VERSION}.tar.gz \
&& rm zlib-${ZLIB_VERSION}.tar.gz \
&& cd zlib-${ZLIB_VERSION} \
@@ -114,9 +115,10 @@ RUN wget -q https://downloads.sourceforge.net/project/boost/boost/${BOOST_VERSIO
install -j${THREADS} \
&& rm -rf $(pwd)
ARG OPENSSL_VERSION=1.1.1g
ARG OPENSSL_HASH=ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46
ARG OPENSSL_VERSION=1.1.1q
ARG OPENSSL_HASH=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca
RUN wget -q https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
&& echo "${OPENSSL_HASH} openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c \
&& tar -xzf openssl-${OPENSSL_VERSION}.tar.gz \
&& rm openssl-${OPENSSL_VERSION}.tar.gz \
&& cd openssl-${OPENSSL_VERSION} \
@@ -129,6 +131,30 @@ RUN wget -q https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
&& make -j${THREADS} install \
&& rm -rf $(pwd)
ARG EXPAT_VERSION=2.4.1
ARG EXPAT_HASH=2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40
RUN wget https://github.com/libexpat/libexpat/releases/download/R_2_4_1/expat-${EXPAT_VERSION}.tar.bz2 && \
echo "${EXPAT_HASH} expat-${EXPAT_VERSION}.tar.bz2" | sha256sum -c && \
tar -xf expat-${EXPAT_VERSION}.tar.bz2 && \
rm expat-${EXPAT_VERSION}.tar.bz2 && \
cd expat-${EXPAT_VERSION} && \
CC=${ANDROID_CLANG} CXX=${ANDROID_CLANGPP} ./configure --enable-static --disable-shared --prefix=${PREFIX} --host=aarch64-linux-android && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
ARG UNBOUND_VERSION=1.13.2
ARG UNBOUND_HASH=0a13b547f3b92a026b5ebd0423f54c991e5718037fd9f72445817f6a040e1a83
RUN wget https://www.nlnetlabs.nl/downloads/unbound/unbound-${UNBOUND_VERSION}.tar.gz && \
echo "${UNBOUND_HASH} unbound-${UNBOUND_VERSION}.tar.gz" | sha256sum -c && \
tar -xzf unbound-${UNBOUND_VERSION}.tar.gz && \
rm unbound-${UNBOUND_VERSION}.tar.gz && \
cd unbound-${UNBOUND_VERSION} && \
CC=${ANDROID_CLANG} CXX=${ANDROID_CLANGPP} ./configure --disable-shared --enable-static --without-pyunbound --with-libexpat=${PREFIX} --with-ssl=${PREFIX} --with-libevent=no --without-pythonmodule --disable-flto --with-pthreads --with-libunbound-only --host=aarch64-linux-android --with-pic --prefix=${PREFIX} && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
ARG ZMQ_VERSION=v4.3.3
ARG ZMQ_HASH=04f5bbedee58c538934374dc45182d8fc5926fa3
RUN git clone https://github.com/zeromq/libzmq.git -b ${ZMQ_VERSION} --depth 1 \

View File

@@ -1,7 +1,7 @@
FROM ubuntu:16.04
ARG THREADS=1
ARG QT_VERSION=5.15.2
ARG QT_VERSION=v5.15.6-lts-lgpl
ENV CFLAGS="-fPIC"
ENV CPPFLAGS="-fPIC"
@@ -55,7 +55,7 @@ RUN git clone -b 0.4.0 --depth 1 https://gitlab.freedesktop.org/xorg/lib/libxcb-
git reset --hard acf790d7752f36e450d476ad79807d4012ec863b && \
git submodule init && \
git clone --depth 1 https://gitlab.freedesktop.org/xorg/util/xcb-util-m4 m4 && \
git -C m4 reset --hard f662e3a93ebdec3d1c9374382dcc070093a42fed && \
git -C m4 reset --hard c617eee22ae5c285e79e81ec39ce96862fd3262f && \
./autogen.sh --enable-shared --disable-static && \
make -j$THREADS && \
make -j$THREADS install && \
@@ -66,7 +66,7 @@ RUN git clone -b 0.4.0 --depth 1 https://gitlab.freedesktop.org/xorg/lib/libxcb-
git reset --hard d882052fb2ce439c6483fce944ba8f16f7294639 && \
git submodule init && \
git clone --depth 1 https://gitlab.freedesktop.org/xorg/util/xcb-util-m4 m4 && \
git -C m4 reset --hard f662e3a93ebdec3d1c9374382dcc070093a42fed && \
git -C m4 reset --hard c617eee22ae5c285e79e81ec39ce96862fd3262f && \
./autogen.sh --enable-shared --disable-static && \
make -j$THREADS && \
make -j$THREADS install && \
@@ -77,7 +77,7 @@ RUN git clone -b 0.4.0 --depth 1 https://gitlab.freedesktop.org/xorg/lib/libxcb-
git reset --hard 0e51ee5570a6a80bdf98770b975dfe8a57f4eeb1 && \
git submodule init && \
git clone --depth 1 https://gitlab.freedesktop.org/xorg/util/xcb-util-m4 m4 && \
git -C m4 reset --hard f662e3a93ebdec3d1c9374382dcc070093a42fed && \
git -C m4 reset --hard c617eee22ae5c285e79e81ec39ce96862fd3262f && \
./autogen.sh --enable-shared --disable-static && \
make -j$THREADS && \
make -j$THREADS install && \
@@ -88,7 +88,7 @@ RUN git clone -b 0.3.9 --depth 1 https://gitlab.freedesktop.org/xorg/lib/libxcb-
git reset --hard 0317caf63de532fd7a0493ed6afa871a67253747 && \
git submodule init && \
git clone --depth 1 https://gitlab.freedesktop.org/xorg/util/xcb-util-m4 m4 && \
git -C m4 reset --hard f662e3a93ebdec3d1c9374382dcc070093a42fed && \
git -C m4 reset --hard c617eee22ae5c285e79e81ec39ce96862fd3262f && \
./autogen.sh --enable-shared --disable-static && \
make -j$THREADS && \
make -j$THREADS install && \
@@ -99,7 +99,7 @@ RUN git clone -b 0.4.1 --depth 1 https://gitlab.freedesktop.org/xorg/lib/libxcb-
git reset --hard 24eb17df2e1245885e72c9d4bbb0a0f69f0700f2 && \
git submodule init && \
git clone --depth 1 https://gitlab.freedesktop.org/xorg/util/xcb-util-m4 m4 && \
git -C m4 reset --hard f662e3a93ebdec3d1c9374382dcc070093a42fed && \
git -C m4 reset --hard c617eee22ae5c285e79e81ec39ce96862fd3262f && \
./autogen.sh --enable-shared --disable-static && \
make -j$THREADS && \
make -j$THREADS install && \
@@ -155,21 +155,41 @@ RUN git clone -b release-64-2 --depth 1 https://github.com/unicode-org/icu && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN wget https://downloads.sourceforge.net/project/boost/boost/1.73.0/boost_1_73_0.tar.gz && \
echo "9995e192e68528793755692917f9eb6422f3052a53c5e13ba278a228af6c7acf boost_1_73_0.tar.gz" | sha256sum -c && \
tar -xzf boost_1_73_0.tar.gz && \
rm boost_1_73_0.tar.gz && \
cd boost_1_73_0 && \
RUN wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz && \
echo "4b2136f98bdd1f5857f1c3dea9ac2018effe65286cf251534b6ae20cc45e1847 boost_1_80_0.tar.gz" | sha256sum -c && \
tar -xzf boost_1_80_0.tar.gz && \
rm boost_1_80_0.tar.gz && \
cd boost_1_80_0 && \
./bootstrap.sh && \
./b2 --with-atomic --with-system --with-filesystem --with-thread --with-date_time --with-chrono --with-regex --with-serialization --with-program_options --with-locale variant=release link=static runtime-link=static cflags="${CFLAGS}" cxxflags="${CXXFLAGS}" install -a --prefix=/usr && \
rm -rf $(pwd)
RUN wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz && \
echo "ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46 openssl-1.1.1g.tar.gz" | sha256sum -c && \
tar -xzf openssl-1.1.1g.tar.gz && \
rm openssl-1.1.1g.tar.gz && \
cd openssl-1.1.1g && \
./config no-asm no-shared no-zlib-dynamic --openssldir=/usr && \
RUN wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz && \
echo "d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca openssl-1.1.1q.tar.gz" | sha256sum -c && \
tar -xzf openssl-1.1.1q.tar.gz && \
rm openssl-1.1.1q.tar.gz && \
cd openssl-1.1.1q && \
./config no-asm no-shared no-zlib-dynamic --prefix=/usr --openssldir=/usr && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN wget https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.bz2 && \
echo "a247a7f6bbb21cf2ca81ea4cbb916bfb9717ca523631675f99b3d4a5678dcd16 expat-2.4.8.tar.bz2" | sha256sum -c && \
tar -xf expat-2.4.8.tar.bz2 && \
rm expat-2.4.8.tar.bz2 && \
cd expat-2.4.8 && \
./configure --enable-static --disable-shared --prefix=/usr && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN wget https://www.nlnetlabs.nl/downloads/unbound/unbound-1.16.2.tar.gz && \
echo "2e32f283820c24c51ca1dd8afecfdb747c7385a137abe865c99db4b257403581 unbound-1.16.2.tar.gz" | sha256sum -c && \
tar -xzf unbound-1.16.2.tar.gz && \
rm unbound-1.16.2.tar.gz && \
cd unbound-1.16.2 && \
./configure --disable-shared --enable-static --without-pyunbound --with-libexpat=/usr --with-ssl=/usr --with-libevent=no --without-pythonmodule --disable-flto --with-pthreads --with-libunbound-only --with-pic && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
@@ -214,62 +234,62 @@ RUN rm /usr/lib/x86_64-linux-gnu/libX11.a && \
cd ../../../.. && \
rm -rf $(pwd)
RUN git clone -b v1.0.23 --depth 1 https://github.com/libusb/libusb && \
RUN git clone -b v1.0.26 --depth 1 https://github.com/libusb/libusb && \
cd libusb && \
git reset --hard e782eeb2514266f6738e242cdcb18e3ae1ed06fa && \
git reset --hard 4239bc3a50014b8e6a5a2a59df1fff3b7469543b && \
./autogen.sh --disable-shared --enable-static && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b hidapi-0.9.0 --depth 1 https://github.com/libusb/hidapi && \
RUN git clone -b hidapi-0.12.0 --depth 1 https://github.com/libusb/hidapi && \
cd hidapi && \
git reset --hard 7da5cc91fc0d2dbe4df4f08cd31f6ca1a262418f && \
git reset --hard 76108294092c023a4ece99eb3219559cea0d5066 && \
./bootstrap && \
./configure --disable-shared --enable-static && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b v4.3.2 --depth 1 https://github.com/zeromq/libzmq && \
RUN git clone -b v4.3.4 --depth 1 https://github.com/zeromq/libzmq && \
cd libzmq && \
git reset --hard a84ffa12b2eb3569ced199660bac5ad128bff1f0 && \
git reset --hard 4097855ddaaa65ed7b5e8cb86d143842a594eebd && \
./autogen.sh && \
./configure --disable-shared --enable-static --disable-libunwind --with-libsodium && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b libgpg-error-1.38 --depth 1 git://git.gnupg.org/libgpg-error.git && \
RUN git clone -b libgpg-error-1.45 --depth 1 git://git.gnupg.org/libgpg-error.git && \
cd libgpg-error && \
git reset --hard 71d278824c5fe61865f7927a2ed1aa3115f9e439 && \
git reset --hard dbac537e5e865fb6f3aa8596d213aa8c47a9dea1 && \
./autogen.sh && \
./configure --disable-shared --enable-static --disable-doc --disable-tests && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b libgcrypt-1.8.5 --depth 1 git://git.gnupg.org/libgcrypt.git && \
RUN git clone -b libgcrypt-1.10.1 --depth 1 git://git.gnupg.org/libgcrypt.git && \
cd libgcrypt && \
git reset --hard 56606331bc2a80536db9fc11ad53695126007298 && \
git reset --hard ae0e567820c37f9640440b3cff77d7c185aa6742 && \
./autogen.sh && \
./configure --disable-shared --enable-static --disable-doc && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b v3.10.0 --depth 1 https://github.com/protocolbuffers/protobuf && \
RUN git clone -b v21.5 --depth 1 https://github.com/protocolbuffers/protobuf && \
cd protobuf && \
git reset --hard 6d4e7fd7966c989e38024a8ea693db83758944f1 && \
git reset --hard ab840345966d0fa8e7100d771c92a73bfbadd25c && \
./autogen.sh && \
./configure --enable-static --disable-shared && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b v3.18.4 --depth 1 https://github.com/Kitware/CMake && \
RUN git clone -b v3.24.0 --depth 1 https://github.com/Kitware/CMake && \
cd CMake && \
git reset --hard 3cc3d42aba879fff5e85b363ae8f21386a3f9f9b && \
git reset --hard 4be24f031a4829db75b85062cc67125035d8831e && \
./bootstrap && \
make -j$THREADS && \
make -j$THREADS install && \

View File

@@ -1,7 +1,7 @@
FROM ubuntu:20.04
ARG THREADS=1
ARG QT_VERSION=5.15.2
ARG QT_VERSION=v5.15.6-lts-lgpl
ENV SOURCE_DATE_EPOCH=1397818193
RUN apt update && \
@@ -12,9 +12,9 @@ RUN apt update && \
RUN update-alternatives --set x86_64-w64-mingw32-g++ $(which x86_64-w64-mingw32-g++-posix) && \
update-alternatives --set x86_64-w64-mingw32-gcc $(which x86_64-w64-mingw32-gcc-posix)
RUN git clone -b v0.17.0.0 --depth 1 https://github.com/monero-project/monero && \
RUN git clone -b v0.18.1.0 --depth 1 https://github.com/monero-project/monero && \
cd monero && \
git reset --hard d27d4526fe89b7cdeb4b296280c4a6cf7efe21f8 && \
git reset --hard 727bc5b6878170332bf2d838f2c60d1c8dc685c8 && \
cp -a contrib/depends / && \
cd .. && \
rm -rf monero

View File

@@ -360,7 +360,8 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Account") + translationManager.emptyString
symbol: qsTr("T") + translationManager.emptyString
symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "T" + translationManager.emptyString
onClicked: {
parent.previousButton.checked = false
parent.previousButton = accountButton
@@ -381,7 +382,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Send") + translationManager.emptyString
symbol: qsTr("S") + translationManager.emptyString
symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "S" + translationManager.emptyString
onClicked: {
parent.previousButton.checked = false
parent.previousButton = transferButton
@@ -403,7 +404,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Address book") + translationManager.emptyString
symbol: qsTr("B") + translationManager.emptyString
symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "B" + translationManager.emptyString
under: transferButton
onClicked: {
parent.previousButton.checked = false
@@ -425,7 +426,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Receive") + translationManager.emptyString
symbol: qsTr("R") + translationManager.emptyString
symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "R" + translationManager.emptyString
onClicked: {
parent.previousButton.checked = false
parent.previousButton = receiveButton
@@ -447,7 +448,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Transactions") + translationManager.emptyString
symbol: qsTr("H") + translationManager.emptyString
symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "H" + translationManager.emptyString
onClicked: {
parent.previousButton.checked = false
parent.previousButton = historyButton
@@ -469,7 +470,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Advanced") + translationManager.emptyString
symbol: qsTr("D") + translationManager.emptyString
symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "D" + translationManager.emptyString
onClicked: {
parent.previousButton.checked = false
parent.previousButton = advancedButton
@@ -490,7 +491,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Settings") + translationManager.emptyString
symbol: qsTr("E") + translationManager.emptyString
symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "E" + translationManager.emptyString
onClicked: {
parent.previousButton.checked = false
parent.previousButton = settingsButton

View File

@@ -29,7 +29,7 @@ else
endif
default:
mkdir -p build && cd build && cmake -D ARCH="x86-64" -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release .. && $(MAKE)
mkdir -p build && cd build && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release .. && $(MAKE)
debug:
mkdir -p build && cd build && cmake -D DEV_MODE=$(or ${DEV_MODE},ON) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D CMAKE_BUILD_TYPE=Debug .. && $(MAKE) VERBOSE=1
@@ -38,19 +38,20 @@ depends:
cd build/$(target)/release && cmake -D STATIC=ON -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D BUILD_TAG=$(tag) -D CMAKE_BUILD_TYPE=Release -D CMAKE_TOOLCHAIN_FILE=$(root)/$(target)/share/toolchain.cmake ../../.. && $(MAKE)
devmode:
mkdir -p build && cd build && cmake -D ARCH="x86-64" -D DEV_MODE=$(or ${DEV_MODE},ON) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release .. && $(MAKE)
mkdir -p build && cd build && cmake -D DEV_MODE=$(or ${DEV_MODE},ON) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release .. && $(MAKE)
clean:
mkdir -p build && cd build && rm -rf *
scanner:
mkdir -p build && cd build && cmake -D ARCH="x86-64" -D DEV_MODE=$(or ${DEV_MODE},ON) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D WITH_SCANNER=ON -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release .. && $(MAKE)
mkdir -p build && cd build && cmake -D DEV_MODE=$(or ${DEV_MODE},ON) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D WITH_SCANNER=ON -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release .. && $(MAKE)
release:
mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D ARCH="x86-64" -D CMAKE_BUILD_TYPE=Release $(topdir) && $(MAKE)
mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D CMAKE_BUILD_TYPE=Release $(topdir) && $(MAKE)
release-linux-armv8:
mkdir -p $(builddir)/release
cd $(builddir)/release
cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -D ARCH="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="linux-armv8" $(topdir) && $(MAKE)
mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -D ARCH="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="linux-armv8" $(topdir) && $(MAKE)
release-linux-ppc64le:
mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D ARCH="ppc64le" -D CMAKE_BUILD_TYPE=Release $(topdir) && $(MAKE)
release-static:
mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D STATIC=ON -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release $(topdir) && $(MAKE)
@@ -60,7 +61,7 @@ debug-static-win64:
debug-static-mac64:
mkdir -p $(builddir)/debug
cd $(builddir)/debug && cmake -D STATIC=ON -D DEV_MODE=$(or ${DEV_MODE},ON) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=release -D BUILD_TAG="mac-x64" $(topdir) && $(MAKE)
cd $(builddir)/debug && cmake -D STATIC=ON -D DEV_MODE=$(or ${DEV_MODE},ON) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Debug -D BUILD_TAG="mac-x64" $(topdir) && $(MAKE)
release-static-win64:
mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D STATIC=ON -G "MSYS Makefiles" -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="win-x64" -D CMAKE_TOOLCHAIN_FILE=$(topdir)/cmake/64-bit-toolchain.cmake -D MSYS2_FOLDER=$(shell cd ${MINGW_PREFIX}/.. && pwd -W) -D MINGW=ON $(topdir) && $(MAKE)

View File

@@ -66,7 +66,7 @@ Rectangle {
signal paymentClicked(var recipients, string paymentId, int mixinCount, int priority, string description)
signal sweepUnmixableClicked()
signal generatePaymentIdInvoked()
signal getProofClicked(string txid, string address, string message);
signal getProofClicked(string txid, string address, string message, string amount);
signal checkProofClicked(string txid, string address, string message, string signature);
Rectangle {

View File

@@ -1,13 +1,30 @@
# Monero GUI
Copyright (c) 2014-2019, The Monero Project
Copyright (c) 2014-2022, The Monero Project
## Table of Contents
* [Development resources](#development-resources)
* [Vulnerability response](#vulnerability-response)
* [Introduction](#introduction)
* [About this project](#about-this-project)
* [Supporting the project](#supporting-the-project)
* [License](#license)
* [Translations](#translations)
* [Installing the Monero GUI from a package](#installing-the-monero-gui-from-a-package)
* [Compiling the Monero GUI from source](#compiling-the-monero-gui-from-source)
+ [Building Reproducible Windows static binaries with Docker (any OS)](#building-reproducible-windows-static-binaries-with-docker-any-os)
+ [Building Reproducible Linux static binaries with Docker (any OS)](#building-reproducible-linux-static-binaries-with-docker-any-os)
+ [Building Android APK with Docker (any OS) *Experimental*](#building-android-apk-with-docker-any-os-experimental)
+ [Building on Linux](#building-on-linux)
+ [Building on OS X](#building-on-os-x)
+ [Building on Windows](#building-on-windows)
## Development resources
- Web: [getmonero.org](https://getmonero.org)
- Mail: [dev@getmonero.org](mailto:dev@getmonero.org)
- Github: [https://github.com/monero-project/monero-gui](https://github.com/monero-project/monero-gui)
- IRC: [#monero-dev on Freenode](irc://chat.freenode.net/#monero-dev)
- IRC: [#monero-gui on Libera](irc://irc.libera.chat/#monero-gui)
- Translation platform (Weblate): [translate.getmonero.org](https://translate.getmonero.org)
- UI Design: [Monero-GUI on Figma](https://www.figma.com/file/DplJ2DDQfIKiuRvolHX2hN/Monero-GUI)
@@ -58,9 +75,10 @@ See [LICENSE](LICENSE).
Do you speak a second language and would like to help translate the Monero GUI? Check out Weblate, our localization platform, at [translate.getmonero.org](https://translate.getmonero.org/). Choose the language and suggest a translation for a string or review an existing one. The Localization Workgroup made [a guide with step-by-step instructions](https://github.com/monero-ecosystem/monero-translations/blob/master/weblate.md) for Weblate.
If you need help/support or any info you can contact the localization workgroup on the IRC channel #monero-translations (relayed on matrix/riot and MatterMost) or by email at translate[at]getmonero[dot]org. For more info about the Localization workgroup: [github.com/monero-ecosystem/monero-translations](https://github.com/monero-ecosystem/monero-translations)
If you need help/support or any info you can contact the localization workgroup on the IRC channel #monero-translations (relayed on [Matrix](https://matrix.to/#/!BKMbQLMDzHKzmtrBfg:matrix.org?via=monero.social&via=matrix.org&via=libera.chat)) or by email at translate[at]getmonero[dot]org. For more info about the Localization workgroup: [github.com/monero-ecosystem/monero-translations](https://github.com/monero-ecosystem/monero-translations)
Status of the translations:
<a href="https://translate.getmonero.org/engage/monero/?utm_source=widget">
<img src="https://translate.getmonero.org/widgets/monero/-/gui-wallet/horizontal-auto.svg" alt="Translation status" />
</a>
@@ -71,6 +89,7 @@ Packages are available for
* Arch Linux: [monero-gui](https://www.archlinux.org/packages/community/x86_64/monero-gui/)
* Debian: See the [whonix/monero-gui repository](https://gitlab.com/whonix/monero-gui#how-to-install-monero-using-apt-get)
* Void Linux: `xbps-install -S monero-gui`
* Flatpak: [Monero GUI](https://flathub.org/apps/details/org.getmonero.Monero)
* GuixSD: `guix package -i monero-gui`
* macOS (homebrew): `brew install --cask monero-wallet`
@@ -80,6 +99,8 @@ Packaging for your favorite distribution would be a welcome contribution!
*Note*: Qt 5.9.7 is the minimum version required to build the GUI.
*Note*: Official GUI releases use monero-wallet-gui from this process alongside the supporting binaries (monerod, etc) from the [CLI deterministic builds](https://github.com/monero-project/monero/blob/master/contrib/gitian/README.md).
### Building Reproducible Windows static binaries with Docker (any OS)
1. Install Docker [https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
@@ -87,7 +108,7 @@ Packaging for your favorite distribution would be a welcome contribution!
```
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
```
\* `master` - replace with the desired version tag (e.g. `v0.17.1.9`) to build the release binaries.
\* `master` - replace with the desired version tag (e.g. `v0.18.1.1`) to build the release binaries.
3. Prepare build environment
```
cd monero-gui
@@ -110,7 +131,7 @@ Packaging for your favorite distribution would be a welcome contribution!
```
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
```
\* `master` - replace with the desired version tag (e.g. `v0.17.1.9`) to build the release binaries.
\* `master` - replace with the desired version tag (e.g. `v0.18.1.1`) to build the release binaries.
3. Prepare build environment
```
cd monero-gui
@@ -180,7 +201,7 @@ Packaging for your favorite distribution would be a welcome contribution!
http://<your.local.ip>:8080/QtApp-debug.apk
```
### On Linux:
### Building on Linux
(Tested on Ubuntu 17.10 x64, Ubuntu 18.04 x64 and Gentoo x64)
@@ -188,11 +209,11 @@ Packaging for your favorite distribution would be a welcome contribution!
- For Debian distributions (Debian, Ubuntu, Mint, Tails...)
`sudo apt install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libnorm-dev libusb-1.0-0-dev libpgm-dev libprotobuf-dev protobuf-compiler libgcrypt20-dev`
`sudo apt install build-essential cmake miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libnorm-dev libusb-1.0-0-dev libpgm-dev libprotobuf-dev protobuf-compiler libgcrypt20-dev libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev`
- For Gentoo
`sudo emerge app-arch/xz-utils app-doc/doxygen dev-cpp/gtest dev-libs/boost dev-libs/expat dev-libs/openssl dev-util/cmake media-gfx/graphviz net-dns/unbound net-libs/ldns net-libs/miniupnpc net-libs/zeromq sys-libs/libunwind dev-libs/libsodium dev-libs/hidapi dev-libs/libgcrypt`
`sudo emerge app-arch/xz-utils app-doc/doxygen dev-cpp/gtest dev-libs/boost dev-libs/expat dev-libs/openssl dev-util/cmake media-gfx/graphviz net-dns/unbound net-libs/miniupnpc net-libs/zeromq sys-libs/libunwind dev-libs/libsodium dev-libs/hidapi dev-libs/libgcrypt`
- For Fedora
@@ -211,6 +232,9 @@ The following instructions will fetch Qt from your distribution's repositories i
`sudo apt install qtbase5-dev qt5-default qtdeclarative5-dev qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-xmllistmodel qml-module-qt-labs-settings qml-module-qt-labs-platform qml-module-qt-labs-folderlistmodel qttools5-dev-tools qml-module-qtquick-templates2 libqt5svg5-dev`
- For Gentoo
The *qml* USE flag must be enabled.
`sudo emerge dev-qt/qtcore:5 dev-qt/qtdeclarative:5 dev-qt/qtquickcontrols:5 dev-qt/qtquickcontrols2:5 dev-qt/qtgraphicaleffects:5`
@@ -220,9 +244,7 @@ The following instructions will fetch Qt from your distribution's repositories i
`sudo apt install qtmultimedia5-dev qml-module-qtmultimedia`
- For Gentoo
The *qml* USE flag must be enabled.
- For Gentoo
`emerge dev-qt/qtmultimedia:5`
@@ -236,15 +258,24 @@ The following instructions will fetch Qt from your distribution's repositories i
4. Build
If on x86-64:
```
make release -j4
```
If on ppc64le:
```
make release-linux-ppc64le -j4
```
\* `4` - number of CPU threads to use
\* Add `CMAKE_PREFIX_PATH` enviroment variable to set a custom Qt install directory, e.g. `CMAKE_PREFIX_PATH=$HOME/Qt/5.9.7/gcc_64 make release -j4`
\* Add `CMAKE_PREFIX_PATH` environment variable to set a custom Qt install directory, e.g. `CMAKE_PREFIX_PATH=$HOME/Qt/5.9.7/gcc_64 make release -j4`
The executable can be found in the build/release/bin folder.
### On OS X:
### Building on OS X
1. Install Xcode from AppStore
@@ -252,7 +283,7 @@ The executable can be found in the build/release/bin folder.
3. Install [monero](https://github.com/monero-project/monero) dependencies:
`brew install boost hidapi zmq libpgm libsodium miniupnpc ldns expat libunwind-headers protobuf libgcrypt`
`brew install cmake pkg-config openssl boost unbound hidapi zmq libpgm libsodium miniupnpc expat libunwind-headers protobuf libgcrypt`
4. Install Qt:
@@ -271,13 +302,13 @@ The executable can be found in the build/release/bin folder.
make release -j4
```
\* `4` - number of CPU threads to use
\* Add `CMAKE_PREFIX_PATH` enviroment variable to set a custom Qt install directory, e.g. `CMAKE_PREFIX_PATH=$HOME/Qt/5.9.7/clang_64 make release -j4`
\* Add `CMAKE_PREFIX_PATH` environment variable to set a custom Qt install directory, e.g. `CMAKE_PREFIX_PATH=$HOME/Qt/5.9.7/clang_64 make release -j4`
The executable can be found in the `build/release/bin` folder.
For building an application bundle see `DEPLOY.md`.
### On Windows:
### Building on Windows
The Monero GUI on Windows is 64 bits only; 32-bit Windows GUI builds are not officially supported anymore.

View File

@@ -17,11 +17,7 @@ if(APPLE OR (WIN32 AND NOT STATIC))
add_custom_command(TARGET deploy
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${_qt_svg_dylib} $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtGui.framework/Versions/5/QtGui" "@executable_path/../Frameworks/QtGui.fr amework/Versions/5/QtGui" $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/libqsvg.dylib
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtWidgets.framework/Versions/5/QtWidgets" "@executable_path/../Frameworks/ QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/libqsvg.dylib
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtSvg.framework/Versions/5/QtSvg" "@executable_path/../Frameworks/QtGui.fr amework/Versions/5/QtGui" $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/libqsvg.dylib
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtCore.framework/Versions/5/QtCore" "@executable_path/../Frameworks/QtGui. framework/Versions/5/QtGui" $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/libqsvg.dylib
COMMENT "Copying libqsvg.dylib, running install_name_tool"
COMMENT "Copying libqsvg.dylib"
)
endif()
@@ -78,19 +74,19 @@ if(APPLE OR (WIN32 AND NOT STATIC))
)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
list(APPEND WIN_DEPLOY_DLLS
libicudtd68.dll
libicuind68.dll
libicuiod68.dll
libicutud68.dll
libicuucd68.dll
libicudtd71.dll
libicuind71.dll
libicuiod71.dll
libicutud71.dll
libicuucd71.dll
)
else() # assume release
list(APPEND WIN_DEPLOY_DLLS
libicudt68.dll
libicuin68.dll
libicuio68.dll
libicutu68.dll
libicuuc68.dll
libicudt71.dll
libicuin71.dll
libicuio71.dll
libicutu71.dll
libicuuc71.dll
)
endif()
list(TRANSFORM WIN_DEPLOY_DLLS PREPEND "$ENV{MSYSTEM_PREFIX}/bin/")

View File

@@ -1,56 +0,0 @@
# Copyright (c) 2014-2020, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# - Try to find readline include dirs and libraries
#
# Automatically finds ccache build accelerator, if it's found in PATH.
#
# Usage of this module as follows:
#
# project(monero)
# include(FindCcache) # Include AFTER the project() macro to be able to reach the CMAKE_CXX_COMPILER variable
#
# Properties modified by this module:
#
# GLOBAL PROPERTY RULE_LAUNCH_COMPILE set to ccache, when ccache found
# GLOBAL PROPERTY RULE_LAUNCH_LINK set to ccache, when ccache found
find_program(CCACHE_FOUND ccache)
if (CCACHE_FOUND)
set(TEMP_CPP_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test-program.cpp")
file(WRITE "${TEMP_CPP_FILE}" "int main() { return 0; }")
execute_process(COMMAND "${CCACHE_FOUND}" "${CMAKE_CXX_COMPILER}" "${TEMP_CPP_FILE}" RESULT_VARIABLE RET)
if (${RET} EQUAL 0)
message("found usable ccache: ${CCACHE_FOUND}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_FOUND}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_FOUND}")
else()
message("found ccache ${CCACHE_FOUND}, but is UNUSABLE! Return code: ${RET}")
endif()
else()
message("ccache NOT found!")
endif()

View File

@@ -1,67 +0,0 @@
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
function (git_get_version_tag git directory result_var)
execute_process(COMMAND "${git}" rev-parse --short HEAD
WORKING_DIRECTORY ${directory}
OUTPUT_VARIABLE COMMIT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT COMMIT)
message(WARNING "${directory}: cannot determine current commit. Make sure that you are building from a Git working tree")
set(${result_var} "unknown" PARENT_SCOPE)
return()
endif()
execute_process(COMMAND "${git}" describe --tags --exact-match
WORKING_DIRECTORY ${directory}
OUTPUT_VARIABLE TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(TAG)
message(STATUS "${directory}: building tagged release ${TAG}-${COMMIT}")
set(${result_var} "${TAG}-${COMMIT}" PARENT_SCOPE)
return()
endif()
execute_process(COMMAND "${git}" describe --tags --long
WORKING_DIRECTORY ${directory}
OUTPUT_VARIABLE MOST_RECENT_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(MOST_RECENT_TAG)
message(STATUS "${directory}: ahead of or behind a tagged release, building ${MOST_RECENT_TAG}")
set(${result_var} "${MOST_RECENT_TAG}" PARENT_SCOPE)
return()
endif()
message(STATUS "${directory}: building ${COMMIT} commit")
set(${result_var} "${COMMIT}" PARENT_SCOPE)
endfunction()

View File

@@ -26,7 +26,8 @@
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
function (write_static_version_header VERSION_TAG_GUI)
function (write_static_version_header tag)
set(VERSION_TAG_GUI "${tag}" CACHE STRING "The tag portion of the Monero GUI software version" FORCE)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/version.js.in" "${CMAKE_CURRENT_SOURCE_DIR}/version.js")
endfunction ()
@@ -36,11 +37,8 @@ if ("$Format:$" STREQUAL "")
write_static_version_header("release")
elseif (GIT_FOUND OR Git_FOUND)
message(STATUS "Found Git: ${GIT_EXECUTABLE}")
include(GitGetVersionTag)
git_get_version_tag(${GIT_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} VERSION_TAG_GUI)
STRING(REGEX REPLACE "^v([0-9])" "\\1" VERSION_TAG_GUI ${VERSION_TAG_GUI})
write_static_version_header(${VERSION_TAG_GUI})
get_version_tag_from_git("${GIT_EXECUTABLE}")
write_static_version_header(${VERSIONTAG})
else()
message(STATUS "WARNING: Git was not found!")
write_static_version_header("unknown")

View File

@@ -22,6 +22,7 @@ RowLayout {
MoneroComponents.Label {
id: title
fontSize: 14
tooltipIconVisible: true
}
Rectangle {
@@ -36,27 +37,30 @@ RowLayout {
Layout.fillWidth: false
Layout.alignment: Qt.AlignTop | Qt.AlignLeft
spacing: 4
RowLayout {
Layout.fillWidth: false
spacing: 12
Layout.alignment: Qt.AlignTop | Qt.AlignLeft
StandardButton {
id: button1
small: true
primary: false
visible: button1.text
}
StandardButton {
id: button2
small: true
primary: false
visible: button2.text
}
StandardButton {
id: button3
small: true
primary: false
visible: button3.text
}
}

View File

@@ -48,6 +48,8 @@ Item {
property int fontSize: 14
property alias fontColor: label.color
property bool iconOnTheLeft: true
property alias tooltipIconVisible: label.tooltipIconVisible
property alias tooltip: label.tooltip
signal clicked()
height: 25
@@ -121,7 +123,10 @@ Item {
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: !label.tooltipIconVisible && label.tooltip ? label.tooltipPopup.open() : ""
onExited: !label.tooltipIconVisible && label.tooltip ? label.tooltipPopup.close() : ""
onClicked: {
toggle()
}

View File

@@ -5,14 +5,21 @@ import FontAwesome 1.0
import "../components" as MoneroComponents
MouseArea {
signal cut()
signal copy()
signal paste()
signal remove()
signal selectAll()
id: root
acceptedButtons: Qt.RightButton
anchors.fill: parent
onClicked: {
if (mouse.button === Qt.RightButton)
if (mouse.button === Qt.RightButton) {
root.parent.persistentSelection = true;
contextMenu.open()
root.parent.cursorVisible = true;
}
}
Menu {
@@ -22,19 +29,50 @@ MouseArea {
border.color: MoneroComponents.Style.buttonBackgroundColorDisabledHover
border.width: 1
radius: 2
color: MoneroComponents.Style.buttonBackgroundColorDisabled
color: MoneroComponents.Style.blackTheme ? MoneroComponents.Style.buttonBackgroundColorDisabled : "#E5E5E5"
}
padding: 1
width: 100
width: 110
x: root.mouseX
y: root.mouseY
onClosed: {
if (!root.parent.activeFocus) {
root.parent.cursorVisible = false;
}
root.parent.persistentSelection = false;
root.parent.forceActiveFocus()
}
MoneroComponents.ContextMenuItem {
enabled: root.parent.selectedText != "" && !root.parent.readOnly
onTriggered: root.cut()
text: qsTr("Cut") + translationManager.emptyString
}
MoneroComponents.ContextMenuItem {
enabled: root.parent.selectedText != ""
onTriggered: root.copy()
text: qsTr("Copy") + translationManager.emptyString
}
MoneroComponents.ContextMenuItem {
enabled: root.parent.canPaste === true
glyphIcon: FontAwesome.paste
onTriggered: root.paste()
text: qsTr("Paste") + translationManager.emptyString
}
MoneroComponents.ContextMenuItem {
enabled: root.parent.selectedText != "" && !root.parent.readOnly
onTriggered: root.remove()
text: qsTr("Delete") + translationManager.emptyString
}
MoneroComponents.ContextMenuItem {
enabled: root.parent.text != ""
onTriggered: root.selectAll()
text: qsTr("Select All") + translationManager.emptyString
}
}
}

View File

@@ -13,21 +13,31 @@ MenuItem {
background: Rectangle {
color: MoneroComponents.Style.buttonBackgroundColorDisabledHover
opacity: mouse.containsMouse ? 1 : 0
opacity: 0
MouseArea {
id: mouse
anchors.fill: parent
hoverEnabled: true
onClicked: menuItem.triggered()
visible: menuItem.enabled
onEntered: {
parent.opacity = 1;
}
onExited: {
parent.opacity = 0;
}
onClicked: {
if (menuItem.enabled) {
menuItem.triggered();
parent.opacity = 0;
}
}
}
}
contentItem: RowLayout {
anchors.fill: parent
anchors.leftMargin: 10
anchors.leftMargin: 20
anchors.rightMargin: 10
opacity: menuItem.enabled ? 1 : 0.4
spacing: 8
@@ -42,7 +52,7 @@ MenuItem {
}
Text {
color: MoneroComponents.Style.buttonTextColor
color: MoneroComponents.Style.blackTheme ? MoneroComponents.Style.buttonTextColor : MoneroComponents.Style.defaultFontColor
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
Layout.fillWidth: true

View File

@@ -32,6 +32,7 @@ import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
import QtQuick.Window 2.0
import moneroComponents.Wallet 1.0
import "../components" as MoneroComponents
@@ -79,6 +80,10 @@ Window {
running: false;
repeat: true
onTriggered: {
if (currentWallet.connected() == Wallet.ConnectionStatus_Connected) {
running = false;
root.close();
}
countDown--;
if(countDown < 0){
running = false;

View File

@@ -32,6 +32,7 @@ import QtQuick.Controls 2.2 as QtQuickControls2
import QtQuick.Layouts 1.2
import QtGraphicalEffects 1.0
import QtQuick.Controls.Styles 1.2
import FontAwesome 1.0
import "." as MoneroComponents
import "effects/" as MoneroEffects
@@ -91,8 +92,8 @@ Item {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
anchors.leftMargin: datePicker.expanded ? 1 : 0
anchors.rightMargin: datePicker.expanded ? 1 : 0
anchors.leftMargin: 0
anchors.rightMargin: 0
radius: 4
y: 1
color: datePicker.backgroundColor
@@ -221,21 +222,18 @@ Item {
Layout.fillWidth: true
color: "transparent"
Image {
MoneroEffects.ImageMask {
id: button
anchors.right: parent.right
anchors.rightMargin: 10
anchors.verticalCenter: parent.verticalCenter
source: "qrc:///images/whiteDropIndicator.png"
visible: false
}
ColorOverlay {
source: button
anchors.fill: button
image: "qrc:///images/whiteDropIndicator.png"
height: 8
width: 12
fontAwesomeFallbackIcon: FontAwesome.arrowDown
fontAwesomeFallbackSize: 14
color: MoneroComponents.Style.defaultFontColor
rotation: datePicker.expanded ? 180 : 0
opacity: 1
}
MouseArea {
@@ -252,12 +250,16 @@ Item {
id: popup
padding: 0
closePolicy: QtQuickControls2.Popup.CloseOnEscape | QtQuickControls2.Popup.CloseOnPressOutsideParent
onOpened: {
calendar.visibleMonth = currentDate.getMonth();
calendar.visibleYear = currentDate.getFullYear();
}
Rectangle {
id: calendarRect
width: head.width
x: head.x
y: head.y + head.height + 10
y: head.y + head.height - 2
color: MoneroComponents.Style.middlePanelBackgroundColor
border.width: 1
@@ -266,11 +268,16 @@ Item {
clip: true
Behavior on height {
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
NumberAnimation { duration: 150; easing.type: Easing.InQuad }
}
MouseArea {
anchors.fill: parent
scrollGestureEnabled: false
onWheel: {
if (wheel.angleDelta.y > 0) return calendar.showPreviousMonth();
if (wheel.angleDelta.y < 0) return calendar.showNextMonth();
}
}
Rectangle {
@@ -305,11 +312,6 @@ Item {
id: dayRect
anchors.fill: parent
radius: parent.implicitHeight / 2
color: {
if(dayArea.pressed && styleData.visibleMonth)
return MoneroComponents.Style.blackTheme ? "#20FFFFFF" : "#10000000"
return "transparent";
}
}
MoneroComponents.TextPlain {
@@ -327,19 +329,32 @@ Item {
text: styleData.date.getDate()
themeTransition: false
color: {
if(!styleData.visibleMonth) return MoneroComponents.Style.lightGreyFontColor
if(dayArea.pressed) return MoneroComponents.Style.defaultFontColor
if(styleData.today) return MoneroComponents.Style.orange
return MoneroComponents.Style.defaultFontColor
if (currentDate.toDateString() === styleData.date.toDateString()) {
if (dayArea.containsMouse) {
dayRect.color = MoneroComponents.Style.buttonBackgroundColorHover;
} else {
dayRect.color = MoneroComponents.Style.buttonBackgroundColor;
}
} else {
if (dayArea.containsMouse) {
dayRect.color = MoneroComponents.Style.blackTheme ? "#20FFFFFF" : "#10000000"
} else {
dayRect.color = "transparent";
}
}
if(!styleData.valid) return "transparent"
if(styleData.date.toDateString() === (new Date()).toDateString()) return "#FFFF00"
if(!styleData.visibleMonth) return MoneroComponents.Style.lightGreyFontColor
if(dayArea.pressed) return MoneroComponents.Style.defaultFontColor
return MoneroComponents.Style.defaultFontColor
}
}
MouseArea {
id: dayArea
anchors.fill: parent
visible: styleData.valid
hoverEnabled: true
onEntered: dayRect.color = MoneroComponents.Style.blackTheme ? "#20FFFFFF" : "#10000000"
onExited: dayRect.color = "transparent"
cursorShape: Qt.PointingHandCursor
onClicked: {
if(styleData.visibleMonth) {
@@ -397,18 +412,15 @@ Item {
anchors.bottom: parent.bottom
width: height
Image {
MoneroEffects.ImageMask {
id: prevMonthIcon
anchors.centerIn: parent
source: "qrc:///images/prevMonth.png"
visible: false
}
ColorOverlay {
source: prevMonthIcon
anchors.fill: prevMonthIcon
image: "qrc:///images/prevMonth.png"
height: 8
width: 12
fontAwesomeFallbackIcon: FontAwesome.arrowLeft
fontAwesomeFallbackSize: 14
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
}
MouseArea {
@@ -426,19 +438,16 @@ Item {
anchors.bottom: parent.bottom
width: height
Image {
MoneroEffects.ImageMask {
id: nextMonthIcon
anchors.centerIn: parent
source: "qrc:///images/prevMonth.png"
visible: false
}
ColorOverlay {
source: nextMonthIcon
anchors.fill: nextMonthIcon
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
image: "qrc:///images/prevMonth.png"
height: 8
width: 12
rotation: 180
fontAwesomeFallbackIcon: FontAwesome.arrowLeft
fontAwesomeFallbackSize: 14
color: MoneroComponents.Style.defaultFontColor
}
MouseArea {

View File

@@ -36,19 +36,28 @@ MoneroEffects.ImageMask {
color: MoneroComponents.Style.defaultFontColor
image: ""
property alias tooltip: tooltip.text
signal clicked(var mouse)
MoneroComponents.Tooltip {
id: tooltip
anchors.fill: parent
tooltipLeft: true
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: {
tooltip.text ? tooltip.tooltipPopup.open() : ""
button.width = button.width + 2
button.height = button.height + 2
}
onExited: {
tooltip.text ? tooltip.tooltipPopup.close() : ""
button.width = button.width - 2
button.height = button.height - 2
}

View File

@@ -46,6 +46,9 @@ Item {
property alias fontStyleName: inlineText.font.styleName
property bool isFontAwesomeIcon: fontFamily == FontAwesome.fontFamily || fontFamily == FontAwesome.fontFamilySolid
property alias buttonColor: rect.color
property alias tooltip: tooltip.text
property alias tooltipLeft: tooltip.tooltipLeft
property alias tooltipBottom: tooltip.tooltipBottom
height: isFontAwesomeIcon ? 30 : 24
width: isFontAwesomeIcon ? height : inlineText.width + 16
@@ -61,7 +64,7 @@ Item {
Rectangle{
id: rect
anchors.fill: parent
color: MoneroComponents.Style.buttonInlineBackgroundColor
color: buttonArea.containsMouse ? MoneroComponents.Style.buttonInlineBackgroundColorHover : MoneroComponents.Style.buttonInlineBackgroundColor
radius: 4
@@ -82,19 +85,25 @@ Item {
}
}
MoneroComponents.Tooltip {
id: tooltip
anchors.fill: parent
}
MouseArea {
id: buttonArea
cursorShape: rect.enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
hoverEnabled: true
anchors.fill: parent
onClicked: doClick()
onClicked: {
tooltip.text ? tooltip.tooltipPopup.close() : ""
doClick()
}
onEntered: {
rect.color = buttonColor ? buttonColor : "#707070";
rect.opacity = 0.8;
tooltip.text ? tooltip.tooltipPopup.open() : ""
}
onExited: {
rect.opacity = 1.0;
rect.color = buttonColor ? buttonColor : "#808080";
tooltip.text ? tooltip.tooltipPopup.close() : ""
}
}
}

View File

@@ -48,9 +48,16 @@ TextField {
MoneroComponents.ContextMenu {
cursorShape: Qt.IBeamCursor
onCut: textField.cut();
onCopy: textField.copy();
onPaste: {
textField.clear();
var previoustextFieldLength = textField.length
var previousCursorPosition = textField.cursorPosition;
textField.paste();
textField.forceActiveFocus()
textField.cursorPosition = previousCursorPosition + (textField.length - previoustextFieldLength);
}
onRemove: textField.remove(selectionStart, selectionEnd);
onSelectAll: textField.selectAll();
}
}

View File

@@ -129,6 +129,7 @@ Item {
MoneroComponents.StandardButton {
id: cancelButton
primary: false
small: true
width: 120
fontSize: 14

View File

@@ -71,9 +71,16 @@ TextArea {
MoneroComponents.ContextMenu {
cursorShape: Qt.IBeamCursor
onCut: textArea.cut();
onCopy: textArea.copy();
onPaste: {
textArea.clear();
var previoustextFieldLength = textArea.length
var previousCursorPosition = textArea.cursorPosition;
textArea.paste();
textArea.forceActiveFocus()
textArea.cursorPosition = previousCursorPosition + (textArea.length - previoustextFieldLength);
}
onRemove: textArea.remove(selectionStart, selectionEnd);
onSelectAll: textArea.selectAll();
}
}

View File

@@ -35,7 +35,9 @@ Item {
id: item
property alias text: label.text
property alias tooltip: label.tooltip
property alias tooltipIconVisible: label.tooltipIconVisible
property alias color: label.color
property alias labelMouseArea: labelMouseArea
property int textFormat: Text.PlainText
property string tipText: ""
property int fontSize: 16
@@ -71,9 +73,13 @@ Item {
onLinkActivated: item.linkActivated()
textFormat: parent.textFormat
MouseArea {
id: labelMouseArea
anchors.fill: parent
hoverEnabled: true
acceptedButtons: Qt.NoButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
cursorShape: parent.hoveredLink || (tooltip && !tooltipIconVisible) ? Qt.PointingHandCursor : Qt.ArrowCursor
onEntered: tooltip && !tooltipIconVisible ? parent.tooltipPopup.open() : undefined
onExited: tooltip && !tooltipIconVisible ? parent.tooltipPopup.close() : undefined
}
}
}

View File

@@ -34,6 +34,7 @@ import "../components/effects/" as MoneroEffects
Label {
id: item
fontSize: 18
tooltipIconVisible: true
Rectangle {
anchors.top: item.bottom

View File

@@ -53,26 +53,64 @@ Drawer {
color: "red"
ListView {
id: languagesListView
clip: true
Layout.fillHeight: true
Layout.fillWidth: true
boundsBehavior: Flickable.StopAtBounds
width: sideBar.width
height: sideBar.height
focus: true
model: langModel
Keys.onUpPressed: currentIndex !== 0 ? currentIndex = currentIndex - 1 : ""
Keys.onBacktabPressed: currentIndex !== 0 ? currentIndex = currentIndex - 1 : ""
Keys.onDownPressed: currentIndex + 1 !== count ? currentIndex = currentIndex + 1 : ""
Keys.onTabPressed: currentIndex + 1 !== count ? currentIndex = currentIndex + 1 : ""
delegate: Rectangle {
id: item
color: "transparent"
color: index == languagesListView.currentIndex ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
width: sideBar.width
height: 32
Accessible.role: Accessible.ListItem
Accessible.name: display_name
Keys.onEnterPressed: setSelectedItemAsLanguage();
Keys.onReturnPressed: setSelectedItemAsLanguage();
Keys.onSpacePressed: setSelectedItemAsLanguage();
function setSelectedItemAsLanguage() {
var locale_spl = locale.split("_");
// reload active translations
console.log(locale_spl[0]);
translationManager.setLanguage(locale_spl[0]);
// set wizard language settings
persistentSettings.locale = locale;
persistentSettings.language = display_name;
persistentSettings.language_wallet = wallet_language;
appWindow.showStatusMessage(qsTr("Language changed."), 3);
appWindow.toggleLanguageView();
}
Rectangle {
id: selectedIndicator
anchors.left: parent.left
anchors.leftMargin: 0
height: parent.height
width: 2
color: index == languagesListView.currentIndex ? MoneroComponents.Style.buttonBackgroundColor : "transparent"
}
Rectangle {
id: flagRect
height: 24
width: 24
anchors.left: parent.left
anchors.left: selectedIndicator.right
anchors.leftMargin: 4
anchors.verticalCenter: parent.verticalCenter
color: "transparent"
@@ -85,8 +123,8 @@ Drawer {
MoneroComponents.TextPlain {
anchors.left: parent.left
anchors.leftMargin: 30
font.bold: true
anchors.leftMargin: 32
font.bold: languagesListView.currentIndex == index ? true : false
font.pixelSize: 14
color: MoneroComponents.Style.defaultFontColor
text: display_name
@@ -112,21 +150,7 @@ Drawer {
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
var locale_spl = locale.split("_");
// reload active translations
console.log(locale_spl[0]);
translationManager.setLanguage(locale_spl[0]);
// set wizard language settings
persistentSettings.locale = locale;
persistentSettings.language = display_name;
persistentSettings.language_wallet = wallet_language;
appWindow.showStatusMessage(qsTr("Language changed."), 3);
appWindow.toggleLanguageView();
}
onClicked: setSelectedItemAsLanguage();
hoverEnabled: true
onEntered: {
// item.color = "#26FFFFFF"
@@ -166,4 +190,12 @@ Drawer {
}
}
}
function selectCurrentLanguage() {
for (var i = 0; i < langModel.count; ++i) {
if (langModel.get(i).display_name === persistentSettings.language) {
languagesListView.currentIndex = i;
}
}
}
}

View File

@@ -33,14 +33,21 @@ import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
Item {
ColumnLayout {
id: item
Layout.fillWidth: true
default property alias content: inlineButtons.children
property alias input: input
property alias text: input.text
property int inputPaddingLeft: 10
property int inputPaddingRight: 10
property int inputPaddingTop: 10
property int inputPaddingBottom: 10
property int inputRadius: 4
property bool password: false
property bool passwordHidden: true
property var passwordLinked: null
@@ -55,10 +62,8 @@ Item {
property real placeholderLeftMargin: {
if (placeholderCenter) {
return undefined;
} else if (inlineIcon.visible) {
return inlineIcon.width + inlineIcon.anchors.leftMargin + inputPadding;
} else {
return inputPadding;
return inputPaddingLeft;
}
}
@@ -66,16 +71,16 @@ Item {
property alias validator: input.validator
property alias readOnly : input.readOnly
property alias cursorPosition: input.cursorPosition
property alias inlineIcon: inlineIcon.visible
property bool copyButton: false
property bool pasteButton: false
property alias copyButtonText: copyButtonId.text
property alias copyButtonEnabled: copyButtonId.enabled
property bool borderDisabled: false
property string borderColor: {
if(error && input.text !== ""){
if ((error && input.text !== "") || (errorWhenEmpty && input.text == "")) {
return MoneroComponents.Style.inputBorderColorInvalid;
} else if(input.activeFocus){
} else if (input.activeFocus) {
return MoneroComponents.Style.inputBorderColorActive;
} else {
return MoneroComponents.Style.inputBorderColorInActive;
@@ -87,6 +92,7 @@ Item {
property bool fontBold: false
property alias fontColor: input.color
property bool error: false
property bool errorWhenEmpty: false
property alias labelText: inputLabel.text
property alias labelColor: inputLabel.color
property alias labelTextFormat: inputLabel.textFormat
@@ -97,16 +103,13 @@ Item {
property alias labelWrapMode: inputLabel.wrapMode
property alias labelHorizontalAlignment: inputLabel.horizontalAlignment
property bool showingHeader: inputLabel.text !== "" || copyButton
property int inputHeight: 42
property int inputPadding: 10
property int inputHeight: 39
signal labelLinkActivated(); // input label, rich text <a> signal
signal editingFinished();
signal accepted();
signal textUpdated();
height: showingHeader ? (inputLabel.height + inputItem.height + 2) : inputHeight
onActiveFocusChanged: activeFocus && input.forceActiveFocus()
onTextUpdated: {
// check to remove placeholder text when there is content
@@ -152,45 +155,100 @@ Item {
}
}
MoneroComponents.TextPlain {
id: inputLabel
anchors.top: parent.top
anchors.left: parent.left
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: labelFontSize
font.bold: labelFontBold
textFormat: Text.RichText
color: MoneroComponents.Style.defaultFontColor
onLinkActivated: item.labelLinkActivated()
spacing: 0
Rectangle {
id: inputLabelRect
color: "transparent"
Layout.fillWidth: true
height: (inputLabel.height + 10)
visible: showingHeader ? true : false
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}
MoneroComponents.TextPlain {
id: inputLabel
anchors.top: parent.top
anchors.left: parent.left
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: labelFontSize
font.bold: labelFontBold
textFormat: Text.RichText
color: MoneroComponents.Style.defaultFontColor
onLinkActivated: item.labelLinkActivated()
MoneroComponents.LabelButton {
id: copyButtonId
text: qsTr("Copy") + translationManager.emptyString
anchors.right: parent.right
onClicked: {
if (input.text.length > 0) {
console.log("Copied to clipboard");
clipboard.setText(input.text);
appWindow.showStatusMessage(qsTr("Copied to clipboard"), 3);
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}
RowLayout {
anchors.right: parent.right
spacing: 16
MoneroComponents.LabelButton {
id: copyButtonId
text: qsTr("Copy") + translationManager.emptyString
onClicked: {
if (input.text.length > 0) {
console.log("Copied to clipboard");
clipboard.setText(input.text);
appWindow.showStatusMessage(qsTr("Copied to clipboard"), 3);
}
}
visible: copyButton && input.text !== ""
}
MoneroComponents.LabelButton {
id: pasteButtonId
onClicked: {
input.clear();
input.paste();
}
text: qsTr("Paste") + translationManager.emptyString
visible: pasteButton
}
}
visible: copyButton && input.text !== ""
}
Item{
id: inputItem
height: inputHeight
anchors.top: showingHeader ? inputLabel.bottom : parent.top
anchors.topMargin: showingHeader ? 12 : 0
width: parent.width
clip: true
MoneroComponents.Input {
id: input
KeyNavigation.backtab: item.KeyNavigation.backtab
KeyNavigation.tab: item.KeyNavigation.tab
Layout.fillWidth: true
Layout.preferredHeight: inputHeight
leftPadding: item.inputPaddingLeft
rightPadding: (inlineButtons.width > 0 ? inlineButtons.width + inlineButtons.spacing : 0) + inputPaddingRight + (password || passwordLinked ? 45 : 0)
topPadding: item.inputPaddingTop
bottomPadding: item.inputPaddingBottom
font.family: item.fontFamily
font.pixelSize: item.fontSize
font.bold: item.fontBold
onEditingFinished: item.editingFinished()
onAccepted: item.accepted();
onTextChanged: item.textUpdated()
echoMode: isPasswordHidden() ? TextInput.Password : TextInput.Normal
MoneroComponents.Label {
visible: password || passwordLinked
fontSize: 20
text: isPasswordHidden() ? FontAwesome.eye : FontAwesome.eyeSlash
opacity: eyeMouseArea.containsMouse ? 0.9 : 0.7
fontFamily: FontAwesome.fontFamily
anchors.right: parent.right
anchors.rightMargin: 15
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: 1
MouseArea {
id: eyeMouseArea
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
onClicked: passwordToggle()
}
}
MoneroComponents.TextPlain {
id: placeholderLabel
@@ -221,69 +279,15 @@ Item {
anchors.fill: parent
border.width: borderDisabled ? 0 : 1
border.color: borderColor
radius: 4
radius: item.inputRadius
}
Image {
id: inlineIcon
width: 26
height: 26
anchors.top: parent.top
anchors.topMargin: 8
anchors.left: parent.left
anchors.leftMargin: 12
source: "qrc:///images/moneroIcon-28x28.png"
visible: false
}
MoneroComponents.Input {
id: input
anchors.fill: parent
anchors.leftMargin: inlineIcon.visible ? 44 : 0
font.family: item.fontFamily
font.pixelSize: item.fontSize
font.bold: item.fontBold
KeyNavigation.backtab: item.KeyNavigation.backtab
KeyNavigation.tab: item.KeyNavigation.tab
onEditingFinished: item.editingFinished()
onAccepted: item.accepted();
onTextChanged: item.textUpdated()
leftPadding: inputPadding
rightPadding: (inlineButtons.width > 0 ? inlineButtons.width + inlineButtons.spacing : 0) + inputPadding
topPadding: inputPadding
bottomPadding: inputPadding
echoMode: isPasswordHidden() ? TextInput.Password : TextInput.Normal
MoneroComponents.Label {
visible: password || passwordLinked
fontSize: 20
text: isPasswordHidden() ? FontAwesome.eye : FontAwesome.eyeSlash
opacity: eyeMouseArea.containsMouse ? 0.9 : 0.7
fontFamily: FontAwesome.fontFamily
anchors.right: parent.right
anchors.rightMargin: 15
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: 1
MouseArea {
id: eyeMouseArea
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
onClicked: passwordToggle()
}
}
RowLayout {
id: inlineButtons
anchors.bottom: parent.bottom
anchors.top: parent.top
anchors.right: parent.right
anchors.topMargin: inputPadding
anchors.bottomMargin: inputPadding
anchors.rightMargin: inputPadding
spacing: 4
}
RowLayout {
id: inlineButtons
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: inputPaddingRight
spacing: 4
}
}
}

View File

@@ -68,6 +68,7 @@ ColumnLayout {
}
property alias error: input.error
property alias cursorPosition: input.cursorPosition
property string labelFontColor: MoneroComponents.Style.defaultFontColor
property bool labelFontBold: false
@@ -91,6 +92,8 @@ ColumnLayout {
signal labelButtonClicked();
signal inputLabelLinkActivated();
signal editingFinished();
signal returnPressed();
signal enterPressed();
onActiveFocusChanged: activeFocus && input.forceActiveFocus()
@@ -176,6 +179,8 @@ ColumnLayout {
fontColor: item.fontColor
mouseSelection: item.mouseSelection
onEditingFinished: item.editingFinished()
Keys.onReturnPressed: item.returnPressed()
Keys.onEnterPressed: item.enterPressed()
MoneroComponents.TextPlain {
id: placeholderLabel

View File

@@ -32,6 +32,8 @@ import "." as MoneroComponents
Rectangle {
default property list<MoneroComponents.NavbarItem> items
property alias currentIndex: repeater.currentIndex
property alias previousIndex: repeater.previousIndex
color: "transparent"
height: grid.height
@@ -100,7 +102,10 @@ Rectangle {
}
Repeater {
id: repeater
model: items.length
property int currentIndex: 0
property int previousIndex: 0
RowLayout {
spacing: 0
@@ -149,7 +154,11 @@ Rectangle {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: items[index].selected()
onClicked: {
repeater.previousIndex = repeater.currentIndex;
repeater.currentIndex = index;
items[index].selected()
}
}
}

View File

@@ -52,6 +52,8 @@ Rectangle {
case Wallet.ConnectionStatus_Connected:
if (!appWindow.daemonSynced)
return qsTr("Synchronizing");
if (persistentSettings.useRemoteNode && persistentSettings.allowRemoteNodeMining && appWindow.isMining)
return qsTr("Remote node") + " + " + qsTr("Mining");
if (persistentSettings.useRemoteNode)
return qsTr("Remote node");
return appWindow.isMining ? qsTr("Connected") + " + " + qsTr("Mining"): qsTr("Connected");
@@ -80,7 +82,7 @@ Rectangle {
if(item.connected == Wallet.ConnectionStatus_Connected){
return 1
} else {
return 0.5
MoneroComponents.Style.blackTheme ? 0.5 : 0.3
}
}
@@ -92,7 +94,7 @@ Rectangle {
source: {
if(appWindow.isMining) {
return "qrc:///images/miningxmr.png"
} else if(item.connected == Wallet.ConnectionStatus_Connected) {
} else if(item.connected == Wallet.ConnectionStatus_Connected || !MoneroComponents.Style.blackTheme) {
return "qrc:///images/lightning.png"
} else {
return "qrc:///images/lightning-white.png"
@@ -126,8 +128,8 @@ Rectangle {
font.family: MoneroComponents.Style.fontMedium.name
font.bold: true
font.pixelSize: 13
color: MoneroComponents.Style.dimmedFontColor
opacity: MoneroComponents.Style.blackTheme ? 0.65 : 0.5
color: MoneroComponents.Style.blackTheme ? MoneroComponents.Style.dimmedFontColor : MoneroComponents.Style.defaultFontColor
opacity: MoneroComponents.Style.blackTheme ? 0.65 : 0.75
text: qsTr("Network status") + translationManager.emptyString
themeTransition: false
}
@@ -159,16 +161,18 @@ Rectangle {
}
}
Text {
MoneroComponents.TextPlain {
anchors.left: statusTextVal.right
anchors.leftMargin: 16
anchors.verticalCenter: parent.verticalCenter
color: refreshMouseArea.containsMouse ? MoneroComponents.Style.dimmedFontColor : MoneroComponents.Style.defaultFontColor
color: refreshMouseArea.containsMouse ? MoneroComponents.Style.defaultFontColor : MoneroComponents.Style.dimmedFontColor
font.family: FontAwesome.fontFamilySolid
font.pixelSize: 24
font.styleName: "Solid"
opacity: iconItem.opacity * (refreshMouseArea.visible ? 1 : 0.5)
opacity: 0.85
text: FontAwesome.random
themeTransition: false
tooltip: qsTr("Switch to another public remote node") + translationManager.emptyString;
visible: (
!appWindow.disconnected &&
!persistentSettings.useRemoteNode &&
@@ -181,6 +185,8 @@ Rectangle {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
visible: true
onEntered: parent.tooltipPopup.open()
onExited: parent.tooltipPopup.close()
onClicked: {
const callback = function(result) {
refreshMouseArea.visible = true;

View File

@@ -108,7 +108,11 @@ Item {
leftPanel.enabled = true
middlePanel.enabled = true
wizard.enabled = true
titleBar.state = "default"
if (rootItem.state == "wizard") {
titleBar.state = "essentials"
} else {
titleBar.state = "default"
}
root.visible = false;
appWindow.hideBalanceForced = false;

View File

@@ -90,6 +90,9 @@ Rectangle {
if (!parsed.error) {
root.qrcode_decoded(parsed.address, parsed.payment_id, parsed.amount, parsed.tx_description, parsed.recipient_name, parsed.extra_parameters);
root.state = "Stopped";
} else if (walletManager.addressValid(data, appWindow.persistentSettings.nettype)) {
root.qrcode_decoded(data, "", "", "", "", null);
root.state = "Stopped";
} else {
onNotifyError(parsed.error);
}

View File

@@ -42,6 +42,13 @@ MoneroComponents.Dialog {
onActiveFocusChanged: activeFocus && remoteNodeAddress.forceActiveFocus()
function onOk() {
root.success = true;
root.close();
}
function onCancel() { root.close(); }
function add(callbackOnSuccess) {
root.editMode = false;
root.callbackOnSuccess = callbackOnSuccess;
@@ -89,6 +96,11 @@ MoneroComponents.Dialog {
daemonAddrLabelText: qsTr("Address") + translationManager.emptyString
daemonPortLabelText: qsTr("Port") + translationManager.emptyString
Keys.enabled: root.visible
Keys.onEnterPressed: root.onOk()
Keys.onReturnPressed: root.onOk()
Keys.onEscapePressed: root.onCancel()
}
RowLayout {
@@ -116,6 +128,11 @@ MoneroComponents.Dialog {
placeholderFontSize: 15
labelFontSize: 14
fontSize: 15
Keys.enabled: root.visible
Keys.onEnterPressed: root.onOk()
Keys.onReturnPressed: root.onOk()
Keys.onEscapePressed: root.onCancel()
}
}

View File

@@ -82,9 +82,9 @@ GridLayout {
return addr + ":" + port;
}
LineEdit {
MoneroComponents.LineEdit {
id: daemonAddr
Layout.fillWidth: true
Layout.preferredWidth: root.width/3
placeholderText: qsTr("Remote Node Hostname / IP") + translationManager.emptyString
placeholderFontFamily: root.placeholderFontFamily
placeholderFontBold: root.placeholderFontBold
@@ -104,9 +104,9 @@ GridLayout {
text: initialHostPort[1]
}
LineEdit {
MoneroComponents.LineEdit {
id: daemonPort
Layout.fillWidth: true
Layout.preferredWidth: root.width/3
placeholderText: qsTr("Port") + translationManager.emptyString
placeholderFontFamily: root.placeholderFontFamily
placeholderFontBold: root.placeholderFontBold

View File

@@ -59,7 +59,16 @@ ColumnLayout {
Rectangle {
height: 30
Layout.fillWidth: true
color: itemMouseArea.containsMouse || index === remoteNodesModel.selected ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
color: itemMouseArea.containsMouse || trustedDaemonCheckMark.labelMouseArea.containsMouse || index === remoteNodesModel.selected ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
Rectangle {
visible: index === remoteNodesModel.selected
Layout.fillHeight: true
anchors.top: parent.top
anchors.bottom: parent.bottom
color: "darkgrey"
width: 2
}
Rectangle {
color: MoneroComponents.Style.appWindowBorderColor
@@ -80,8 +89,11 @@ ColumnLayout {
anchors.fill: parent
anchors.rightMargin: 80
color: "transparent"
property var trusted: remoteNodesModel.get(index) ? remoteNodesModel.get(index).trusted : false
MoneroComponents.TextPlain {
id: addressText
width: parent.width - trustedDaemonCheckMark.width
color: index === remoteNodesModel.selected ? MoneroComponents.Style.defaultFontColor : MoneroComponents.Style.dimmedFontColor
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
@@ -89,6 +101,24 @@ ColumnLayout {
font.pixelSize: 16
text: address
themeTransition: false
elide: Text.ElideMiddle
}
MoneroComponents.Label {
id: trustedDaemonCheckMark
anchors.left: addressText.right
anchors.leftMargin: 3
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: 2
z: itemMouseArea.z + 1
fontSize: 16
fontFamily: FontAwesome.fontFamilySolid
fontColor: index === remoteNodesModel.selected ? MoneroComponents.Style.defaultFontColor : MoneroComponents.Style.dimmedFontColor
styleName: "Solid"
visible: trusted
text: FontAwesome.shieldAlt
tooltip: qsTr("Trusted daemon") + translationManager.emptyString
themeTransition: false
}
MouseArea {
@@ -103,17 +133,21 @@ ColumnLayout {
RowLayout {
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 6
height: 30
spacing: 10
spacing: 2
MoneroComponents.InlineButton {
buttonColor: "transparent"
fontFamily: FontAwesome.fontFamily
fontPixelSize: 18
text: FontAwesome.edit
tooltip: qsTr("Edit remote node") + translationManager.emptyString
tooltipLeft: true
onClicked: remoteNodeDialog.edit(remoteNodesModel.get(index), function (remoteNode) {
remoteNodesModel.set(index, remoteNode)
if (index === remoteNodesModel.selected) {
remoteNodesModel.applyRemoteNode(index)
}
})
}
@@ -122,6 +156,8 @@ ColumnLayout {
fontFamily: FontAwesome.fontFamily
text: FontAwesome.times
visible: remoteNodesModel.count > 1
tooltip: qsTr("Remove remote node") + translationManager.emptyString
tooltipLeft: true
onClicked: remoteNodesModel.removeSelectNextIfNeeded(index)
}
}

View File

@@ -7,9 +7,11 @@ import "../components" as MoneroComponents
ColumnLayout {
id: settingsListItem
property alias iconText: iconLabel.text
property alias symbol: symbolText.text
property alias description: area.text
property alias title: header.text
property bool isLast: false
property bool enabled: true
signal clicked()
Layout.fillWidth: true
@@ -37,6 +39,7 @@ ColumnLayout {
width: parent.width
height: header.height + area.contentHeight
color: "transparent";
opacity: settingsListItem.enabled ? 1 : 0.25
anchors.left: parent.left
anchors.bottomMargin: 4
anchors.topMargin: 4
@@ -102,6 +105,7 @@ ColumnLayout {
}
MouseArea {
visible: settingsListItem.enabled
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
hoverEnabled: true
@@ -111,5 +115,17 @@ ColumnLayout {
settingsListItem.clicked()
}
}
MoneroComponents.TextPlain {
id: symbolText
anchors.right: parent.right
anchors.rightMargin: 44
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 12
font.bold: true
color: MoneroComponents.Style.menuButtonTextColor
visible: appWindow.ctrlPressed
themeTransition: false
}
}
}

View File

@@ -16,11 +16,11 @@ ColumnLayout {
spacing: 0
Text {
MoneroComponents.TextPlain {
id: label
color: MoneroComponents.Style.defaultFontColor
font.pixelSize: 14
Layout.fillWidth: true
font.family: MoneroComponents.Style.fontRegular.name
}
QtQuickControls.Slider {

View File

@@ -39,19 +39,18 @@ Item {
property bool primary: true
property string rightIcon: ""
property string rightIconInactive: ""
property color textColor: !button.enabled
? MoneroComponents.Style.buttonTextColorDisabled
: primary
? MoneroComponents.Style.buttonTextColor
: MoneroComponents.Style.buttonSecondaryTextColor;
property color textColor: primary ? MoneroComponents.Style.buttonTextColor : MoneroComponents.Style.buttonSecondaryTextColor;
property bool small: false
property alias text: label.text
property alias fontBold: label.font.bold
property int fontSize: {
if(small) return 14;
if(small) return 13.5;
else return 16;
}
property alias label: label
property alias tooltip: tooltip.text
property alias tooltipLeft: tooltip.tooltipLeft
property alias tooltipPopup: tooltip.tooltipPopup
signal clicked()
height: small ? 30 : 36
@@ -69,6 +68,7 @@ Item {
anchors.fill: parent
radius: 3
border.width: parent.focus && parent.enabled ? 1 : 0
opacity: 1
state: button.enabled ? "active" : "disabled"
Component.onCompleted: state = state
@@ -99,7 +99,14 @@ Item {
when: !button.enabled
PropertyChanges {
target: buttonRect
color: MoneroComponents.Style.buttonBackgroundColorDisabled
opacity: 0.5
color: primary
? MoneroComponents.Style.buttonBackgroundColor
: MoneroComponents.Style.buttonSecondaryBackgroundColor
}
PropertyChanges {
target: label
opacity: 0.5
}
}
]
@@ -119,7 +126,7 @@ Item {
MoneroComponents.TextPlain {
id: label
font.family: MoneroComponents.Style.fontBold.name
font.bold: true
font.bold: button.primary ? true : false
font.pixelSize: button.fontSize
color: !buttonArea.pressed ? button.textColor : "transparent"
visible: text !== ""
@@ -142,7 +149,9 @@ Item {
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
width: button.small ? 16 : 20
height: button.small ? 16 : 20
opacity: buttonRect.opacity
source: {
if (fontAwesomeIcon) return "";
if(button.rightIconInactive !== "" && !button.enabled) {
return button.rightIconInactive;
}
@@ -161,11 +170,18 @@ Item {
}
}
MoneroComponents.Tooltip {
id: tooltip
anchors.fill: parent
}
MouseArea {
id: buttonArea
anchors.fill: parent
hoverEnabled: true
onClicked: doClick()
onEntered: tooltip.text ? tooltip.tooltipPopup.open() : ""
onExited: tooltip.text ? tooltip.tooltipPopup.close() : ""
cursorShape: Qt.PointingHandCursor
}

View File

@@ -171,6 +171,7 @@ Rectangle {
MoneroComponents.StandardButton {
id: cancelButton
primary: false
text: qsTr("Cancel") + translationManager.emptyString
onClicked: {
root.close()

View File

@@ -29,12 +29,16 @@
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtGraphicalEffects 1.0
import FontAwesome 1.0
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
import "../components/effects/" as MoneroEffects
Item {
ColumnLayout {
id: dropdown
Layout.fillWidth: true
property int itemTopMargin: 0
property alias dataModel: repeater.model
property string shadowPressedColor
@@ -44,46 +48,66 @@ Item {
property string textColor: MoneroComponents.Style.defaultFontColor
property alias currentIndex: columnid.currentIndex
readonly property alias expanded: popup.visible
property int dropdownHeight: 42
property int fontHeaderSize: 16
property alias labelText: dropdownLabel.text
property alias labelColor: dropdownLabel.color
property alias labelTextFormat: dropdownLabel.textFormat
property alias labelWrapMode: dropdownLabel.wrapMode
property alias labelHorizontalAlignment: dropdownLabel.horizontalAlignment
property bool showingHeader: dropdownLabel.text !== ""
property int labelFontSize: 14
property bool labelFontBold: false
property int dropdownHeight: 39
property int fontSize: 14
property int fontItemSize: 14
property string colorBorder: MoneroComponents.Style.inputBorderColorInActive
property string colorHeaderBackground: "transparent"
property bool headerBorder: true
property bool headerFontBold: false
height: dropdownHeight
signal changed();
onExpandedChanged: if(expanded) appWindow.currentItem = dropdown
Item {
id: head
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: parent.itemTopMargin
height: dropdown.dropdownHeight
spacing: 0
Rectangle {
id: dropdownLabelRect
color: "transparent"
Layout.fillWidth: true
height: (dropdownLabel.height + 10)
visible: showingHeader ? true : false
Rectangle {
color: "transparent"
border.width: dropdown.headerBorder ? 1 : 0
border.color: dropdown.colorBorder
radius: 4
anchors.fill: parent
MoneroComponents.TextPlain {
id: dropdownLabel
anchors.top: parent.top
anchors.left: parent.left
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: labelFontSize
font.bold: labelFontBold
textFormat: Text.RichText
color: MoneroComponents.Style.defaultFontColor
}
}
Rectangle {
id: head
color: dropArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
border.width: dropdown.headerBorder ? 1 : 0
border.color: dropdown.colorBorder
radius: 4
Layout.fillWidth: true
Layout.preferredHeight: dropdownHeight
MoneroComponents.TextPlain {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 12
anchors.leftMargin: 10
anchors.right: dropIndicator.left
anchors.rightMargin: 12
width: droplist.width
elide: Text.ElideRight
font.family: MoneroComponents.Style.fontRegular.name
font.bold: dropdown.headerFontBold
font.pixelSize: dropdown.fontHeaderSize
font.pixelSize: dropdown.fontSize
color: dropdown.textColor
text: columnid.currentIndex < repeater.model.count ? qsTr(repeater.model.get(columnid.currentIndex).column1) + translationManager.emptyString : ""
}
@@ -96,19 +120,15 @@ Item {
anchors.rightMargin: 12
width: dropdownIcon.width
Image {
MoneroEffects.ImageMask {
id: dropdownIcon
anchors.centerIn: parent
source: "qrc:///images/whiteDropIndicator.png"
visible: false
}
ColorOverlay {
source: dropdownIcon
anchors.fill: dropdownIcon
image: "qrc:///images/whiteDropIndicator.png"
height: 8
width: 12
fontAwesomeFallbackIcon: FontAwesome.arrowDown
fontAwesomeFallbackSize: 14
color: MoneroComponents.Style.defaultFontColor
rotation: dropdown.expanded ? 180 : 0
opacity: 1
}
}
@@ -117,7 +137,7 @@ Item {
anchors.fill: parent
onClicked: dropdown.expanded ? popup.close() : popup.open()
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
cursorShape: Qt.ArrowCursor
}
}
@@ -128,7 +148,7 @@ Item {
Rectangle {
id: droplist
x: dropdown.x
anchors.left: parent.left
width: dropdown.width
y: head.y + head.height
clip: true
@@ -171,7 +191,7 @@ Item {
anchors.leftMargin: 12
anchors.rightMargin: 0
font.family: MoneroComponents.Style.fontRegular.name
font.bold: true
font.bold: false
font.pixelSize: fontItemSize
color: itemArea.containsMouse || index === columnid.currentIndex || itemArea.containsMouse ? "#FA6800" : "#FFFFFF"
text: qsTr(column1) + translationManager.emptyString
@@ -188,25 +208,11 @@ Item {
text: ""
}
Rectangle {
anchors.left: parent.left
anchors.top: parent.top
width: 3; height: 3
color: parent.color
}
Rectangle {
anchors.right: parent.right
anchors.top: parent.top
width: 3; height: 3
color: parent.color
}
MouseArea {
id: itemArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
cursorShape: Qt.ArrowCursor
onClicked: {
popup.close()

View File

@@ -42,11 +42,12 @@ QtObject {
property string buttonBackgroundColorDisabled: blackTheme ? _b_buttonBackgroundColorDisabled : _w_buttonBackgroundColorDisabled
property string buttonBackgroundColorDisabledHover: blackTheme ? _b_buttonBackgroundColorDisabledHover : _w_buttonBackgroundColorDisabledHover
property string buttonInlineBackgroundColor: blackTheme ? _b_buttonInlineBackgroundColor : _w_buttonInlineBackgroundColor
property string buttonInlineBackgroundColorHover: blackTheme ? _b_buttonInlineBackgroundColorHover : _w_buttonInlineBackgroundColorHover
property string buttonTextColor: blackTheme ? _b_buttonTextColor : _w_buttonTextColor
property string buttonTextColorDisabled: blackTheme ? _b_buttonTextColorDisabled : _w_buttonTextColorDisabled
property string buttonSecondaryBackgroundColor: "#d9d9d9"
property string buttonSecondaryBackgroundColorHover: "#a6a6a6"
property string buttonSecondaryTextColor: "#4d4d4d"
property string buttonSecondaryBackgroundColor: blackTheme ? _b_buttonSecondaryBackgroundColor : _w_buttonSecondaryBackgroundColor
property string buttonSecondaryBackgroundColorHover: blackTheme ? _b_buttonSecondaryBackgroundColorHover : _w_buttonSecondaryBackgroundColorHover
property string buttonSecondaryTextColor: blackTheme ? _b_buttonSecondaryTextColor : _w_buttonSecondaryTextColor
property string dividerColor: blackTheme ? _b_dividerColor : _w_dividerColor
property real dividerOpacity: blackTheme ? _b_dividerOpacity : _w_dividerOpacity
@@ -102,8 +103,12 @@ QtObject {
property string _b_buttonBackgroundColorDisabled: "#707070"
property string _b_buttonBackgroundColorDisabledHover: "#808080"
property string _b_buttonInlineBackgroundColor: "#707070"
property string _b_buttonInlineBackgroundColorHover: "#808080"
property string _b_buttonTextColor: "white"
property string _b_buttonTextColorDisabled: "black"
property string _b_buttonSecondaryBackgroundColor: "#707070"
property string _b_buttonSecondaryBackgroundColorHover: "#808080"
property string _b_buttonSecondaryTextColor: "white"
property string _b_dividerColor: "white"
property real _b_dividerOpacity: 0.20
@@ -158,9 +163,13 @@ QtObject {
property string _w_buttonBackgroundColorHover: "#E65E00"
property string _w_buttonBackgroundColorDisabled: "#bbbbbb"
property string _w_buttonBackgroundColorDisabledHover: "#D1D1D1"
property string _w_buttonInlineBackgroundColor: "#bbbbbb"
property string _w_buttonInlineBackgroundColor: "#d9d9d9"
property string _w_buttonInlineBackgroundColorHover: "#C8C8C8"
property string _w_buttonTextColor: "white"
property string _w_buttonTextColorDisabled: "black"
property string _w_buttonSecondaryBackgroundColor: "#d9d9d9"
property string _w_buttonSecondaryBackgroundColorHover: "#C8C8C8"
property string _w_buttonSecondaryTextColor: "#4d4d4d"
property string _w_dividerColor: "black"
property real _w_dividerOpacity: 0.20
@@ -185,7 +194,7 @@ QtObject {
property string _w_menuButtonImageRightColorActive: "#FA6800"
property string _w_menuButtonImageRightColor: "#808080"
property string _w_menuButtonImageDotArrowSource: "qrc:///images/arrow-right-medium-white.png"
property string _w_inlineButtonTextColor: "black"
property string _w_inlineButtonTextColor: "#4d4d4d"
property string _w_inlineButtonBorderColor: "transparent"
property string _w_appWindowBackgroundColor: "black"
property string _w_appWindowBorderColor: "#dedede"

View File

@@ -13,6 +13,9 @@ Text {
property string themeTransitionBlackColor: ""
property string themeTransitionWhiteColor: ""
property alias tooltip: tooltip.text
property alias tooltipLeft: tooltip.tooltipLeft
property alias tooltipIconVisible: tooltip.tooltipIconVisible
property alias tooltipPopup: tooltip.tooltipPopup
font.family: MoneroComponents.Style.fontMedium.name
font.bold: false
font.pixelSize: 14
@@ -30,6 +33,6 @@ Text {
MoneroComponents.Tooltip {
id: tooltip
anchors.top: parent.top
anchors.left: parent.right
anchors.left: tooltipIconVisible ? parent.right : parent.left
}
}

View File

@@ -57,17 +57,20 @@ Rectangle {
signal minimizeClicked
signal languageClicked
signal closeWalletClicked
signal lockWalletClicked
state: "default"
states: [
State {
name: "default";
PropertyChanges { target: btnCloseWallet; visible: true}
PropertyChanges { target: btnLockWallet; visible: true}
PropertyChanges { target: btnLanguageToggle; visible: true}
}, State {
// show only theme switcher and window controls
name: "essentials";
PropertyChanges { target: btnCloseWallet; visible: false}
PropertyChanges { target: btnLockWallet; visible: false}
PropertyChanges { target: btnLanguageToggle; visible: false}
}
]
@@ -91,6 +94,46 @@ Rectangle {
spacing: 0
anchors.fill: parent
// lock wallet
Rectangle {
id: btnLockWallet
color: "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
Text {
text: FontAwesome.lock
font.family: FontAwesome.fontFamilySolid
font.pixelSize: 16
color: MoneroComponents.Style.defaultFontColor
font.styleName: "Solid"
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
opacity: 0.75
}
MoneroComponents.Tooltip {
id: btnLockWalletTooltip
anchors.fill: parent
text: qsTr("Lock this wallet") + translationManager.emptyString
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: {
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
btnLockWalletTooltip.tooltipPopup.open()
}
onExited: {
parent.color = "transparent"
btnLockWalletTooltip.tooltipPopup.close()
}
onClicked: root.lockWalletClicked(leftPanel.visible)
}
}
// collapse sidebar
Rectangle {
id: btnCloseWallet
@@ -110,12 +153,24 @@ Rectangle {
opacity: 0.75
}
MoneroComponents.Tooltip {
id: btnCloseWalletTooltip
anchors.fill: parent
text: qsTr("Close this wallet and return to main menu") + translationManager.emptyString
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onEntered: {
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
btnCloseWalletTooltip.tooltipPopup.open()
}
onExited: {
parent.color = "transparent"
btnCloseWalletTooltip.tooltipPopup.close()
}
onClicked: root.closeWalletClicked(leftPanel.visible)
}
}
@@ -138,12 +193,24 @@ Rectangle {
opacity: 0.75
}
MoneroComponents.Tooltip {
id: btnLanguageToggleTooltip
anchors.fill: parent
text: qsTr("Change language") + translationManager.emptyString
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onEntered: {
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
btnLanguageToggleTooltip.tooltipPopup.open()
}
onExited: {
parent.color = "transparent"
btnLanguageToggleTooltip.tooltipPopup.close()
}
onClicked: root.languageClicked()
}
}
@@ -165,12 +232,24 @@ Rectangle {
opacity: 0.75
}
MoneroComponents.Tooltip {
id: btnSwitchThemeTooltip
anchors.fill: parent
text: MoneroComponents.Style.blackTheme ? qsTr("Switch to light theme") : qsTr("Switch to dark theme") + translationManager.emptyString
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onEntered: {
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
btnSwitchThemeTooltip.tooltipPopup.open()
}
onExited: {
parent.color = "transparent"
btnSwitchThemeTooltip.tooltipPopup.close()
}
onClicked: {
MoneroComponents.Style.blackTheme = !MoneroComponents.Style.blackTheme;
}
@@ -346,6 +425,7 @@ Rectangle {
anchors.fill: parent
propagateComposedEvents: true
onPressed: previousPosition = globalCursor.getPosition()
onDoubleClicked: root.maximizeClicked()
onPositionChanged: {
if (pressedButtons == Qt.LeftButton) {
var pos = globalCursor.getPosition()

View File

@@ -35,15 +35,20 @@ import "." as MoneroComponents
Rectangle {
property alias text: tooltip.text
property alias tooltipPopup: popup
property bool tooltipIconVisible: false
property bool tooltipLeft: false
property bool tooltipBottom: tooltipIconVisible ? false : true
color: "transparent"
height: icon.height
width: icon.width
height: tooltipIconVisible ? icon.height : parent.height
width: tooltipIconVisible ? icon.width : parent.width
visible: text != ""
Text {
id: icon
color: MoneroComponents.Style.orange
visible: tooltipIconVisible
color: MoneroComponents.Style.defaultFontColor
font.family: FontAwesome.fontFamily
font.pixelSize: 10
font.styleName: "Regular"
@@ -62,8 +67,9 @@ Rectangle {
}
}
Popup {
ToolTip {
id: popup
height: tooltip.height + 20
background: Rectangle {
border.color: MoneroComponents.Style.buttonInlineBackgroundColor
@@ -73,14 +79,28 @@ Rectangle {
}
closePolicy: Popup.NoAutoClose
padding: 10
x: icon.x + icon.width
y: icon.y - height
x: tooltipLeft
? (tooltipIconVisible ? icon.x - icon.width : parent.x - tooltip.width - 20 + parent.width/2)
: (tooltipIconVisible ? icon.x + icon.width : parent.x + parent.width/2)
y: tooltipBottom
? (tooltipIconVisible ? icon.y + height : parent.y + parent.height + 2)
: (tooltipIconVisible ? icon.y - height : parent.y - tooltip.height - 20)
enter: Transition {
NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 150 }
}
exit: Transition {
NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 150 }
}
delay: 200
RowLayout {
Layout.maximumWidth: 370
Text {
id: tooltip
Layout.maximumWidth: 350
width: contentWidth > Layout.maximumWidth ? Layout.maximumWidth : contentWidth
width: contentWidth
Layout.maximumWidth: 370
color: MoneroComponents.Style.defaultFontColor
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 12

View File

@@ -141,7 +141,7 @@ Rectangle {
function showFiatConversion(valueXMR) {
const fiatFee = fiatApiConvertToFiat(valueXMR);
return "%1 %2".arg(fiatFee < 0.01 ? "<0.01" : "~" + fiatFee).arg(fiatApiCurrencySymbol());
return "%1 %2".arg(fiatFee < 0.01 ? "&lt;0.01" : "~" + fiatFee).arg(fiatApiCurrencySymbol());
}
ColumnLayout {
@@ -338,8 +338,9 @@ Rectangle {
spacing: 16
Text {
color: MoneroComponents.Style.defaultFontColor
font.pixelSize: 15
property bool maliciousTxFee: parseFloat(root.transactionFee) > 0.01
color: maliciousTxFee ? "red" : MoneroComponents.Style.defaultFontColor
font.pixelSize: maliciousTxFee ? 20 : 15
text: {
if (currentWallet) {
if (!root.transactionFee) {
@@ -349,7 +350,7 @@ Rectangle {
return qsTr("Calculating fee") + "..." + translationManager.emptyString;
}
} else {
return root.transactionFee + " XMR"
return root.transactionFee + " XMR" + (maliciousTxFee ? " (HIGH FEE)" : "")
}
} else {
return "";

View File

@@ -4,4 +4,5 @@ add_library(quirc STATIC
quirc/lib/quirc.c
quirc/lib/version_db.c
)
set_target_properties(quirc PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_include_directories(quirc PUBLIC quirc/lib)

View File

@@ -3,812 +3,74 @@ import QtQuick 2.9
Object {
//Font Awesome version 5.15.3
FontLoader {
id: regular
source: "./fa-regular-400.ttf"
source: "./fa-regular-400.otf"
}
FontLoader {
id: brands
source: "./fa-brands-400.ttf"
source: "./fa-brands-400.otf"
}
FontLoader {
id: solid
source: "./fa-solid-900.ttf"
source: "./fa-solid-900.otf"
}
property string fontFamily: regular.name
property string fontFamilyBrands: brands.name
property string fontFamilySolid: solid.name
// Icons
// Icons used in Monero GUI (Font Awesome version 5.15.3)
// To add new icons, check unicodes in Font Awesome Free's Cheatsheet:
// https://fontawesome.com/v5/cheatsheet/free/solid
// https://fontawesome.com/v5/cheatsheet/free/regular
// https://fontawesome.com/v5/cheatsheet/free/brands
property string addressBook : "\uf2b9"
property string addressBookO : "\uf2ba"
property string addressCard : "\uf2bb"
property string addressCardO : "\uf2bc"
property string adjust : "\uf042"
property string adn : "\uf170"
property string alignCenter : "\uf037"
property string alignJustify : "\uf039"
property string alignLeft : "\uf036"
property string alignRight : "\uf038"
property string amazon : "\uf270"
property string ambulance : "\uf0f9"
property string americanSignLanguageInterpreting : "\uf2a3"
property string anchor : "\uf13d"
property string android : "\uf17b"
property string angellist : "\uf209"
property string angleDoubleDown : "\uf103"
property string angleDoubleLeft : "\uf100"
property string angleDoubleRight : "\uf101"
property string angleDoubleUp : "\uf102"
property string angleDown : "\uf107"
property string angleLeft : "\uf104"
property string angleRight : "\uf105"
property string angleUp : "\uf106"
property string apple : "\uf179"
property string archive : "\uf187"
property string areaChart : "\uf1fe"
property string arrowCircleDown : "\uf0ab"
property string arrowCircleLeft : "\uf0a8"
property string arrowCircleODown : "\uf01a"
property string arrowCircleOLeft : "\uf190"
property string arrowCircleORight : "\uf18e"
property string arrowCircleOUp : "\uf01b"
property string arrowCircleRight : "\uf0a9"
property string arrowCircleUp : "\uf0aa"
property string arrowDown : "\uf063"
property string arrowLeft : "\uf060"
property string arrowRight : "\uf061"
property string arrowUp : "\uf062"
property string arrows : "\uf047"
property string arrowsAlt : "\uf0b2"
property string arrowsH : "\uf07e"
property string arrowsV : "\uf07d"
property string aslInterpreting : "\uf2a3"
property string assistiveListeningSystems : "\uf2a2"
property string asterisk : "\uf069"
property string at : "\uf1fa"
property string audioDescription : "\uf29e"
property string automobile : "\uf1b9"
property string backward : "\uf04a"
property string balanceScale : "\uf24e"
property string ban : "\uf05e"
property string bandcamp : "\uf2d5"
property string bank : "\uf19c"
property string barChart : "\uf080"
property string barChartO : "\uf080"
property string barcode : "\uf02a"
property string bars : "\uf0c9"
property string bath : "\uf2cd"
property string bathtub : "\uf2cd"
property string battery : "\uf240"
property string battery0 : "\uf244"
property string battery1 : "\uf243"
property string battery2 : "\uf242"
property string battery3 : "\uf241"
property string battery4 : "\uf240"
property string batteryEmpty : "\uf244"
property string batteryFull : "\uf240"
property string batteryHalf : "\uf242"
property string batteryQuarter : "\uf243"
property string batteryThreeQuarters : "\uf241"
property string bed : "\uf236"
property string beer : "\uf0fc"
property string behance : "\uf1b4"
property string behanceSquare : "\uf1b5"
property string bell : "\uf0f3"
property string bellO : "\uf0a2"
property string bellSlash : "\uf1f6"
property string bellSlashO : "\uf1f7"
property string bicycle : "\uf206"
property string binoculars : "\uf1e5"
property string birthdayCake : "\uf1fd"
property string bitbucket : "\uf171"
property string bitbucketSquare : "\uf172"
property string bitcoin : "\uf15a"
property string blackTie : "\uf27e"
property string blind : "\uf29d"
property string bluetooth : "\uf293"
property string bluetoothB : "\uf294"
property string bold : "\uf032"
property string bolt : "\uf0e7"
property string bomb : "\uf1e2"
property string book : "\uf02d"
property string bookmark : "\uf02e"
property string bookmarkO : "\uf097"
property string braille : "\uf2a1"
property string briefcase : "\uf0b1"
property string btc : "\uf15a"
property string bug : "\uf188"
property string building : "\uf1ad"
property string buildingO : "\uf0f7"
property string bullhorn : "\uf0a1"
property string bullseye : "\uf140"
property string bus : "\uf207"
property string buysellads : "\uf20d"
property string cab : "\uf1ba"
property string calculator : "\uf1ec"
property string calendar : "\uf073"
property string calendarCheckO : "\uf274"
property string calendarMinusO : "\uf272"
property string calendarO : "\uf133"
property string calendarPlusO : "\uf271"
property string calendarTimesO : "\uf273"
property string camera : "\uf030"
property string cameraRetro : "\uf083"
property string car : "\uf1b9"
property string caretDown : "\uf0d7"
property string caretLeft : "\uf0d9"
property string caretRight : "\uf0da"
property string caretSquareODown : "\uf150"
property string caretSquareOLeft : "\uf191"
property string caretSquareORight : "\uf152"
property string caretSquareOUp : "\uf151"
property string caretUp : "\uf0d8"
property string cartArrowDown : "\uf218"
property string cartPlus : "\uf217"
property string cashRegister: "\uf788"
property string cc : "\uf20a"
property string ccAmex : "\uf1f3"
property string ccDinersClub : "\uf24c"
property string ccDiscover : "\uf1f2"
property string ccJcb : "\uf24b"
property string ccMastercard : "\uf1f1"
property string ccPaypal : "\uf1f4"
property string ccStripe : "\uf1f5"
property string ccVisa : "\uf1f0"
property string certificate : "\uf0a3"
property string chain : "\uf0c1"
property string chainBroken : "\uf127"
property string check : "\uf00c"
property string checkCircle : "\uf058"
property string checkCircleO : "\uf05d"
property string checkSquare : "\uf14a"
property string checkSquareO : "\uf046"
property string chevronCircleDown : "\uf13a"
property string chevronCircleLeft : "\uf137"
property string chevronCircleRight : "\uf138"
property string chevronCircleUp : "\uf139"
property string chevronDown : "\uf078"
property string chevronLeft : "\uf053"
property string chevronRight : "\uf054"
property string chevronUp : "\uf077"
property string child : "\uf1ae"
property string chrome : "\uf268"
property string circle : "\uf111"
property string circleO : "\uf10c"
property string circleONotch : "\uf1ce"
property string circleThin : "\uf1db"
property string checkCircle: "\uf058"
property string clipboard : "\uf0ea"
property string clockO : "\uf017"
property string clone : "\uf24d"
property string close : "\uf00d"
property string cloud : "\uf0c2"
property string cloudDownload : "\uf0ed"
property string cloudUpload : "\uf0ee"
property string cny : "\uf157"
property string code : "\uf121"
property string codeFork : "\uf126"
property string codepen : "\uf1cb"
property string codiepie : "\uf284"
property string coffee : "\uf0f4"
property string cog : "\uf013"
property string cogs : "\uf085"
property string columns : "\uf0db"
property string comment : "\uf075"
property string commentO : "\uf0e5"
property string commenting : "\uf27a"
property string commentingO : "\uf27b"
property string comments : "\uf086"
property string commentsO : "\uf0e6"
property string compass : "\uf14e"
property string compress : "\uf066"
property string connectdevelop : "\uf20e"
property string contao : "\uf26d"
property string copy : "\uf0c5"
property string copyright : "\uf1f9"
property string creativeCommons : "\uf25e"
property string creditCard : "\uf09d"
property string creditCardAlt : "\uf283"
property string crop : "\uf125"
property string crosshairs : "\uf05b"
property string css3 : "\uf13c"
property string cube : "\uf1b2"
property string cubes : "\uf1b3"
property string cut : "\uf0c4"
property string cutlery : "\uf0f5"
property string dashboard : "\uf0e4"
property string dashcube : "\uf210"
property string database : "\uf1c0"
property string deaf : "\uf2a4"
property string deafness : "\uf2a4"
property string dedent : "\uf03b"
property string delicious : "\uf1a5"
property string desktop : "\uf108"
property string deviantart : "\uf1bd"
property string diamond : "\uf219"
property string digg : "\uf1a6"
property string dollar : "\uf155"
property string dotCircleO : "\uf192"
property string download : "\uf019"
property string dribbble : "\uf17d"
property string driversLicense : "\uf2c2"
property string driversLicenseO : "\uf2c3"
property string dropbox : "\uf16b"
property string drupal : "\uf1a9"
property string edge : "\uf282"
property string edit : "\uf044"
property string eercast : "\uf2da"
property string eject : "\uf052"
property string ellipsisH : "\uf141"
property string ellipsisV : "\uf142"
property string empire : "\uf1d1"
property string envelope : "\uf0e0"
property string envelopeO : "\uf003"
property string envelopeOpen : "\uf2b6"
property string envelopeOpenO : "\uf2b7"
property string envelopeSquare : "\uf199"
property string envira : "\uf299"
property string eraser : "\uf12d"
property string etsy : "\uf2d7"
property string eur : "\uf153"
property string euro : "\uf153"
property string exchange : "\uf0ec"
property string exclamation : "\uf12a"
property string exclamationCircle : "\uf06a"
property string exclamationTriangle : "\uf071"
property string expand : "\uf065"
property string expeditedssl : "\uf23e"
property string externalLink : "\uf08e"
property string externalLinkSquare : "\uf14c"
property string eye : "\uf06e"
property string eyeSlash : "\uf070"
property string eyedropper : "\uf1fb"
property string fa : "\uf2b4"
property string facebook : "\uf09a"
property string facebookF : "\uf09a"
property string facebookOfficial : "\uf230"
property string facebookSquare : "\uf082"
property string fastBackward : "\uf049"
property string fastForward : "\uf050"
property string fax : "\uf1ac"
property string feed : "\uf09e"
property string female : "\uf182"
property string fighterJet : "\uf0fb"
property string file : "\uf15b"
property string fileArchiveO : "\uf1c6"
property string fileAudioO : "\uf1c7"
property string fileCodeO : "\uf1c9"
property string fileExcelO : "\uf1c3"
property string fileImageO : "\uf1c5"
property string fileMovieO : "\uf1c8"
property string fileO : "\uf016"
property string filePdfO : "\uf1c1"
property string filePhotoO : "\uf1c5"
property string filePictureO : "\uf1c5"
property string filePowerpointO : "\uf1c4"
property string fileSoundO : "\uf1c7"
property string fileText : "\uf15c"
property string fileTextO : "\uf0f6"
property string fileVideoO : "\uf1c8"
property string fileWordO : "\uf1c2"
property string fileZipO : "\uf1c6"
property string filesO : "\uf0c5"
property string film : "\uf008"
property string filter : "\uf0b0"
property string fire : "\uf06d"
property string fireExtinguisher : "\uf134"
property string firefox : "\uf269"
property string firstOrder : "\uf2b0"
property string flag : "\uf024"
property string flagCheckered : "\uf11e"
property string flagO : "\uf11d"
property string flash : "\uf0e7"
property string flask : "\uf0c3"
property string flickr : "\uf16e"
property string floppyO : "\uf0c7"
property string folder : "\uf07b"
property string folderO : "\uf114"
property string folderOpen : "\uf07c"
property string folderOpenO : "\uf115"
property string font : "\uf031"
property string fontAwesome : "\uf2b4"
property string fonticons : "\uf280"
property string fortAwesome : "\uf286"
property string forumbee : "\uf211"
property string forward : "\uf04e"
property string foursquare : "\uf180"
property string freeCodeCamp : "\uf2c5"
property string frownO : "\uf119"
property string futbolO : "\uf1e3"
property string gamepad : "\uf11b"
property string gavel : "\uf0e3"
property string gbp : "\uf154"
property string ge : "\uf1d1"
property string gear : "\uf013"
property string gears : "\uf085"
property string genderless : "\uf22d"
property string getPocket : "\uf265"
property string gg : "\uf260"
property string ggCircle : "\uf261"
property string gift : "\uf06b"
property string git : "\uf1d3"
property string gitSquare : "\uf1d2"
property string github : "\uf09b"
property string githubAlt : "\uf113"
property string githubSquare : "\uf092"
property string gitlab : "\uf296"
property string gittip : "\uf184"
property string glass : "\uf000"
property string glide : "\uf2a5"
property string glideG : "\uf2a6"
property string globe : "\uf0ac"
property string google : "\uf1a0"
property string googlePlus : "\uf0d5"
property string googlePlusCircle : "\uf2b3"
property string googlePlusOfficial : "\uf2b3"
property string googlePlusSquare : "\uf0d4"
property string googleWallet : "\uf1ee"
property string graduationCap : "\uf19d"
property string gratipay : "\uf184"
property string grav : "\uf2d6"
property string group : "\uf0c0"
property string hSquare : "\uf0fd"
property string hackerNews : "\uf1d4"
property string handGrabO : "\uf255"
property string handLizardO : "\uf258"
property string handODown : "\uf0a7"
property string handOLeft : "\uf0a5"
property string handORight : "\uf0a4"
property string handOUp : "\uf0a6"
property string handPaperO : "\uf256"
property string handPeaceO : "\uf25b"
property string handPointerO : "\uf25a"
property string handRockO : "\uf255"
property string handScissorsO : "\uf257"
property string handSpockO : "\uf259"
property string handStopO : "\uf256"
property string handshakeO : "\uf2b5"
property string hardOfHearing : "\uf2a4"
property string hashtag : "\uf292"
property string hddO : "\uf0a0"
property string header : "\uf1dc"
property string headphones : "\uf025"
property string heart : "\uf004"
property string heartO : "\uf08a"
property string heartbeat : "\uf21e"
property string history : "\uf1da"
property string home : "\uf015"
property string hospitalO : "\uf0f8"
property string hotel : "\uf236"
property string hourglass : "\uf254"
property string hourglass1 : "\uf251"
property string hourglass2 : "\uf252"
property string hourglass3 : "\uf253"
property string hourglassEnd : "\uf253"
property string hourglassHalf : "\uf252"
property string hourglassO : "\uf250"
property string hourglassStart : "\uf251"
property string houzz : "\uf27c"
property string html5 : "\uf13b"
property string iCursor : "\uf246"
property string idBadge : "\uf2c1"
property string idCard : "\uf2c2"
property string idCardO : "\uf2c3"
property string ils : "\uf20b"
property string image : "\uf03e"
property string imdb : "\uf2d8"
property string inbox : "\uf01c"
property string indent : "\uf03c"
property string industry : "\uf275"
property string houseUser : "\ue065"
property string infinity : "\uf534"
property string info : "\uf129"
property string infoCircle : "\uf05a"
property string inr : "\uf156"
property string instagram : "\uf16d"
property string institution : "\uf19c"
property string internetExplorer : "\uf26b"
property string intersex : "\uf224"
property string ioxhost : "\uf208"
property string italic : "\uf033"
property string joomla : "\uf1aa"
property string jpy : "\uf157"
property string jsfiddle : "\uf1cc"
property string key : "\uf084"
property string keyboardO : "\uf11c"
property string krw : "\uf159"
property string language : "\uf1ab"
property string laptop : "\uf109"
property string lastfm : "\uf202"
property string lastfmSquare : "\uf203"
property string leaf : "\uf06c"
property string leanpub : "\uf212"
property string legal : "\uf0e3"
property string lemonO : "\uf094"
property string levelDown : "\uf149"
property string levelUp : "\uf148"
property string lifeBouy : "\uf1cd"
property string lifeBuoy : "\uf1cd"
property string lifeRing : "\uf1cd"
property string lifeSaver : "\uf1cd"
property string lightbulbO : "\uf0eb"
property string lineChart : "\uf201"
property string link : "\uf0c1"
property string linkedin : "\uf0e1"
property string linkedinSquare : "\uf08c"
property string linode : "\uf2b8"
property string linux : "\uf17c"
property string list : "\uf03a"
property string listAlt : "\uf022"
property string listOl : "\uf0cb"
property string listUl : "\uf0ca"
property string locationArrow : "\uf124"
property string lock : "\uf023"
property string longArrowDown : "\uf175"
property string longArrowLeft : "\uf177"
property string longArrowRight : "\uf178"
property string longArrowUp : "\uf176"
property string lowVision : "\uf2a8"
property string magic : "\uf0d0"
property string magnet : "\uf076"
property string mailForward : "\uf064"
property string mailReply : "\uf112"
property string mailReplyAll : "\uf122"
property string male : "\uf183"
property string map : "\uf279"
property string mapMarker : "\uf041"
property string mapO : "\uf278"
property string mapPin : "\uf276"
property string mapSigns : "\uf277"
property string mars : "\uf222"
property string marsDouble : "\uf227"
property string marsStroke : "\uf229"
property string marsStrokeH : "\uf22b"
property string marsStrokeV : "\uf22a"
property string maxcdn : "\uf136"
property string meanpath : "\uf20c"
property string medium : "\uf23a"
property string medkit : "\uf0fa"
property string meetup : "\uf2e0"
property string mehO : "\uf11a"
property string mercury : "\uf223"
property string microchip : "\uf2db"
property string microphone : "\uf130"
property string microphoneSlash : "\uf131"
property string magnifyingGlass : "\uf002"
property string minus : "\uf068"
property string minusCircle : "\uf056"
property string minusSquare : "\uf146"
property string minusSquareO : "\uf147"
property string mixcloud : "\uf289"
property string mobile : "\uf10b"
property string mobilePhone : "\uf10b"
property string modx : "\uf285"
property string money : "\uf0d6"
property string moonO : "\uf186"
property string mortarBoard : "\uf19d"
property string motorcycle : "\uf21c"
property string mousePointer : "\uf245"
property string music : "\uf001"
property string navicon : "\uf0c9"
property string neuter : "\uf22c"
property string newspaperO : "\uf1ea"
property string objectGroup : "\uf247"
property string objectUngroup : "\uf248"
property string odnoklassniki : "\uf263"
property string odnoklassnikiSquare : "\uf264"
property string opencart : "\uf23d"
property string openid : "\uf19b"
property string opera : "\uf26a"
property string optinMonster : "\uf23c"
property string outdent : "\uf03b"
property string pagelines : "\uf18c"
property string paintBrush : "\uf1fc"
property string paperPlane : "\uf1d8"
property string paperPlaneO : "\uf1d9"
property string paperclip : "\uf0c6"
property string paragraph : "\uf1dd"
property string monero : "\uf3d0"
property string paste : "\uf0ea"
property string pause : "\uf04c"
property string pauseCircle : "\uf28b"
property string pauseCircleO : "\uf28c"
property string paw : "\uf1b0"
property string paypal : "\uf1ed"
property string pencil : "\uf040"
property string pencilSquare : "\uf14b"
property string pencilSquareO : "\uf044"
property string percent : "\uf295"
property string phone : "\uf095"
property string phoneSquare : "\uf098"
property string photo : "\uf03e"
property string pictureO : "\uf03e"
property string pieChart : "\uf200"
property string piedPiper : "\uf2ae"
property string piedPiperAlt : "\uf1a8"
property string piedPiperPp : "\uf1a7"
property string pinterest : "\uf0d2"
property string pinterestP : "\uf231"
property string pinterestSquare : "\uf0d3"
property string plane : "\uf072"
property string play : "\uf04b"
property string playCircle : "\uf144"
property string playCircleO : "\uf01d"
property string plug : "\uf1e6"
property string plus : "\uf067"
property string plusCircle : "\uf055"
property string plusSquare : "\uf0fe"
property string plusSquareO : "\uf196"
property string podcast : "\uf2ce"
property string powerOff : "\uf011"
property string printIcon : "\uf02f"
property string productHunt : "\uf288"
property string puzzlePiece : "\uf12e"
property string qq : "\uf1d6"
property string qrcode : "\uf029"
property string question : "\uf128"
property string questionCircle : "\uf059"
property string questionCircleO : "\uf29c"
property string quora : "\uf2c4"
property string quoteLeft : "\uf10d"
property string quoteRight : "\uf10e"
property string ra : "\uf1d0"
property string random : "\uf074"
property string ravelry : "\uf2d9"
property string rebel : "\uf1d0"
property string recycle : "\uf1b8"
property string reddit : "\uf1a1"
property string redditAlien : "\uf281"
property string redditSquare : "\uf1a2"
property string refresh : "\uf021"
property string registered : "\uf25d"
property string remove : "\uf00d"
property string renren : "\uf18b"
property string reorder : "\uf0c9"
property string repeat : "\uf01e"
property string reply : "\uf112"
property string replyAll : "\uf122"
property string resistance : "\uf1d0"
property string retweet : "\uf079"
property string rmb : "\uf157"
property string road : "\uf018"
property string rocket : "\uf135"
property string rotateLeft : "\uf0e2"
property string rotateRight : "\uf01e"
property string rouble : "\uf158"
property string rss : "\uf09e"
property string rssSquare : "\uf143"
property string rub : "\uf158"
property string ruble : "\uf158"
property string rupee : "\uf156"
property string s15 : "\uf2cd"
property string safari : "\uf267"
property string save : "\uf0c7"
property string scissors : "\uf0c4"
property string scribd : "\uf28a"
property string search : "\uf002"
property string searchMinus : "\uf010"
property string searchPlus : "\uf00e"
property string sellsy : "\uf213"
property string send : "\uf1d8"
property string sendO : "\uf1d9"
property string server : "\uf233"
property string share : "\uf064"
property string shareAlt : "\uf1e0"
property string shareAltSquare : "\uf1e1"
property string shareSquare : "\uf14d"
property string shareSquareO : "\uf045"
property string shekel : "\uf20b"
property string sheqel : "\uf20b"
property string shield : "\uf132"
property string ship : "\uf21a"
property string shirtsinbulk : "\uf214"
property string shoppingBag : "\uf290"
property string shoppingBasket : "\uf291"
property string shoppingCart : "\uf07a"
property string shower : "\uf2cc"
property string signIn : "\uf090"
property string signLanguage : "\uf2a7"
property string shieldAlt : "\uf3ed"
property string signOutAlt : "\uf2f5"
property string signOut : "\uf08b"
property string signal : "\uf012"
property string signing : "\uf2a7"
property string simplybuilt : "\uf215"
property string sitemap : "\uf0e8"
property string skyatlas : "\uf216"
property string skype : "\uf17e"
property string slack : "\uf198"
property string sliders : "\uf1de"
property string slideshare : "\uf1e7"
property string smileO : "\uf118"
property string snapchat : "\uf2ab"
property string snapchatGhost : "\uf2ac"
property string snapchatSquare : "\uf2ad"
property string snowflakeO : "\uf2dc"
property string soccerBallO : "\uf1e3"
property string sort : "\uf0dc"
property string sortAlphaAsc : "\uf15d"
property string sortAlphaDesc : "\uf15e"
property string sortAmountAsc : "\uf160"
property string sortAmountDesc : "\uf161"
property string sortAsc : "\uf0de"
property string sortDesc : "\uf0dd"
property string sortDown : "\uf0dd"
property string sortNumericAsc : "\uf162"
property string sortNumericDesc : "\uf163"
property string sortUp : "\uf0de"
property string soundcloud : "\uf1be"
property string spaceShuttle : "\uf197"
property string spinner : "\uf110"
property string spoon : "\uf1b1"
property string spotify : "\uf1bc"
property string square : "\uf0c8"
property string squareO : "\uf096"
property string stackExchange : "\uf18d"
property string stackOverflow : "\uf16c"
property string star : "\uf005"
property string starHalf : "\uf089"
property string starHalfEmpty : "\uf123"
property string starHalfFull : "\uf123"
property string starHalfO : "\uf123"
property string starO : "\uf006"
property string steam : "\uf1b6"
property string steamSquare : "\uf1b7"
property string stepBackward : "\uf048"
property string stepForward : "\uf051"
property string stethoscope : "\uf0f1"
property string stickyNote : "\uf249"
property string stickyNoteO : "\uf24a"
property string stop : "\uf04d"
property string stopCircle : "\uf28d"
property string stopCircleO : "\uf28e"
property string streetView : "\uf21d"
property string strikethrough : "\uf0cc"
property string stumbleupon : "\uf1a4"
property string stumbleuponCircle : "\uf1a3"
property string subscript : "\uf12c"
property string subway : "\uf239"
property string suitcase : "\uf0f2"
property string sunO : "\uf185"
property string superpowers : "\uf2dd"
property string superscript : "\uf12b"
property string support : "\uf1cd"
property string table : "\uf0ce"
property string tablet : "\uf10a"
property string tachometer : "\uf0e4"
property string tag : "\uf02b"
property string tags : "\uf02c"
property string tasks : "\uf0ae"
property string taxi : "\uf1ba"
property string telegram : "\uf2c6"
property string television : "\uf26c"
property string tencentWeibo : "\uf1d5"
property string terminal : "\uf120"
property string textHeight : "\uf034"
property string textWidth : "\uf035"
property string th : "\uf00a"
property string thLarge : "\uf009"
property string thList : "\uf00b"
property string themeisle : "\uf2b2"
property string thermometer : "\uf2c7"
property string thermometer0 : "\uf2cb"
property string thermometer1 : "\uf2ca"
property string thermometer2 : "\uf2c9"
property string thermometer3 : "\uf2c8"
property string thermometer4 : "\uf2c7"
property string thermometerEmpty : "\uf2cb"
property string thermometerFull : "\uf2c7"
property string thermometerHalf : "\uf2c9"
property string thermometerQuarter : "\uf2ca"
property string thermometerThreeQuarters : "\uf2c8"
property string thumbTack : "\uf08d"
property string thumbsDown : "\uf165"
property string thumbsODown : "\uf088"
property string thumbsOUp : "\uf087"
property string thumbsUp : "\uf164"
property string ticket : "\uf145"
property string times : "\uf00d"
property string timesCircle : "\uf057"
property string timesCircleO : "\uf05c"
property string timesRectangle : "\uf2d3"
property string timesRectangleO : "\uf2d4"
property string tint : "\uf043"
property string toggleDown : "\uf150"
property string toggleLeft : "\uf191"
property string toggleOff : "\uf204"
property string toggleOn : "\uf205"
property string toggleRight : "\uf152"
property string toggleUp : "\uf151"
property string trademark : "\uf25c"
property string train : "\uf238"
property string transgender : "\uf224"
property string transgenderAlt : "\uf225"
property string trash : "\uf1f8"
property string trashO : "\uf014"
property string tree : "\uf1bb"
property string trello : "\uf181"
property string tripadvisor : "\uf262"
property string trophy : "\uf091"
property string truck : "\uf0d1"
property string tryIcon : "\uf195"
property string tty : "\uf1e4"
property string tumblr : "\uf173"
property string tumblrSquare : "\uf174"
property string turkishLira : "\uf195"
property string tv : "\uf26c"
property string twitch : "\uf1e8"
property string twitter : "\uf099"
property string twitterSquare : "\uf081"
property string umbrella : "\uf0e9"
property string underline : "\uf0cd"
property string undo : "\uf0e2"
property string universalAccess : "\uf29a"
property string university : "\uf19c"
property string unlink : "\uf127"
property string unlock : "\uf09c"
property string unlockAlt : "\uf13e"
property string unsorted : "\uf0dc"
property string upload : "\uf093"
property string usb : "\uf287"
property string usd : "\uf155"
property string user : "\uf007"
property string userCircle : "\uf2bd"
property string userCircleO : "\uf2be"
property string userMd : "\uf0f0"
property string userO : "\uf2c0"
property string userPlus : "\uf234"
property string userSecret : "\uf21b"
property string userTimes : "\uf235"
property string users : "\uf0c0"
property string vcard : "\uf2bb"
property string vcardO : "\uf2bc"
property string venus : "\uf221"
property string venusDouble : "\uf226"
property string venusMars : "\uf228"
property string viacoin : "\uf237"
property string viadeo : "\uf2a9"
property string viadeoSquare : "\uf2aa"
property string videoCamera : "\uf03d"
property string vimeo : "\uf27d"
property string vimeoSquare : "\uf194"
property string vine : "\uf1ca"
property string vk : "\uf189"
property string volumeControlPhone : "\uf2a0"
property string volumeDown : "\uf027"
property string volumeOff : "\uf026"
property string volumeUp : "\uf028"
property string warning : "\uf071"
property string wechat : "\uf1d7"
property string weibo : "\uf18a"
property string weixin : "\uf1d7"
property string whatsapp : "\uf232"
property string wheelchair : "\uf193"
property string wheelchairAlt : "\uf29b"
property string wifi : "\uf1eb"
property string wikipediaW : "\uf266"
property string windowClose : "\uf2d3"
property string windowCloseO : "\uf2d4"
property string windowMaximize : "\uf2d0"
property string windowMinimize : "\uf2d1"
property string windowRestore : "\uf2d2"
property string windows : "\uf17a"
property string won : "\uf159"
property string wordpress : "\uf19a"
property string wpbeginner : "\uf297"
property string wpexplorer : "\uf2de"
property string wpforms : "\uf298"
property string wrench : "\uf0ad"
property string xing : "\uf168"
property string xingSquare : "\uf169"
property string yCombinator : "\uf23b"
property string yCombinatorSquare : "\uf1d4"
property string yahoo : "\uf19e"
property string yc : "\uf23b"
property string ycSquare : "\uf1d4"
property string yelp : "\uf1e9"
property string yen : "\uf157"
property string yoast : "\uf2b1"
property string youtube : "\uf167"
property string youtubePlay : "\uf16a"
property string youtubeSquare : "\uf166"
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
images/appicon.icns Executable file → Normal file

Binary file not shown.

BIN
images/ledgerNanoS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
images/ledgerNanoSPlus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
images/ledgerNanoX.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 969 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 742 B

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

BIN
images/trezor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
images/trezor@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

View File

@@ -1,4 +1,4 @@
; Monero Oxygen Orion GUI Wallet Installer for Windows
; Monero Fluorine Fermi GUI Wallet Installer for Windows
; Copyright (c) 2017-2020, The Monero Project
; See LICENSE
#define GuiVersion GetFileVersion("bin\monero-wallet-gui.exe")
@@ -16,7 +16,7 @@ DefaultGroupName=Monero GUI Wallet
UninstallDisplayIcon={app}\monero-wallet-gui.exe
PrivilegesRequired=admin
ArchitecturesInstallIn64BitMode=x64
ArchitecturesAllowed=x64
ArchitecturesAllowed=x64 arm64
WizardSmallImageFile=WizardSmallImage.bmp
WizardImageFile=WelcomeImage.bmp
DisableWelcomePage=no
@@ -54,6 +54,9 @@ Name: "en"; MessagesFile: "compiler:Default.isl"
; Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"
; Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl"
[Dirs]
Name: "{app}";
Name: "{app}\p2pool"; Permissions: users-full
[Files]
; The use of the flag "ignoreversion" for the following entries leads to the following behaviour:
@@ -135,6 +138,7 @@ Type: filesandordirs; Name: "{app}\QtQuick.2"
Type: filesandordirs; Name: "{app}\Material"
Type: filesandordirs; Name: "{app}\Universal"
Type: filesandordirs; Name: "{app}\scenegraph"
Type: filesandordirs; Name: "{app}\p2pool"
Type: files; Name: "{app}\D3Dcompiler_47.dll"
Type: files; Name: "{app}\libbz2-1.dll"
Type: files; Name: "{app}\libEGL.dll"

View File

@@ -6,7 +6,7 @@ Copyright (c) 2017-2020, The Monero Project
This is a *Inno Setup* script `Monero.iss` plus some related files
that allows you to build a standalone Windows installer (.exe) for
the GUI wallet that comes with the Oxygen Orion release of Monero.
the GUI wallet that comes with the Fluorine Fermi release of Monero.
This turns the GUI wallet into a more or less standard Windows program,
by default installed into a subdirectory of `C:\Program Files`, a
@@ -18,7 +18,7 @@ Monero.
As the setup script in file [Monero.iss](Monero.iss) has to list many
files and directories of the GUI wallet package to install by name,
this version of the script only works with exactly the GUI wallet
for Monero release *Oxygen Orion* that you find on
for Monero release *Fluorine Fermi* that you find on
[the official download page](https://getmonero.org/downloads/).
It should however be easy to modify the script for future
@@ -39,8 +39,8 @@ Note that the installer build process is now reproducible / deterministic. For d
The build steps in detail:
1. Install *Inno Setup*. You can get it from [here](http://www.jrsoftware.org/isdl.php)
2. Get the Inno Setup script plus related files by cloning the whole [monero-gui GitHub repository](https://github.com/monero-project/monero-gui); you will only need the files in the installer directory `installers\windows` however. Depending on development state, additionally instead of simply using `master` you may have to checkout a specific branch, like `release-v0.17`.
3. The setup script is written to take the GUI wallet files from a subdirectory named `bin`; so create `installers\windows\bin`, get the zip file of the GUI wallet from [here](https://getmonero.org/downloads/), unpack it somewhere, and copy all the files and subdirectories in the single subdirectory there (currently named `monero-gui-0.17.0.0`) to this `bin` subdirectory
2. Get the Inno Setup script plus related files by cloning the whole [monero-gui GitHub repository](https://github.com/monero-project/monero-gui); you will only need the files in the installer directory `installers\windows` however.
3. The setup script is written to take the GUI wallet files from a subdirectory named `bin`; so create `installers\windows\bin`, get the zip file of the GUI wallet from [here](https://getmonero.org/downloads/), unpack it somewhere, and copy all the files and subdirectories in the single subdirectory there (currently named `monero-gui-0.18.0.0`) to this `bin` subdirectory
4. Start Inno Setup, load `Monero.iss` and compile it
5. The result i.e. the finished installer will be the file `mysetup.exe` in the `installers\windows\Output` subdirectory

View File

@@ -1,10 +1,10 @@
<html>
<head>
<title>Monero Oxygen Orion GUI Wallet</title>
<title>Monero Fluorine Fermi GUI Wallet</title>
</head>
<body style="font-family: Arial, Helvetica, sans-serif">
<h1>Monero Oxygen Orion GUI Wallet</h1>
<h1>Monero Fluorine Fermi GUI Wallet</h1>
<p>Copyright (c) 2014-2020, The Monero Project</p>
@@ -22,7 +22,7 @@
<h2>Content of the Package</h2>
<p>You just installed the <i>Monero GUI wallet</i> for Windows, release Oxygen Orion, version {#GuiVersion}.
<p>You just installed the <i>Monero GUI wallet</i> for Windows, release Fluorine Fermi, version {#GuiVersion}.
The wallet enables you to send and receive Moneroj in a secure and very private way.
</p>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 440 KiB

View File

@@ -61,26 +61,18 @@ function checkSignature(signature) {
if ((signature.length - 12) % 88 != 0)
return false;
return check256(signature, signature.length);
} else if (signature.indexOf("ReserveProofV") === 0) {
if ((signature.length - 14) % 447 != 0)
return false;
return check256(signature, signature.length);
}
return false;
}
function isValidOpenAliasAddress(address) {
address = address.trim()
var dot = address.indexOf('.')
if (dot < 0)
return false
// we can get an awful lot of valid domains, including non ASCII chars... accept anything
return true
}
function makeQRCodeString(addr, amount) {
var XMR_URI_SCHEME = "monero:"
var XMR_AMOUNT = "tx_amount"
var qrCodeString =""
qrCodeString += (XMR_URI_SCHEME + addr)
if (amount !== undefined && amount !== ""){
qrCodeString += ("?" + XMR_AMOUNT + "=" + amount)
}
return qrCodeString
// there should be something after the .
// make sure it is not some kind of floating number
return address.length > 2 && isNaN(parseFloat(address)) && address.indexOf('.') >= 0
}

View File

@@ -115,3 +115,18 @@ function capitalize(s){
function removeTrailingZeros(value) {
return (value + '').replace(/(\.\d*?)0+$/, '$1').replace(/\.$/, '');
}
function parseDateStringOrRestoreHeightAsInteger(value) {
// Parse date string or restore height as integer
var restoreHeight = 0;
if (value.indexOf('-') === 4 && value.length === 10) {
restoreHeight = Wizard.getApproximateBlockchainHeight(value, Utils.netTypeToString());
} else if (parseInt(value.substring(0, 4)) >= 2014 && parseInt(value.substring(0, 4)) <= 2025 && value.length === 8) {
// Correct date typed in a wrong format (20201225 instead of 2020-12-25)
var restoreHeightHyphenated = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6, 8);
restoreHeight = Wizard.getApproximateBlockchainHeight(restoreHeightHyphenated, Utils.netTypeToString());
} else {
restoreHeight = parseInt(value);
}
return restoreHeight;
}

View File

@@ -1,4 +1,5 @@
var flagsCustomDecorations = (Qt.FramelessWindowHint | Qt.CustomizeWindowHint | Qt.WindowSystemMenuHint | Qt.Window);
var flagsCustomDecorationsBase = (Qt.FramelessWindowHint | Qt.CustomizeWindowHint | Qt.WindowSystemMenuHint | Qt.Window);
var flagsCustomDecorations = isWindows ? (flagsCustomDecorationsBase | Qt.WindowMinimizeButtonHint) : flagsCustomDecorationsBase;
var flags = (Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint | Qt.WindowMaximizeButtonHint | Qt.WindowFullscreenButtonHint);
/**

View File

@@ -82,6 +82,17 @@ function walletPathExists(accountsDir, directory, filename, isIOS, walletManager
return false;
}
function unusedWalletName(directory, filename, walletManager) {
for (var i = 0; i < 100; i++) {
var walletName = filename + (i > 0 ? "_" + i : "");
if (!walletManager.walletExists(directory + "/" + walletName + "/" + walletName)) {
return walletName;
}
}
return filename;
}
function isAscii(str){
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 127)
@@ -153,9 +164,9 @@ function getApproximateBlockchainHeight(_date, _nettype){
secondsPerBlock = secondsPerBlockV2;
}
if(_nettype == "Testnet"){
if(_nettype == "Testnet" || _nettype == "Stagenet"){
// testnet got some huge rollbacks, so the estimation is way off
var approximateTestnetRolledBackBlocks = 342100;
var approximateTestnetRolledBackBlocks = _nettype == "Testnet" ? 342100 : 30000;
if(approxBlockchainHeight > approximateTestnetRolledBackBlocks)
approxBlockchainHeight -= approximateTestnetRolledBackBlocks
}

BIN
lang/flags/el.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
lang/flags/is.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
lang/flags/vi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@@ -61,4 +61,9 @@ Lojban
<!-- <language display_name="کورمانجی" locale="kmr_KMR" wallet_language="English" flag="/lang/flags/ku.png" qs="none"/> -->
<!-- <language display_name="বাংলা" locale="bn_BN" wallet_language="English" flag="/lang/flags/bd.png" qs="none"/> -->
<!-- <language display_name="Gaeilge" locale="ga_GA" wallet_language="English" flag="/lang/flags/irl.png" qs="none"/> -->
<language display_name="Afrikaans" locale="af_AF" wallet_language="English" flag="/lang/flags/za.png" qs="none"/>
<language display_name="Ελληνικά" locale="el_GR" wallet_language="English" flag="/lang/flags/el.png" qs="none"/>
<language display_name="தமிழ்" locale="ta_IN" wallet_language="English" flag="/lang/flags/in.png" qs="none"/>
<language display_name="Tiếng Việt" locale="vi_VN" wallet_language="English" flag="/lang/flags/vi.png" qs="none"/>
<language display_name="Íslenska" locale="is_IS" wallet_language="English" flag="/lang/flags/is.png" qs="none"/>
</languages>

209
main.qml
View File

@@ -42,6 +42,7 @@ import moneroComponents.WalletManager 1.0
import moneroComponents.PendingTransaction 1.0
import moneroComponents.NetworkType 1.0
import moneroComponents.Settings 1.0
import moneroComponents.P2PoolManager 1.0
import "components"
import "components" as MoneroComponents
@@ -62,6 +63,7 @@ ApplicationWindow {
minimumHeight: 450
property var currentItem
property var previousActiveFocusItem
property bool hideBalanceForced: false
property bool ctrlPressed: false
property alias persistentSettings : persistentSettings
@@ -92,16 +94,14 @@ ApplicationWindow {
readonly property string localDaemonAddress : "localhost:" + getDefaultDaemonRpcPort(persistentSettings.nettype)
property string currentDaemonAddress;
property int disconnectedEpoch: 0
property int estimatedBlockchainSize: 105 // GB
property int estimatedBlockchainSize: persistentSettings.pruneBlockchain ? 40 : 105 // GB
property alias viewState: rootItem.state
property string prevSplashText;
property bool splashDisplayedBeforeButtonRequest;
property int appEpoch: Math.floor((new Date).getTime() / 1000)
property bool themeTransition: false
// fiat price conversion
property real fiatPriceXMRUSD: 0
property real fiatPriceXMREUR: 0
property real fiatPrice: 0
property var fiatPriceAPIs: {
return {
"kraken": {
@@ -132,6 +132,17 @@ ApplicationWindow {
leftPanel.selectItem(page)
}
function lock() {
passwordDialog.onRejectedCallback = function() { appWindow.showWizard(); }
passwordDialog.onAcceptedCallback = function() {
if(walletPassword === passwordDialog.password)
passwordDialog.close();
else
passwordDialog.showError(qsTr("Wrong password") + translationManager.emptyString);
}
passwordDialog.open(usefulName(persistentSettings.wallet_path));
}
function sequencePressed(obj, seq) {
if(seq === undefined || !leftPanel.enabled)
return
@@ -140,6 +151,8 @@ ApplicationWindow {
return
}
// lock wallet on demand
if(seq === "Ctrl+L" && !passwordDialog.visible) lock()
if(seq === "Ctrl+S") middlePanel.state = "Transfer"
else if(seq === "Ctrl+R") middlePanel.state = "Receive"
else if(seq === "Ctrl+H") middlePanel.state = "History"
@@ -212,6 +225,9 @@ ApplicationWindow {
if (prevState) {
appWindow.viewState = prevState;
}
if (wizard.wizardState == "wizardOpenWallet1") {
wizard.wizardStateView.wizardOpenWallet1View.pageRoot.forceActiveFocus();
}
};
passwordDialog.open(usefulName(persistentSettings.wallet_path));
}
@@ -257,9 +273,6 @@ ApplicationWindow {
walletPassword,
persistentSettings.nettype,
persistentSettings.kdfRounds);
// Hide titlebar based on persistentSettings.customDecorations
titleBar.visible = persistentSettings.customDecorations;
}
function closeWallet(callback) {
@@ -308,27 +321,6 @@ ApplicationWindow {
function connectWallet(wallet) {
currentWallet = wallet
// TODO:
// When the wallet variable is undefined, it yields a zero balance.
// This can scare users, restart the GUI (as a quick fix).
//
// To reproduce, follow these steps:
// 1) Open the GUI, load up a wallet that has a balance
// 2) Settings -> close wallet
// 3) Create a new wallet
// 4) Settings -> close wallet
// 5) Open the wallet from step 1
if(!wallet || wallet === undefined || wallet.path === undefined){
informationPopup.title = qsTr("Error") + translationManager.emptyString;
informationPopup.text = qsTr("Couldn't open wallet: ") + 'please restart GUI.';
informationPopup.icon = StandardIcon.Critical
informationPopup.open()
informationPopup.onCloseCallback = function() {
appWindow.close();
}
}
walletName = usefulName(wallet.path)
viewOnly = currentWallet.viewOnly;
@@ -359,6 +351,7 @@ ApplicationWindow {
middlePanel.getProofClicked.connect(handleGetProof);
middlePanel.checkProofClicked.connect(handleCheckProof);
persistentSettings.restore_height = currentWallet.walletCreationHeight;
console.log("Recovering from seed: ", persistentSettings.is_recovering)
console.log("restore Height", persistentSettings.restore_height)
@@ -422,8 +415,8 @@ ApplicationWindow {
leftPanel.balanceString = balance
leftPanel.balanceUnlockedString = balanceU
if (middlePanel.state === "Account") {
middlePanel.accountView.balanceAllText = walletManager.displayAmount(appWindow.currentWallet.balanceAll());
middlePanel.accountView.unlockedBalanceAllText = walletManager.displayAmount(appWindow.currentWallet.unlockedBalanceAll());
middlePanel.accountView.balanceAllText = walletManager.displayAmount(appWindow.currentWallet.balanceAll()) + " XMR";
middlePanel.accountView.unlockedBalanceAllText = walletManager.displayAmount(appWindow.currentWallet.unlockedBalanceAll()) + " XMR";
}
}
@@ -488,7 +481,9 @@ ApplicationWindow {
walletInitialized = true
// check if daemon was already mining and add mining logo if true
middlePanel.advancedView.miningView.update();
if (!persistentSettings.useRemoteNode || persistentSettings.allowRemoteNodeMining) {
middlePanel.advancedView.miningView.update();
}
}
}
@@ -718,6 +713,7 @@ ApplicationWindow {
if (splash) {
appWindow.showProcessingSplash(qsTr("Waiting for daemon to stop..."));
}
p2poolManager.exit()
daemonManager.stopAsync(persistentSettings.nettype, function(result) {
daemonStartStopInProgress = 0;
if (splash) {
@@ -730,14 +726,18 @@ ApplicationWindow {
function onDaemonStarted(){
console.log("daemon started");
daemonStartStopInProgress = 0;
currentWallet.connected(true);
// resume refresh
currentWallet.startRefresh();
if (currentWallet) {
currentWallet.connected(true);
// resume refresh
currentWallet.startRefresh();
}
// resume simplemode connection timer
appWindow.disconnectedEpoch = Utils.epoch();
}
function onDaemonStopped(){
currentWallet.connected(true);
if (currentWallet) {
currentWallet.connected(true);
}
}
function onDaemonStartFailure(error) {
@@ -981,28 +981,31 @@ ApplicationWindow {
}
// called on "getProof"
function handleGetProof(txid, address, message) {
console.log("Getting payment proof: ")
console.log("\ttxid: ", txid,
", address: ", address,
", message: ", message);
function spendProofFallback(txid, result){
if (!result || result.indexOf("error|") === 0) {
currentWallet.getSpendProofAsync(txid, message, txProofComputed);
} else {
txProofComputed(txid, result);
function handleGetProof(txid, address, message, amount) {
if (amount !== null && amount.length > 0) {
var result = currentWallet.getReserveProof(false, currentWallet.currentSubaddressAccount, walletManager.amountFromString(amount), message)
txProofComputed(null, result)
} else {
console.log("Getting payment proof: ")
console.log("\ttxid: ", txid,
", address: ", address,
", message: ", message);
function spendProofFallback(txid, result){
if (!result || result.indexOf("error|") === 0) {
currentWallet.getSpendProofAsync(txid, message, txProofComputed);
} else {
txProofComputed(txid, result);
}
}
if (address.length > 0)
currentWallet.getTxProofAsync(txid, address, message, spendProofFallback);
else
spendProofFallback(txid, null);
}
if (address.length > 0)
currentWallet.getTxProofAsync(txid, address, message, spendProofFallback);
else
spendProofFallback(txid, null);
informationPopup.open()
}
function txProofComputed(txid, result){
informationPopup.title = qsTr("Payment proof") + translationManager.emptyString;
if (result.indexOf("error|") === 0) {
var errorString = result.split("|")[1];
informationPopup.text = qsTr("Couldn't generate a proof because of the following reason: \n") + errorString + translationManager.emptyString;
@@ -1011,8 +1014,6 @@ ApplicationWindow {
informationPopup.text = result;
informationPopup.icon = StandardIcon.Critical;
}
informationPopup.onCloseCallback = null
informationPopup.open()
}
// called on "checkProof"
@@ -1024,12 +1025,18 @@ ApplicationWindow {
", signature: ", signature);
var result;
if (address.length > 0)
var isReserveProof = signature.indexOf("ReserveProofV") === 0;
if (address.length > 0 && !isReserveProof) {
result = currentWallet.checkTxProof(txid, address, message, signature);
else
}
else if (isReserveProof) {
result = currentWallet.checkReserveProof(address, message, signature);
}
else {
result = currentWallet.checkSpendProof(txid, message, signature);
}
var results = result.split("|");
if (address.length > 0 && results.length == 5 && results[0] === "true") {
if (address.length > 0 && results.length == 5 && results[0] === "true" && !isReserveProof) {
var good = results[1] === "true";
var received = results[2];
var in_pool = results[3] === "true";
@@ -1057,6 +1064,12 @@ ApplicationWindow {
informationPopup.title = qsTr("Payment proof check") + translationManager.emptyString;
informationPopup.icon = good ? StandardIcon.Information : StandardIcon.Critical;
informationPopup.text = good ? qsTr("Good signature") : qsTr("Bad signature");
}
else if (isReserveProof && results[0] === "true") {
var good = results[1] === "true";
informationPopup.title = qsTr("Reserve proof check") + translationManager.emptyString;
informationPopup.icon = good ? StandardIcon.Information : StandardIcon.Critical;
informationPopup.text = good ? qsTr("Good signature on %1 total and %2 spent.").arg(results[2]).arg(results[3]) : qsTr("Bad signature");
}
else {
informationPopup.title = qsTr("Error") + translationManager.emptyString;
@@ -1124,13 +1137,10 @@ ApplicationWindow {
Timer {
id: fiatPriceTimer
interval: 1000 * 60;
running: persistentSettings.fiatPriceEnabled;
running: persistentSettings.fiatPriceEnabled && currentWallet !== undefined
repeat: true
onTriggered: {
if(persistentSettings.fiatPriceEnabled)
appWindow.fiatApiRefresh();
}
triggeredOnStart: false
onTriggered: appWindow.fiatApiRefresh()
triggeredOnStart: true
}
function fiatApiParseTicker(url, resp, currency){
@@ -1204,10 +1214,7 @@ ApplicationWindow {
return;
}
if(persistentSettings.fiatPriceCurrency === "xmrusd")
appWindow.fiatPriceXMRUSD = ticker;
else if(persistentSettings.fiatPriceCurrency === "xmreur")
appWindow.fiatPriceXMREUR = ticker;
appWindow.fiatPrice = ticker;
appWindow.updateBalance();
}
@@ -1246,7 +1253,7 @@ ApplicationWindow {
}
function fiatApiConvertToFiat(amount) {
var ticker = persistentSettings.fiatPriceCurrency === "xmrusd" ? appWindow.fiatPriceXMRUSD : appWindow.fiatPriceXMREUR;
const ticker = appWindow.fiatPrice;
if(ticker <= 0){
fiatApiError("Invalid ticker value: " + ticker);
return "?.??";
@@ -1254,6 +1261,15 @@ ApplicationWindow {
return (amount * ticker).toFixed(2);
}
function fiatApiConvertToXMR(amount) {
const ticker = appWindow.fiatPrice;
if(ticker <= 0){
fiatApiError("Invalid ticker value: " + ticker);
return "?.??";
}
return (amount / ticker).toFixed(12);
}
function fiatApiUpdateBalance(balance){
// update balance card
var bFiat = "?.??"
@@ -1263,14 +1279,6 @@ ApplicationWindow {
leftPanel.balanceFiatString = bFiat;
}
function fiatTimerStart(){
fiatPriceTimer.start();
}
function fiatTimerStop(){
fiatPriceTimer.stop();
}
function fiatApiError(msg){
console.log("fiatPriceError: " + msg);
}
@@ -1326,12 +1334,8 @@ ApplicationWindow {
openWallet("wizard");
}
if(persistentSettings.fiatPriceEnabled){
appWindow.fiatApiRefresh();
appWindow.fiatTimerStart();
}
if (persistentSettings.askDesktopShortcut && !persistentSettings.portable) {
const desktopEntryEnabled = (typeof builtWithDesktopEntry != "undefined") && builtWithDesktopEntry;
if (persistentSettings.askDesktopShortcut && !persistentSettings.portable && desktopEntryEnabled) {
persistentSettings.askDesktopShortcut = false;
if (isTails) {
@@ -1362,13 +1366,18 @@ ApplicationWindow {
}
property bool askDesktopShortcut: isLinux
property bool askStopLocalNode: true
property string language: 'English (US)'
property string language_wallet: 'English'
property string locale: 'en_US'
property string account_name
property string wallet_path
property bool allow_background_mining : false
property bool allow_p2pool_mining : false
property bool allowRemoteNodeMining : false
property bool miningIgnoreBattery : true
property int miningModeSelected: 0
property int chainDropdownSelected: 0
property var nettype: NetworkType.MAINNET
property int restore_height : 0
property bool is_trusted_daemon : false // TODO: drop after v0.17.2.0 release
@@ -1376,6 +1385,7 @@ ApplicationWindow {
property bool is_recovering_from_device : false
property bool customDecorations : true
property string daemonFlags
property string p2poolFlags
property int logLevel: 0
property string logCategories: ""
property string daemonUsername: "" // TODO: drop after v0.17.2.0 release
@@ -1685,6 +1695,9 @@ ApplicationWindow {
informationPopup.open();
}
onRejectedNewPassword: {}
Keys.enabled: !passwordDialog.visible && informationPopup.visible
Keys.onEnterPressed: informationPopup.close()
Keys.onReturnPressed: informationPopup.close()
}
DevicePassphraseDialog {
@@ -1892,10 +1905,11 @@ ApplicationWindow {
TitleBar {
id: titleBar
visible: persistentSettings.customDecorations && middlePanel.state !== "Merchant"
walletName: persistentSettings.displayWalletNameInTitleBar ? appWindow.walletName : ""
walletName: persistentSettings.displayWalletNameInTitleBar && rootItem.state != "wizard" ? appWindow.walletName : ""
anchors.left: parent.left
anchors.right: parent.right
onCloseClicked: appWindow.close();
onLockWalletClicked: appWindow.lock();
onLanguageClicked: appWindow.toggleLanguageView();
onCloseWalletClicked: appWindow.showWizard();
onMaximizeClicked: appWindow.visibility = appWindow.visibility !== Window.Maximized ? Window.Maximized : Window.Windowed
@@ -1944,6 +1958,7 @@ ApplicationWindow {
function toggleLanguageView(){
languageSidebar.visible ? languageSidebar.close() : languageSidebar.open();
languageSidebar.selectCurrentLanguage()
resetLanguageFields()
}
@@ -2019,7 +2034,7 @@ ApplicationWindow {
return;
}
const simpleModeFlags = "--enable-dns-blocklist --out-peers 16";
const simpleModeFlags = "--enable-dns-blocklist --out-peers 16 --no-igd";
if (appWindow.daemonRunning) {
appWindow.stopDaemon(function() {
appWindow.startDaemon(simpleModeFlags)
@@ -2116,7 +2131,7 @@ ApplicationWindow {
showProcessingSplash(qsTr("Checking local node status..."));
const handler = function(running) {
hideProcessingSplash();
if (running) {
if (running && persistentSettings.askStopLocalNode) {
showDaemonIsRunningDialog(closeAccepted);
} else {
closeAccepted();
@@ -2135,7 +2150,7 @@ ApplicationWindow {
console.log("close accepted");
// Close wallet non async on exit
daemonManager.exit();
p2poolManager.exit();
closeWallet(Qt.quit);
}
@@ -2203,8 +2218,7 @@ ApplicationWindow {
function userActivity() {
// register user activity
var epoch = Math.floor((new Date).getTime()/1000);
appWindow.userLastActive = epoch;
appWindow.userLastActive = Utils.epoch();
}
function checkInUserActivity() {
@@ -2212,29 +2226,37 @@ ApplicationWindow {
if(!persistentSettings.lockOnUserInActivity) return;
if(passwordDialog.visible) return;
var inputDialogVisible = inputDialog && inputDialog.visible
var successfulTxPopupVisible = successfulTxPopup && successfulTxPopup.visible
var informationPopupVisible = informationPopup && informationPopup.visible
// prompt password after X seconds of inactivity
var epoch = Math.floor((new Date).getTime() / 1000);
var inactivity = epoch - appWindow.userLastActive;
var inactivity = Utils.epoch() - appWindow.userLastActive;
if(inactivity < (persistentSettings.lockOnUserInActivityInterval * 60)) return;
passwordDialog.onAcceptedCallback = function() {
if(walletPassword === passwordDialog.password){
passwordDialog.close();
if (inputDialogVisible) inputDialog.open(inputDialog.inputText)
if (successfulTxPopupVisible) successfulTxPopup.open(successfulTxPopup.transactionID)
if (informationPopupVisible) informationPopup.open()
} else {
passwordDialog.showError(qsTr("Wrong password"));
}
if (inputDialogVisible) inputDialog.open(inputDialog.inputText)
}
passwordDialog.onRejectedCallback = function() { appWindow.showWizard(); }
if (inputDialogVisible) inputDialog.close()
remoteNodeDialog.close();
informationPopup.close()
txConfirmationPopup.close()
txConfirmationPopup.clearFields()
txConfirmationPopup.rejected()
successfulTxPopup.close();
passwordDialog.open();
}
function getDefaultDaemonRpcPort(networkType) {
switch (networkType) {
switch (parseInt(networkType)) {
case NetworkType.STAGENET:
return 38081;
case NetworkType.TESTNET:
@@ -2246,7 +2268,6 @@ ApplicationWindow {
function changeWalletMode(mode){
appWindow.disconnectedEpoch = 0;
appWindow.walletMode = mode;
persistentSettings.walletMode = mode;
applyWalletMode(mode);
}
@@ -2350,6 +2371,8 @@ ApplicationWindow {
MoneroComponents.LanguageSidebar {
id: languageSidebar
dragMargin: 0
onAboutToShow: previousActiveFocusItem = activeFocusItem;
onClosed: { if (previousActiveFocusItem) previousActiveFocusItem.forceActiveFocus() }
}
MoneroComponents.MenuBar { }

2
monero

Submodule monero updated: f6e63ef260...7cbae6ca98

View File

@@ -103,6 +103,7 @@ Rectangle {
MoneroComponents.TextPlain {
id: balanceAll
Layout.rightMargin: 87
font.family: MoneroComponents.Style.fontMonoRegular.name;
font.pixelSize: 16
color: MoneroComponents.Style.defaultFontColor
@@ -115,7 +116,8 @@ Rectangle {
onExited: parent.color = MoneroComponents.Style.defaultFontColor
onClicked: {
console.log("Copied to clipboard");
clipboard.setText(parent.text);
var balanceAllNumberOnly = parent.text.slice(0, -4);
clipboard.setText(balanceAllNumberOnly);
appWindow.showStatusMessage(qsTr("Copied to clipboard"),3)
}
}
@@ -136,6 +138,7 @@ Rectangle {
MoneroComponents.TextPlain {
id: unlockedBalanceAll
Layout.rightMargin: 87
font.family: MoneroComponents.Style.fontMonoRegular.name;
font.pixelSize: 16
color: MoneroComponents.Style.defaultFontColor
@@ -148,7 +151,8 @@ Rectangle {
onExited: parent.color = MoneroComponents.Style.defaultFontColor
onClicked: {
console.log("Copied to clipboard");
clipboard.setText(parent.text);
var unlockedBalanceAllNumberOnly = parent.text.slice(0, -4);
clipboard.setText(unlockedBalanceAllNumberOnly);
appWindow.showStatusMessage(qsTr("Copied to clipboard"),3)
}
}
@@ -160,11 +164,48 @@ Rectangle {
id: addressRow
spacing: 0
MoneroComponents.LabelSubheader {
Layout.fillWidth: true
fontSize: 24
textFormat: Text.RichText
text: qsTr("Accounts") + translationManager.emptyString
RowLayout {
spacing: 0
MoneroComponents.LabelSubheader {
Layout.fillWidth: true
fontSize: 24
textFormat: Text.RichText
text: qsTr("Accounts") + translationManager.emptyString
}
MoneroComponents.StandardButton {
id: createNewAccountButton
visible: !selectAndSend
small: true
text: qsTr("Create new account") + translationManager.emptyString
fontSize: 13
onClicked: {
inputDialog.labelText = qsTr("Set the label of the new account:") + translationManager.emptyString
inputDialog.onAcceptedCallback = function() {
appWindow.currentWallet.subaddressAccount.addRow(inputDialog.inputText)
appWindow.currentWallet.switchSubaddressAccount(appWindow.currentWallet.numSubaddressAccounts() - 1)
appWindow.onWalletUpdate();
}
inputDialog.onRejectedCallback = null;
inputDialog.open()
}
Rectangle {
anchors.top: createNewAccountButton.bottom
anchors.topMargin: 8
anchors.left: createNewAccountButton.left
anchors.right: createNewAccountButton.right
height: 2
color: MoneroComponents.Style.appWindowBorderColor
MoneroEffects.ColorTransition {
targetObj: parent
blackColor: MoneroComponents.Style._b_appWindowBorderColor
whiteColor: MoneroComponents.Style._w_appWindowBorderColor
}
}
}
}
ColumnLayout {
@@ -192,6 +233,15 @@ Rectangle {
Layout.fillWidth: true
color: itemMouseArea.containsMouse || index === currentAccountIndex ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
Rectangle {
visible: index === currentAccountIndex
Layout.fillHeight: true
anchors.top: parent.top
anchors.bottom: parent.bottom
color: "darkgrey"
width: 2
}
Rectangle {
color: MoneroComponents.Style.appWindowBorderColor
anchors.right: parent.right
@@ -241,7 +291,7 @@ Rectangle {
id: addressLabel
color: MoneroComponents.Style.defaultFontColor
anchors.verticalCenter: parent.verticalCenter
anchors.left: mainLayout.width >= 590 ? balanceTextLabel.left : balanceNumberLabel.left
anchors.left: balanceNumberLabel.left
anchors.leftMargin: -addressLabel.width - 30
fontSize: 16
fontFamily: MoneroComponents.Style.fontMonoRegular.name;
@@ -249,18 +299,6 @@ Rectangle {
themeTransition: false
}
MoneroComponents.Label {
id: balanceTextLabel
visible: mainLayout.width >= 590
color: MoneroComponents.Style.defaultFontColor
anchors.verticalCenter: parent.verticalCenter
anchors.left: balanceNumberLabel.left
anchors.leftMargin: -balanceTextLabel.width - 5
fontSize: 16
text: qsTr("Balance: ") + translationManager.emptyString
themeTransition: false
}
MoneroComponents.Label {
id: balanceNumberLabel
color: MoneroComponents.Style.defaultFontColor
@@ -269,9 +307,9 @@ Rectangle {
anchors.leftMargin: -balanceNumberLabel.width
fontSize: 16
fontFamily: MoneroComponents.Style.fontMonoRegular.name;
text: balance
text: balance + " XMR"
elide: Text.ElideRight
textWidth: mainLayout.width < 660 ? 70 : 135
textWidth: 180
themeTransition: false
}
@@ -301,9 +339,11 @@ Rectangle {
fontAwesomeFallbackIcon: FontAwesome.edit
fontAwesomeFallbackSize: 22
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
opacity: isOpenGL ? 0.5 : 1
fontAwesomeFallbackOpacity: 0.5
Layout.preferredWidth: 23
Layout.preferredHeight: 21
tooltip: qsTr("Edit account label") + translationManager.emptyString
onClicked: pageAccount.renameSubaddressAccountLabel(index);
}
@@ -314,9 +354,11 @@ Rectangle {
fontAwesomeFallbackIcon: FontAwesome.clipboard
fontAwesomeFallbackSize: 22
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
opacity: isOpenGL ? 0.5 : 1
fontAwesomeFallbackOpacity: 0.5
Layout.preferredWidth: 16
Layout.preferredHeight: 21
tooltip: qsTr("Copy address to clipboard") + translationManager.emptyString
onClicked: {
console.log("Address copied to clipboard");
@@ -344,30 +386,6 @@ Rectangle {
whiteColor: MoneroComponents.Style._w_appWindowBorderColor
}
}
MoneroComponents.CheckBox {
id: addNewAccountCheckbox
visible: !selectAndSend
border: false
uncheckedIcon: FontAwesome.plusCircle
toggleOnClick: false
fontAwesomeIcons: true
fontSize: 16
iconOnTheLeft: true
Layout.fillWidth: true
Layout.topMargin: 10
text: qsTr("Create new account") + translationManager.emptyString;
onClicked: {
inputDialog.labelText = qsTr("Set the label of the new account:") + translationManager.emptyString
inputDialog.onAcceptedCallback = function() {
appWindow.currentWallet.subaddressAccount.addRow(inputDialog.inputText)
appWindow.currentWallet.switchSubaddressAccount(appWindow.currentWallet.numSubaddressAccounts() - 1)
appWindow.onWalletUpdate();
}
inputDialog.onRejectedCallback = null;
inputDialog.open()
}
}
}
}
@@ -378,8 +396,8 @@ Rectangle {
subaddressAccountListView.model = appWindow.currentWallet.subaddressAccountModel;
appWindow.currentWallet.subaddress.refresh(appWindow.currentWallet.currentSubaddressAccount)
balanceAll.text = walletManager.displayAmount(appWindow.currentWallet.balanceAll())
unlockedBalanceAll.text = walletManager.displayAmount(appWindow.currentWallet.unlockedBalanceAll())
balanceAll.text = walletManager.displayAmount(appWindow.currentWallet.balanceAll()) + " XMR"
unlockedBalanceAll.text = walletManager.displayAmount(appWindow.currentWallet.unlockedBalanceAll()) + " XMR"
}
}

View File

@@ -97,6 +97,8 @@ Rectangle {
MoneroComponents.StandardButton {
id: addFirstEntryButton
Layout.topMargin: 20
Layout.alignment: Qt.AlignHCenter
small: true
text: qsTr("Add an address") + translationManager.emptyString
onClicked: {
root.showAddAddress();
@@ -115,6 +117,18 @@ Rectangle {
text: qsTr("Address book") + translationManager.emptyString
}
MoneroComponents.StandardButton {
id: addAddressButton
Layout.bottomMargin: 8
Layout.alignment: Qt.AlignRight
small: true
text: qsTr("Add address") + translationManager.emptyString
fontSize: 13
onClicked: {
root.showAddAddress();
}
}
ColumnLayout {
id: addressBookListRow
property int addressBookListItemHeight: 50
@@ -134,7 +148,7 @@ Rectangle {
height: addressBookListRow.addressBookListItemHeight
width: parent ? parent.width : undefined
Layout.fillWidth: true
color: "transparent"
color: itemMouseArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
function doSend() {
console.log("Sending to: ", address +" "+ paymentId);
@@ -159,7 +173,7 @@ Rectangle {
Rectangle {
anchors.fill: parent
anchors.topMargin: 5
anchors.rightMargin: 110
anchors.rightMargin: 125
color: "transparent"
MoneroComponents.Label {
@@ -187,8 +201,10 @@ Rectangle {
}
MouseArea {
id: itemMouseArea
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
visible: root.selectAndSend
onClicked: {
doSend();
@@ -207,21 +223,42 @@ Rectangle {
id: sendToButton
image: "qrc:///images/arrow-right-in-circle-outline-medium-white.svg"
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
opacity: isOpenGL ? 0.5 : 1
fontAwesomeFallbackIcon: FontAwesome.arrowRight
fontAwesomeFallbackSize: 22
fontAwesomeFallbackOpacity: 0.5
Layout.preferredWidth: 20
Layout.preferredHeight: 20
tooltip: qsTr("Send to this address") + translationManager.emptyString
onClicked: {
doSend();
}
}
MoneroComponents.IconButton {
id: renameButton
image: "qrc:///images/edit.svg"
fontAwesomeFallbackIcon: FontAwesome.searchPlus
fontAwesomeFallbackSize: 22
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
fontAwesomeFallbackOpacity: 0.5
Layout.preferredWidth: 23
Layout.preferredHeight: 21
tooltip: qsTr("See transactions") + translationManager.emptyString
onClicked: doSearchInHistory(address)
}
MoneroComponents.IconButton {
id: editEntryButton
image: "qrc:///images/edit.svg"
color: MoneroComponents.Style.defaultFontColor
opacity: isOpenGL ? 0.5 : 1
fontAwesomeFallbackIcon: FontAwesome.edit
fontAwesomeFallbackSize: 22
fontAwesomeFallbackOpacity: 0.5
Layout.preferredWidth: 23
Layout.preferredHeight: 21
tooltip: qsTr("Edit entry") + translationManager.emptyString
onClicked: {
addressBookListView.currentIndex = index;
@@ -232,10 +269,14 @@ Rectangle {
MoneroComponents.IconButton {
id: copyButton
image: "qrc:///images/copy.svg"
color: MoneroComponents.Style.defaultFontColor
opacity: isOpenGL ? 0.5 : 1
fontAwesomeFallbackIcon: FontAwesome.clipboard
fontAwesomeFallbackSize: 22
fontAwesomeFallbackOpacity: 0.5
Layout.preferredWidth: 16
Layout.preferredHeight: 21
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
tooltip: qsTr("Copy address to clipboard") + translationManager.emptyString
onClicked: {
console.log("Address copied to clipboard");
@@ -260,23 +301,6 @@ Rectangle {
whiteColor: MoneroComponents.Style._w_appWindowBorderColor
}
}
MoneroComponents.CheckBox {
id: addNewEntryCheckbox
border: false
uncheckedIcon: FontAwesome.plusCircle
toggleOnClick: false
fontAwesomeIcons: true
fontSize: 16
iconOnTheLeft: true
Layout.fillWidth: true
Layout.topMargin: 10
text: qsTr("Add address") + translationManager.emptyString;
onClicked: {
root.showAddAddress();
}
}
}
ColumnLayout {
id: addContactLayout
@@ -286,26 +310,29 @@ Rectangle {
MoneroComponents.Label {
fontSize: 32
wrapMode: Text.WordWrap
text: (root.editEntry ? qsTr("Edit an address") : qsTr("Add an address")) + translationManager.emptyString
text: (root.editEntry ? qsTr("Edit entry") : qsTr("Add an address")) + translationManager.emptyString
}
MoneroComponents.LineEditMulti {
id: addressLine
visible: !root.editEntry
Layout.topMargin: 20
KeyNavigation.backtab: deleteButton.visible ? deleteButton: cancelButton
KeyNavigation.tab: resolveButton.visible ? resolveButton : descriptionLine
labelText: "<style type='text/css'>a {text-decoration: none; color: #858585; font-size: 14px;}</style> %1"
.arg(qsTr("Address")) + translationManager.emptyString
placeholderText: {
if(persistentSettings.nettype == NetworkType.MAINNET){
return "4.. / 8.. / OpenAlias";
return "4.. / 8.. / monero:.. / OpenAlias";
} else if (persistentSettings.nettype == NetworkType.STAGENET){
return "5.. / 7..";
return "5.. / 7.. / monero:..";
} else if(persistentSettings.nettype == NetworkType.TESTNET){
return "9.. / B..";
return "9.. / B.. / monero:..";
}
}
wrapMode: Text.WrapAnywhere
addressValidation: true
pasteButton: true
pasteButton: false
onTextChanged: {
const parsed = walletManager.parse_uri_to_object(addressLine.text);
if (!parsed.error) {
@@ -313,6 +340,31 @@ Rectangle {
descriptionLine.text = parsed.tx_description;
}
}
onEnterPressed: addButton.enabled ? addButton.clicked() : ""
onReturnPressed: addButton.enabled ? addButton.clicked() : ""
MoneroComponents.InlineButton {
fontFamily: FontAwesome.fontFamilySolid
fontStyleName: "Solid"
fontPixelSize: 18
text: FontAwesome.desktop
tooltip: qsTr("Grab QR code from screen") + translationManager.emptyString
onClicked: {
clearFields();
const codes = oshelper.grabQrCodesFromScreen();
for (var index = 0; index < codes.length; ++index) {
const parsed = walletManager.parse_uri_to_object(codes[index]);
if (!parsed.error) {
addressLine.text = parsed.address
descriptionLine.text = parsed.recipient_name
break;
} else if (walletManager.addressValid(codes[index], appWindow.persistentSettings.nettype)) {
addressLine.text = codes[index];
break;
}
}
}
}
MoneroComponents.InlineButton {
buttonColor: MoneroComponents.Style.orange
@@ -328,6 +380,8 @@ Rectangle {
MoneroComponents.StandardButton {
id: resolveButton
KeyNavigation.backtab: addressLine
KeyNavigation.tab: descriptionLine
Layout.topMargin: 10
text: qsTr("Resolve") + translationManager.emptyString
visible: TxUtils.isValidOpenAliasAddress(addressLine.text)
@@ -365,75 +419,76 @@ Rectangle {
}
}
MoneroComponents.LineEditMulti {
MoneroComponents.LineEdit {
id: descriptionLine
KeyNavigation.backtab: resolveButton.visible ? resolveButton : addressLine
KeyNavigation.tab: addButton.enabled ? addButton : cancelButton
Layout.topMargin: 20
Layout.fillWidth: true
fontSize: 16
placeholderFontSize: 16
labelText: "<style type='text/css'>a {text-decoration: none; color: #858585; font-size: 14px;}</style> %1"
.arg(qsTr("Description")) + translationManager.emptyString
placeholderText: qsTr("Add a name...") + translationManager.emptyString
onAccepted: addButton.enabled ? addButton.clicked() : ""
}
RowLayout {
Layout.topMargin: 20
Layout.alignment: Qt.AlignRight
MoneroComponents.StandardButton {
id: cancelButton
KeyNavigation.backtab: addButton
KeyNavigation.tab: deleteButton.visible ? deleteButton : addressLine
small: true
text: qsTr("Cancel") + translationManager.emptyString
primary: false
onClicked: root.showAddressBook();
}
MoneroComponents.StandardButton {
id: deleteButton
KeyNavigation.backtab: cancelButton
KeyNavigation.tab: addressLine
small: true
visible: root.editEntry
text: qsTr("Delete") + translationManager.emptyString
primary: false
onClicked: {
currentWallet.addressBook.deleteRow(addressBookListView.currentIndex);
root.showAddressBook();
}
}
MoneroComponents.StandardButton {
id: addButton
KeyNavigation.backtab: descriptionLine
KeyNavigation.tab: cancelButton
small: true
text: (root.editEntry ? qsTr("Save") : qsTr("Add")) + translationManager.emptyString
enabled: root.checkInformation(addressLine.text, appWindow.persistentSettings.nettype)
onClicked: {
console.log("Add")
if (!currentWallet.addressBook.addRow(addressLine.text.trim(),"", descriptionLine.text)) {
informationPopup.title = qsTr("Error") + translationManager.emptyString;
// TODO: check currentWallet.addressBook.errorString() instead.
if(currentWallet.addressBook.errorCode() === AddressBook.Invalid_Address)
informationPopup.text = qsTr("Invalid address") + translationManager.emptyString
else if(currentWallet.addressBook.errorCode() === AddressBook.Invalid_Payment_Id)
informationPopup.text = currentWallet.addressBook.errorString()
else
informationPopup.text = qsTr("Can't create entry") + translationManager.emptyString
if (!root.editEntry) {
if (currentWallet.addressBook.addRow(addressLine.text.trim(),"", descriptionLine.text)) {
console.log("Entry added")
} else {
informationPopup.title = qsTr("Error") + translationManager.emptyString;
// TODO: check currentWallet.addressBook.errorString() instead.
if (currentWallet.addressBook.errorCode() === AddressBook.Invalid_Address)
informationPopup.text = qsTr("Invalid address") + translationManager.emptyString
else if (currentWallet.addressBook.errorCode() === AddressBook.Invalid_Payment_Id)
informationPopup.text = currentWallet.addressBook.errorString()
else
informationPopup.text = qsTr("Can't create entry") + translationManager.emptyString
informationPopup.onCloseCallback = null
informationPopup.open();
} else {
if (root.editEntry) {
currentWallet.addressBook.deleteRow(addressBookListView.currentIndex);
informationPopup.onCloseCallback = null
informationPopup.open();
}
root.showAddressBook();
}
}
}
Text {
id: cancelButton
Layout.leftMargin: 20
font.pixelSize: 16
font.bold: false
color: MoneroComponents.Style.defaultFontColor
text: qsTr("Cancel") + translationManager.emptyString
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: root.showAddressBook();
}
}
Text {
id: deleteButton
visible: root.editEntry
Layout.leftMargin: 20
font.pixelSize: 16
font.bold: false
color: MoneroComponents.Style.defaultFontColor
text: qsTr("Delete") + translationManager.emptyString
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
currentWallet.addressBook.deleteRow(addressBookListView.currentIndex);
root.showAddressBook();
} else {
currentWallet.addressBook.setDescription(addressBookListView.currentIndex, descriptionLine.text);
console.log("Description edited")
}
root.showAddressBook()
}
}
}
@@ -464,6 +519,7 @@ Rectangle {
addressBookEmptyLayout.visible = false
addressBookLayout.visible = false;
addContactLayout.visible = true;
addressLine.forceActiveFocus();
}
function showEditAddress(address, description) {
@@ -474,12 +530,14 @@ Rectangle {
addContactLayout.visible = true;
addressLine.text = address;
descriptionLine.text = description;
addressLine.forceActiveFocus();
addressLine.cursorPosition = addressLine.text.length;
}
function updateFromQrCode(address, payment_id, amount, tx_description, recipient_name) {
console.log("updateFromQrCode")
addressLine.text = address
descriptionLine.text = recipient_name + " " + tx_description
descriptionLine.text = recipient_name
cameraUi.qrcode_decoded.disconnect(updateFromQrCode)
}

Some files were not shown because too many files have changed in this diff Show More