Compare commits

...

905 Commits

Author SHA1 Message Date
luigi1111
b59de2fb0e Merge pull request #1651
09c0aac Linking hidapi for OSX builds (skftn)
2018-10-14 14:52:02 -05:00
Sander Ferdinand
09c0aac7ab Linking hidapi for OSX builds 2018-10-14 21:47:58 +02:00
luigi1111
72b71e6a4f Merge pull request #1650
ba8d291 Link to libhidapi rather than pcsclite (bjacquin)
2018-10-14 14:44:41 -05:00
luigi1111
7fa55b49fe Merge pull request #1649
f17c407 Add border to generated QR codes (glv2)
2018-10-14 14:43:15 -05:00
Bertrand Jacquin
ba8d2913be Link to libhidapi rather than pcsclite 2018-10-14 16:36:22 +02:00
Guillaume LE VAILLANT
f17c407100 Add border to generated QR codes 2018-10-14 16:31:45 +02:00
luigi1111
7a3855700e Merge pull request #1646
d6ef609 Linking crypto32 and libhidapi for Windows builds (skftn)
2018-10-13 13:43:36 -05:00
luigi1111
ca7c0e0c55 Merge pull request #1640
3f3fd67 Updating outdated icu files (BigslimVdub)
2018-10-13 13:42:44 -05:00
Sander Ferdinand
d6ef609236 Linking crypto32 and libhidapi for Windows builds 2018-10-13 19:45:27 +02:00
BigslimVdub
3f3fd67f14 Updating outdated icu files 2018-10-12 18:08:14 +02:00
luigi1111
ad88e60394 Merge pull request #1616
a636a04 fix some malaysian language to Indonesian (ha-yi)
2018-10-11 17:31:44 -05:00
luigi1111
f75086ca28 Merge pull request #1631
b9f2e37 Update Swedish translation with changes in PR#1609 (snaggen)
2018-10-11 14:47:05 -05:00
luigi1111
e7c73164a6 Merge pull request #1605
e21f890 Replacing the optional ring size slider in favor of static ring size 11 (skftn)
2018-10-11 14:45:45 -05:00
luigi1111
6ca3c1a23e Merge pull request #1630
bdb1251 README: update MSYS2 dependencies for Ledger (Lafudoci)
2018-10-10 18:36:24 -05:00
luigi1111
f86bcc61c5 Merge pull request #1634
ead8dc2 Including pirate.png in qml.qrc (skftn)
2018-10-10 16:25:47 -05:00
luigi1111
77f0e9b912 Merge pull request #1633
ca29d7e Qt 5.7 does not support string.startsWith(); use string.indexOf() instead (skftn)
2018-10-10 16:10:38 -05:00
Sander Ferdinand
ead8dc27d0 Including pirate.png in qml.qrc 2018-10-10 20:33:21 +02:00
Sander Ferdinand
ca29d7e1be Qt 5.7 does not support string.startsWith(); use string.indexOf() instead 2018-10-10 20:15:44 +02:00
Sander Ferdinand
e21f8903ee Replacing the optional ring size slider in favor of static ring size 11 2018-10-10 20:04:00 +02:00
luigi1111
b4e0dd107c Merge pull request #1625
3e9df9d Linking libsodium (skftn)
2018-10-10 11:48:31 -05:00
luigi1111
cae90e8287 Merge pull request #1624
da02e4d Bumping monero submodule tag to 0.13 (skftn)
2018-10-10 11:47:17 -05:00
luigi1111
bee64abe2e Merge pull request #1623
cf321fa Added libsodium to install instructions (skftn)
2018-10-10 11:45:07 -05:00
luigi1111
c3f84d6de4 Merge pull request #1622
de8e80a sync all language files, including 'monero-core.ts', for 0.13 (erciccione)
2018-10-10 11:43:58 -05:00
Mattias Eriksson
b9f2e372d0 Update Swedish translation with changes in PR#1609 2018-10-10 09:48:01 +02:00
Lafudoci
bdb1251cfa README: update MSYS2 dependencies for Ledger 2018-10-10 10:54:59 +08:00
Sander Ferdinand
3e9df9d975 Linking libsodium 2018-10-10 02:30:51 +02:00
Sander Ferdinand
cf321fa8f3 Added libsodium to install instructions 2018-10-10 01:25:08 +02:00
Sander Ferdinand
da02e4df42 Bumping monero submodule tag to 0.13 2018-10-10 01:08:42 +02:00
erciccione
de8e80a9bd sync all language files, including 'monero-core.ts', for 0.13 2018-10-09 23:42:44 +01:00
luigi1111
f0cd704fad Merge pull request #1618
4359fe7 CZech translation for Monero 0.13 (ruzaq)
2018-10-09 17:34:41 -05:00
luigi1111
cd87af1415 Merge pull request #1621
703e499 Update monero-core_sv.ts (freminik)
2018-10-09 17:32:30 -05:00
luigi1111
6693fc7449 Merge pull request #1613
5671a45 update slovenian translation: part 2 (gorazdko)
2018-10-09 17:30:15 -05:00
luigi1111
c14df12ce6 Merge pull request #1612
c8d3b55 Hungarian update 0.13 (turossztrapacska)
2018-10-09 17:29:01 -05:00
luigi1111
271650cfbe Merge pull request #1611
b2c264e Updating Serbian language (alexej996)
2018-10-09 17:27:28 -05:00
luigi1111
d523b16c5b Merge pull request #1556
c09806d Update translation for fork (cryptobench)
2018-10-09 17:26:24 -05:00
luigi1111
1455ca8cbf Merge pull request #1593
24992f1 Updated finnish translation (rpinola)
2018-10-09 17:24:54 -05:00
luigi1111
b859854fbf Merge pull request #1608
0fdd75b Updated Lithuanian language. (kasperaitis)
2018-10-09 17:22:18 -05:00
luigi1111
3cda2b663a Merge pull request #1603
2e5012f Translation and corrections for Hebrew #1582 (samuelgozi)
2018-10-09 16:55:26 -05:00
luigi1111
8599aa4e32 Merge pull request #1601
851571c Translation update and added more missing spaces (BlackLotus64)
2018-10-09 16:54:25 -05:00
luigi1111
a1410b444b Merge pull request #1600
80954c3 i18n: update zh-cn (Equim-chan)
2018-10-09 16:52:26 -05:00
luigi1111
34b06c1a0f Merge pull request #1599
1df0520 Dutch translation update (ProkhorZ)
2018-10-09 16:49:33 -05:00
luigi1111
e0cbf43947 Merge pull request #1597
6400c88 Updated Japanese translations for 0.13 (takuto-h)
2018-10-09 16:48:34 -05:00
luigi1111
4934f77c6f Merge pull request #1598
3f5d55d Update monero-core_ru.ts (LvMsterfild)
2018-10-09 16:45:14 -05:00
luigi1111
8d28d0f842 Merge pull request #1596
0d3cb9f updated pt_PT translation (rmbb)
2018-10-09 16:42:17 -05:00
Gorazd
5671a450c8 update slovenian translation: part 2
update slovenian translation: part 1
2018-10-09 23:42:09 +02:00
luigi1111
61ce53f47e Merge pull request #1591
6760d5e edit arabic localization (3b7ameed)
2018-10-09 16:40:43 -05:00
luigi1111
5cb02b9e01 Merge pull request #1590
64d0bd9 update pt_BR strings (netrik182)
2018-10-09 16:39:43 -05:00
freminik
703e499d52 Update monero-core_sv.ts 2018-10-09 22:38:35 +01:00
luigi1111
361ff60f11 Merge pull request #1588
d80b0a3 update german language file (lovvskillz)
2018-10-09 16:38:07 -05:00
luigi1111
b68ac66237 Merge pull request #1586
9d24649 French translation for 0.13 (el00ruobuob)
2018-10-09 16:36:44 -05:00
luigi1111
928966188b Merge pull request #1585
324cb8a Update monero-core_tr.ts (xmoreee)
2018-10-09 16:34:54 -05:00
luigi1111
65a8e5e4aa Merge pull request #1584
5a1ca85 Update monero-core_it.ts (serhack)
2018-10-09 16:32:35 -05:00
luigi1111
66d99324dd Merge pull request #1566
3bc4d6a Allow arguments to be passed to start-gui.sh (nunocastromartins)
2018-10-09 16:31:21 -05:00
Phillip Jensen
c09806d560 Update translation for fork
Small tweak
2018-10-09 21:34:23 +02:00
Aivaras Kasperaitis
0fdd75be59 Updated Lithuanian language. 2018-10-09 20:32:57 +03:00
Ruzicka Pavel
4359fe706e CZech translation for Monero 0.13 2018-10-09 16:54:27 +02:00
Hayi Nukman
a636a04f0a fix some malaysian language to Indonesian 2018-10-09 15:24:01 +07:00
MB
0d3cb9f6e4 updated pt_PT translation 2018-10-08 21:14:24 +01:00
turossztrapacska
c8d3b55741 Hungarian update 0.13 2018-10-08 13:38:50 +01:00
vadim
d80b0a39a8 update german language file 2018-10-08 11:39:38 +02:00
alexej996
b2c264ea59 Updating Serbian language 2018-10-08 01:24:50 +02:00
Samuel Elgozi
2e5012f55b Translation and corrections for Hebrew #1582
Fixed some inconsistencies in the Hebrew translation

I changed some inconsistencies like missing ": " and spelling.

Fixed the missing place marker in line 2784
2018-10-07 15:48:02 +01:00
Agent LvM
3f5d55d224 Update monero-core_ru.ts 2018-10-07 15:23:55 +01:00
SerHack
5a1ca8578b Update monero-core_it.ts
Update monero-core_it.ts

Update monero-core_it.ts
2018-10-07 08:30:26 -04:00
BlackLotus64
851571c7f6 Translation update and added more missing spaces 2018-10-05 15:40:49 -05:00
3b7ameed
6760d5edf9 edit arabic localization 2018-10-05 20:20:55 +02:00
Equim
80954c3979 i18n: update zh-cn 2018-10-06 01:58:40 +08:00
netrik182
64d0bd91ef update pt_BR strings 2018-10-05 15:14:33 +00:00
ProkhorZ
1df05202e9 Dutch translation update 2018-10-05 02:38:06 +02:00
xmoreee
324cb8aa0d Update monero-core_tr.ts
issue (#1582)
https://github.com/monero-project/monero-gui/issues/1582
2018-10-04 13:24:54 +01:00
Takuto Hayashi
6400c885cc Updated Japanese translations for 0.13 2018-10-04 12:48:18 +09:00
luigi1111
2ac690ce20 Merge pull request #1592
ed607e6 Update monero-core_sk.ts (jarole)
2018-10-03 13:50:39 -05:00
luigi1111
ab382dc604 Merge pull request #1589
56c593f Polish translation update for 0.13 (einsteinsfool)
2018-10-03 13:48:55 -05:00
luigi1111
ac0e9f7fb7 Merge pull request #1581
088b343 update zh-tw translation for v0.13 (Lafudoci)
2018-10-03 13:41:25 -05:00
luigi1111
78a003c161 Merge pull request #1489
af0f58f fixed 'Keys' CTRL+Y hotkey (xiphon)
2018-10-03 13:31:48 -05:00
jaro Lee
ed607e6e95 Update monero-core_sk.ts
sk lang. for 0.13
2018-10-03 17:43:10 +01:00
Lafudoci
088b343d2f update zh-tw translation for v0.13 2018-10-03 23:58:05 +08:00
el00ruobuob
9d24649d61 French translation for 0.13 2018-10-03 17:08:14 +02:00
rpinola
24992f144e Updated finnish translation 2018-10-03 15:32:38 +03:00
Piotr Kąkol
56c593fd67 Polish translation update for 0.13 2018-10-03 02:07:40 +02:00
luigi1111
af2af06165 Merge pull request #1574
59a63e7 Fix blackball section to conform to format change (moneromooo-monero)
2018-10-01 14:04:02 -05:00
luigi1111
4d56befb85 Merge pull request #1576
aa9b6df add pirate language (erciccione)
2018-10-01 13:22:49 -05:00
luigi1111
a6efacdd8f Merge pull request #1572
1109f9c refresh all language files and monero_core.ts (erciccione)
ea4728a adds 'pages/settings/*.qml' in the sources who get picked by lupdate (erciccione)
2018-10-01 13:21:33 -05:00
erciccione
ea4728afde adds 'pages/settings/*.qml' in the sources who get picked by lupdate 2018-10-01 15:22:35 +01:00
erciccione
1109f9cec9 refresh all language files and monero_core.ts 2018-10-01 15:22:29 +01:00
erciccione
aa9b6df0c4 add pirate language 2018-10-01 13:48:22 +01:00
moneromooo-monero
59a63e7725 Fix blackball section to conform to format change 2018-09-30 12:02:56 +01:00
xiphon
af0f58f727 fixed "Keys" CTRL+Y hotkey 2018-09-27 14:01:14 +00:00
Nuno Martins
3bc4d6a10f Allow arguments to be passed to start-gui.sh
Allows arguments (`-h`, `-l`) to be passed to `start-gui.sh`, otherwise
the log file location cannot be specified when using the script.
2018-09-19 18:29:34 +02:00
luigi1111
3fd37b96a0 Merge pull request #1446
9bb6a25 Add support for creating hardware wallet (stoffu)
2018-09-12 18:18:36 -05:00
luigi1111
c46b5c82cd Merge pull request #1553
ccb1f36 Changed regex to support amount lines starting with a period, but block the transaction creation wizard (skftn)
94e3d98 Increased left margin for the amount text (skftn)
2018-09-12 17:29:01 -05:00
luigi1111
77a2ebc2c4 Merge pull request #1554
b31c04e pro: disable -fstack-protector* on windows (stoffu)
2018-09-12 16:09:30 -05:00
luigi1111
0c3f39ee0d Merge pull request #1542
9e50dfc Squashed intermediate steps; Final version of (180806__German_Translation) (Leza89)
2018-09-12 16:01:33 -05:00
stoffu
b31c04e148 pro: disable -fstack-protector* on windows
as per https://github.com/monero-project/monero/pull/4290
2018-09-04 19:16:26 +09:00
Sander Ferdinand
94e3d98452 Increased left margin for the amount text 2018-09-04 11:45:23 +02:00
Sander Ferdinand
ccb1f36083 Changed regex to support amount lines starting with a period, but block the transaction creation wizard 2018-09-04 11:45:20 +02:00
luigi1111
b585e7b498 Merge pull request #1494
d53a335 Fix some swedish translations (snaggen)
241ebc9 Change translation of solo mining... (snaggen)
2018-08-28 13:13:53 -05:00
luigi1111
6f73948846 Merge pull request #1547
4b5c985 Updated Spanish Translation (lh1008)
2018-08-24 14:59:27 -05:00
luigi1111
567bc07627 Merge pull request #1546
a04576d Corrected language code for Ukrainian in the localized file (ordtrogen)
2018-08-24 14:58:20 -05:00
luigi1111
2aa37133fe Merge pull request #1544
8115632 Spanish: Consistent translation of term 'mining' (ordtrogen)
2018-08-24 14:57:21 -05:00
luigi1111
fb1e39bbad Merge pull request #1543
a1e7134 update zh-tw translation for new strings (Lafudoci)
2018-08-24 14:56:16 -05:00
luigi1111
134422cb65 Merge pull request #1516
a60b05d Changed flag images. Changed flags file names to ISO alpha-2 standard. (kasperaitis)
2018-08-24 14:54:56 -05:00
luigi1111
d03c8959c8 Merge pull request #1447
d5b48aa Fixed russian translation (kerastinell)
2018-08-24 14:52:51 -05:00
Leza89
9e50dfc3ce Squashed intermediate steps; Final version of (180806__German_Translation)
Thank you, MaxXor, for reviewing
2018-08-24 21:27:28 +02:00
stoffu
9bb6a25f31 Add support for creating hardware wallet 2018-08-24 12:54:43 +09:00
lh1008
4b5c985349 Updated Spanish Translation 2018-08-22 12:28:27 -05:00
ordtrogen
8115632db5 Spanish: Consistent translation of term 'mining' 2018-08-21 23:30:15 +02:00
ordtrogen
a04576d4c3 Corrected language code for Ukrainian in the localized file 2018-08-21 22:40:06 +02:00
Lafudoci
a1e7134433 update zh-tw translation for new strings 2018-08-21 11:19:27 +08:00
Mattias Eriksson
241ebc9388 Change translation of solo mining...
from Enskild utvinning to Individuell utvinning
2018-08-20 13:10:22 +02:00
Mattias Eriksson
d53a335abc Fix some swedish translations
Mining should be translated to Utvinning according to
discussions on tp-sv@listor.tp-sv.se since it is already
an established term used in many Bitcoin projects.
And, if another term should be used Myntning was sugested
but had to stand back for the established term Utvinning.
2018-08-20 13:10:22 +02:00
Aivaras Kasperaitis
a60b05d40d Changed flag images. Changed flags file names to ISO alpha-2 standard. 2018-08-16 17:58:06 +03:00
luigi1111
c3f41ae003 Merge pull request #1523
756ea88 add finnish localization (rpinola)
2018-08-15 16:36:11 -05:00
luigi1111
3483b8dbec Merge pull request #1511
Settings overhaul (27 commits by skftn)
2018-08-14 16:15:31 -05:00
Sander Ferdinand
034f83bfb3 Fixes a SettingsLog layout bug 2018-08-06 09:57:13 +02:00
Sander Ferdinand
0a3d75d197 Fixes a particular hard to track bug where ColumnLayout considers MouseArea as part of its height/width after the parent StackView changed state a few times 2018-08-05 23:55:38 +02:00
Sander Ferdinand
39f2b99c7b Settings alignment and size adjustments 2018-08-05 23:45:25 +02:00
Sander Ferdinand
0fed21d6de Added component WarningBox and added a warning to remote node page 2018-08-05 23:45:20 +02:00
Sander Ferdinand
a9fa808dd1 Included copyright headers 2018-08-05 23:32:31 +02:00
Sander Ferdinand
5e3a8958f3 Disable layout options when in mobile mode 2018-08-05 23:32:31 +02:00
Sander Ferdinand
d5e27ff07d Copy to clipboard functionality for the Info page 2018-08-05 23:32:26 +02:00
Sander Ferdinand
8eee948f07 Replace SettingsInfo wallet name with wallet path 2018-08-05 20:56:39 +02:00
Sander Ferdinand
3d7090bdba Fixes a layout bug for SettingsLog.qml 2018-08-05 20:56:39 +02:00
Sander Ferdinand
eef3f8a3ac Lighten up the grey colors a bit 2018-08-05 20:56:32 +02:00
Sander Ferdinand
2671cd926c Change text selection color for input dialogs 2018-08-05 13:16:27 +02:00
Sander Ferdinand
666203bd0e Fixes the wallet creation height dialog 2018-08-05 13:13:59 +02:00
Sander Ferdinand
46ee2e9cc8 Include version.js 2018-08-05 12:55:24 +02:00
rpinola
756ea882c9 add finnish localization 2018-08-03 20:41:05 +02:00
kerastinell
d5b48aab07 Fixed russian translation 2018-08-03 18:19:42 +02:00
luigi1111
eece475fb8 Merge pull request #1469
bacad37 added missing translation for Croatian language (Fajl)
2018-08-02 17:49:38 -05:00
luigi1111
dda2390983 Merge pull request #1534
fb8ba82 Add hungarian translation (turossztrapacska)
2018-08-02 17:48:23 -05:00
luigi1111
496332a878 Merge pull request #1532
d2ee184 Correctly maximize window (MaxXor)
2018-08-02 17:46:34 -05:00
luigi1111
b43a268873 Merge pull request #1530
f3891ff Fix build instructions for Linux (MaxXor)
2018-08-02 17:45:43 -05:00
luigi1111
f156acda72 Merge pull request #1529
5e4bc36Fix return value when deleting an addressbook entry (MaxXor)
2018-08-02 17:44:37 -05:00
luigi1111
8076e71109 Merge pull request #1528
2842c33 Fix some QML warnings (MaxXor)
2018-08-02 14:05:23 -05:00
luigi1111
51e0f442d6 Merge pull request #1527
0451895 fixed: disable password dialog hotkeys handling when it is hidden (xiphon)
2018-08-02 14:04:20 -05:00
luigi1111
e1e55807bc Merge pull request #1525
0218312 Windows installer: Updates for 0.12.3.0 (rbrunner7)
2018-08-02 14:03:25 -05:00
luigi1111
4cc30a8cd6 Merge pull request #1521
7d1bbee Update monero-core_zh-cn.ts (CallMeMhz)
2018-08-02 14:02:05 -05:00
luigi1111
3c9b5b71df Merge pull request #1517
e629df9 Fix libwallet rebuilding even if it already exists (xiphon)
2018-08-02 13:59:51 -05:00
luigi1111
06bbda0c99 Merge pull request #1467
abccad8 Keys: allow keys to be copied separately (stoffu)
2018-08-02 13:58:49 -05:00
luigi1111
a9bea84086 Merge pull request #1450
06899c9 Update Ukranian language for GUI 0.12.1 (TheFuzzStone)
2018-08-02 13:57:44 -05:00
bormiki
fb8ba824f6 Add hungarian translation 2018-08-01 20:19:45 +02:00
Luka Fajl
bacad3733d added missing translation for Croatian language 2018-07-31 14:46:29 +02:00
MaxXor
d2ee1845e1 Correctly maximize window 2018-07-28 08:06:05 -04:00
MaxXor
5e4bc36fc3 Fix return value when deleting an addressbook entry 2018-07-28 07:47:16 -04:00
MaxXor
f3891ffe04 Fix build instructions for Linux 2018-07-28 07:45:43 -04:00
MaxXor
2842c33759 Fix some QML warnings 2018-07-28 07:37:43 -04:00
xiphon
045189553e fixed: disable password dialog hotkeys handling when it is hidden 2018-07-28 12:00:41 +03:00
René Brunner
0218312055 Windows installer: Updates for 0.12.3.0 2018-07-27 14:45:02 +02:00
Mega Hertz
7d1bbeef10 Update monero-core_zh-cn.ts 2018-07-25 14:02:04 +02:00
xiphon
9e9aa31df2 build: use 'exit' instead of 'return' in get_libwallet_api.sh 2018-07-19 23:06:48 +03:00
Sander Ferdinand
951be246b7 Updating qml.qrc 2018-07-18 18:59:14 +02:00
Sander Ferdinand
9872689abe Fixes some javascript errors 2018-07-18 18:28:00 +02:00
Sander Ferdinand
6be5e5731e Added settings page: Info 2018-07-18 18:23:53 +02:00
Sander Ferdinand
eb457019dd Move function to show the seed page to Utils.js 2018-07-18 16:51:56 +02:00
Sander Ferdinand
b7dbb83294 Added settings page: Log 2018-07-18 16:16:48 +02:00
Sander Ferdinand
28bd9a72d2 Added settings page: Wallet 2018-07-18 16:16:48 +02:00
Sander Ferdinand
9019fa8baa Added settings page: Node 2018-07-18 16:16:48 +02:00
Sander Ferdinand
1257eb642a Added settings page: Layout 2018-07-18 16:16:48 +02:00
Sander Ferdinand
140b7634ff Added settings navbar componenent 2018-07-18 16:16:48 +02:00
Sander Ferdinand
48da5a3dba Reworked page 'Settings', added a stackview 2018-07-18 16:16:48 +02:00
Sander Ferdinand
58f1e3c8a9 Added property itemTopMargin for component StandardDropdown 2018-07-18 16:16:48 +02:00
Sander Ferdinand
da27e1c78b Added static images for the Settings page 2018-07-18 16:16:48 +02:00
Sander Ferdinand
4f4d969416 Extra properties for components LineEditMulti and RemoteNodeEdit 2018-07-18 16:16:46 +02:00
Sander Ferdinand
15c5269e35 Moving settings QML files under pages/settings/ 2018-07-18 13:37:59 +02:00
TheFuzzStone
06899c937c Update Ukranian language for GUI 0.12.1 2018-07-18 11:57:54 +02:00
luigi1111
1107daab98 Merge pull request #1415
da93fc4 export/import key images (cryptochangements34)
2018-07-17 18:14:28 -05:00
luigi1111
292c11ee06 Merge pull request #1448
7116001 Update monero-core_tr.ts (IST34)
2018-07-17 16:59:42 -05:00
luigi1111
d554c7809d Merge pull request #1449
ac8e88e allow restoring from only spendkey (cryptochangements34)
2018-07-17 16:58:16 -05:00
luigi1111
527b48278a Merge pull request #1451
b5253f0 use radio buttons for export qr code (cryptochangements34)
2018-07-17 16:57:04 -05:00
luigi1111
9331f2cff1 Merge pull request #1452
f7bbdd3 add explicit mainnet button and move nettypes to advanced options (cryptochangements34)
2018-07-17 16:56:03 -05:00
luigi1111
2633419c8e Merge pull request #1454
f258ae4 don't check local daemon status on settings page, update on onWalletConnectionStatusChanged (pazos)
2018-07-17 16:54:17 -05:00
luigi1111
5d0854491a Merge pull request #1444
254553f Add libwinscard to link line on Windows (iDunk5400)
2018-07-17 16:52:29 -05:00
luigi1111
1fe61f2bc7 Merge pull request #1503
716366c revert 28fb9fa (cryptochangements34)
2018-07-17 16:48:40 -05:00
luigi1111
fb32dda5a1 Merge pull request #1491
030ff09 mobile view: draggable window (xiphon)
2018-07-17 16:43:41 -05:00
luigi1111
ceef6c8b6d Merge pull request #1488
0295641 hotkey for 'Shared RingDB' changed to CTRL+G instead of CTRL+A (xiphon)
2018-07-17 16:42:20 -05:00
luigi1111
c029dc8a5e Merge pull request #1482
0e4fa41 Update outdated libraries for windows build (PidgeyBE)
2018-07-17 16:40:15 -05:00
luigi1111
b78d9d0c03 Merge pull request #1479
28069f7 Added Lithuanian language. (kasperaitis)
2018-07-17 16:39:02 -05:00
luigi1111
8161cf3acb Merge pull request #1478
6e08eb1 windeploy: copy start-low-graphics-mode.bat (stoffu)
2018-07-17 16:37:26 -05:00
luigi1111
b9fcd8f60b Merge pull request #1473
f1f0109 Fix version string by picking up unannotated tags (stoffu)
2018-07-17 16:36:23 -05:00
luigi1111
07a4dd26a5 Merge pull request #1471
c1dd25a remove non-free SF fonts, add Roboto fonts + license (pazos)
2018-07-17 16:35:04 -05:00
luigi1111
ceda53d8d2 Merge pull request #1510
33c195d Change 'Default' fee level to 'Automatic' (cryptochangements34)
2018-07-17 16:32:26 -05:00
luigi1111
9662ef5a7c Merge pull request #1466
eb26b37 remove embedded Adobe color profile in denmark.png (erciccione)
2018-07-17 16:30:59 -05:00
luigi1111
7a629a5b37 Merge pull request #1476
53c3151 mark some strings as translatable (erciccione)
855d959 refresh all language files including new translatable strings (erciccione)
2018-07-17 16:29:38 -05:00
cryptochangements34
33c195d01d Change "Default" fee level to "Automatic" 2018-07-16 09:55:40 -05:00
Aivaras Kasperaitis
28069f7fb6 Added Lithuanian language. 2018-07-16 00:36:42 +03:00
cryptochangements34
716366c54f revert 28fb9fa2be
Changing the application name caused wallets created prior to v0.12 to "forget" their config
2018-07-09 14:39:21 -04:00
xiphon
030ff0994d mobile view: draggable window 2018-07-03 19:56:23 +03:00
xiphon
0295641aeb hotkey for "Shared RingDB" changed to CTRL+G instead of CTRL+A 2018-07-03 16:26:37 +03:00
PidgeyBE
0e4fa41c63 Update outdated libraries for windows build
https://github.com/monero-project/monero-gui/issues/1455
2018-07-01 23:56:52 +02:00
stoffu
6e08eb1c56 windeploy: copy start-low-graphics-mode.bat 2018-06-27 09:59:47 +09:00
erciccione
855d95909a refresh all language files including new translatable strings 2018-06-26 15:02:26 +03:00
erciccione
53c3151a23 mark some strings as translatable 2018-06-26 14:52:47 +03:00
Martín Fdez
c1dd25a77e remove non-free SF fonts, add Roboto fonts + license 2018-06-21 18:29:31 +02:00
stoffu
f1f0109621 Fix version string by picking up unannotated tags 2018-06-21 20:36:46 +09:00
Martín Fdez
f258ae4b60 don't check local daemon status on settings page, update on onWalletConnectionStatusChanged 2018-06-20 22:26:45 +02:00
stoffu
abccad8771 Keys: allow keys to be copied separately 2018-06-19 12:58:30 +09:00
erciccione
eb26b37b86 remove embedded Adobe color profile in denmark.png 2018-06-18 16:14:10 +03:00
cryptochangements34
f7bbdd3044 add explicit mainnet button and move nettypes to advanced options 2018-06-07 12:23:47 -04:00
cryptochangements34
b5253f03db use radio buttons for export qr code 2018-06-06 17:01:30 -04:00
cryptochangements34
ac8e88ee53 allow restoring from only spendkey 2018-06-05 21:16:19 -04:00
IST34 Token
7116001f5c Update monero-core_tr.ts 2018-06-05 18:29:52 +03:00
iDunk5400
254553f90e Add libwinscard to link line on Windows
This fixes monero-wallet-gui linking error in MSYS2 since PC/SC hw device support was added to Windows builds
2018-06-02 21:49:50 +02:00
luigi1111
cd46edb23f Merge pull request #1430
08f61e2 update instructions for debian based distros
2018-05-25 13:07:02 -05:00
luigi1111
9d43cf3b44 Merge pull request #1429
acaf0f5 update hebrew translation
2018-05-24 16:16:17 -05:00
pazos
08f61e25de update instructions for debian based distros 2018-05-24 16:33:06 +02:00
erciccione
acaf0f525d update hebrew translation 2018-05-24 10:32:07 +02:00
luigi1111
08c424cbc8 Merge pull request #1427
4a8545c Russian Language GUI Update for v0.12.1
2018-05-23 15:47:28 -05:00
luigi1111
fa560ad0a0 Merge pull request #1422
ccec187 Update Czech translation for 0.12.1
2018-05-22 15:11:28 -05:00
Pavel Ruzicka
ccec187ed6 Update Czech translation for 0.12.1
https://taiga.getmonero.org/project/erciccione-monero-localization/task/284
2018-05-22 20:18:44 +02:00
luigi1111
ddb51583d3 Merge pull request #1428
d06a16f require at least qt 5.7.0 when building the project
2018-05-22 12:26:26 -05:00
luigi1111
fec309b907 Merge pull request #1424
275c3df Fixed wrong argument for retrieving mixins
2018-05-22 12:25:03 -05:00
luigi1111
e91552ab3c Merge pull request #1426 (recovered #1390)
122ed15 update FR translations for v0.12.1
2018-05-22 12:21:05 -05:00
luigi1111
8efddfbb77 Merge pull request #1425
f4e58f1 fix restoreHeightEdit is not defined.
2018-05-22 12:19:48 -05:00
luigi1111
d89ff0fea1 Merge pull request #1423
c691fc1 update slovak translation
2018-05-22 12:18:37 -05:00
luigi1111
ba39119aab Merge pull request #1417
82c9a02 Update monero-core_pt-pt.ts
2018-05-22 12:17:20 -05:00
luigi1111
834e617736 Merge pull request #1414
cc32479 Update monero-core_zh-cn.ts
2018-05-22 12:16:21 -05:00
luigi1111
f63b098b61 Merge pull request #1408
a11eab5 updated Swedish translation of GUI strings
2018-05-22 12:15:24 -05:00
luigi1111
35bf427159 Merge pull request #1391
f6beb48 Upload new updated version danish translation
2018-05-22 12:13:33 -05:00
Ordtrogen Översättning
a11eab5bb7 updated Swedish translation of GUI strings 2018-05-22 18:13:51 +02:00
pazos
d06a16f7da require at least qt 5.7.0 when building the project 2018-05-22 14:31:34 +02:00
cryptochangements34
122ed15e11 update FR translations for v0.12.1
erciccione's review
2018-05-22 13:03:07 +02:00
fero-sk
c691fc1915 update slovak translation 2018-05-22 12:53:56 +02:00
MalMen
82c9a02447 Update monero-core_pt-pt.ts 2018-05-22 12:35:12 +02:00
widdy
f4e58f1aad fix restoreHeightEdit is not defined. 2018-05-22 18:22:29 +08:00
4broaf
cc32479662 Update monero-core_zh-cn.ts 2018-05-22 12:19:33 +02:00
luigi1111
9272767e4e Merge pull request #1418
5ba724b don't scroll to bottom after appending a new log message
2018-05-21 23:17:33 -05:00
luigi1111
3102118e38 Merge pull request #1406
fd03f08 translated and reviewed
2018-05-21 23:11:39 -05:00
luigi1111
5b725a4f20 Merge pull request #1393
d003b25 use regex for value input
2018-05-21 23:10:29 -05:00
luigi1111
82d925a1d8 Merge pull request #1384
8c5b403 Updated Polish Monero GUI translation for v0.12.1
2018-05-21 23:08:04 -05:00
luigi1111
520a4f4260 Merge pull request #1378
63478b1 fix typos in Receive.qml and SharedRingDB.qml
290339a missing <p>
2018-05-21 23:06:22 -05:00
luigi1111
5732245dac Merge pull request #1413
427b161 Update of romanian translation
2018-05-21 23:03:25 -05:00
luigi1111
ee6bcdb7d0 Merge pull request #1411
7dab8e5 Update monero-core_tr.ts
6e3f2f6 Update monero-core_tr.ts
2018-05-21 23:02:26 -05:00
luigi1111
2cb8f9fd2e Merge pull request #1410
7db6695 Translation of new items
9224056 Update monero-core_eo.ts
2018-05-21 23:00:16 -05:00
luigi1111
9ca81e6413 Merge pull request #1409
2539441 Update german strings for v0.12.1.0
2018-05-21 22:58:44 -05:00
luigi1111
56d6e38f85 Merge pull request #1400
25426c5 GUI Refresh for v0.12.1 - Italian translation
2018-05-21 22:56:40 -05:00
luigi1111
562f711e64 Merge pull request #1399
3314dbd Upload a new update version spanish translation
2018-05-21 22:55:44 -05:00
luigi1111
ed64160716 Merge pull request #1397
fa0e444 Update Traditional Chinese translation for v0.12.1
2018-05-21 22:54:45 -05:00
luigi1111
ca0978e094 Merge pull request #1392
a9fe150 0.12.1 Dutch translation update
2018-05-21 22:53:25 -05:00
luigi1111
fdfd387e80 Merge pull request #1386
f37efc4 Updating Serbian translation
2018-05-21 22:52:18 -05:00
luigi1111
6df6ad636c Merge pull request #1385
bcbf50a Update Japanese translations for 0.12.1
e551454 Add missing colon
2018-05-21 22:51:14 -05:00
einsteinsfool
275c3df302 Fixed wrong argument for retrieving mixins 2018-05-22 00:44:38 +02:00
Phillip Jensen
f6beb48f5e Upload new updated version danish translation
Few fixes
2018-05-21 12:24:01 +02:00
ni311
427b161606 Update of romanian translation
update of RO
2018-05-20 22:05:53 +02:00
hrumag
25426c5430 GUI Refresh for v0.12.1 - Italian translation 2018-05-20 19:28:42 +02:00
Keksoj
92240564bc Update monero-core_eo.ts
minor fixes
2018-05-16 22:43:25 +02:00
lh1008
3314dbd79f Upload a new update version spanish translation 2018-05-15 14:25:09 -05:00
rafficer
253944186b Update german strings for v0.12.1.0
German translation round 1

German translation round 2

Fix line break

German translation for v0.12.1.0

Fixed typos according to review

Fixed grammar

Fix typo

Fixes according to review by erciccione
2018-05-15 19:47:17 +02:00
Lafudoci
fa0e444db0 Update Traditional Chinese translation for v0.12.1 2018-05-16 01:05:25 +08:00
pazos
5ba724b7fa don't scroll to bottom after appending a new log message 2018-05-15 17:31:42 +02:00
xmoreee
6e3f2f6777 Update monero-core_tr.ts
I have changed %50 to 50%.
But  "%50" was correct translation.
May be we need an escape char before % sign.
2018-05-15 15:30:37 +03:00
cryptochangements34
da93fc4a86 export/import key images 2018-05-14 17:43:52 -04:00
curumimxara
fd03f083bd translated and reviewed
fixes
2018-05-14 15:51:15 -04:00
einsteinsfool
8c5b403b7c Updated Polish Monero GUI translation for v0.12.1 2018-05-14 16:51:50 +02:00
xmoreee
7dab8e509f Update monero-core_tr.ts 2018-05-13 20:20:45 +03:00
erciccione
290339a22d missing <p> 2018-05-13 17:11:25 +02:00
erciccione
63478b1c48 fix typos in Receive.qml and SharedRingDB.qml 2018-05-13 17:08:36 +02:00
Keksoj
7db6695768 Translation of new items
Almost all new items translated here. Would new an esperanto-speaking peer review but it'll do for now.
2018-05-13 14:29:36 +02:00
ProkhorZ
a9fe150778 0.12.1 Dutch translation update
Update of the NL translation for release 0.12.1. according to issue #1377. Paging @erciccione.
2018-05-13 09:05:46 +02:00
Aleksej Jocic
f37efc48a0 Updating Serbian translation 2018-05-12 11:46:23 +02:00
Takuto Hayashi
e551454fea Add missing colon 2018-05-12 09:51:51 +09:00
Takuto Hayashi
bcbf50a5bf Update Japanese translations for 0.12.1 2018-05-12 09:51:51 +09:00
cryptochangements34
d003b255b9 use regex for value input 2018-05-11 18:56:04 -04:00
luigi1111
06fdf27be2 Merge pull request #1388
78e0ae1 use radio buttons in daemon wizard
2018-05-11 17:48:06 -05:00
cryptochangements34
78e0ae1a4e use radio buttons in daemon wizard 2018-05-11 18:40:10 -04:00
luigi1111
b6a7836447 Merge pull request #1379
827c80d ctrl+tab switch pages in the same order as leftpanel
2bbd5c6 ctrl+shift+tab, switch pages in Leftpanel reverse order
2018-05-11 17:00:26 -05:00
luigi1111
4954491273 Merge pull request #1375
adb47ad minng warning label when daemon not syncd
2018-05-11 16:59:06 -05:00
luigi1111
4c2640d4b3 Merge pull request #1358
341ac18 log qt/qml to easylogging, add --log-file cmdline option
92582a9 delete unused WalletManager functions
c9daab7 don't use cmdline arguments as daemon arguments
7283fe4 use qWarning/qCritical on QrCodeScanner info/errors
15155f2 print logs on console
2018-05-11 16:57:43 -05:00
luigi1111
adc1db585a Merge pull request #1305
5109cb7 ReadMe: Updated Windows/MSYS2 compile instructions
2018-05-11 16:53:37 -05:00
luigi1111
f4ddb6faf9 Merge pull reqeust #1398
01dcfe0 fix typo on Info.plist
34b9a04 replace osx toolbar appname with CFBundleName
2018-05-11 16:51:12 -05:00
luigi1111
da014b07a9 Merge pull request #1387
31ef55d make some daemon wizard wording more clear
2018-05-11 16:48:45 -05:00
luigi1111
ecf4839f01 Merge pull request #1382
bde1d47 fix libpng16 warnings and *some* file permissions -> mogrify *.png
2018-05-11 16:47:34 -05:00
luigi1111
5730c4a29e Merge pull request #1381
6729ae7 don't translate log categories
2018-05-11 16:46:43 -05:00
luigi1111
fe811e2ec2 Merge pull request #1376
8ace062 refresh all language files
2018-05-11 16:45:43 -05:00
pazos
2bbd5c6814 ctrl+shift+tab, switch pages in Leftpanel reverse order 2018-05-11 22:30:40 +02:00
Agent LvM
4a8545c99f Russian Language GUI Update for v0.12.1 2018-05-11 21:04:15 +03:00
Martín Fdez
34b9a04af5 replace osx toolbar appname with CFBundleName 2018-05-10 23:26:59 +02:00
Martín Fdez
01dcfe01bb fix typo on Info.plist 2018-05-10 23:10:53 +02:00
cryptochangements34
31ef55d838 make some daemon wizard wording more clear 2018-05-08 20:47:39 -04:00
pazos
bde1d472d3 fix libpng16 warnings and *some* file permissions -> mogrify *.png 2018-05-08 19:17:24 +02:00
pazos
6729ae7380 don't translate log categories 2018-05-08 19:12:29 +02:00
pazos
827c80d4d8 ctrl+tab switch pages in the same order as leftpanel 2018-05-08 19:00:30 +02:00
pazos
15155f2db8 print logs on console 2018-05-08 18:22:21 +02:00
pazos
7283fe41c2 use qWarning/qCritical on QrCodeScanner info/errors 2018-05-08 18:19:55 +02:00
pazos
c9daab71bf don't use cmdline arguments as daemon arguments 2018-05-08 18:15:26 +02:00
pazos
92582a9785 delete unused WalletManager functions 2018-05-08 18:14:00 +02:00
pazos
341ac18f1a log qt/qml to easylogging, add --log-file cmdline option 2018-05-08 18:13:29 +02:00
cryptochangements34
adb47adf9b minng warning label when daemon not syncd 2018-05-07 21:27:22 -04:00
erciccione
8ace0628a1 refresh all language files 2018-05-07 23:18:22 +02:00
luigi1111
a7e99dc08a Merge pull request #1368
70492cc remove white background from portugal.png and srbija.png
2018-05-07 15:54:18 -05:00
luigi1111
4f7a4a4f70 Merge pull request #1367
894b10e add Info.plist template
2018-05-07 15:53:08 -05:00
luigi1111
b56074bef1 Merge pull request #1366
6147d81 Fix use of persistentSettings.testnet to nettype
2018-05-07 15:51:53 -05:00
luigi1111
ff3987ccab Merge pull request #1362
fe53cdd Brighter backgrounds
7418a10 Improve contrast - brighten up borders
48b9aa4 Brigther left panel
26aabd2 Bottom left panel needs to have a transparent background
2018-05-07 15:50:45 -05:00
luigi1111
6de8e70004 Merge pull request #1359
5a1952f Reordered QR/Tracking sections on the receive page
44ad8a3 Redesigned the tracking section
cb94523 This doesnt belong here
6ff273f First iteration of the subaddress table restyle
0e49e4a Reimplemented create/edit/copy (sub)address icons and buttons
5487383 Variable address truncation (for mobile)
9018ae3 Dynamic page height for the receive page
dc1d5e9 Check the 'to receive amount' with the transaction tracker
229fba2 Introduced 'show advanced options' checkbox
d6427a1 Fixes undefined references to 'bg', was previously moved to main.inactiveOverlay
1541d87 Fixes undefined reference to 's'
178be38 Cursor pointer on link hover for richtexts
bfbe00e Removed obsolete SubaddressTable.qml component
3e5f5f3 Adding editIcon.png
bff2701 Fixes the background for 2 popups
2018-05-07 15:48:38 -05:00
luigi1111
d69176e936 Merge pull request #1299
d8606ea Name of Turkish language and list of languages
2018-05-07 15:43:53 -05:00
erciccione
70492cc169 remove white background from portugal.png and srbija.png 2018-05-03 13:53:08 +02:00
Sander Ferdinand
26aabd2226 Bottom left panel needs to have a transparent background 2018-05-03 12:56:54 +02:00
Sander Ferdinand
48b9aa450d Brigther left panel 2018-05-03 12:53:30 +02:00
Sander Ferdinand
bff27010f3 Fixes the background for 2 popups 2018-05-03 12:35:53 +02:00
Sander Ferdinand
3e5f5f3245 Adding editIcon.png 2018-05-03 12:35:53 +02:00
Sander Ferdinand
bfbe00e11c Removed obsolete SubaddressTable.qml component 2018-05-03 12:35:53 +02:00
Sander Ferdinand
178be387bb Cursor pointer on link hover for richtexts 2018-05-03 12:35:53 +02:00
Sander Ferdinand
1541d87122 Fixes undefined reference to 's' 2018-05-03 12:35:53 +02:00
Sander Ferdinand
d6427a1efb Fixes undefined references to 'bg', was previously moved to main.inactiveOverlay 2018-05-03 12:35:53 +02:00
Sander Ferdinand
229fba2de9 Introduced 'show advanced options' checkbox 2018-05-03 12:35:53 +02:00
Sander Ferdinand
dc1d5e9e0a Check the 'to receive amount' with the transaction tracker 2018-05-03 12:35:53 +02:00
Sander Ferdinand
9018ae3afe Dynamic page height for the receive page 2018-05-03 12:35:53 +02:00
Sander Ferdinand
5487383068 Variable address truncation (for mobile) 2018-05-03 12:35:53 +02:00
Sander Ferdinand
0e49e4ad37 Reimplemented create/edit/copy (sub)address icons and buttons 2018-05-03 12:35:53 +02:00
Sander Ferdinand
6ff273fd32 First iteration of the subaddress table restyle 2018-05-03 12:35:34 +02:00
Sander Ferdinand
cb94523747 This doesnt belong here 2018-05-03 12:35:34 +02:00
Sander Ferdinand
44ad8a3be1 Redesigned the tracking section 2018-05-03 12:35:34 +02:00
Sander Ferdinand
5a1952f7ac Reordered QR/Tracking sections on the receive page 2018-05-03 12:35:34 +02:00
pazos
894b10eeb4 add Info.plist template 2018-05-02 17:27:22 +02:00
Doyle T
6147d81cc5 Fix use of persistentSettings.testnet to nettype 2018-05-02 11:29:47 +10:00
ProkhorZ
d8606ea917 Name of Turkish language and list of languages
1. Change 'Turkish' to 'Türkçe' in the opening screen. I don't speak Turkish, but the language name is pretty obvious.
2. Change wallet_language for Turkish to English, because there's actually not a mnemonics word list in Turkish at the moment, although it's listed here in the comment above.
3. Update that list of available seed languages. Source: https://github.com/monero-project/monero/blob/master/src/mnemonics/electrum-words.cpp
4. Change wallet_language for Catalan to 'English', because there's no Catalan word list. Personally, I think 'Español' would be more useful to speakers of Catalan, but that's a political decision which requires discussion.
2018-05-01 16:44:38 +02:00
luigi1111
7cea134352 Merge pull request #1346
610682c Added component RadioButton; changed 'settings->daemon mode' checkboxes to use them
c409441 Radio buttons for the welcome wizard
2018-04-30 23:15:06 -05:00
luigi1111
08e5154535 Merge pull request #1345
2c73ca2 Added missing translations
2018-04-30 23:12:09 -05:00
luigi1111
aa74e9e026 Merge pull request #1337
l33t

b846673 Reformat Settings->Debug Info
170ddf1 Removes 'Daemon log path:' from the debug info
199aedf Dialog(s) for changing restore height
ec640dc Cursor pointer on link hover
2018-04-30 23:09:31 -05:00
luigi1111
3c45dcca7a Merge pull request #1294
2d69718 Rename monero-core_rs.ts to monero-core_sr.ts
2018-04-30 23:06:58 -05:00
luigi1111
1eaedb3e8e Merge pull request #1232 2018-04-30 23:05:56 -05:00
Sander Ferdinand
7418a10d28 Improve contrast - brighten up borders 2018-04-30 00:52:48 +02:00
Sander Ferdinand
fe53cddd03 Brighter backgrounds 2018-04-30 00:45:24 +02:00
Sander Ferdinand
ec640dcd1b Cursor pointer on link hover 2018-04-28 18:14:13 +02:00
Aleksej Jocic
2d697187ff Rename monero-core_rs.ts to monero-core_sr.ts 2018-04-28 17:49:45 +02:00
Sander Ferdinand
c40944144a Radio buttons for the welcome wizard 2018-04-28 16:40:01 +02:00
Sander Ferdinand
610682c2be Added component RadioButton; changed 'settings->daemon mode' checkboxes to use them 2018-04-28 15:21:46 +02:00
Sander Ferdinand
199aedf60a Dialog(s) for changing restore height 2018-04-28 15:17:36 +02:00
Sander Ferdinand
170ddf1f6f Removes 'Daemon log path:' from the debug info 2018-04-28 03:28:05 +02:00
Sander Ferdinand
b8466739f9 Reformat Settings->Debug Info 2018-04-28 03:28:05 +02:00
luigi1111
9f0d771f40 Merge pull request #1357
e1359ac refactor platform dependant code
400c385 add minimal cmdline parser
ffeecb6 move monero stuff after app constructor + cmdline parser
1b07cda move screen defs earlier in main function & fix width and height
74233bf force -platform xcb on linux
59a4afe consistency in if/else statements and MACROS
2018-04-27 15:43:58 -05:00
luigi1111
dbcd11563f Merge pull request #1356
df3e5de remove old unused files
73d93c3 remove windows resource file, qmake will generate one for us
2018-04-27 15:40:56 -05:00
luigi1111
19ac2aeb19 Merge pull request #1347
3635b2f Change input address placeholder from '4...' to '4.. / 8..'
2018-04-27 15:38:45 -05:00
luigi1111
37bceb7897 Merge pull request #1344
c13b4cb Redesigned shared ringdb panel
b75eedd Fixes CTRL-A hotkey
1e8f8bf Reformat help tooltips
2018-04-27 15:37:31 -05:00
luigi1111
679d18166f Merge pull request #1341
7d8d477 Redesigned the daemon console pop-up
acefb96 Added 'Windows.js' for dialogs/windows
47f9a17 Modify password dialog and move customdecorations function out of main.qml
4d56ed9 Make the titlebar more modular
7fe9d71 Added daemonConsole component to main.qml
75ccc7a Added Utils.js, for miscellaneous Javascript functions
2018-04-27 15:35:34 -05:00
luigi1111
1deef73237 Merge pull request #1290
791c267 fix Leftpanel overlay
2018-04-27 15:31:53 -05:00
pazos
73d93c3c23 remove windows resource file, qmake will generate one for us 2018-04-26 20:04:55 +02:00
pazos
59a4afef3c consistency in if/else statements and MACROS 2018-04-25 17:11:19 +02:00
Sander Ferdinand
75ccc7a31b Added Utils.js, for miscellaneous Javascript functions 2018-04-25 16:32:12 +02:00
Sander Ferdinand
7fe9d71eb3 Added daemonConsole component to main.qml 2018-04-25 16:32:12 +02:00
Sander Ferdinand
4d56ed9e27 Make the titlebar more modular 2018-04-25 16:32:12 +02:00
Sander Ferdinand
47f9a1765a Modify password dialog and move customdecorations function out of main.qml 2018-04-25 16:31:13 +02:00
Sander Ferdinand
acefb96520 Added 'Windows.js' for dialogs/windows 2018-04-25 16:31:13 +02:00
Sander Ferdinand
7d8d477a19 Redesigned the daemon console pop-up 2018-04-25 16:31:13 +02:00
pazos
74233bf459 force -platform xcb on linux 2018-04-25 15:36:08 +02:00
pazos
1b07cdad1c move screen defs earlier in main function & fix width and height 2018-04-25 15:33:23 +02:00
pazos
ffeecb6234 move monero stuff after app constructor + cmdline parser 2018-04-25 15:29:17 +02:00
pazos
400c385a5c add minimal cmdline parser 2018-04-25 15:26:54 +02:00
pazos
e1359ace86 refactor platform dependant code 2018-04-25 15:23:56 +02:00
pazos
df3e5de3f1 remove old unused files 2018-04-25 15:00:19 +02:00
Sander Ferdinand
1e8f8bf3cd Reformat help tooltips 2018-04-25 14:54:04 +02:00
Sander Ferdinand
3635b2f001 Change input address placeholder from '4...' to '4.. / 8..' 2018-04-25 14:25:02 +02:00
luigi1111
60cefb3820 Merge pull request #1353
eed5005 Settings: do not invoke status command when using remote node
2018-04-24 21:45:57 -05:00
luigi1111
d2f90be148 Merge pull request #1351
0988f54 Removing legacy whatis button from titlebar
2018-04-24 21:44:21 -05:00
luigi1111
8532b240be Merge pull request #1339
544b872 Selection color for inputs
2018-04-24 21:42:19 -05:00
luigi1111
1956f5896d Merge pull request #1286
cd4418d Receive: make tracking optional
a9331a7 Set daemon address to WalletManager (requires #3576)
2018-04-24 21:40:46 -05:00
luigi1111
366534a295 Merge pull request #1017
cfc6abc Embed the translation files in the monero-wallet-gui binary
2018-04-24 21:38:40 -05:00
luigi1111
631560c95a Merge pull request #1336
25e5b35 dynamic panel height for the settings page
2018-04-24 21:35:52 -05:00
stoffu
eed500560d Settings: do not invoke status command when using remote node 2018-04-24 18:41:46 +09:00
Gene Peters
0988f54bd2 Removing legacy whatis button from titlebar 2018-04-23 17:47:35 -07:00
Guillaume LE VAILLANT
cfc6abcfdc Embed the translation files in the monero-wallet-gui binary
If a translation file exists in a "translations" directory located in the same
directory as the binary, it is used in priority (this can be useful when working
on translations as you don't have to recompile the whole program all the time),
and if no such file is found the embedded translation file is used.
2018-04-23 13:56:12 +02:00
luigi1111
5a5d92e6f6 Merge pull request #1323
b38729f fix openalias resolve
2018-04-22 20:04:15 -05:00
luigi1111
d248e45563 Merge pull request #1321
251db80 show correct address in wizard if remote node used
2018-04-22 20:03:00 -05:00
luigi1111
dba28580e9 Merge pull request #1311
28fb9fa update ApplicationName to monero-gui
2018-04-22 20:00:56 -05:00
Sander Ferdinand
b75eedde0a Fixes CTRL-A hotkey 2018-04-22 22:49:11 +02:00
Phillip Jensen
2c73ca216e Added missing translations 2018-04-22 21:10:12 +02:00
Sander Ferdinand
c13b4cb7bd Redesigned shared ringdb panel 2018-04-22 20:07:31 +02:00
lovvskillz
d5b8ce4bec fix some grammar and wording (#11)
* fix some grammar and wording

* remove the space in front of the dots
2018-04-22 18:31:36 +02:00
Rafficer
85aa323a2d Rename "entfernter Node" to "remote-Node" 2018-04-22 18:31:36 +02:00
vadim
b0f54f6d1d fix typo 2018-04-22 18:31:36 +02:00
Rafficer
acb76b867e remove translatorcomment 2018-04-22 18:31:36 +02:00
vadim
977d9873a7 fix unfinished type 2018-04-22 18:31:36 +02:00
Rafficer
ee328592e9 updated empty fields to unfinished 2018-04-22 18:31:35 +02:00
FalconGoat
431feea267 Translating leftover terms 2018-04-22 18:31:35 +02:00
Rafficer
4f62745207 Added new translations 2018-04-22 18:31:35 +02:00
FalconGoat
05bb8beb71 Proof-read some missed entries 2018-04-22 18:31:35 +02:00
FalconGoat
ab42e7b23a Implemented conclusions from today's discussion 2018-04-22 18:31:35 +02:00
FalconGoat
b4a54eb047 Some work done 2018-04-22 18:31:35 +02:00
Rafficer
5279971bd7 second half update 2018-04-22 18:31:35 +02:00
FalconGoat
f86360faf4 Finished 1st run over chunk
Translate all instances of balance to 'Guthaben'
2018-04-22 18:31:34 +02:00
Rafficer
57d8ec5e32 updated/added german translations 2018-04-22 18:31:34 +02:00
FalconGoat
68898636a4 begin translation 2018-04-22 18:29:24 +02:00
cryptochangements34
b38729fc0e fix openalias resolve 2018-04-21 21:48:31 -04:00
Sander Ferdinand
544b872ada Selection color for inputs 2018-04-21 15:26:48 +02:00
Sander Ferdinand
25e5b3528e dynamic panel height for the settings page 2018-04-20 22:42:32 +02:00
luigi1111
72541b6d51 Merge pull request #1329
9c44252 fix black checkmark on sharedringdb page
2018-04-19 11:39:22 -05:00
luigi1111
a7a954bb22 Merge pull request #1322
66f2983 fix typo in daemon setup wizard
2018-04-19 11:38:03 -05:00
luigi1111
d72e9873d1 Merge pull request #1320
f04a9e0 single colour privacy level
2018-04-19 11:37:02 -05:00
luigi1111
46dc634a5c Merge pull request #1315
d074854 replace qDebug for qWarning, lean message
2018-04-19 11:35:20 -05:00
luigi1111
9b8badc00c Merge pull request #1306
67e9109 Implement 'rightIcon' and 'rightIconInactive' image properties for componenent StandardButton
2018-04-19 11:33:11 -05:00
luigi1111
7251254d8f Merge pull request #1287
6ba65d4 Settings: use checkbox instead of button for daemon mode switching
2018-04-19 11:31:47 -05:00
qubenix
9c4425295b fix black checkmark on sharedringdb page
+ changed `checkedBlackIcon.png` to `checkedIcon-black.png` in pages/SharedRingDB.qml
2018-04-18 14:28:19 -06:00
cryptochangements34
f04a9e07e1 single colour privacy level 2018-04-15 09:45:30 -04:00
cryptochangements34
66f29831e1 fix typo in daemon setup wizard 2018-04-14 23:50:05 -04:00
cryptochangements34
251db80609 show correct address in wizard if remote node used 2018-04-14 23:33:51 -04:00
pazos
791c26734f fix Leftpanel overlay 2018-04-13 21:43:15 +02:00
pazos
d074854aae replace qDebug for qWarning, lean message 2018-04-13 19:37:48 +02:00
cryptochangements34
28fb9fa2be update ApplicationName to "monero-gui" 2018-04-12 20:56:11 -04:00
Sander Ferdinand
67e9109c14 Implement 'rightIcon' and 'rightIconInactive' image properties for componenent StandardButton 2018-04-10 22:36:39 +02:00
René Brunner
5109cb7b33 ReadMe: Updated Windows/MSYS2 compile instructions 2018-04-10 21:29:17 +02:00
luigi1111
b4353a31ac Merge pull request #1239
4e6a421 Add Qt Runtime version to settings page
2018-04-08 17:54:20 -05:00
luigi1111
a15f088e8b Merge pull request #1245
84fad36 Add missing newline to transfer confirm dialog
2018-04-08 17:53:13 -05:00
luigi1111
3034348ac8 Merge pull request #1243
9393529 ProgressBar: fix conversion to percentage
2018-04-08 17:50:09 -05:00
luigi1111
4927d9c29e Merge pull request #1258
ffd49c1 Updated README.md with new dependencies for Ubuntu 16.04+:
2018-04-08 17:45:31 -05:00
luigi1111
d71c35ab22 Merge pull request #1263
6ef2a8e Wallet: fix listener leak
2018-04-08 17:43:59 -05:00
luigi1111
11e3380ab1 Merge pull request #1272
4a96678 Fixes a bug where progress bars were not 100% filled visually (slightly off)
2018-04-08 17:42:39 -05:00
luigi1111
3d00c4ae30 Merge pull request #1271
3b76636 Refactoring signal functions
1378ae4 Reset flickable scrollview to 0 Y position
2018-04-08 17:40:11 -05:00
luigi1111
8db58b42af Merge pull request #1270
6ca0713 Fixes blockchain size warnings
2018-04-08 17:39:03 -05:00
luigi1111
8d5690c834 Merge pull request #1269
39ca338 Fixes misaligned symbols/shortcuts and changes Shared RingDB shortcut to 'A'
2018-04-08 17:37:58 -05:00
luigi1111
a8e545891c Merge pull request #1268
0e92a8f Fixes transparent dropdown
2018-04-08 17:36:43 -05:00
stoffu
6ba65d4caa Settings: use checkbox instead of button for daemon mode switching 2018-04-07 14:32:47 +09:00
stoffu
a9331a757f Set daemon address to WalletManager (requires #3576) 2018-04-07 14:10:31 +09:00
stoffu
cd4418dc45 Receive: make tracking optional 2018-04-07 14:09:28 +09:00
Sander Ferdinand
4a96678580 Fixes a bug where progress bars were not 100% filled visually (slightly off) 2018-04-05 11:56:44 +02:00
Sander Ferdinand
1378ae45c3 Reset flickable scrollview to 0 Y position 2018-04-05 11:52:09 +02:00
Sander Ferdinand
3b76636d6b Refactoring signal functions 2018-04-05 10:32:43 +02:00
Sander Ferdinand
6ca0713739 Fixes blockchain size warnings 2018-04-05 09:21:43 +02:00
Sander Ferdinand
39ca338f96 Fixes misaligned symbols/shortcuts and changes Shared RingDB shortcut to 'A' 2018-04-05 08:30:51 +02:00
Sander Ferdinand
0e92a8f723 Fixes transparent dropdown 2018-04-05 08:20:36 +02:00
moneromooo-monero
6ef2a8e21d Wallet: fix listener leak 2018-04-04 16:59:45 +01:00
Michal
ffd49c1777 Updated README.md with new dependencies for Ubuntu 16.04+:
qml-module-qtquick-controls2
    qml-module-qt-labs-folderlistmodel
2018-04-04 11:52:17 +01:00
stoffu
84fad36282 Add missing newline to transfer confirm dialog 2018-04-03 12:29:40 +09:00
stoffu
9393529613 ProgressBar: fix conversion to percentage 2018-04-03 11:51:37 +09:00
luigi1111
76a105261e Merge pull request #1240
199ed44 Bring QTQuick.Controls version down to 2.0
2018-04-02 12:29:06 -05:00
dEBRUYNE-1
199ed44aae Bring QTQuick.Controls version down to 2.0 2018-04-02 11:40:42 +02:00
Martín Fdez
4e6a4213ff Add Qt Runtime version to settings page 2018-04-01 22:10:30 +02:00
luigi1111
fbe5ba8317 Merge pull request #1236
9f58e29 Add libpcsclite to link line if libwallet_merged is linked against it
2018-03-31 16:52:32 -05:00
luigi1111
12aa815c5a Merge pull request #1234
abe0ae9 Adds warning message for when a transaction with a non-default mixin value is created
2018-03-31 14:46:09 -05:00
luigi1111
2a8d6f192a Merge pull request #1205
2067cbe link to boost lib filenames from msys2 package
2018-03-31 14:43:00 -05:00
Sander Ferdinand
abe0ae9304 Adds warning message for when a transaction with a non-default mixin value is created 2018-03-31 21:42:38 +02:00
luigi1111
4fc34f6886 Merge pull request #1230
afd624d Key reuse warning
2018-03-31 14:35:34 -05:00
Sander Ferdinand
afd624d0c0 Key reuse warning 2018-03-31 21:34:04 +02:00
luigi1111
f06ee51f05 Merge pull request #1235
f6fb6df Move the dialog title down a bit
2018-03-31 14:32:40 -05:00
luigi1111
be0b04c54e Merge pull request #1233
86746a1 Number comparison should be float
2018-03-31 14:30:59 -05:00
luigi1111
ed358e6e16 Merge pull request #1201
71fe3e4 replace turkish flag
2018-03-31 14:22:32 -05:00
iDunk5400
9f58e29f1c Add libpcsclite to link line if libwallet_merged is linked against it
This fixes unresolved dependencies when linking monero-wallet-gui if libwallet_merged was built with HW device support.
2018-03-31 19:54:51 +02:00
Sander Ferdinand
f6fb6df48c Move the dialog title down a bit 2018-03-31 19:21:08 +02:00
Sander Ferdinand
86746a1563 Number comparison should be float 2018-03-31 16:25:11 +02:00
luigi1111
47dc499413 Merge pull request #1226
4cfa813 Monero submodule: use release-v0.12 branch
2018-03-31 05:21:47 -05:00
luigi1111
a7594d64a2 Merge pull request #1221
2bd8e2f Bring back wallet name at the password dialog
2018-03-31 04:43:14 -05:00
luigi1111
a229f7006f Merge pull request #1220
a272427 Increase panel height for the settings page
2018-03-31 04:42:10 -05:00
luigi1111
34b6bcf504 Merge pull request #1219
90818ef Disable send button when there is an insufficient unlocked balance
2018-03-31 04:40:54 -05:00
luigi1111
0ef429fdac Merge pull request #1218
77648e7 Bring back the 'unlocked balance' text in the balance card
2018-03-31 04:39:29 -05:00
luigi1111
a090c724f8 Merge pull request #1217
e638ed0 Explicitly import MoneroComponents; prevent namespace pollution
2018-03-31 04:37:33 -05:00
dEBRUYNE-1
4cfa813cd5 Monero submodule: use release-v0.12 branch 2018-03-31 10:19:58 +02:00
Sander Ferdinand
2bd8e2feda Bring back wallet name at the password dialog 2018-03-31 03:56:56 +02:00
Sander Ferdinand
a272427423 Increase panel height for the settings page 2018-03-31 03:39:26 +02:00
Sander Ferdinand
e638ed0272 Explicitly import MoneroComponents; prevent namespace pollution 2018-03-31 03:25:20 +02:00
Sander Ferdinand
90818efe5e Disable send button when there is an insufficient unlocked balance 2018-03-31 03:16:35 +02:00
Sander Ferdinand
77648e71e9 Bring back the 'unlocked balance' text in the balance card 2018-03-31 03:01:20 +02:00
luigi1111
959c2fcc32 Merge pull request #1204
018ada3 Display Arabic in Arabic (العربية) in menu
2018-03-30 14:32:25 -05:00
luigi1111
79c946367f Merge pull request #1206
Look at the PR, I'm not listing the commits here
2018-03-30 14:29:06 -05:00
Sander Ferdinand
b32b308332 Dont use displayAmount, use amount instead 2018-03-29 23:04:05 +01:00
Sander Ferdinand
011e301324 Turn the SharedRing page black 2018-03-29 23:04:05 +01:00
Sander Ferdinand
fb6b467dcb Removed unused property 2018-03-29 23:04:04 +01:00
Sander Ferdinand
d98221ac56 Fixes the placeholder texts for RemoteNodeEdit in the wallet creation wizard 2018-03-29 23:04:04 +01:00
Sander Ferdinand
6e503cd0e2 Replace violet checkbox mark with a black one 2018-03-29 23:04:04 +01:00
Sander Ferdinand
408878290e nettype comparison needs to be loose 2018-03-29 23:04:04 +01:00
Sander Ferdinand
d2d6e3ad66 Fixes the placeholder texts for inputboxes in the wallet recovery wizard 2018-03-29 23:04:04 +01:00
Sander Ferdinand
0b7966f625 Fixes transaction confirmation dialog and also makes sure you will not be able to transfer funds when the daemon is not up (to date) 2018-03-29 23:04:04 +01:00
Sander Ferdinand
9afaa7cf0f Avoid logging addresses and other sensitive data 2018-03-29 23:04:04 +01:00
Sander Ferdinand
b35d60db2d Remove unused whatIsIcon.png related code 2018-03-29 23:04:04 +01:00
Sander Ferdinand
1d34d21a60 Removing unused function get_color() 2018-03-29 23:04:04 +01:00
Sander Ferdinand
da2c6e8bc8 Fixes javascript error; .trim() on undefined 2018-03-29 23:04:04 +01:00
Sander Ferdinand
0bfff8844e nettype comparison needs to be loose 2018-03-29 23:04:04 +01:00
Sander Ferdinand
3c24044736 Cleanup after rebase 2018-03-29 23:04:04 +01:00
Sander Ferdinand
3d4eb7a5f5 Progress bars are always visible after recent change to two bars 2018-03-29 23:04:04 +01:00
Sander Ferdinand
06bda869e0 font.bold for amount/address/paymentid on the transfer page 2018-03-29 23:04:04 +01:00
Sander Ferdinand
c001e31241 Fixes runtime QML warning 2018-03-29 23:04:04 +01:00
Sander Ferdinand
3f9926487d Fixes typo 2018-03-29 23:04:04 +01:00
Sander Ferdinand
84e6461248 Change 'money' to 'monero' 2018-03-29 23:04:04 +01:00
Sander Ferdinand
60f64a30ad Implement node bootstrap on the Settings page 2018-03-29 23:04:04 +01:00
Sander Ferdinand
28608e4ce0 Restyling the dialog boxes a bit more 2018-03-29 23:04:04 +01:00
Sander Ferdinand
2d7ef434be Updated balance card; removes lock icon 2018-03-29 23:04:04 +01:00
Sander Ferdinand
7e8915966b Bring QT version down to 5.7 2018-03-29 23:04:04 +01:00
Sander Ferdinand
625b92318f Restyled warning box (not connected to daemon) 2018-03-29 23:04:03 +01:00
Sander Ferdinand
b38ee48e59 Redesigned NewPasswordDialog 2018-03-29 23:04:03 +01:00
Sander Ferdinand
72a7fac467 Restyled password dialog 2018-03-29 23:04:03 +01:00
Sander Ferdinand
916c7acbb7 Design polish work 2018-03-29 23:04:03 +01:00
Sander Ferdinand
6e794e3c50 Redoing the Sign/Verify page 2018-03-29 23:04:03 +01:00
Sander Ferdinand
7c0f704fbd Clip subaddr table items 2018-03-29 23:04:03 +01:00
Sander Ferdinand
f544d9ac78 Exit application when wallet variable is empty 2018-03-29 23:04:03 +01:00
Sander Ferdinand
8f368b9b3b Remove seed from WizardFinished for now, as it yields an undefined error 2018-03-29 23:04:03 +01:00
Sander Ferdinand
5213daad77 Dynamic subaddr table height, dont show history table when there is none 2018-03-29 23:04:03 +01:00
Sander Ferdinand
57c0477fc6 Design polish work 2018-03-29 23:04:03 +01:00
Sander Ferdinand
70983136bc Generate proof from history view and made javascript file with tx related functions 2018-03-29 23:04:03 +01:00
Sander Ferdinand
09935ba4b0 Fixes duplicate id 2018-03-29 23:04:03 +01:00
Sander Ferdinand
3ba4224b69 Redesigned StandardDialog 2018-03-29 23:04:03 +01:00
Sander Ferdinand
69b4d56fdd Small style changes 2018-03-29 23:04:03 +01:00
Sander Ferdinand
bbc16e36dd Fixes the progressbars alignment 2018-03-29 23:04:03 +01:00
Sander Ferdinand
499419a23c Redesigned txkey/sign pages 2018-03-29 23:04:03 +01:00
Sander Ferdinand
30bf765b75 Fixing up after rebase 2018-03-29 23:04:03 +01:00
Sander Ferdinand
bb9e4ee0b9 Changed scrollbar width 2018-03-29 23:04:03 +01:00
Sander Ferdinand
57a9508849 Receive page; modified subaddress table 2018-03-29 23:04:03 +01:00
Sander Ferdinand
4977049425 Fixes some fonts, introduces a new checkbox and fixes 0 amount history entries 2018-03-29 23:04:03 +01:00
Sander Ferdinand
53b5b7a5c7 Fixing the start-up wizards 2018-03-29 23:04:03 +01:00
Sander Ferdinand
a128581ae5 Restyled addressbook panel 2018-03-29 23:04:02 +01:00
Sander Ferdinand
6677a185f8 Some font adjustments 2018-03-29 23:04:02 +01:00
Sander Ferdinand
a9b6a70d15 Cleanup after rebase 2018-03-29 23:04:02 +01:00
Sander Ferdinand
cf2791a246 New history page, including the mobile version. 2018-03-29 23:04:02 +01:00
Sander Ferdinand
c28d2daf20 White text for tick delegate 2018-03-29 23:04:02 +01:00
Sander Ferdinand
4f3bf839f7 Hover effects for titlebar buttons 2018-03-29 23:04:02 +01:00
Sander Ferdinand
129562594d Removing unnecessary label 2018-03-29 23:04:02 +01:00
Sander Ferdinand
676d976e53 Pointinghand cursor for checkboxes 2018-03-29 23:04:02 +01:00
Sander Ferdinand
e339034082 Added better gradient for MenuButton, implemented 'arrow.png' for checked menu buttons and replaced leftPanel background gradient 2018-03-29 23:04:02 +01:00
Sander Ferdinand
5a36aa7fce Change default font color / family for checkboxes 2018-03-29 23:04:02 +01:00
Sander Ferdinand
f262ce5209 Finishing up on the settings page for now and modified some QML components 2018-03-29 23:04:02 +01:00
Sander Ferdinand
be9cb8931c StandardButton - removed unused properties and some layout changes to settings page 2018-03-29 23:04:02 +01:00
Sander Ferdinand
0477af1b0d Settings - dropdown for log level 2018-03-29 23:04:02 +01:00
Sander Ferdinand
0b9e89691d Remove debugging leftovers from transfer page 2018-03-29 23:04:02 +01:00
Sander Ferdinand
d654ec1647 Settings page WIP 2018-03-29 23:04:02 +01:00
Sander Ferdinand
a1cdb572e2 Added 2 components: LineEditMulti.qml && LabelButton.qml - multiline line edits 2018-03-29 23:04:02 +01:00
Sander Ferdinand
e5357c8a0b Receive page development 2018-03-29 23:04:02 +01:00
cryptochangements34
de3fd183d8 Re-style AddressBookTable 2018-03-29 23:04:02 +01:00
Sander Ferdinand
328eb32a24 Various QML development 2018-03-29 23:04:02 +01:00
Sander Ferdinand
f48cd1b82b Checkbox/Standard button development 2018-03-29 23:04:01 +01:00
Sander Ferdinand
948669edbc Move default divider/button colors to Style.qml 2018-03-29 23:04:01 +01:00
Sander Ferdinand
868fbe2f2d Move default font color to Style.qml 2018-03-29 23:04:01 +01:00
Sander Ferdinand
22792df5cd Hide the custom titlebar when custom decorations are turned off 2018-03-29 23:04:01 +01:00
Sander Ferdinand
af9e4e86f0 Replacing checkbox, using default values from component 2018-03-29 23:04:01 +01:00
Sander Ferdinand
5028491ab3 Added new checkbox checked icon 2018-03-29 23:04:01 +01:00
Sander Ferdinand
5cd38c5aa7 Updating QRC 2018-03-29 23:04:01 +01:00
Sander Ferdinand
3d5fee0a2f StandardButton/StandardDropdown QML development 2018-03-29 23:04:01 +01:00
Sander Ferdinand
8295b9dffd Checkbox QML development 2018-03-29 23:04:01 +01:00
Sander Ferdinand
8c44c4c842 Adressbook QML development 2018-03-29 23:04:01 +01:00
Sander Ferdinand
df21e36f5b Removing copy button for addressLine, fixing margins for advanced options 2018-03-29 23:04:01 +01:00
Sander Ferdinand
d77e045f5d Added InputMulti - multiline inputbox 2018-03-29 23:04:01 +01:00
Sander Ferdinand
fb40d137f8 Hover effects for inlineButton 2018-03-29 23:04:01 +01:00
Sander Ferdinand
bfd2a63aca Lowering default font size to 18 for input boxes 2018-03-29 23:04:01 +01:00
Sander Ferdinand
01f7b6cbfb Transfer page QML development 2018-03-29 23:04:01 +01:00
Sander Ferdinand
3d65a5d90d LineEdit; included copy button 2018-03-29 23:04:01 +01:00
Sander Ferdinand
b09dfc2511 Added some Style properties 2018-03-29 23:04:01 +01:00
Sander Ferdinand
02380fbf1a Changing testnet label color to be red 2018-03-29 23:04:01 +01:00
Sander Ferdinand
6d31c48522 LineEdit: cursor: pointer for QML rich text on input labels 2018-03-29 23:04:01 +01:00
Sander Ferdinand
901e77e6f1 LineEdit: added placeholder label, added input label 2018-03-29 23:04:01 +01:00
Sander Ferdinand
a07fd46718 Update MiddlePanel background gradient 2018-03-29 23:04:01 +01:00
Sander Ferdinand
98479c4dc4 MiddlePanel background gradient 2018-03-29 23:04:01 +01:00
Sander Ferdinand
c3e1b51ac4 Dropdown button development - removing the second column 2018-03-29 23:04:01 +01:00
Sander Ferdinand
6d21b9919d InlineButton development 2018-03-29 23:04:01 +01:00
Sander Ferdinand
36ac2ee86d Inline button/icon for input boxes 2018-03-29 23:04:01 +01:00
Sander Ferdinand
63132dc1db Keeping the progressbar color orange 2018-03-29 23:04:01 +01:00
Sander Ferdinand
82553b0df2 NetworkStatus section development 2018-03-29 23:04:00 +01:00
Sander Ferdinand
dc445edaae Hide 'unlocked balance' when no funds are available 2018-03-29 23:04:00 +01:00
Sander Ferdinand
2e89f86b9f Removing unused import 2018-03-29 23:04:00 +01:00
cryptochangements34
bb836dae38 Use jpg for gradiency 2018-03-29 23:04:00 +01:00
Sander Ferdinand
8fbd8b99d7 leftPanel gradient background 2018-03-29 23:04:00 +01:00
Sander Ferdinand
9f0874ee06 Removing unused import 2018-03-29 23:04:00 +01:00
Sander Ferdinand
e62fab767a Added inlineButton for lineEdit and worked on network status progress bar + text 2018-03-29 23:04:00 +01:00
cryptochangements34
f9e264ca0a Adjust gradient image height 2018-03-29 23:04:00 +01:00
cryptochangements34
2629c767a8 adjust images size 2018-03-29 23:04:00 +01:00
cryptochangements34
af7ad482c2 Move button gradiency
Moves the block of code that deals with the gradiency so that it is placed underneath labels and other images rather than on top
2018-03-29 23:04:00 +01:00
cryptochangements34
f6f26af7cb use PNG for menuButton gradiency 2018-03-29 23:04:00 +01:00
Sander Ferdinand
f15d6f5197 Added some styles, changed some margins, testing with the new LineEdit 2018-03-29 23:04:00 +01:00
Sander Ferdinand
e7eb3bdfef Re-do LineEdit/Input - decoupled placeholder text 2018-03-29 23:04:00 +01:00
Sander Ferdinand
5360d2c231 Smaller menubutton height for small screens 2018-03-29 23:04:00 +01:00
Sander Ferdinand
9462899e97 Position testnet label 2018-03-29 23:04:00 +01:00
Sander Ferdinand
9819e63fcc Singleton for future style definition. For now, put the fonts there 2018-03-29 23:04:00 +01:00
Sander Ferdinand
50eafab5dc Have the menu buttons make use of the new font 2018-03-29 23:04:00 +01:00
Sander Ferdinand
229bade38c Added font: SFUIDisplay, updated QRC 2018-03-29 23:04:00 +01:00
Sander Ferdinand
5fdc9d894e New menu button layout - implemented arrow thingy 2018-03-29 23:04:00 +01:00
Sander Ferdinand
ad68107e1b New titlebar logo 2018-03-29 23:03:59 +01:00
Sander Ferdinand
f14dc70663 Implement subtle gradient behind balance card 2018-03-29 23:03:59 +01:00
Sander Ferdinand
b34432c6ac Titlebar, first version 2018-03-29 23:03:59 +01:00
Sander Ferdinand
5be04964a3 Added images, updated QRC 2018-03-29 23:03:59 +01:00
Sander Ferdinand
9347e8d936 Changed some colors & margins for LeftPanel 2018-03-29 23:03:59 +01:00
Sander Ferdinand
f6dc84a26a Added top-border for titlebar 2018-03-29 23:03:59 +01:00
Sander Ferdinand
ed95c4f4bf Added question.png, updated QRC 2018-03-29 23:03:59 +01:00
Sander Ferdinand
4c432000cb Removing borders; changing left-border color 2018-03-29 23:03:59 +01:00
Sander Ferdinand
f51cf35935 Added transparent monero icons 2018-03-29 23:03:59 +01:00
Sander Ferdinand
3b4d7ba93e Added a white version of the monero logo 2018-03-29 23:03:59 +01:00
Sander Ferdinand
8a3490a300 Added titlebar images, updated QRC 2018-03-29 23:03:59 +01:00
Sander Ferdinand
c64977a7db Removing some obsolete rectangles 2018-03-29 23:03:59 +01:00
Sander Ferdinand
f362953afc New layouts for leftpanel 2018-03-29 23:03:58 +01:00
Dan Miller
2067cbec31 link to boost lib filenames from msys2 package 2018-03-29 11:53:54 -07:00
cryptochangements34
018ada3433 Display Arabic in Arabic (العربية) in menu 2018-03-29 10:43:22 -04:00
Sander Ferdinand
f49ad844b8 Redoing the menu buttons 2018-03-28 21:01:24 +02:00
Sander Ferdinand
f68ca5d76e Add property fontBold to Labels, change default color 2018-03-28 21:01:24 +02:00
Sander Ferdinand
2556f24b8f Updating QRC 2018-03-28 21:01:24 +02:00
Sander Ferdinand
d03f94da46 Increasing left panel width to 300 2018-03-28 21:01:24 +02:00
Sander Ferdinand
9943ceaf0e Added 2 image resources 2018-03-28 21:01:24 +02:00
luigi1111
bf8b8f4512 Merge pull request #1199
d5e3835 get_libwallet_api.sh: init/update monero submodules
2018-03-28 13:48:51 -05:00
erciccione
71fe3e4ae4 replace turkish flag 2018-03-28 15:45:09 +02:00
moneromooo-monero
d5e3835bbf get_libwallet_api.sh: init/update monero submodules 2018-03-28 00:08:22 +01:00
luigi1111
e877d83023 Merge pull request #1106
fb33f35 Fix Arabic translation listed twice in the project file
2018-03-27 11:51:07 -05:00
luigi1111
00e34f7846 Merge pull request #1172
65ea07a Add a shared ringdb management page - rings and blackballed outputs
22a1114 Add segregation key reuse mitigation options
2018-03-27 11:49:36 -05:00
moneromooo-monero
22a1114501 Add segregation key reuse mitigation options 2018-03-26 20:57:33 +01:00
moneromooo-monero
65ea07af61 Add a shared ringdb management page - rings and blackballed outputs 2018-03-26 20:57:33 +01:00
Guillaume LE VAILLANT
fb33f35e45 Fix Arabic translation listed twice in the project file 2018-03-26 21:16:47 +02:00
luigi1111
fdaf557b99 Merge pull request #1144
33634d1 Add Portuguese localization
2018-03-26 13:13:46 -05:00
MB
33634d1ffe Add Portuguese localization 2018-03-26 20:07:42 +02:00
luigi1111
3934ba32ec Merge pull request #1195
def4434 Windows Installer: Updates for Lithium Luna i.e. 0.12.0.0
2018-03-26 12:59:43 -05:00
luigi1111
e4d75c6680 Merge pull request #1161
c8f0cf3 Stagenet
2018-03-26 12:57:14 -05:00
Agent LvM
278458bb64 (squash and merge) Russian and Ukrainian translations (#1184)
* Activate Ukrainian localization

* Add monero-core_ua.ts and update monero-core_ru.ts
2018-03-26 13:42:03 -04:00
René Brunner
def4434909 Windows Installer: Updates for Lithium Luna i.e. 0.12.0.0 2018-03-22 18:46:01 +01:00
luigi1111
e39ea7119f Merge pull request #1190
c72ffb4 Additional DLLs in 'windeploy_helper.sh': ICU, stack protection, regexp
2018-03-20 18:11:05 -04:00
luigi1111
9247609009 Merge pull request #1109
f182a72 Update Spanish translations
2018-03-20 18:03:37 -04:00
luigi1111
40f34ecc9e Merge pull request #1185
b1a5eba remove duplicate entries in qml.qrc
2018-03-20 18:00:10 -04:00
luigi1111
808743da94 Merge pull request #1191
ee6dd2e progress bar improvements
2018-03-20 17:58:27 -04:00
Jaquee
ee6dd2ec56 progress bar improvements 2018-03-20 19:23:04 +01:00
René Brunner
c72ffb4212 Additional DLLs in 'windeploy_helper.sh': ICU, stack protection, regexp 2018-03-19 20:46:58 +01:00
erciccione
b1a5ebacf3 remove duplicate entries in qml.qrc 2018-03-17 19:28:04 +01:00
luigi1111
da0155e260 Merge pull request #1182
37cb006 separate progress bars for daemon and wallet
d253991 remove obsolete remote node logic
2018-03-15 16:41:30 -04:00
Jaquee
d253991ecb remove obsolete remote node logic 2018-03-15 16:51:03 +01:00
Jaquee
37cb0061ee separate progress bars for daemon and wallet 2018-03-15 16:35:47 +01:00
luigi1111
9038bb3803 Merge pull request #1180
0aa3269 add window icon for linux
2018-03-14 21:29:28 -04:00
pazos
0aa32694ef add window icon for linux 2018-03-14 18:08:52 +01:00
stoffu
c8f0cf3543 Stagenet 2018-03-14 23:26:25 +09:00
i3visio
f182a72d19 Update Spanish translations
Update non translated strings and remove commonly unneeded expressions in Spanish
translations such as `Por favor,` and similar ones. `type="unfinished"` tags from
already translated resources have also been removed.
2018-03-14 15:03:43 +01:00
luigi1111
c5363da1e8 Merge pull request #1178
587e6e8 add turkish localization
2018-03-13 23:39:41 -04:00
luigi1111
a8ba815fb3 Merge pull request #1141
5d2d6ad UTF-8 support for filenames and paths under Windows
2018-03-13 23:37:33 -04:00
rtonline
587e6e8c24 add turkish localization 2018-03-13 23:43:32 +01:00
luigi1111
f12d47386f Merge pull request #1176
c0ffe5b Transfer: min ring size is now 7, from 5
2018-03-13 17:41:03 -04:00
luigi1111
8ba5e9a164 Merge pull request #1174
df2b8d3 build: remove readline from dependencies
2018-03-13 17:33:58 -04:00
luigi1111
3c6625a506 Merge pull request #1173
ff46368 Mac build: relro, now and noexecstack are unsupported for Mac
2018-03-13 17:32:42 -04:00
luigi1111
0096765676 Merge pull request #1171
17c3602 Settings: fix visibility of bootstrap daemon setting
2018-03-13 17:31:12 -04:00
luigi1111
8241991e8a Merge pull request #1162
a0a60eb mac build: link against PCSC
2018-03-13 17:29:15 -04:00
luigi1111
5f11583915 Merge pull request #1154
d399528 Use Esperanto mnemonic seed for Esperanto GUI
2018-03-13 17:28:05 -04:00
luigi1111
56f6c0a48b Merge pull request #1153
c853888 WalletManager: add logging API from QML
2018-03-13 17:26:44 -04:00
luigi1111
77cccf3836 Merge pull request #1130
6399a42 Dutch translation of GUI text added in January
59e653b Improved Dutch translation of January GUI update
2018-03-13 17:17:15 -04:00
luigi1111
84e345e655 Merge pull request #1102
18b36d5 Update zh-tw translation
2018-03-13 17:06:41 -04:00
luigi1111
92a62da383 Merge pull request #1075
08beb71 Store wallet log in ~/Library/Logs/ in macOS
2018-03-13 17:03:58 -04:00
luigi1111
39db876fee Merge pull request #1082
4c9e2c1 [Issue 1080] Fixed undefined variable for password rewrite when changing wallet initial block height
2018-03-13 16:27:27 -04:00
luigi1111
6ca78702f0 Merge pull request #1152
7d29ac8 updated Brazilian Portuguese
2018-03-13 16:20:54 -04:00
luigi1111
d13705749a Merge pull request #1114
9cf2ba7 Update monero-core_hr.ts
7f6c4aa Complete Croatian translation
f826c3f activate croatian language in languages.xml
2018-03-13 16:19:08 -04:00
luigi1111
5af989fa29 Merge pull request #1099
87e8b09 Catalan translation
7db2c0c update translation using lupdate
2018-03-13 16:16:16 -04:00
luigi1111
689123fa95 Merge pull request #1015
da32161 Use wallet2_api isAddressLocal utils method for isDaemonLocal check
2018-03-13 16:14:08 -04:00
luigi1111
fd5e3dcecb Merge pull request #1005
9cdfad3 Left Panel: seeds and keys not selected when open
2018-03-13 16:11:59 -04:00
luigi1111
d6e03df7de Merge pull request #1006
4d2f586 TextBlock: Fix multi select bug
2018-03-13 16:08:21 -04:00
stoffu
a0a60eba69 mac build: link against PCSC 2018-03-12 20:23:53 +09:00
moneromooo-monero
c0ffe5b96a Transfer: min ring size is now 7, from 5 2018-03-12 10:16:41 +00:00
ProkhorZ
d399528078 Use Esperanto mnemonic seed for Esperanto GUI
Issue #1131
2018-03-09 14:51:39 +01:00
rbrunner7
5d2d6adfaf UTF-8 support for filenames and paths under Windows 2018-03-08 20:34:30 +01:00
erciccione
7db2c0c9f7 update translation using lupdate 2018-03-07 15:30:51 +01:00
EdwardLow
87e8b09065 Catalan translation 2018-03-07 15:30:46 +01:00
stoffu
df2b8d3c8d build: remove readline from dependencies 2018-03-07 18:06:08 +09:00
stoffu
ff46368783 Mac build: relro, now and noexecstack are unsupported for Mac 2018-03-07 11:42:45 +09:00
Lafudoci
18b36d5593 Update zh-tw translation
Unify the translation of "address"

Minor fix
2018-03-07 09:30:06 +08:00
stoffu
17c36025a0 Settings: fix visibility of bootstrap daemon setting 2018-03-07 08:33:51 +09:00
luigi1111
ce8913b5bf Merge pull request #1113
4360d9b Compile with stack protector
2018-03-06 12:34:46 -05:00
luigi1111
7c9ba196c9 Merge pull request #1140
70d42ee Wizard: allow seed without checksum
2018-03-06 12:33:01 -05:00
luigi1111
be986cf599 Merge pull request #1132
c096be4 Update Japanese translation
2018-03-06 12:31:21 -05:00
luigi1111
e6eef867dc Merge pull request #1150
a44d15a get_libwallet_api.sh: fix debug/release hardcoded path
8b97eed monero-wallet-gui.pro: use hardening flags
986275c get_libwallet_api.sh: fix comment referencing the wrong library
f45b0a7 main: do not crash if we can't load some stuff
2018-03-06 12:29:48 -05:00
luigi1111
4479026649 Merge pull request #1149
22de9db Fix a few uses of undefined data on startup and exit
2018-03-06 12:26:03 -05:00
luigi1111
2deff0611d Merge pull request #1091
89ec822 removed persistentSettings.startLocalNode as it's synonym for !persistentSettings.useRemoteNode
af882e8 rectified visual switch between local node & remote node
fd1f4bf Bootstrap daemon (requires #3165)
2018-03-06 12:24:20 -05:00
luigi1111
7dae6a1ff0 Merge pull request #1133
1b5b78a First piece of translations updates
53d2cd4 Update monero-core_pl.ts
1ad20a1 Merge pull request #1 from monero-project/master
2d47554 Merge branch 'szogun1987-polish-translations' into master
5adc399 Merge pull request #2 from szogun1987/master
746f3ad Remove comments from translation file
d07e415 Merge branch 'master' into szogun1987-polish-translations
a5820bf fixture of comments from PR
491c1d2 Unlock polish language in menu
cdb2d17 Filled missing Polish translations.
d6395ea Changing Polish translations based on the feedback and fixing some minor errors
b49b8bf Changed order of some words in Polish translation
1f29558 Fixed some mistakes/typos in previous Polish translations
2018-03-06 12:16:53 -05:00
luigi1111
767a9b3042 Merge pull request #1105
c1389a2 update Italian translation
2018-03-06 12:02:17 -05:00
luigi1111
94760e550e Merge pull request #1129
014caff Create monero-core_rs.ts
9da4dc4 Update languages.xml
b1b8239 Added serbian flag
2e4b084 added serbian
ca00bf8 added serbia
2018-03-06 12:00:35 -05:00
luigi1111
168a187f51 Merge pull request #1124
5db9185 startsWith is unsupported for Qt < 5.8, use indexOf instead
2018-03-06 11:58:09 -05:00
luigi1111
09455a7bd7 Merge pull request #1121
bd173c9 Updated Swedish localization after merge #1076
2018-03-06 11:56:47 -05:00
luigi1111
9b27a3de69 Merge pull request #1125
86bd96e Updated Romanian translations
5e974f8 Remove type=unfinished from correct translations
10f8407 Corrections to unfinished strings in Ro translation
2018-03-06 11:54:14 -05:00
luigi1111
1983f1bee0 Merge pull request #1126
2b4402e Update Hebrew Translation
2018-03-06 11:49:10 -05:00
luigi1111
efab83fa46 Merge pull request #1024
d253b1d Add GuixSD distro package to README.md
2018-03-06 11:47:38 -05:00
luigi1111
ecbfaffae7 Merge pull request #1080
6fc8cfc update zh-cn translation
2018-03-06 11:43:13 -05:00
ProkhorZ
59e653b458 Improved Dutch translation of January GUI update
See comments on PR #1127 and #1130
2018-03-05 00:39:13 +01:00
moneromooo-monero
c85388815b WalletManager: add logging API from QML
requires #3345
2018-03-04 18:22:40 +00:00
mandrill-pie
10f8407a0d Corrections to unfinished strings in Ro translation 2018-03-04 14:31:19 +08:00
moneromooo.monero
f45b0a7d25 main: do not crash if we can't load some stuff
This happens with some Qt widgets/components aren't found
2018-03-03 23:27:15 +00:00
moneromooo.monero
22de9db4e1 Fix a few uses of undefined data on startup and exit 2018-03-03 23:26:20 +00:00
moneromooo.monero
986275c42c get_libwallet_api.sh: fix comment referencing the wrong library 2018-03-03 22:57:18 +00:00
moneromooo.monero
8b97eed79c monero-wallet-gui.pro: use hardening flags 2018-03-03 22:56:52 +00:00
moneromooo.monero
a44d15a7e9 get_libwallet_api.sh: fix debug/release hardcoded path 2018-03-03 22:56:38 +00:00
einsteinsfool
1f29558526 Fixed some mistakes/typos in previous Polish translations 2018-02-28 23:23:02 +01:00
einsteinsfool
b49b8bffa1 Changed order of some words in Polish translation 2018-02-28 17:50:08 +01:00
einsteinsfool
d6395eab06 Changing Polish translations based on the feedback and fixing some minor errors 2018-02-28 17:40:15 +01:00
netrik182
7d29ac861b updated Brazilian Portuguese 2018-02-25 16:22:33 -03:00
stoffu
70d42ee328 Wizard: allow seed without checksum 2018-02-25 21:52:04 +09:00
mandrill-pie
5e974f8845 Remove type=unfinished from correct translations 2018-02-24 09:39:21 +08:00
einsteinsfool
cdb2d17a2e Filled missing Polish translations. 2018-02-22 19:03:27 +01:00
Wojciech Gomoła
491c1d26bf Unlock polish language in menu 2018-02-22 07:51:14 +01:00
mandrill-pie
86bd96e063 Updated Romanian translations 2018-02-22 10:40:10 +08:00
Wojciech Gomoła
a5820bfd9a fixture of comments from PR 2018-02-21 13:40:14 +01:00
Wojciech Gomoła
d07e415733 Merge branch 'master' into szogun1987-polish-translations 2018-02-21 13:36:57 +01:00
Takuto Hayashi
c096be427e Update Japanese translation 2018-02-21 12:04:22 +09:00
xmronadaily
ca00bf8b62 added serbia 2018-02-20 21:47:43 +01:00
xmronadaily
2e4b084ebf added serbian 2018-02-20 21:47:43 +01:00
xmronadaily
b1b8239722 Added serbian flag 2018-02-20 21:47:43 +01:00
xmronadaily
9da4dc4899 Update languages.xml 2018-02-20 21:47:43 +01:00
xmronadaily
014caff418 Create monero-core_rs.ts 2018-02-20 21:47:37 +01:00
ProkhorZ
6399a4281f Dutch translation of GUI text added in January
Plus a few corrections of older translations
2018-02-20 21:20:58 +01:00
Wojciech Gomoła
746f3adb6e Remove comments from translation file 2018-02-20 19:03:36 +01:00
erciccione
f826c3fe65 activate croatian language in languages.xml 2018-02-20 17:24:21 +01:00
Mario Kralj
7f6c4aa4c8 Complete Croatian translation 2018-02-20 17:23:14 +01:00
TasmaniaKrama
9cf2ba7b03 Update monero-core_hr.ts
add fixes suggested in review of #1057
2018-02-20 17:23:03 +01:00
milargos
2b4402e0d4 Update Hebrew Translation 2018-02-20 18:14:40 +02:00
stoffu
5db9185409 startsWith is unsupported for Qt < 5.8, use indexOf instead 2018-02-20 12:10:19 +09:00
Ordtrogen Översättning
bd173c9fc3 Updated Swedish localization after merge #1076 2018-02-18 12:45:30 +01:00
luigi1111
084c1c84f3 Merge pull request #1110
7765205 translation slovenian language
2018-02-11 19:34:28 -05:00
luigi1111
591a7c9662 Merge pull request #1100
a975357 Update FR translations
2018-02-11 19:32:16 -05:00
luigi1111
76636ef992 Merge pull request #1020
b8e5230 add start-low-graphics-mode.bat

618d6cf remove linebreaks
2018-02-11 19:29:29 -05:00
luigi1111
45544c723f Merge pull request #1108
1f64326 resize south_korea.png and czech.png to 100x100 px
2018-02-11 19:23:55 -05:00
luigi1111
4bed8fab02 Merge pull request #1084
74b2023 change name displayed from Swedish to Svenska
2018-02-11 19:21:04 -05:00
luigi1111
1cd4f0e8e3 Merge pull request #1107
cf14d74 change egyptian flag
2018-02-11 19:19:30 -05:00
jernejml
7765205fe2 translation slovenian language 2018-02-11 20:19:21 +01:00
Guillaume LE VAILLANT
4360d9b67b Compile with stack protector 2018-02-07 15:37:15 +01:00
cryptochangements34
a9753578d7 Update FR translations 2018-02-04 12:02:21 -05:00
erciccione
1f64326321 resize south_korea.png and czech.png to 100x100 px 2018-02-03 16:15:02 +01:00
hqwrong
6fc8cfc827 update zh-cn translation 2018-02-01 13:49:29 +08:00
erciccione
cf14d744ee change egyptian flag 2018-01-31 22:00:38 +01:00
Miguel Herranz
08beb71cca Store wallet log in ~/Library/Logs/ in macOS
In macOS it is not usual to modify anything inside an application. If
the user that runs the application doesn't have writing permissions the
log will not be saved.

This modifies the path to store them in macOS' standard location for
application logs.
2018-01-31 00:08:27 +01:00
erciccione
c1389a2f94 update Italian translation 2018-01-30 20:53:40 +01:00
luigi1111
50fb2ddf69 Merge pull request #1101
2061bc5 UnsignedTransaction: Removing the Priority enum accordingly to libwalletapi update
2018-01-30 00:28:19 -05:00
stoffu
fd1f4bf628 Bootstrap daemon (requires #3165) 2018-01-30 07:45:11 +09:00
stoffu
af882e87f5 rectified visual switch between local node & remote node 2018-01-30 07:45:08 +09:00
stoffu
89ec822ba5 removed persistentSettings.startLocalNode as it's synonym for !persistentSettings.useRemoteNode 2018-01-30 07:45:03 +09:00
luigi1111
5c664685da Merge pull request #1083
b9757fe Transfer: automatically use low priority if no backlog is present
2018-01-29 16:19:44 -05:00
Neozaru
2061bc5212 UnsignedTransaction: Removing the Priority enum accordingly to libwalletapi update 2018-01-29 12:30:46 +01:00
Wojciech Gomoła
5adc39915e Merge pull request #2 from szogun1987/master
Refresh with drop
2018-01-28 15:30:37 +01:00
Wojciech Gomoła
2d47554741 Merge branch 'szogun1987-polish-translations' into master 2018-01-28 15:21:55 +01:00
Wojciech Gomoła
1ad20a1fb3 Merge pull request #1 from monero-project/master
Refresh with source fork
2018-01-28 14:52:53 +01:00
Wojciech Gomoła
53d2cd4ea7 Update monero-core_pl.ts 2018-01-27 12:26:21 +01:00
stoffu
b9757fe837 Transfer: automatically use low priority if no backlog is present (requires #3123) 2018-01-27 11:00:10 +09:00
luigi1111
bed05a484c Merge pull request #1076
c483c9c Updating all translation files

84d3639 Fixing situations where lupdate got confused
2018-01-26 14:37:56 -05:00
luigi1111
629f460eb6 Merge pull request #1065
fdd528b Update copyright for 2018
2018-01-26 14:33:47 -05:00
luigi1111
ef6a6ed651 Merge pull request #977
cee0474 Subaddresses minimal version: supports default account only

a6a7b56 ditch payment ID from the Receive page
2018-01-26 14:29:40 -05:00
erciccione
74b20236d6 change name displayed from Swedish to Svenska 2018-01-20 12:01:43 +01:00
Neozaru
4c9e2c1f1a [Issue 1080] Fixed undefined variable for password rewrite when changing wallet initial block height 2018-01-17 11:56:53 +01:00
luigi1111
b137f73440 Merge pull request #980
eda9ea1 Update monero-core_ru.ts
2018-01-16 20:08:52 -05:00
Jonathan Cross
84d3639991 Fixing situations where lupdate got confused 2018-01-14 22:38:26 +01:00
Jonathan Cross
c483c9c532 Updating all translation files 2018-01-14 22:12:51 +01:00
kenshi84
a6a7b56d73 ditch payment ID from the Receive page 2018-01-13 14:37:14 +09:00
kenshi84
cee0474e37 Subaddresses minimal version: supports default account only 2018-01-13 14:37:07 +09:00
luigi1111
3b069ec049 Merge pull request #1021
c320878 put wallet name in debug info
2018-01-11 17:02:24 -05:00
luigi1111
d52486dfab Merge pull request #889
cec206e Refactor wallet password dialog

cf488f4 Allow password to be changed
2018-01-11 11:03:05 -05:00
xmr-eric
fdd528b99e Update copyright for 2018 2018-01-08 12:51:26 -05:00
luigi1111
f378035836 Merge pull request #1028
7f336b8 German translations
2018-01-06 17:29:50 -05:00
luigi1111
7c1ecc0950 Merge pull request #1052
4f0e67a README.md: Copy changes from /monero/
2018-01-06 17:27:32 -05:00
luigi1111
da2ea50616 Merge pull request #1050
c6fd3ec czech translation, seed generation fix
2018-01-06 17:25:41 -05:00
luigi1111
ba8ddb23da Merge pull request #1056
b5c936c Add monero-core_ar.ts

6ec32c5 Add files via upload (Egyptian flag)

533b1ea Update languages.xml

13358cf Update monero-wallet-gui.pro

6c2fd8e Update qml.qrc
2018-01-06 17:23:35 -05:00
luigi1111
bdb99725a0 Merge pull request #1031
addee25 Typo fixes monero-core_nl.ts
2018-01-06 17:20:41 -05:00
luigi1111
4189900e86 Merge pull request #981
c1ac91d Refresh base translations before making any changes.

7ba6eac Cleanup html/css in text to be translated.

934f538 Regenerated en translation file from clean ver
2018-01-06 17:17:19 -05:00
luigi1111
fc131bd465 Merge pull request #965
83efc38 Android: Disable password strength meter

0ece8a9 Android dockerfile: add zmq dependency

dab4d5a Android: use new repo path
2018-01-06 17:14:56 -05:00
luigi1111
5268199679 Merge pull request #1047
158d50e Teach build.sh to find qmake on systems where it's called qmake-qt5.
2018-01-06 17:11:26 -05:00
stoffu
cf488f4406 Allow password to be changed 2018-01-05 16:11:32 +09:00
stoffu
cec206ec8d Refactor wallet password dialog 2018-01-05 16:11:29 +09:00
3b7ameed
b5c936c496 Add monero-core_ar.ts 2018-01-03 17:11:33 +02:00
3b7ameed
6c2fd8e431 Update qml.qrc 2018-01-03 17:11:33 +02:00
3b7ameed
13358cf0a3 Update monero-wallet-gui.pro 2018-01-03 17:11:33 +02:00
3b7ameed
533b1ea283 Update languages.xml 2018-01-03 17:11:33 +02:00
3b7ameed
6ec32c5056 Add files via upload
Egyptian flag
2018-01-03 17:11:33 +02:00
xmr-eric
4f0e67a8be README.md: Copy changes from /monero/ 2017-12-30 17:31:15 -05:00
medusadigital
618d6cf3c0 remove linebreaks 2017-12-30 22:38:39 +01:00
luigi1111
ac509ed798 Merge pull request #982
8543429 Windows installer: Switch from 'comparetimestamp' to 'ignoreversion'
2017-12-30 15:56:09 -05:00
Ruzicka Pavel
c6fd3ece1a czech translation, seed generation fix 2017-12-28 13:08:34 +01:00
luigi1111
e3663d054e Merge pull request #984
3ad64ee Update languages.xml

9c1d207 Add files via upload

c2a1a7b Update monero-wallet-gui.pro

d46000f Update qml.qrc

9b1aac4 Add monero-core_sk.ts
2017-12-27 13:08:30 -05:00
fero-sk
9b1aac45fa Add monero-core_sk.ts 2017-12-27 19:01:53 +01:00
fero-sk
d46000f77c Update qml.qrc 2017-12-27 19:01:52 +01:00
fero-sk
c2a1a7bfb3 Update monero-wallet-gui.pro 2017-12-27 19:01:10 +01:00
fero-sk
9c1d20737e Add files via upload 2017-12-27 19:00:33 +01:00
fero-sk
3ad64eef66 Update languages.xml 2017-12-27 19:00:30 +01:00
luigi1111
860946c146 Merge pull request #1009
30af56d +czech translation

33c4950 czech translation updated

c50eb93 add czech files on monero-wallet-gui.pro and qml.qrc
2017-12-27 12:53:29 -05:00
luigi1111
62b6a37483 Merge pull request #1029
48f7102 Call Monero::Utils::onStartup in main.cpp (requires #2952)
2017-12-27 12:48:58 -05:00
erciccione
c50eb93c3d add czech files on monero-wallet-gui.pro and qml.qrc 2017-12-27 17:56:33 +01:00
Ruzicka Pavel
33c4950757 czech translation updated 2017-12-27 15:45:10 +01:00
Ruzicka Pavel
30af56d392 +czech translation 2017-12-27 15:44:59 +01:00
MoroccanMalinois
dab4d5a8d7 Android: use new repo path 2017-12-24 17:36:39 +00:00
MoroccanMalinois
0ece8a968e Android dockerfile: add zmq dependency 2017-12-24 17:35:46 +00:00
Evan Klitzke
158d50e5fa Teach build.sh to find qmake on systems where it's called qmake-qt5. 2017-12-24 00:05:46 -08:00
MoroccanMalinois
83efc3893b Android: Disable password strength meter 2017-12-24 01:32:18 +00:00
User
c3208785cf put wallet name in debug info 2017-12-21 15:40:47 -05:00
potatored
addee255ff Typo fixes monero-core_nl.ts
Some typos, has to be 'uw' instead of 'u'. Like 'your' instead of 'you'.
2017-12-21 14:55:52 +01:00
luigi1111
64ce0e62e2 Merge pull request #1018
4617a09 show only valid qr codes with valid payment ids
2017-12-19 11:35:43 -06:00
stoffu
48f7102e39 Call Monero::Utils::onStartup in main.cpp (requires #2952) 2017-12-19 11:09:43 +09:00
luigi1111
4982d23738 Merge pull request #1023
745b40a Readme.md: Forgot one heading...
2017-12-18 11:53:43 -06:00
Schnoffel
7f336b884b German translations 2017-12-17 22:22:05 +01:00
luigi1111
4ba2672d84 Merge pull request #1010
4299c79 Fixing Dutch translation spelling mistake
2017-12-17 12:42:23 -06:00
luigi1111
339da86683 Merge pull request #964
c09041f First Danish translation of the Monero GUI
2017-12-17 12:39:01 -06:00
luigi1111
93565d996c Merge pull request #1014
b73bcdf Receive page: QR code bug fix for invalid payment ids
2017-12-17 12:37:06 -06:00
luigi1111
1d71429b74 Merge pull request #1001
c8dd663 hide balance in receive tab
2017-12-17 12:35:13 -06:00
luigi1111
d71c31e1bf Merge pull request #996
a116427 History: Properly label failed transactions
2017-12-17 12:33:14 -06:00
luigi1111
f9447fa4a1 Merge pull request #989
bdffc7d Transfer: remove pre-v5 priority list (followup for #824)
2017-12-17 12:28:57 -06:00
luigi1111
fbd508781e Merge pull request #967
5cda1f5 Spend proof
2017-12-17 12:24:35 -06:00
Vasile
d253b1da9e Add GuixSD distro package to README.md 2017-12-15 14:57:19 +01:00
Wojciech Gomoła
1b5b78ab25 First piece of translations updates 2017-12-15 11:39:03 +01:00
xmr-eric
745b40acad Readme.md: Forgot one heading... 2017-12-14 14:59:30 -05:00
Tim L
b73bcdf4b9 Receive page: QR code bug fix for invalid payment ids 2017-12-13 09:25:37 -05:00
medusadigital
b8e5230d7d add start-low-graphics-mode.bat
add start-low-graphics-mode.bat
2017-12-13 13:21:55 +01:00
User
c8dd6632a7 hide balance in receive tab
add updateBalance on advanced click

remove state variable and hide balance when advanced clicked

remove advanced state from left panel

add qsTr to make HIDDEN translateable
2017-12-13 06:37:18 -05:00
User
4617a09af9 show only valid qr codes with valid payment ids
fix broken amount field

remove unnecessary braces

remove bad pid string and whitespace changes

remove payment id check in qr generation
2017-12-13 05:03:01 -05:00
stoffu
bdffc7d12b Transfer: remove pre-v5 priority list (followup for #824) 2017-12-12 09:46:37 +09:00
Tim L
da3216156d Use wallet2_api isAddressLocal utils method for isDaemonLocal check 2017-12-11 16:44:01 -05:00
luigi1111
9d22b6ab4d Merge pull request #972
3757dc2 Esperanto fixes
2017-12-11 11:12:40 -06:00
Robert Fridzema
4299c79828 Fixing Dutch translation spelling mistake
Dutch explanation:
https://www.beterspellen.nl/website/index.php?pag=106

has to do with noun and adjective words.


Fixing Dutch translation spelling mistake
2017-12-11 09:20:05 +01:00
cryptobench
c09041f7f0 First Danish translation of the Monero GUI
Added danish

Added danish translation

Added linkup to Danish flag

</languages> corrected to new line

Accidently put it behind danish translation, so it wouldn't keep formatting.

Removed blank lines + changed wallet-lan to English

Uploaded Danish flag

Delete dk.png not ideal size

Uploaded denmark.png 100x100

Fixed a typo

</message> wasnt closed

Removed some spaces

Fixed punctuations.

edit punctuation after github's bug

Fixed typo
2017-12-11 00:10:23 +01:00
luigi1111
7e801642c2 Merge pull request #1000
77bcdf9 replace wallet/wallet2_api.h with wallet/api/wallet2_api.h to compile
2017-12-10 16:06:46 -06:00
luigi1111
3b23446c31 Merge pull request #976
1f51d4b Left panel: add view only wallet label
2017-12-10 15:53:01 -06:00
luigi1111
850fc25b6d Merge pull request #1007
65a3474 change countdown to start connecting to local daemon from 5 to 10 seconds
2017-12-10 15:50:56 -06:00
luigi1111
e3fde20f74 Merge pull request #997
c118724 Password input: reset on failed input
2017-12-10 15:49:13 -06:00
luigi1111
a77aed0ded Merge pull request #991
c5d28ba Switch Core with GUI in README.md, fix headings
2017-12-10 15:47:11 -06:00
luigi1111
fd2003e71f Merge pull request #963
aacf181
Add zeroMQ to installation instructions
2017-12-10 15:46:00 -06:00
erciccione
65a3474a80 change countdown to start connecting to local daemon from 5 to 10 seconds 2017-12-09 14:20:35 +01:00
xmr-eric
c5d28ba9c0 Switch Core with GUI in README.md, fix headings
Recently the GUI repo had its name changed from monero-core to monero-gui. This PR updates the build instructions and elsewhere with the new repo name and link.

This PR also seeks to put the heading capitalization policy inline with the main Monero readme. Capitalizing every single word in a heading begins to feel redundant and cumbersome when headings become long (and many are indeed quite long). A much better practice is capitalizing just the initial word. See: https://github.com/monero-project/monero/pull/2881
2017-12-08 19:33:47 -05:00
Tim L
4d2f5864c1 TextBlock: Fix multi select bug 2017-12-08 16:28:12 -05:00
Tim L
9cdfad3512 Left Panel: seeds and keys not selected when open 2017-12-08 10:54:17 -05:00
User
77bcdf9434 replace wallet/wallet2_api.h with wallet/api/wallet2_api.h to compile 2017-12-08 02:29:28 -05:00
Tim L
c1187241db Password input: reset on failed input 2017-12-07 11:49:43 -05:00
Tim L
a116427567 History: Properly label failed transactions 2017-12-07 09:08:26 -05:00
Tim L
1f51d4b52d Left panel: add view only wallet label 2017-12-07 09:08:08 -05:00
René Brunner
85434298d9 Windows installer: Switch from 'comparetimestamp' to 'ignoreversion' 2017-12-01 16:16:00 +01:00
Jonathan Cross
934f53817c Regenerated en translation file from clean ver 2017-12-01 15:41:49 +01:00
Jonathan Cross
7ba6eac43a Cleanup html/css in text to be translated. 2017-12-01 15:38:57 +01:00
Jonathan Cross
c1ac91d926 Refresh base translations before making any changes. 2017-12-01 15:37:04 +01:00
AJIekceu4
eda9ea15c6 Update monero-core_ru.ts 2017-12-01 17:04:33 +07:00
Jonathan Cross
3757dc27f1 Esperanto fixes 2017-12-01 00:06:33 +01:00
stoffu
5cda1f5ac1 Spend proof 2017-11-30 08:36:28 +09:00
luigi1111
d9d2050f29 Merge pull request #966
d8f3a52 Bugfix with tx proof + update
2017-11-29 17:27:22 -06:00
luigi1111
bbf9b4b258 Merge pull request #888
4f0fee1 update translation: typo fix and changes
2017-11-28 16:21:53 -06:00
luigi1111
21a9bfb5e4 Merge pull request #968
8e1f1db Rename tx privacy Normal setting to Default
2017-11-27 16:00:23 -06:00
stoffu
d8f3a52378 Bugfix with tx proof + update 2017-11-26 11:46:41 +09:00
Anton Krylov
aacf1814aa Add zeroMQ to installation instructions 2017-11-24 23:29:24 +03:00
lancillotto
4f0fee1a18 update translation: typo fix and changes 2017-11-24 02:03:18 +01:00
luigi1111
ca71131463 Merge pull request #954
476b727 Smoother and faster animations for the menu buttons

1ada4f8 Decreasing menu button height

c349b5d Add easing to page switching animation - OutCubic
2017-11-22 11:57:55 -06:00
luigi1111
2dfc8d6324 Merge pull request #794
3e90c3d update of the esperanto translation

78e3cd4 fix conflicts and rebase

4066cb2 Merge branch 'patch-1' into fix

c712444 c712444
2017-11-22 11:23:03 -06:00
luigi1111
549034dfce Merge pull request #919
794c146 Changed 'apt-get' to 'apt'
2017-11-22 11:19:44 -06:00
luigi1111
1353a47447 67ecb6a remove monero/build before building libwallet 2017-11-22 11:15:06 -06:00
xmr-eric
8e1f1dbf05 Rename tx privacy "Normal" setting to "Default"
With this PR, both tx priority and tx privacy settings will have similar terminology.
2017-11-20 11:50:56 -05:00
luigi1111
2147803d45 Merge pull request #873
d79fe0f Tx proof
2017-11-20 00:16:43 -06:00
stoffu
d79fe0f457 Tx proof 2017-11-20 14:34:48 +09:00
luigi1111
da020fd0be Merge pull request #958
8956a35 Fix for tx confirm password not showing up
2017-11-16 09:53:45 -06:00
stoffu
8956a35aae Fix for tx confirm password not showing up 2017-11-16 12:25:05 +09:00
luigi1111
aa432e5e44 Merge pull request #953
11f3e6f Update Settings.qml
2017-11-15 11:19:04 -06:00
luigi1111
ebfebe795a Merge pull request #947
c441697 Correcting a typo
2017-11-15 11:17:47 -06:00
luigi1111
d5d59b5dc6 Merge pull request #751
50b9281 static debug build
2017-11-13 09:35:17 -06:00
Sander Ferdinand
c349b5d248 Add easing to page switching animation - OutCubic 2017-11-12 22:26:52 +01:00
Sander Ferdinand
1ada4f8826 Decreasing menu button height 2017-11-12 22:18:20 +01:00
Sander Ferdinand
476b727db1 Smoother and faster animations for the menu buttons 2017-11-12 22:12:56 +01:00
fungible-crypto
11f3e6f8e7 Update Settings.qml
[LOW priority] [UX misspelling]
Updated misspelling and added period.
2017-11-12 15:01:19 -06:00
xc
c441697594 Correcting a typo 2017-11-10 20:30:58 +03:00
Jaquee
67ecb6a85d remove monero/build before building libwallet
requires #2694
2017-11-08 11:23:00 +01:00
luigi1111
a01bb509ea Merge pull request #936
1e4e8ae tx confirm password dialog: clear when cancelled
2017-11-06 16:33:32 -06:00
luigi1111
6b0e6ed84b Merge pull request #941
60f4dcc Fix blockchain size typo
2017-11-06 16:29:50 -06:00
Jaquee
60f4dcc106 Fix blockchain size typo 2017-11-05 16:32:53 +01:00
luigi1111
c58dfa913b Merge pull request #826
Remote nodes + mobile layout
2017-11-03 15:29:10 -05:00
Jaquee
ceeb9b667f do not try to start local node automatically if user has cancelled 2017-11-03 18:08:59 +01:00
Jaquee
3c67b9ee62 Enable sign/verify on ios/android 2017-11-03 17:02:26 +01:00
Jaquee
a8e19b8fb6 Enable password strength meter on iOS 2017-11-03 16:57:12 +01:00
Jaquee
15ea9ec748 trim daemon address 2017-11-03 16:57:12 +01:00
Jaquee
4775a5b74d mobile layout tweaks 2017-11-03 16:57:12 +01:00
Jaquee
bfafd7b279 Add ios files to .gitignore 2017-11-03 16:57:12 +01:00
Jaquee
09461397a8 Menu button color fix 2017-11-03 16:57:12 +01:00
Jaquee
2d357b6c12 Keys page height fix 2017-11-03 16:57:12 +01:00
Jaquee
a72a76d3e6 IOS open from file workaround 2017-11-03 16:57:12 +01:00
Jaquee
394b20ee36 history table - improved mobile layout 2017-11-03 16:57:12 +01:00
Jaquee
2170f6a46d Improve copy text handling 2017-11-03 16:57:12 +01:00
Jaquee
e6ada22611 start local node if not started 2017-11-03 16:57:12 +01:00
Jaquee
4b871306e4 fix popups positioning 2017-11-03 16:57:12 +01:00
Jaquee
e324e160da new dialog z fixes 2017-11-03 16:57:12 +01:00
Jaquee
44b72eaff2 refresh history updates 2017-11-03 16:57:12 +01:00
Jaquee
b8f38f29ae don't close async 2017-11-03 16:57:12 +01:00
Jaquee
3d21b1168f Add blockchain folder FileDialog 2017-11-03 16:57:12 +01:00
Jaquee
b9152286ec Android: handle back-button + add statusBox 2017-11-03 16:57:12 +01:00
Jaquee
72d220462a AddressBook mobile redesign 2017-11-03 16:57:12 +01:00
Jaquee
58030c67c8 Transfer - mobile redesign 2017-11-03 16:57:11 +01:00
Jaquee
aded122465 Sign page - redesign 2017-11-03 16:57:11 +01:00
Jaquee
d834fb419c Receive page mobile layout fix 2017-11-03 16:57:11 +01:00
Jaquee
c1c6d9ee6d History: use mobile layout 2017-11-03 16:57:11 +01:00
Jaquee
aec65db8c3 add mobile menu 2017-11-03 16:57:11 +01:00
Jaquee
1c7f529141 fix Qt 5.8 crash on app exit bug in StandardDialog 2017-11-03 16:57:11 +01:00
Jaquee
d437b98a12 standardbuttons - default colors 2017-11-03 16:57:11 +01:00
Jaquee
027ed0e328 StandardDialog redesign 2017-11-03 16:57:11 +01:00
Jaquee
b82a17aa97 progressBar redesign 2017-11-03 16:57:11 +01:00
Jaquee
31675f4c16 processing splash - mobile redesign 2017-11-03 16:57:11 +01:00
Jaquee
30fde8d7fd make input text selectable by mouse 2017-11-03 16:57:11 +01:00
Jaquee
e3eab0c667 networkstatus: add remote node 2017-11-03 16:57:11 +01:00
Jaquee
e0e69b35bd password dialog mobile redesign 2017-11-03 16:57:11 +01:00
Jaquee
f605793cfc components android focus workaround 2017-11-03 16:57:11 +01:00
Jaquee
b6f268d3a5 remote node settings and use-while-local-is-syncing 2017-11-03 16:57:11 +01:00
Jaquee
ab44064fcc main.qml mobile scaling 2017-11-03 16:57:11 +01:00
Jaquee
4dc0d36b98 pages mobile scaling 2017-11-03 16:57:11 +01:00
Jaquee
9e0db8f4ff components mobile scaling 2017-11-03 16:57:11 +01:00
Jaquee
66bb3fe7ac add easylogging dependency 2017-11-03 16:57:11 +01:00
Jaquee
5e877c7939 Android build settings 2017-11-03 16:57:11 +01:00
Jaquee
806f496faf wizarddaemonsettings remove lightwallet settings until #2109 is merged 2017-11-03 16:57:11 +01:00
Jaquee
418e4816d4 add android back button key filter 2017-11-03 16:57:11 +01:00
Jaquee
a6606a3330 IOS libwallet build script 2017-11-03 16:57:11 +01:00
Jaquee
4e8c7d95ad add remoteNodeEdit component 2017-11-03 16:57:11 +01:00
Jaquee
01899f04f5 Remove twitter stuff from rightpanel 2017-11-03 16:57:11 +01:00
Jaquee
44079aab37 android fix: release focus after scrolling 2017-11-03 16:57:11 +01:00
Jaquee
a57da2f0cd MiddlePanel scaling 2017-11-03 16:57:11 +01:00
Jaquee
316ddf1c05 mobile: hide mining, sign/verify pages 2017-11-03 16:57:11 +01:00
Jaquee
855f2068f2 Leftpanel scaling/mobile layout 2017-11-03 16:57:10 +01:00
Jaquee
603c1e7ee9 Add Keys page 2017-11-03 16:57:10 +01:00
Jaquee
abd5f50713 historyTable mobile layout 2017-11-03 16:57:10 +01:00
Jaquee
085dfe114a checkbox redesign 2017-11-03 16:57:10 +01:00
Jaquee
0e6028aacf wizard: disable password strenght meter on mobiles 2017-11-03 16:57:10 +01:00
Jaquee
bcb7bcffdb wizard: reworked testnet settings 2017-11-03 16:57:10 +01:00
Jaquee
b205acc51b Wizard: add qrcode scanner to recover page 2017-11-03 16:57:10 +01:00
Jaquee
a3088b1eeb Wizard: add daemon settings page 2017-11-03 16:09:23 +01:00
Jaquee
bbcb780cfa wizard: use m_wallet instead of storing in settingsObj 2017-11-01 17:02:44 +01:00
Jaquee
91953f1a3a Wizard: add scaleRatio 2017-11-01 17:02:44 +01:00
Jaquee
7af8383caf add scaleRatio property and isAndroid 2017-11-01 17:02:44 +01:00
Jaquee
c72207c2e2 transactionInfo: use empty str when fee=0 2017-11-01 17:02:44 +01:00
Jaquee
8553771f89 add localDaemonSynced() 2017-11-01 17:02:44 +01:00
Jaquee
d78f9f5e70 delete addressbook in wallet destructor 2017-11-01 17:02:44 +01:00
Jaquee
77335b300a QrCodeScanner: parse extra parameters 2017-11-01 17:02:44 +01:00
luigi1111
6f95f8a754 Merge pull request #903
5dc1803 use master branch from monero submodule
2017-10-31 16:24:35 -05:00
luigi1111
05844b0a29 Merge pull request #911
913ef54 Store cache on exit
2017-10-31 15:32:00 -05:00
stoffu
1e4e8ae59a tx confirm password dialog: clear when cancelled 2017-10-29 13:00:18 +09:00
Bas Joe
794c146c49 Changed 'apt-get' to 'apt' 2017-10-23 20:42:34 +02:00
Jaquee
913ef54c22 Store cache on exit 2017-10-22 16:15:14 +02:00
Jaquee
5dc180393f use master branch from monero submodule 2017-10-16 18:26:34 +02:00
Keksoj
c712444e17 Merge pull request #1 from erciccione/fix
Fix conflicts and rebase.
2017-09-15 23:01:11 +02:00
erciccione
4066cb22ea Merge branch 'patch-1' into fix 2017-09-15 14:53:00 +00:00
erciccione
78e3cd4a63 fix conflicts and rebase 2017-09-15 15:42:02 +01:00
Keksoj
3e90c3d825 update of the esperanto translation
Changed the esperanto version entirely, with lots of small corrections. 
Deleted the "vanished" items.
No more "unfinished" items. 
Glad to help.
2017-07-13 11:42:27 +02:00
Jaquee
50b9281865 static debug build 2017-05-30 18:29:26 +02:00
342 changed files with 82664 additions and 26137 deletions

8
.gitignore vendored
View File

@@ -3,3 +3,11 @@
translations/*.qm
build
version.js
# IOS stuff below
moc_*
*.o
*.mak
*.build
*.xcodeproj
monero-wallet-gui_plugin_import.cpp
monero-wallet-gui_qml_plugin_import.cpp

View File

@@ -1,177 +0,0 @@
// Copyright (c) 2014-2015, 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.
import QtQuick 2.0
import QtGraphicalEffects 1.0
import "components"
import "pages"
// mbg033 @ 2016-10-08: Not used anymore, to be deleted
Rectangle {
id: root
width: 470
// height: paymentId.y + paymentId.height + 12
height: header.height + header.anchors.topMargin + transferBasic.height
color: "#F0EEEE"
border.width: 1
border.color: "#DBDBDB"
property alias balanceText : balanceText.text;
property alias unlockedBalanceText : availableBalanceText.text;
// repeating signal to the outside world
signal paymentClicked(string address, string paymentId, string amount, int mixinCount,
int priority, string description)
Connections {
target: transferBasic
onPaymentClicked: {
console.log("BasicPanel: paymentClicked")
root.paymentClicked(address, paymentId, amount, mixinCount, priority, description)
}
}
Rectangle {
id: header
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.leftMargin: 1
anchors.rightMargin: 1
anchors.topMargin: 30
height: 64
color: "#FFFFFF"
Image {
id: logo
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: -5
anchors.left: parent.left
anchors.leftMargin: 20
source: "images/moneroLogo2.png"
}
Grid {
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
width: 256
columns: 3
Text {
width: 116
height: 20
font.family: "Arial"
font.pixelSize: 12
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignBottom
color: "#535353"
text: qsTr("Locked Balance:")
}
Text {
id: balanceText
width: 110
height: 20
font.family: "Arial"
font.pixelSize: 18
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignBottom
color: "#000000"
text: qsTr("78.9239845")
}
Item {
height: 20
width: 20
Image {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
source: "images/lockIcon.png"
}
}
Text {
width: 116
height: 20
font.family: "Arial"
font.pixelSize: 12
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignBottom
color: "#535353"
text: qsTr("Available Balance:")
}
Text {
id: availableBalanceText
width: 110
height: 20
font.family: "Arial"
font.pixelSize: 14
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignBottom
color: "#000000"
text: qsTr("2324.9239845")
}
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "#DBDBDB"
}
}
Item {
anchors.top: header.bottom
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
Transfer {
id : transferBasic
anchors.fill: parent
}
}
// indicate disabled state
// Desaturate {
// anchors.fill: parent
// source: parent
// desaturation: root.enabled ? 0.0 : 1.0
// }
}

View File

@@ -1,4 +1,4 @@
Copyright (c) 2014-2017, The Monero Project
Copyright (c) 2014-2018, The Monero Project
All rights reserved.

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -27,29 +27,37 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick 2.2
import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0
import moneroComponents.Wallet 1.0
import moneroComponents.NetworkType 1.0
import "components"
Rectangle {
id: panel
property alias unlockedBalanceText: unlockedBalanceText.text
property alias unlockedBalanceVisible: unlockedBalanceText.visible
property alias unlockedBalanceLabelVisible: unlockedBalanceLabel.visible
property alias balanceLabelText: balanceLabel.text
property alias balanceText: balanceText.text
property alias networkStatus : networkStatus
property alias progressBar : progressBar
property alias daemonProgressBar : daemonProgressBar
property alias minutesToUnlockTxt: unlockedBalanceLabel.text
property int titleBarHeight: 50
signal dashboardClicked()
signal historyClicked()
signal transferClicked()
signal receiveClicked()
signal txkeyClicked()
signal sharedringdbClicked()
signal settingsClicked()
signal addressBookClicked()
signal miningClicked()
signal signClicked()
signal keysClicked()
function selectItem(pos) {
menuColumn.previousButton.checked = false
@@ -60,175 +68,194 @@ Rectangle {
else if(pos === "AddressBook") menuColumn.previousButton = addressBookButton
else if(pos === "Mining") menuColumn.previousButton = miningButton
else if(pos === "TxKey") menuColumn.previousButton = txkeyButton
else if(pos === "SharedRingDB") menuColumn.previousButton = sharedringdbButton
else if(pos === "Sign") menuColumn.previousButton = signButton
else if(pos === "Settings") menuColumn.previousButton = settingsButton
else if(pos === "Advanced") menuColumn.previousButton = advancedButton
else if(pos === "Keys") menuColumn.previousButton = keysButton
menuColumn.previousButton.checked = true
}
width: (isMobile)? appWindow.width : 260
color: "#FFFFFF"
width: (isMobile)? appWindow.width : 300
color: "transparent"
anchors.bottom: parent.bottom
anchors.top: parent.top
// Item with monero logo
Item {
visible: !isMobile
id: logoItem
Image {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: (persistentSettings.customDecorations)? 66 : 36
height: logo.implicitHeight
Image {
id: logo
anchors.left: parent.left
anchors.leftMargin: 50
source: "images/moneroLogo.png"
}
Text {
id: testnetLabel
visible: persistentSettings.testnet
text: qsTr("Testnet") + translationManager.emptyString
anchors.top: logo.bottom
anchors.topMargin: 5
anchors.left: parent.left
anchors.leftMargin: 50
font.bold: true
color: "red"
}
/* Disable twitter/news panel
Image {
anchors.left: parent.left
anchors.verticalCenter: logo.verticalCenter
anchors.leftMargin: 19
source: appWindow.rightPanelExpanded ? "images/expandRightPanel.png" :
"images/collapseRightPanel.png"
}
MouseArea {
anchors.fill: parent
onClicked: appWindow.rightPanelExpanded = !appWindow.rightPanelExpanded
}
*/
height: panel.height
source: "images/leftPanelBg.jpg"
z: 1
}
// card with monero logo
Column {
visible: !isMobile
visible: true
z: 2
id: column1
height: 200
anchors.left: parent.left
anchors.right: parent.right
anchors.top: logoItem.bottom
anchors.topMargin: 26
spacing: 5
anchors.top: parent.top
anchors.topMargin: (persistentSettings.customDecorations)? 50 : 0
Label {
visible: !isMobile
id: balanceLabel
text: qsTr("Balance") + translationManager.emptyString
anchors.left: parent.left
anchors.leftMargin: 50
}
Row {
visible: !isMobile
RowLayout {
visible: true
Item {
anchors.left: parent.left
anchors.top: parent.top
anchors.topMargin: 20
anchors.leftMargin: 20
anchors.verticalCenter: parent.verticalCenter
height: 26
width: 50
height: 490 * scaleRatio
width: 259 * scaleRatio
Image {
anchors.centerIn: parent
source: "images/lockIcon.png"
width: 259; height: 170
fillMode: Image.PreserveAspectFit
source: "images/card-background.png"
}
Text {
id: testnetLabel
visible: persistentSettings.nettype != NetworkType.MAINNET
text: (persistentSettings.nettype == NetworkType.TESTNET ? qsTr("Testnet") : qsTr("Stagenet")) + translationManager.emptyString
anchors.top: parent.top
anchors.topMargin: 8
anchors.left: parent.left
anchors.leftMargin: 192
font.bold: true
font.pixelSize: 12
color: "#f33434"
}
Text {
id: viewOnlyLabel
visible: viewOnly
text: qsTr("View Only") + translationManager.emptyString
anchors.top: parent.top
anchors.topMargin: 8
anchors.right: testnetLabel.visible ? testnetLabel.left : parent.right
anchors.rightMargin: 8
font.pixelSize: 12
font.bold: true
color: "#ff9323"
}
}
Text {
visible: !isMobile
id: balanceText
Item {
anchors.left: parent.left
anchors.top: parent.top
anchors.topMargin: 20
anchors.leftMargin: 20
anchors.verticalCenter: parent.verticalCenter
font.family: "Arial"
color: "#000000"
text: "N/A"
// dynamically adjust text size
font.pixelSize: {
var digits = text.split('.')[0].length
var defaultSize = 25;
if(digits > 2) {
return defaultSize - 1.1*digits
height: 490 * scaleRatio
width: 50 * scaleRatio
Text {
visible: !isMobile
id: balanceText
anchors.left: parent.left
anchors.leftMargin: 20
anchors.top: parent.top
anchors.topMargin: 76
font.family: "Arial"
color: "#FFFFFF"
text: "N/A"
// dynamically adjust text size
font.pixelSize: {
var digits = text.split('.')[0].length
var defaultSize = 22;
if(digits > 2) {
return defaultSize - 1.1*digits
}
return defaultSize;
}
return defaultSize;
}
}
}
Item { //separator
anchors.left: parent.left
anchors.right: parent.right
height: 1
}
Label {
id: unlockedBalanceLabel
text: qsTr("Unlocked balance") + translationManager.emptyString
anchors.left: parent.left
anchors.leftMargin: 50
}
Text {
id: unlockedBalanceText
anchors.left: parent.left
anchors.leftMargin: 50
font.family: "Arial"
color: "#000000"
text: "N/A"
// dynamically adjust text size
font.pixelSize: {
var digits = text.split('.')[0].length
var defaultSize = 18;
if(digits > 3) {
return defaultSize - 0.6*digits
Text {
id: unlockedBalanceText
visible: true
anchors.left: parent.left
anchors.leftMargin: 20
anchors.top: parent.top
anchors.topMargin: 126
font.family: "Arial"
color: "#FFFFFF"
text: "N/A"
// dynamically adjust text size
font.pixelSize: {
var digits = text.split('.')[0].length
var defaultSize = 20;
if(digits > 3) {
return defaultSize - 0.6*digits
}
return defaultSize;
}
}
return defaultSize;
Label {
id: unlockedBalanceLabel
visible: true
text: qsTr("Unlocked balance") + translationManager.emptyString
anchors.left: parent.left
anchors.leftMargin: 20
anchors.top: parent.top
anchors.topMargin: 110
}
Label {
visible: !isMobile
id: balanceLabel
text: qsTr("Balance") + translationManager.emptyString
fontSize: 14
anchors.left: parent.left
anchors.leftMargin: 20
anchors.top: parent.top
anchors.topMargin: 60
}
Item { //separator
anchors.left: parent.left
anchors.right: parent.right
height: 1
}
/* Disable twitter/news panel
Image {
anchors.left: parent.left
anchors.verticalCenter: logo.verticalCenter
anchors.leftMargin: 19
source: appWindow.rightPanelExpanded ? "images/expandRightPanel.png" :
"images/collapseRightPanel.png"
}
MouseArea {
anchors.fill: parent
onClicked: appWindow.rightPanelExpanded = !appWindow.rightPanelExpanded
}
*/
}
}
}
Rectangle {
anchors.top: parent.top
anchors.left: parent.left
anchors.bottom: menuRect.top
width: 1
color: "#DBDBDB"
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: 1
color: "#DBDBDB"
}
Rectangle {
id: menuRect
z: 2
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.top: (isMobile)? parent.top : column1.bottom
anchors.topMargin: (isMobile)? 0 : 25
color: "#1C1C1C"
anchors.topMargin: (isMobile)? 0 : 32
color: "transparent"
Flickable {
contentHeight: 500
id:flicker
contentHeight: (progressBar.visible)? menuColumn.height + separator.height +
networkStatus.height + progressBar.height + daemonProgressBar.height :
menuColumn.height + separator.height + networkStatus.height
anchors.fill: parent
clip: true
@@ -239,7 +266,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
clip: true
property var previousButton: transferButton
// ------------- Dashboard tab ---------------
@@ -265,11 +292,19 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: dashboardButton.checked || transferButton.checked ? "#1C1C1C" : "#505050"
color: dashboardButton.checked || transferButton.checked ? "#1C1C1C" : "#313131"
height: 1
}
*/
// top border
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Transfer tab ---------------
MenuButton {
@@ -291,7 +326,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
color: "#313131"
height: 1
}
@@ -317,7 +352,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
color: "#313131"
height: 1
}
@@ -340,7 +375,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
color: "#313131"
height: 1
}
@@ -364,7 +399,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
color: "#313131"
height: 1
}
@@ -386,13 +421,14 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
color: "#313131"
height: 1
}
// ------------- Mining tab ---------------
MenuButton {
id: miningButton
visible: !isAndroid && !isIOS
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Mining") + translationManager.emptyString
@@ -411,7 +447,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: miningButton.checked || settingsButton.checked ? "#1C1C1C" : "#505050"
color: miningButton.checked || settingsButton.checked ? "#1C1C1C" : "#313131"
height: 1
}
// ------------- TxKey tab ---------------
@@ -419,7 +455,7 @@ Rectangle {
id: txkeyButton
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Check payment") + translationManager.emptyString
text: qsTr("Prove/check") + translationManager.emptyString
symbol: qsTr("K") + translationManager.emptyString
dotColor: "#FFD781"
under: advancedButton
@@ -434,9 +470,33 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
color: "#313131"
height: 1
}
// ------------- Shared RingDB tab ---------------
MenuButton {
id: sharedringdbButton
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Shared RingDB") + translationManager.emptyString
symbol: qsTr("G") + translationManager.emptyString
dotColor: "#FFD781"
under: advancedButton
onClicked: {
parent.previousButton.checked = false
parent.previousButton = sharedringdbButton
panel.sharedringdbClicked()
}
}
Rectangle {
visible: sharedringdbButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Sign/verify tab ---------------
MenuButton {
@@ -458,7 +518,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
color: "#313131"
height: 1
}
// ------------- Settings tab ---------------
@@ -480,29 +540,79 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
color: "#313131"
height: 1
}
// ------------- Sign/verify tab ---------------
MenuButton {
id: keysButton
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Seed & Keys") + translationManager.emptyString
symbol: qsTr("Y") + translationManager.emptyString
dotColor: "#FFD781"
under: settingsButton
onClicked: {
parent.previousButton.checked = false
parent.previousButton = keysButton
panel.keysClicked()
}
}
Rectangle {
visible: settingsButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
}
} // Column
} // Flickable
Rectangle {
id: separator
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 0
anchors.rightMargin: 0
anchors.bottom: networkStatus.top;
height: 10 * scaleRatio
color: "transparent"
}
NetworkStatusItem {
id: networkStatus
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 0
anchors.rightMargin: 0
anchors.bottom: (progressBar.visible)? progressBar.top : parent.bottom;
connected: Wallet.ConnectionStatus_Disconnected
height: 48 * scaleRatio
}
ProgressBar {
id: progressBar
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.bottom: daemonProgressBar.top
height: 48 * scaleRatio
syncType: qsTr("Wallet")
visible: networkStatus.connected
}
}
ProgressBar {
id: daemonProgressBar
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
syncType: qsTr("Daemon")
visible: networkStatus.connected
height: 62 * scaleRatio
}
} // menuRect

49
Logger.cpp Normal file
View File

@@ -0,0 +1,49 @@
#include <QCoreApplication>
#include <QStandardPaths>
#include <QFileInfo>
#include <QString>
#include "Logger.h"
#include "wallet/api/wallet2_api.h"
// default log path by OS (should be writable)
static const QString default_name = "monero-wallet-gui.log";
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0);
#elif defined(Q_OS_WIN)
static const QString osPath = QCoreApplication::applicationDirPath();
#elif defined(Q_OS_MAC)
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0) + "/Library/Logs";
#else // linux + bsd
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
#endif
// return the absolute path of the logfile
const QString getLogPath(const QString logPath)
{
const QFileInfo fi(logPath);
if(!logPath.isEmpty() && !fi.isDir())
return fi.absoluteFilePath();
else
return osPath + "/" + default_name;
}
// custom messageHandler that foward all messages to easylogging
void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &message)
{
(void) context; // context isn't used in release builds
const std::string cat = "frontend"; // category displayed in the log
const std::string msg = message.toStdString();
switch(type)
{
case QtDebugMsg: Monero::Wallet::debug(cat, msg); break;
case QtInfoMsg: Monero::Wallet::info(cat, msg); break;
case QtWarningMsg: Monero::Wallet::warning(cat, msg); break;
case QtCriticalMsg: Monero::Wallet::error(cat, msg); break;
case QtFatalMsg: Monero::Wallet::error(cat, msg); break;
}
}

8
Logger.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef LOGGER_H
#define LOGGER_H
const QString getLogPath(const QString logPath);
void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &message);
#endif // LOGGER_H

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -29,6 +29,7 @@
import QtQml 2.0
import QtQuick 2.2
// QtQuick.Controls 2.0 isn't stable enough yet. Needs more testing.
//import QtQuick.Controls 2.0
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.1
@@ -36,6 +37,7 @@ import QtGraphicalEffects 1.0
import moneroComponents.Wallet 1.0
import "./pages"
import "./pages/settings"
Rectangle {
id: root
@@ -47,25 +49,36 @@ Rectangle {
property string balanceText
property string unlockedBalanceLabelText: qsTr("Unlocked Balance") + translationManager.emptyString
property string unlockedBalanceText
property int minHeight: (appWindow.height > 800) ? appWindow.height : 800
property int minHeight: (appWindow.height > 800) ? appWindow.height : 800 * scaleRatio
property alias contentHeight: mainFlickable.contentHeight
property alias flickable: mainFlickable
// property int headerHeight: header.height
property Transfer transferView: Transfer { }
property Receive receiveView: Receive { }
property TxKey txkeyView: TxKey { }
property SharedRingDB sharedringdbView: SharedRingDB { }
property History historyView: History { }
property Sign signView: Sign { }
property Settings settingsView: Settings { }
property Mining miningView: Mining { }
property AddressBook addressBookView: AddressBook { }
property Keys keysView: Keys { }
signal paymentClicked(string address, string paymentId, string amount, int mixinCount, int priority, string description)
signal sweepUnmixableClicked()
signal generatePaymentIdInvoked()
signal checkPaymentClicked(string address, string txid, string txkey);
signal getProofClicked(string txid, string address, string message);
signal checkProofClicked(string txid, string address, string message, string signature);
color: "#F0EEEE"
Image {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
source: "../images/middlePanelBg.jpg"
}
onCurrentViewChanged: {
if (previousView) {
@@ -93,33 +106,6 @@ Rectangle {
transferView.sendTo(address, paymentId, description);
}
// XXX: just for memo, to be removed
// states: [
// State {
// name: "Dashboard"
// PropertyChanges { target: loader; source: "pages/Dashboard.qml" }
// }, State {
// name: "History"
// PropertyChanges { target: loader; source: "pages/History.qml" }
// }, State {
// name: "Transfer"
// PropertyChanges { target: loader; source: "pages/Transfer.qml" }
// }, State {
// name: "Receive"
// PropertyChanges { target: loader; source: "pages/Receive.qml" }
// }, State {
// name: "AddressBook"
// PropertyChanges { target: loader; source: "pages/AddressBook.qml" }
// }, State {
// name: "Settings"
// PropertyChanges { target: loader; source: "pages/Settings.qml" }
// }, State {
// name: "Mining"
// PropertyChanges { target: loader; source: "pages/Mining.qml" }
// }
// ]
states: [
State {
name: "Dashboard"
@@ -128,19 +114,23 @@ Rectangle {
name: "History"
PropertyChanges { target: root; currentView: historyView }
PropertyChanges { target: historyView; model: appWindow.currentWallet ? appWindow.currentWallet.historyModel : null }
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
PropertyChanges { target: mainFlickable; contentHeight: historyView.tableHeight + 220 * scaleRatio }
}, State {
name: "Transfer"
PropertyChanges { target: root; currentView: transferView }
PropertyChanges { target: mainFlickable; contentHeight: 1000 }
PropertyChanges { target: mainFlickable; contentHeight: 1000 * scaleRatio }
}, State {
name: "Receive"
PropertyChanges { target: root; currentView: receiveView }
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
PropertyChanges { target: mainFlickable; contentHeight: receiveView.receiveHeight + 100 }
}, State {
name: "TxKey"
PropertyChanges { target: root; currentView: txkeyView }
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
PropertyChanges { target: mainFlickable; contentHeight: 1200 * scaleRatio }
}, State {
name: "SharedRingDB"
PropertyChanges { target: root; currentView: sharedringdbView }
PropertyChanges { target: mainFlickable; contentHeight: sharedringdbView.panelHeight + 100 }
}, State {
name: "AddressBook"
PropertyChanges { target: root; currentView: addressBookView }
@@ -148,15 +138,19 @@ Rectangle {
}, State {
name: "Sign"
PropertyChanges { target: root; currentView: signView }
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
PropertyChanges { target: mainFlickable; contentHeight: 1200 * scaleRatio }
}, State {
name: "Settings"
PropertyChanges { target: root; currentView: settingsView }
PropertyChanges { target: mainFlickable; contentHeight: 1200 }
PropertyChanges { target: mainFlickable; contentHeight: settingsView.settingsHeight }
}, State {
name: "Mining"
PropertyChanges { target: root; currentView: miningView }
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
}, State {
name: "Keys"
PropertyChanges { target: root; currentView: keysView }
PropertyChanges { target: mainFlickable; contentHeight: minHeight + 200 * scaleRatio }
}
]
@@ -178,8 +172,8 @@ Rectangle {
ColumnLayout {
anchors.fill: parent
anchors.margins: 2
anchors.topMargin: appWindow.persistentSettings.customDecorations ? 30 : 0
anchors.margins: 18
anchors.topMargin: appWindow.persistentSettings.customDecorations ? 50 : 0
spacing: 0
Flickable {
@@ -187,6 +181,11 @@ Rectangle {
Layout.fillWidth: true
Layout.fillHeight: true
clip: true
onFlickingChanged: {
releaseFocus();
}
// Disabled scrollbars, gives crash on startup on windows
// ScrollIndicator.vertical: ScrollIndicator { }
// ScrollBar.vertical: ScrollBar { } // uncomment to test
@@ -195,11 +194,7 @@ Rectangle {
StackView {
id: stackView
initialItem: transferView
// anchors.topMargin: 30
// Layout.fillWidth: true
// Layout.fillHeight: true
anchors.fill:parent
// anchors.margins: 4
clip: true // otherwise animation will affect left panel
delegate: StackViewDelegate {
@@ -210,6 +205,7 @@ Rectangle {
from: 0 - target.width
to: 0
duration: 300
easing.type: Easing.OutCubic
}
PropertyAnimation {
target: exitItem
@@ -217,6 +213,7 @@ Rectangle {
from: 0
to: target.width
duration: 300
easing.type: Easing.OutCubic
}
}
}
@@ -224,30 +221,14 @@ Rectangle {
}// flickable
}
// border
Rectangle {
anchors.top: styledRow.bottom
anchors.bottom: parent.bottom
anchors.right: parent.right
width: 1
color: "#DBDBDB"
}
Rectangle {
anchors.top: styledRow.bottom
anchors.bottom: parent.bottom
anchors.left: parent.left
width: 1
color: "#DBDBDB"
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "#DBDBDB"
color: "#313131"
}
/* connect "payment" click */

141
README.md
View File

@@ -1,16 +1,16 @@
# Monero GUI
Copyright (c) 2014-2017, The Monero Project
Copyright (c) 2014-2018, The Monero Project
## Development Resources
## Development resources
- Web: [getmonero.org](https://getmonero.org)
- Forum: [forum.getmonero.org](https://forum.getmonero.org)
- Mail: [dev@getmonero.org](mailto:dev@getmonero.org)
- Github: [https://github.com/monero-project/monero-core](https://github.com/monero-project/monero-core)
- 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)
## Vulnerability Response
## Vulnerability response
- Our [Vulnerability Response Process](https://github.com/monero-project/meta/blob/master/VULNERABILITY_RESPONSE_PROCESS.md) encourages responsible disclosure
- We are also available via [HackerOne](https://hackerone.com/monero)
@@ -25,23 +25,21 @@ Monero is a private, secure, untraceable, decentralised digital currency. You ar
**Untraceability:** By taking advantage of ring signatures, a special property of a certain type of cryptography, Monero is able to ensure that transactions are not only untraceable, but have an optional measure of ambiguity that ensures that transactions cannot easily be tied back to an individual user or computer.
## About this Project
## About this project
This is the GUI for the [core Monero implementation](https://github.com/monero-project/monero). It is open source and completely free to use without restrictions, except for those specified in the license agreement below. There are no restrictions on anyone creating an alternative implementation of Monero that uses the protocol and network in a compatible manner.
As with many development projects, the repository on Github is considered to be the "staging" area for the latest changes. Before changes are merged into that branch on the main repository, they are tested by individual developers in their own branches, submitted as a pull request, and then subsequently tested by contributors who focus on testing and code reviews. That having been said, the repository should be carefully considered before using it in a production environment, unless there is a patch in the repository for a particular show-stopping issue you are experiencing. It is generally a better idea to use a tagged release for stability.
## Supporting the Project
## Supporting the project
Monero development can be supported directly through donations.
Both Monero and Bitcoin donations can be made to donate.getmonero.org if using a client that supports the [OpenAlias](https://openalias.org) standard
Monero is a 100% community-sponsored endeavor. If you want to join our efforts, the easiest thing you can do is support the project financially. Both Monero and Bitcoin donations can be made to **donate.getmonero.org** if using a client that supports the [OpenAlias](https://openalias.org) standard.
The Monero donation address is: `44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A` (viewkey: `f359631075708155cc3d92a32b75a7d02a5dcf27756707b47a2b31b21c389501`)
The Bitcoin donation address is: `1KTexdemPdxSBcG55heUuTjDRYqbC5ZL8H`
Core development funding and/or some supporting services are also graciously provided by sponsors:
GUI development funding and/or some supporting services are also graciously provided by sponsors:
[<img width="80" src="https://static.getmonero.org/images/sponsors/mymonero.png"/>](https://mymonero.com)
[<img width="150" src="https://static.getmonero.org/images/sponsors/kitware.png?1"/>](http://kitware.com)
@@ -57,52 +55,39 @@ There are also several mining pools that kindly donate a portion of their fees,
See [LICENSE](LICENSE).
## Installing Monero Core from a Package
## Installing the Monero GUI from a package
Packages are available for
* Arch Linux via AUR: [monero-wallet-qt](https://aur.archlinux.org/packages/monero-wallet-qt/)
* Void Linux: xbps-install -S monero-core
* GuixSD: guix package -i monero-core
Packaging for your favorite distribution would be a welcome contribution!
## Compiling Monero Core from Source
## Compiling the Monero GUI from source
### On Linux:
(Tested on Ubuntu 16.04 x86, 16.10 x64, Gentoo x64 and Linux Mint 18 "Sarah" - Cinnamon x64)
(Tested on Ubuntu 17.10 x64, Ubuntu 18.04 x64 and Gentoo x64)
1. Install Monero dependencies
- For Ubuntu and Mint
- 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`
`sudo apt install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-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 sys-libs/libunwind`
`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`
2. Grab an up-to-date copy of the monero-core repository
2. Install Qt:
`git clone https://github.com/monero-project/monero-core.git`
*Note*: Qt 5.7 is the minimum version required to build the GUI. This makes **some** distributions (mostly based on debian, like Ubuntu 16.x or Linux Mint 18.x) obsolete. You can still build the GUI if you install an [official Qt release](https://wiki.qt.io/Install_Qt_5_on_Ubuntu), but this is not officially supported.
3. Go into the repository
- For Ubuntu 17.10+
`cd monero-core`
4. Install the GUI dependencies
- For Ubuntu 16.04 x86
`sudo apt-get install qtbase5-dev qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtquick-xmllistmodel qttools5-dev-tools qml-module-qtquick-dialogs`
- For Ubuntu 16.04+ x64
`sudo apt-get install qtbase5-dev qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtquick-xmllistmodel qttools5-dev-tools qml-module-qtquick-dialogs qml-module-qt-labs-settings libqt5qml-graphicaleffects`
- For Linux Mint 18 "Sarah" - Cinnamon x64
`sudo apt install qml-module-qt-labs-settings qml-module-qtgraphicaleffects`
`sudo apt install qtbase5-dev qt5-default qtdeclarative5-dev 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-folderlistmodel qttools5-dev-tools`
- For Gentoo
@@ -110,7 +95,7 @@ Packaging for your favorite distribution would be a welcome contribution!
- Optional : To build the flag `WITH_SCANNER`
- For Ubuntu and Mint
- For Ubuntu
`sudo apt install qtmultimedia5-dev qml-module-qtmultimedia libzbar-dev`
@@ -120,22 +105,26 @@ Packaging for your favorite distribution would be a welcome contribution!
`emerge dev-qt/qtmultimedia:5 media-gfx/zbar`
5. Build the GUI
- For Ubuntu and Mint
3. Clone repository
`./build.sh`
`git clone https://github.com/monero-project/monero-gui.git`
- For Gentoo
4. Build
`QT_SELECT=5 ./build.sh`
```
cd monero-gui
QT_SELECT=5 ./build.sh
```
The executable can be found in the build/release/bin folder.
### On OS X:
1. Install Xcode from AppStore
2. Install [homebrew](http://brew.sh/)
3. Install [monero](https://github.com/monero-project/monero) dependencies:
`brew install boost --c++11`
@@ -146,6 +135,12 @@ The executable can be found in the build/release/bin folder.
`brew install cmake`
`brew install zeromq`
*Note*: If cmake can not find zmq.hpp file on OS X, installing `zmq.hpp` from https://github.com/zeromq/cppzmq to `/usr/local/include` should fix that error.
4. Install Qt:
`brew install qt5` (or download QT 5.8+ from [qt.io](https://www.qt.io/download-open-source/))
If you have an older version of Qt installed via homebrew, you can force it to use 5.x like so:
@@ -158,13 +153,13 @@ The executable can be found in the build/release/bin folder.
This is the directory where Qt 5.x is installed on **your** system
6. Grab an up-to-date copy of the monero-core repository
6. Grab an up-to-date copy of the monero-gui repository
`git clone https://github.com/monero-project/monero-core.git`
`git clone https://github.com/monero-project/monero-gui.git`
7. Go into the repository
`cd monero-core`
`cd monero-gui`
8. Start the build
@@ -187,57 +182,47 @@ More info: http://stackoverflow.com/a/35098040/1683164
### On Windows:
1. Install [msys2](http://msys2.github.io/), follow the instructions on that page on how to update packages to the latest versions
The Monero GUI on Windows is 64 bits only; 32-bit Windows GUI builds are not officially supported anymore.
2. Install monero dependencies as described in [monero documentation](https://github.com/monero-project/monero) into msys2 environment
**As we only build application for x86, install only dependencies for x86 architecture (i686 in package name)**
```
pacman -S mingw-w64-i686-toolchain make mingw-w64-i686-cmake mingw-w64-i686-boost
1. Install [MSYS2](https://www.msys2.org/), follow the instructions on that page on how to update system and packages to the latest versions
```
2. Open an 64-bit MSYS2 shell: Use the *MSYS2 MinGW 64-bit* shortcut, or use the `msys2_shell.cmd` batch file with a `-mingw64` parameter
3. Install git into msys2 environment
3. Install MSYS2 packages for Monero dependencies; the needed 64-bit packages have `x86_64` in their names
```
pacman -S 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
```
You find more details about those dependencies in the [Monero documentation](https://github.com/monero-project/monero). Note that that there is no more need to compile Boost from source; like everything else, you can install it now with a MSYS2 package.
4. Install Qt5
```
pacman -S mingw-w64-x86_64-qt5
```
There is no more need to download some special installer from the Qt website, the standard MSYS2 package for Qt will do in almost all circumstances.
5. Install git
```
pacman -S git
```
4. Install Qt5 from [official site](https://www.qt.io/download-open-source/)
- download unified installer, run and select following options:
- Qt > Qt 5.7 > MinGW 5.3.0 32 bit
- Tools > MinGW 5.3.0
- continue with installation
6. Clone repository
5. Open ```MinGW-w64 Win32 Shell``` shell
```%MSYS_ROOT%\msys2_shell.cmd -mingw32```
Where ```%MSYS_ROOT%``` will be ```c:\msys32``` if your host OS is x86-based or ```c:\msys64``` if your host OS
is x64-based
6. Install the latest version of boost, specificly the required static libraries
```
cd
wget http://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.bz2
tar xjf boost_1_63_0.tar.bz2
cd boost_1_63_0
./bootstrap.sh mingw
./b2 --prefix=/mingw32/boost --layout=tagged --without-mpi --without-python toolset=gcc address-model=32 variant=debug,release link=static threading=multi runtime-link=static -j$(nproc) install
git clone https://github.com/monero-project/monero-gui.git
```
7. Clone repository
```
cd
git clone https://github.com/monero-project/monero-core.git
```
7. Build
8. Build the GUI
```
cd monero-core
export PATH=$(ls -rd /c/Qt/5.[6,7,8]/mingw53_32/bin | head -1):$PATH
cd monero-gui
./build.sh
cd build
make deploy
```
The executable can be found in the ```.\release\bin``` directory.
The executable can be found in the `.\release\bin` directory.

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -38,121 +38,4 @@ Rectangle {
id: root
width: 330
color: "#FFFFFF"
function updateTweets() {
tabView.twitter.item.updateTweets()
}
TabView {
id: tabView
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: styledRow.top
anchors.leftMargin: 14
anchors.rightMargin: 14
anchors.topMargin: 40
property alias twitter: twitter
Tab { id: twitter; title: qsTr("Twitter"); source: "tabs/Twitter.qml" }
Tab { title: qsTr("News") + translationManager.emptyString }
Tab { title: qsTr("Help") + translationManager.emptyString }
Tab { title: qsTr("About") + translationManager.emptyString }
style: TabViewStyle {
frameOverlap: 0
tabOverlap: 0
tab: Rectangle {
implicitHeight: 31
implicitWidth: styleData.index === tabView.count - 1 ? tabView.width - (tabView.count - 1) * 68 : 68
Text {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 12
anchors.rightMargin: 12
elide: Text.ElideRight
font.family: "Arial"
font.pixelSize: 14
color: styleData.selected ? "#FF4E40" : "#4A4646"
text: styleData.title
}
Rectangle {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
width: 1
color: "#DBDBDB"
visible: styleData.index !== tabView.count - 1
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.bottomMargin: -1
height: 1
color: styleData.selected ? "#FFFFFF" : "#DBDBDB"
}
}
frame: Rectangle {
color: "#FFFFFF"
anchors.fill: parent
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
//anchors.topMargin: 1
height: 1
color: "#DBDBDB"
}
}
}
}
Row {
id: styledRow
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
Rectangle { height: 8; width: parent.width / 5; color: "#FFE00A" }
Rectangle { height: 8; width: parent.width / 5; color: "#6B0072" }
Rectangle { height: 8; width: parent.width / 5; color: "#FF6C3C" }
Rectangle { height: 8; width: parent.width / 5; color: "#FFD781" }
Rectangle { height: 8; width: parent.width / 5 - 30; color: "#FF4F41" }
}
Rectangle {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: "#DBDBDB"
}
Rectangle {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
width: 1
color: "#DBDBDB"
}
// indicate disabled state
// Desaturate {
// anchors.fill: parent
// source: parent
// desaturation: root.enabled ? 0.0 : 1.0
// }
}

View File

@@ -25,19 +25,12 @@ bool TranslationManager::setLanguage(const QString &language)
return true;
}
// translations are compiled into app binary
#ifdef Q_OS_MACX
QString dir = qApp->applicationDirPath() + "/../Resources/translations";
#else
QString dir = qApp->applicationDirPath() + "/translations";
#endif
QString filename = "monero-core_" + language;
qDebug("%s: loading translation file '%s' from '%s",
qDebug("%s: loading translation file '%s' from '%s'",
__FUNCTION__, qPrintable(filename), qPrintable(dir));
if (m_translator->load(filename, dir)) {
qDebug("%s: translation for language '%s' loaded successfully",
__FUNCTION__, qPrintable(language));
@@ -45,11 +38,24 @@ bool TranslationManager::setLanguage(const QString &language)
qApp->installTranslator(m_translator);
emit languageChanged();
return true;
} else {
qCritical("%s: error loading translation for language '%s'",
__FUNCTION__, qPrintable(language));
return false;
}
qDebug("%s: couldn't load translation file '%s' from '%s'",
__FUNCTION__, qPrintable(filename), qPrintable(dir));
qDebug("%s: loading embedded translation file '%s'",
__FUNCTION__, qPrintable(filename));
if (m_translator->load(filename, ":")) {
qDebug("%s: embedded translation for language '%s' loaded successfully",
__FUNCTION__, qPrintable(language));
qApp->installTranslator(m_translator);
emit languageChanged();
return true;
}
qCritical("%s: error loading translation for language '%s'",
__FUNCTION__, qPrintable(language));
return false;
}
TranslationManager *TranslationManager::instance()

View File

@@ -1,4 +1,4 @@
Copyright (c) 2014-2017, The Monero Project
Copyright (c) 2014-2018, The Monero Project
## Current status : ALPHA
@@ -22,7 +22,7 @@ Copyright (c) 2014-2017, The Monero Project
# Get the apk
docker cp monero-gui-android:/opt/android/monero-core/build/release/bin/bin/QtApp-debug.apk .
docker cp monero-gui-android:/opt/android/monero-gui/build/release/bin/bin/QtApp-debug.apk .
## Deployment
@@ -31,7 +31,7 @@ Copyright (c) 2014-2017, The Monero Project
First, see section [Enable adb debugging on your device](https://developer.android.com/studio/command-line/adb.html#Enabling)
The only place where we are allowed to play is `/data/local/tmp`. So :
adb push /opt/android/monero-core/build/release/bin/bin/QtApp-debug.apk /data/local/tmp
adb push /opt/android/monero-gui/build/release/bin/bin/QtApp-debug.apk /data/local/tmp
adb shell pm install -r /data/local/tmp/QtApp-debug.apk
- Troubleshooting:

View File

@@ -88,21 +88,20 @@ APP_CFLAGS += -target armv7-none-linux-androideabi -fexceptions -fstack-protect
&& android update project --path . -t "${ANDROID_API}" \
&& CC=arm-linux-androideabi-clang CXX=arm-linux-androideabi-clang++ ant -Dndk.dir=${ANDROID_NDK_ROOT} -Diconv.src=${WORKDIR}/libiconv-${ICONV_VERSION} zbar-clean zbar-ndk-build
#Can't directly call build.sh because of env variables
RUN git clone https://github.com/monero-project/monero-core.git \
&& cd monero-core \
&& git submodule update \
&& CC=arm-linux-androideabi-clang CXX=arm-linux-androideabi-clang++ BOOST_ROOT=/opt/android/boost_1_62_0 BOOST_LIBRARYDIR=${WORKDIR}/boost_${BOOST_VERSION}/android32/lib/ OPENSSL_ROOT_DIR=${WORKDIR}/openssl/ ./get_libwallet_api.sh release-android
RUN cp openssl/lib* ${ANDROID_NDK_ROOT}/platforms/${ANDROID_API}/arch-arm/usr/lib
RUN cp boost_${BOOST_VERSION}/android32/lib/lib* ${ANDROID_NDK_ROOT}/platforms/${ANDROID_API}/arch-arm/usr/lib
RUN cp ZBar/android/obj/local/armeabi-v7a/lib* ${ANDROID_NDK_ROOT}/platforms/${ANDROID_API}/arch-arm/usr/lib
ENV PATH $ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:${WORKDIR}/Qt-${QT_VERSION}/bin:$CLEAN_PATH
# NB : zxcvbn-c needs to build a local binary and Qt don't care about these environnement variable
RUN cd monero-core \
&& CC="gcc" CXX="g++" ./build.sh release-android \
RUN git clone https://github.com/monero-project/monero-gui.git \
&& cd monero-gui \
&& git submodule update \
&& CC=arm-linux-androideabi-clang CXX=arm-linux-androideabi-clang++ BOOST_ROOT=/opt/android/boost_1_62_0 \
BOOST_LIBRARYDIR=${WORKDIR}/boost_${BOOST_VERSION}/android32/lib/ \
OPENSSL_ROOT_DIR=${WORKDIR}/openssl/ \
CMAKE_INCLUDE_PATH=${WORKDIR}/cppzmq/ \
CMAKE_LIBRARY_PATH=${WORKDIR}/zeromq4-1/.libs \
CXXFLAGS="-I ${WORKDIR}/zeromq4-1/include/" \
./build.sh release-android \
&& cd build \
&& make deploy

View File

@@ -8,6 +8,22 @@ if [ -z $BUILD_TYPE ]; then
BUILD_TYPE=release
fi
# Return 0 if the command exists, 1 if it does not.
exists() {
command -v "$1" &>/dev/null
}
# Return the first value in $@ that's a runnable command.
find_command() {
for arg in "$@"; do
if exists "$arg"; then
echo "$arg"
return 0
fi
done
return 1
}
if [ "$BUILD_TYPE" == "release" ]; then
echo "Building release"
CONFIG="CONFIG+=release";
@@ -24,14 +40,16 @@ elif [ "$BUILD_TYPE" == "release-static" ]; then
BIN_PATH=release/bin
elif [ "$BUILD_TYPE" == "release-android" ]; then
echo "Building release for ANDROID"
CONFIG="CONFIG+=release static WITH_SCANNER";
CONFIG="CONFIG+=release static WITH_SCANNER DISABLE_PASS_STRENGTH_METER";
ANDROID=true
BIN_PATH=release/bin
DISABLE_PASS_STRENGTH_METER=true
elif [ "$BUILD_TYPE" == "debug-android" ]; then
echo "Building debug for ANDROID : ultra INSECURE !!"
CONFIG="CONFIG+=debug qml_debug WITH_SCANNER";
CONFIG="CONFIG+=debug qml_debug WITH_SCANNER DISABLE_PASS_STRENGTH_METER";
ANDROID=true
BIN_PATH=debug/bin
DISABLE_PASS_STRENGTH_METER=true
elif [ "$BUILD_TYPE" == "debug" ]; then
echo "Building debug"
CONFIG="CONFIG+=debug"
@@ -57,15 +75,17 @@ fi
./get_libwallet_api.sh $BUILD_TYPE
# build zxcvbn
$MAKE -C src/zxcvbn-c || exit
if [ "$DISABLE_PASS_STRENGTH_METER" != true ]; then
$MAKE -C src/zxcvbn-c || exit
fi
if [ ! -d build ]; then mkdir build; fi
# Platform indepenent settings
if [ "$ANDROID" != true ] && ([ "$platform" == "linux32" ] || [ "$platform" == "linux64" ]); then
distro=$(lsb_release -is)
if [ "$distro" == "Ubuntu" ]; then
exists lsb_release && distro="$(lsb_release -is)"
if [ "$distro" = "Ubuntu" ] || [ "$distro" = "Fedora" ] || test -f /etc/fedora-release; then
CONFIG="$CONFIG libunwind_off"
fi
fi
@@ -85,7 +105,11 @@ popd
echo "var GUI_MONERO_VERSION = \"$TAGNAME\"" >> version.js
cd build
qmake ../monero-wallet-gui.pro "$CONFIG" || exit
if ! QMAKE=$(find_command qmake qmake-qt5); then
echo "Failed to find suitable qmake command."
exit 1
fi
$QMAKE ../monero-wallet-gui.pro "$CONFIG" || exit
$MAKE || exit
# Copy monerod to bin folder

View File

@@ -1,52 +0,0 @@
#!/bin/bash
# MONERO_URL=https://github.com/monero-project/monero.git
# MONERO_BRANCH=master
CPU_CORE_COUNT=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu)
pushd $(pwd)
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $ROOT_DIR/utils.sh
INSTALL_DIR=$ROOT_DIR/wallet
MONERO_DIR=$ROOT_DIR/monero
mkdir -p $MONERO_DIR/build/release
pushd $MONERO_DIR/build/release
# reusing function from "utils.sh"
platform=$(get_platform)
pushd $MONERO_DIR/build/release/src/wallet
make -j$CPU_CORE_COUNT
make install -j$CPU_CORE_COUNT
popd
# unbound is one more dependency. can't be merged to the wallet_merged
# since filename conflict (random.c.obj)
# for Linux, we use libunbound shipped with the system, so we don't need to build it
if [ "$platform" != "linux" ]; then
echo "Building libunbound..."
pushd $MONERO_DIR/build/release/external/unbound
# no need to make, it was already built as dependency for libwallet
# make -j$CPU_CORE_COUNT
make install -j$CPU_CORE_COUNT
popd
fi
popd

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -37,13 +37,13 @@ ListView {
footer: Rectangle {
height: 127
width: listView.width
color: "#FFFFFF"
color: "transparent"
Text {
anchors.centerIn: parent
font.family: "Arial"
font.pixelSize: 14
color: "#545454"
color: "#808080"
text: qsTr("No more results") + translationManager.emptyString
}
}
@@ -53,7 +53,7 @@ ListView {
id: delegate
height: 64
width: listView.width
color: index % 2 ? "#F8F8F8" : "#FFFFFF"
color: "transparent"
z: listView.count - index
function collapseDropdown() { dropdown.expanded = false }
@@ -62,11 +62,11 @@ ListView {
anchors.left: parent.left
anchors.top: parent.top
anchors.topMargin: 12
width: text.length ? (descriptionArea.containsMouse ? dropdown.x - x - 12 : 139) : 0
width: text.length ? (descriptionArea.containsMouse ? 139 : 139) : 0
font.family: "Arial"
font.bold: true
font.pixelSize: 19
color: "#444444"
color: "#ffffff"
elide: Text.ElideRight
text: description
@@ -87,8 +87,9 @@ ListView {
anchors.rightMargin: 40
font.family: "Arial"
font.pixelSize: 16
color: "#545454"
color: "#ffffff"
text: address
readOnly: true
}
Text {
@@ -100,7 +101,7 @@ ListView {
width: 139
font.family: "Arial"
font.pixelSize: 12
color: "#535353"
color: "#ffffff"
text: qsTr("Payment ID:") + translationManager.emptyString
}
@@ -111,7 +112,7 @@ ListView {
anchors.leftMargin: 12
anchors.rightMargin: 12
anchors.right: dropdown.left
readOnly: true
font.family: "Arial"
font.pixelSize: 13
@@ -144,8 +145,10 @@ ListView {
onOptionClicked: {
// Ensure tooltip is closed
appWindow.toolTip.visible = false;
if(option === 0)
if(option === 0) {
clipboard.setText(address)
appWindow.showStatusMessage(qsTr("Address copied to clipboard"),3)
}
else if(option === 1){
console.log("Sending to: ", address +" "+ paymentId);
middlePanel.sendTo(address, paymentId, description);
@@ -162,7 +165,7 @@ ListView {
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "#DBDBDB"
color: "#404040"
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -29,61 +29,81 @@
import QtQuick 2.0
import QtQuick.Layouts 1.1
Item {
import "../components" as MoneroComponents
RowLayout {
id: checkBox
property alias text: label.text
property string checkedIcon
property string checkedIcon: "../images/checkedIcon-black.png"
property string uncheckedIcon
property bool checked: false
property alias background: backgroundRect.color
property int fontSize: 14
property int fontSize: 14 * scaleRatio
property alias fontColor: label.color
signal clicked()
height: 25
width: label.x + label.width
Layout.minimumWidth: label.x + label.contentWidth
clip: true
height: 25 * scaleRatio
Rectangle {
anchors.left: parent.left
height: parent.height - 1
width: 25
//radius: 4
y: 0
color: "#DBDBDB"
function toggle(){
checkBox.checked = !checkBox.checked
checkBox.clicked()
}
Rectangle {
id: backgroundRect
anchors.left: parent.left
height: parent.height - 1
width: 25
//radius: 4
y: 1
color: "#FFFFFF"
Image {
anchors.centerIn: parent
source: checkBox.checked ? checkBox.checkedIcon :
checkBox.uncheckedIcon
RowLayout {
Layout.fillWidth: true
Rectangle {
anchors.left: parent.left
width: 25 * scaleRatio
height: checkBox.height - 1
radius: 3
y: 0
color: "transparent"
border.color:
if(checkBox.checked){
return MoneroComponents.Style.inputBorderColorActive;
} else {
return MoneroComponents.Style.inputBorderColorInActive;
}
}
}
Text {
id: label
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 25 + 12
font.family: "Arial"
font.pixelSize: checkBox.fontSize
color: "#525252"
}
Rectangle {
id: backgroundRect
anchors.left: parent.left
width: 25 * scaleRatio
height: checkBox.height - 1
y: 1
color: "transparent"
MouseArea {
anchors.fill: parent
onClicked: {
checkBox.checked = !checkBox.checked
checkBox.clicked()
Image {
anchors.centerIn: parent
source: checkBox.checkedIcon
visible: checkBox.checked
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
}
}
}
Text {
id: label
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: checkBox.fontSize
color: MoneroComponents.Style.defaultFontColor
wrapMode: Text.Wrap
Layout.fillWidth: true
anchors.left: backgroundRect.right
anchors.leftMargin: !isMobile ? 10 : 8
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
}
}
}
}
}

107
components/CheckBox2.qml Normal file
View File

@@ -0,0 +1,107 @@
// Copyright (c) 2014-2015, 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.
import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0
import "." 1.0
RowLayout {
id: checkBox
property alias text: label.text
property string checkedIcon: "../images/checkedIcon-black.png"
property string uncheckedIcon
property bool checked: false
property string background: "backgroundRect.color"
property int fontSize: 14 * scaleRatio
property alias fontColor: label.color
property int textMargin: 8 * scaleRatio
property bool darkDropIndicator: false
signal clicked()
height: 25 * scaleRatio
function toggle(){
checkBox.checked = !checkBox.checked
checkBox.clicked()
}
RowLayout {
Layout.fillWidth: true
Rectangle{
height: label.height
width: (label.width + indicatorRect.width + checkBox.textMargin)
color: "transparent"
anchors.left: parent.left
Text {
id: label
font.family: Style.fontLight.name
font.pixelSize: checkBox.fontSize
color: Style.defaultFontColor
wrapMode: Text.Wrap
Layout.fillWidth: true
anchors.left: parent.left
}
Rectangle {
id: indicatorRect
width: indicatorImage.width
height: label.height
anchors.left: label.right
anchors.leftMargin: textMargin
color: "transparent"
rotation: checkBox.checked ? 180 * scaleRatio : 0
Image {
id: indicatorImage
anchors.centerIn: parent
source: "../images/whiteDropIndicator.png"
visible: !darkDropIndicator
}
ColorOverlay {
anchors.fill: indicatorImage
source: indicatorImage
color: "#FF000000"
visible: darkDropIndicator
}
}
MouseArea{
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle();
}
}
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -27,22 +27,23 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
import QtQuick.Window 2.0
import QtQuick.Window 2.2
import "../components" as MoneroComponents
import "../js/Windows.js" as Windows
import "../js/Utils.js" as Utils
Window {
id: root
modality: Qt.ApplicationModal
flags: Qt.Window | Qt.FramelessWindowHint
property alias title: dialogTitle.text
color: "black"
flags: Windows.flags
property alias text: dialogContent.text
property alias content: root.text
property alias okVisible: okButton.visible
property alias textArea: dialogContent
property var icon
@@ -50,15 +51,25 @@ Window {
signal accepted()
signal rejected()
onClosing: {
inactiveOverlay.visible = false;
}
function open() {
show()
inactiveOverlay.visible = true;
show();
}
// TODO: implement without hardcoding sizes
width: 480
height: 280
// background gradient
Image {
anchors.fill: parent
source: "../images/middlePanelBg.jpg"
}
// Make window draggable
MouseArea {
anchors.fill: parent
@@ -70,87 +81,136 @@ Window {
ColumnLayout {
id: mainLayout
spacing: 10
anchors { fill: parent; margins: 35 }
anchors.fill: parent
anchors.topMargin: 20 * scaleRatio
anchors.margins: 35 * scaleRatio
spacing: 20 * scaleRatio
RowLayout {
id: column
//anchors {fill: parent; margins: 16 }
Layout.alignment: Qt.AlignHCenter
id: content
Layout.fillWidth: true
Layout.fillHeight: true
Label {
id: dialogTitle
horizontalAlignment: Text.AlignHCenter
font.pixelSize: 32
font.family: "Arial"
color: "#555555"
}
Flickable {
id: flickable
anchors.fill: parent
}
TextArea.flickable: TextArea {
id : dialogContent
textFormat: TextEdit.RichText
selectByMouse: true
selectByKeyboard: true
anchors.fill: parent
font.family: "Ariel"
font.pixelSize: 14 * scaleRatio
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
wrapMode: TextEdit.Wrap
readOnly: true
background: Rectangle {
color: "transparent"
anchors.fill: parent
border.color: Qt.rgba(255, 255, 255, 0.25);
border.width: 1
radius: 4
}
function logCommand(msg){
msg = log_color(msg, "lime");
textArea.append(msg);
}
function logMessage(msg){
msg = msg.trim();
var color = "white";
if(msg.toLowerCase().indexOf('error') >= 0){
color = "red";
} else if (msg.toLowerCase().indexOf('warning') >= 0){
color = "yellow";
}
RowLayout {
TextArea {
id : dialogContent
Layout.fillWidth: true
Layout.fillHeight: true
font.family: "Arial"
textFormat: TextEdit.AutoText
readOnly: true
font.pixelSize: 12
}
}
// format multi-lines
if(msg.split("\n").length >= 2){
msg = msg.split("\n").join('<br>');
}
// Ok/Cancel buttons
RowLayout {
id: buttons
spacing: 60
Layout.alignment: Qt.AlignHCenter
log(msg, color);
}
function log_color(msg, color){
return "<span style='color: " + color + ";' >" + msg + "</span>";
}
function log(msg, color){
var timestamp = Utils.formatDate(new Date(), {
weekday: undefined,
month: "numeric",
timeZoneName: undefined
});
MoneroComponents.StandardButton {
id: okButton
width: 120
fontSize: 14
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
text: qsTr("Close") + translationManager.emptyString
onClicked: {
root.close()
root.accepted()
var _timestamp = log_color("[" + timestamp + "]", "#FFFFFF");
var _msg = log_color(msg, color);
textArea.append(_timestamp + " " + _msg);
// scroll to bottom
//if(flickable.contentHeight > content.height){
// flickable.contentY = flickable.contentHeight + 20;
//}
}
}
ScrollBar.vertical: ScrollBar {
// TODO: scrollbar always visible is buggy.
// QT 5.9 introduces `policy: ScrollBar.AlwaysOn`
contentItem.opacity: 1
anchors.top: flickable.top
anchors.left: flickable.right
anchors.leftMargin: 10 * scaleRatio
anchors.bottom: flickable.bottom
}
}
}
RowLayout {
Layout.fillWidth: true
MoneroComponents.LineEdit {
id: sendCommandText
width: 300
Layout.fillWidth: true
placeholderText: qsTr("command + enter (e.g help)") + translationManager.emptyString
onAccepted: {
if(text.length > 0)
daemonManager.sendCommand(text,currentWallet.testnet);
if(text.length > 0) {
textArea.logCommand(">>> " + text)
daemonManager.sendCommand(text, currentWallet.nettype);
}
text = ""
}
}
// Status button
// MoneroComponents.StandardButton {
// id: sendCommandButton
// enabled: sendCommandText.text.length > 0
// fontSize: 14
// shadowReleasedColor: "#FF4304"
// shadowPressedColor: "#B32D00"
// releasedColor: "#FF6C3C"
// pressedColor: "#FF4304"
// text: qsTr("Send command")
// onClicked: {
// daemonManager.sendCommand(sendCommandText.text,currentWallet.testnet);
// }
// }
}
}
// window borders
Rectangle {
anchors.bottom: parent.bottom
anchors.top: parent.top
anchors.left: parent.left
width:1
color: "#2F2F2F"
z: 2
}
Rectangle {
anchors.bottom: parent.bottom
anchors.top: parent.top
anchors.right: parent.right
width:1
color: "#2F2F2F"
z: 2
}
Rectangle {
anchors.bottom: parent.bottom
anchors.right: parent.right
anchors.left: parent.left
height:1
color: "#2F2F2F"
z: 2
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -39,13 +39,13 @@ Window {
id: root
modality: Qt.ApplicationModal
flags: Qt.Window | Qt.FramelessWindowHint
property int countDown: 5;
property int countDown: 10;
signal rejected()
signal started();
function open() {
show()
countDown = 5;
countDown = 10;
timer.start();
}
@@ -90,7 +90,7 @@ Window {
}
Text {
text: qsTr("Starting Monero daemon in %1 seconds").arg(countDown);
text: qsTr("Starting local node in %1 seconds").arg(countDown);
font.pixelSize: 18
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
@@ -108,10 +108,6 @@ Window {
id: okButton
visible:false
fontSize: 14
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
text: qsTr("Start daemon (%1)").arg(countDown)
KeyNavigation.tab: cancelButton
onClicked: {
@@ -125,10 +121,6 @@ Window {
MoneroComponents.StandardButton {
id: cancelButton
fontSize: 14
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
text: qsTr("Use custom settings")
onClicked: {

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -30,17 +30,21 @@ import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import "../components" as MoneroComponents
Item {
id: datePicker
property bool expanded: false
property date currentDate
property bool showCurrentDate: true
property color backgroundColor : "#FFFFFF"
property color errorColor : "#FFDDDD"
property color backgroundColor : "#404040"
property color errorColor : "red"
property bool error: false
property alias inputLabel: inputLabel
height: 37
width: 156
signal dateChanged();
height: 50
onExpandedChanged: if(expanded) appWindow.currentItem = datePicker
@@ -57,28 +61,49 @@ Item {
return true
}
Rectangle {
id: inputLabelRect
color: "transparent"
height: 22
width: parent.width
Text {
id: inputLabel
anchors.top: parent.top
anchors.topMargin: 2
anchors.left: parent.left
font.family: MoneroComponents.Style.fontLight.name
font.pixelSize: 14
font.bold: false
textFormat: Text.RichText
color: MoneroComponents.Style.defaultFontColor
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}
}
Item {
id: head
anchors.fill: parent
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height
//radius: 4
y: 0
color: "#DBDBDB"
}
anchors.top: inputLabelRect.bottom
anchors.topMargin: 6 * scaleRatio
anchors.left: parent.left
anchors.right: parent.right
height: 28
Rectangle {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
anchors.leftMargin: datePicker.expanded ? 1 : 0
anchors.rightMargin: datePicker.expanded ? 1 : 0
//radius: 4
radius: 4
y: 1
color: datePicker.error ? datePicker.errorColor : datePicker.backgroundColor
color: datePicker.backgroundColor
}
Item {
@@ -89,28 +114,18 @@ Item {
anchors.margins: 4
width: height
StandardButton {
id: button
anchors.fill: parent
shadowReleasedColor: "#DBDBDB"
shadowPressedColor: "#888888"
releasedColor: "#F0EEEE"
pressedColor: "#DBDBDB"
icon: "../images/datePicker.png"
visible: !datePicker.expanded
onClicked: datePicker.expanded = true
}
Image {
id: button
anchors.centerIn: parent
source: "../images/datePicker.png"
visible: datePicker.expanded
source: "../images/whiteDropIndicator.png"
rotation: datePicker.expanded ? 180 : 0
}
MouseArea {
anchors.fill: parent
enabled: datePicker.expanded
onClicked: datePicker.expanded = false
onClicked: datePicker.expanded = !datePicker.expanded
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
}
}
@@ -121,7 +136,7 @@ Item {
anchors.rightMargin: 4
height: 16
width: 1
color: "#DBDBDB"
color: "#808080"
visible: datePicker.expanded
}
@@ -150,9 +165,9 @@ Item {
id: dayInput
readOnly: true
width: 22
font.family: "Arial"
font.pixelSize: 18
// color: "#525252"
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
maximumLength: 2
horizontalAlignment: TextInput.AlignHCenter
validator: IntValidator{bottom: 01; top: 31;}
@@ -173,19 +188,19 @@ Item {
}
Text {
font.family: "Arial"
font.pixelSize: 18
// color: "#525252"
text: "."
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
text: "-"
}
TextInput {
id: monthInput
readOnly: true
width: 22
font.family: "Arial"
font.pixelSize: 18
// color: "#525252"
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
maximumLength: 2
horizontalAlignment: TextInput.AlignHCenter
validator: IntValidator{bottom: 01; top: 12;}
@@ -205,18 +220,18 @@ Item {
}
Text {
font.family: "Arial"
font.pixelSize: 18
// color: "#525252"
text: "."
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
text: "-"
}
TextInput {
id: yearInput
width: 44
font.family: "Arial"
font.pixelSize: 18
/// color: "#525252"
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
maximumLength: 4
horizontalAlignment: TextInput.AlignHCenter
validator: IntValidator{bottom: 1000; top: 9999;}
@@ -272,6 +287,7 @@ Item {
gridVisible: false
background: Rectangle { color: "transparent" }
dayDelegate: Item {
z: parent.z + 1
implicitHeight: implicitWidth
implicitWidth: calendar.width / 7
@@ -308,6 +324,8 @@ Item {
calendar.showNextMonth()
else calendar.showPreviousMonth()
}
dateChanged();
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -30,6 +30,8 @@ import QtQuick 2.0
import moneroComponents.Clipboard 1.0
import moneroComponents.AddressBookModel 1.0
import "../components" as MoneroComponents
import "../js/TxUtils.js" as TxUtils
ListView {
id: listView
@@ -39,7 +41,7 @@ ListView {
property int rowSpacing: 12
property var addressBookModel: null
function buildTxDetailsString(tx_id, paymentId, tx_key,tx_note, destinations) {
function buildTxDetailsString(tx_id, paymentId, tx_key,tx_note, destinations, rings) {
var trStart = '<tr><td width="85" style="padding-top:5px"><b>',
trMiddle = '</b></td><td style="padding-left:10px;padding-top:5px;">',
trEnd = "</td></tr>";
@@ -50,6 +52,7 @@ ListView {
+ (tx_key ? trStart + qsTr("Tx key:") + trMiddle + tx_key + trEnd : "")
+ (tx_note ? trStart + qsTr("Tx note:") + trMiddle + tx_note + trEnd : "")
+ (destinations ? trStart + qsTr("Destinations:") + trMiddle + destinations + trEnd : "")
+ (rings ? trStart + qsTr("Rings:") + trMiddle + rings + trEnd : "")
+ "</table>"
+ translationManager.emptyString;
}
@@ -64,11 +67,10 @@ ListView {
return addressBookModel.data(idx, AddressBookModel.AddressBookDescriptionRole)
}
footer: Rectangle {
height: 127
height: 127 * scaleRatio
width: listView.width
color: "#FFFFFF"
color: "transparent"
Text {
anchors.centerIn: parent
@@ -79,372 +81,403 @@ ListView {
}
}
StandardDialog {
id: detailsPopup
cancelVisible: false
okVisible: true
width:850
}
delegate: Rectangle {
id: delegate
height: 144
property bool collapsed: index ? false : true
height: collapsed ? 180 * scaleRatio : 70 * scaleRatio
width: listView.width
color: index % 2 ? "#F8F8F8" : "#FFFFFF"
z: listView.count - index
function collapseDropdown() { dropdown.expanded = false }
color: "transparent"
StandardButton {
id: detailsButton
anchors.right:parent.right
anchors.rightMargin: 15
anchors.top: parent.top
anchors.topMargin: parent.height/2 - this.height/2
width: 80
fontSize: 14
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
text: qsTr("Details")
onClicked: {
var tx_key = currentWallet.getTxKey(hash)
var tx_note = currentWallet.getUserNote(hash)
detailsPopup.title = "Transaction details";
detailsPopup.content = buildTxDetailsString(hash,paymentId,tx_key,tx_note,destinations);
detailsPopup.open();
}
function collapse(){
delegate.height = 180 * scaleRatio;
}
Row {
id: row1
anchors.left: parent.left
// borders
Rectangle{
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: 14
// -- direction indicator
Rectangle {
id: dot
width: 14
height: width
radius: width / 2
color: isOut ? "#FF4F41" : "#36B05B"
}
Item { //separator
width: 12
height: 14
}
// -- description aka recepient name from address book (TODO)
/*
Text {
id: descriptionText
width: text.length ? (descriptionArea.containsMouse ? parent.width - x - 12 : 120) : 0
anchors.verticalCenter: dot.verticalCenter
font.family: "Arial"
font.bold: true
font.pixelSize: 19
color: "#444444"
elide: Text.ElideRight
text: description
MouseArea {
id: descriptionArea
anchors.fill: parent
hoverEnabled: true
}
}
*/
/*
Item { //separator
width: descriptionText.width ? 12 : 0
height: 14
visible: !descriptionArea.containsMouse
}
*/
// -- address (in case outgoing transaction) - N/A in case of incoming
TextEdit {
id: addressText
readOnly: true
selectByMouse: true
anchors.verticalCenter: dot.verticalCenter
width: parent.width - x - 12
//elide: Text.ElideRight
font.family: "Arial"
font.pixelSize: 14
color: "#545454"
text: hash
// visible: !descriptionArea.containsMouse
}
anchors.bottom: parent.bottom
width: 1
color: "#404040"
}
Row {
// - Payment ID
id: row2
Rectangle{
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: 40
anchors.leftMargin: 26
// -- "PaymentID" title
Text {
id: paymentLabel
width: 86
anchors.bottom: parent.bottom
font.family: "Arial"
font.pixelSize: 12
color: "#535353"
text: paymentId !== "" ? qsTr("Payment ID:") + translationManager.emptyString : ""
}
// -- "PaymentID" value
TextEdit {
readOnly: true
selectByMouse: true
id: paymentIdValue
width: 136
anchors.bottom: parent.bottom
//elide: Text.ElideRight
font.family: "Arial"
font.pixelSize:13
color: "#545454"
text: paymentId
}
// Address book lookup
TextEdit {
readOnly: true
selectByMouse: true
id: addressBookLookupValue
width: 136
anchors.bottom: parent.bottom
//elide: Text.ElideRight
font.family: "Arial"
font.pixelSize:13
color: "#545454"
text: "(" + lookupPaymentID(paymentId) + ")"
visible: text !== "()"
}
anchors.bottom: parent.bottom
width: collapsed ? 2 : 1
color: collapsed ? "#BBBBBB" : "#404040"
}
Row {
// block height row
id: row3
anchors.left: parent.left
Rectangle{
anchors.right: parent.right
anchors.top: row2.bottom
anchors.topMargin: rowSpacing
anchors.leftMargin: 26
// -- "BlockHeight" title
Text {
id: blockHeghtTitle
anchors.bottom: parent.bottom
width: 86
font.family: "Arial"
font.pixelSize: 12
color: "#535353"
text: qsTr("BlockHeight:") + translationManager.emptyString
}
// -- "BlockHeight" value
TextEdit {
readOnly: true
selectByMouse: true
width: 85
anchors.bottom: parent.bottom
//elide: Text.ElideRight
font.family: "Arial"
font.pixelSize: 13
color: (confirmations < confirmationsRequired)? "#FF6C3C" : "#545454"
text: {
if (!isPending)
if(confirmations < confirmationsRequired)
return blockHeight + " " + qsTr("(%1/%2 confirmations)").arg(confirmations).arg(confirmationsRequired)
else
return blockHeight
if (!isOut)
return qsTr("UNCONFIRMED") + translationManager.emptyString
return qsTr("PENDING") + translationManager.emptyString
}
}
}
// -- "Date", "Balance" and "Amound" section
Row {
id: row4
anchors.top: row3.bottom
anchors.bottom: parent.top
anchors.left: parent.left
spacing: 12
anchors.topMargin: rowSpacing
Item { //separator
width: 14
height: 14
}
// -- "Date" column
Column {
anchors.top: parent.top
width: 215
Text {
anchors.left: parent.left
font.family: "Arial"
font.pixelSize: 12
color: "#545454"
text: qsTr("Date") + translationManager.emptyString
}
Row {
anchors.left: parent.left
anchors.right: parent.right
spacing: 33
Text {
font.family: "Arial"
font.pixelSize: 18
color: "#000000"
text: date
}
Text {
font.family: "Arial"
font.pixelSize: 18
color: "#000000"
text: time
}
}
}
// -- "Balance" column
// XXX: we don't have a balance
/*
Column {
anchors.top: parent.top
width: 148
visible: false
Text {
anchors.left: parent.left
font.family: "Arial"
font.pixelSize: 12
color: "#545454"
text: qsTr("Balance") + translationManager.emptyString
}
Text {
font.family: "Arial"
font.pixelSize: 18
color: "#000000"
text: balance
}
}
*/
// -- "Amount column
Column {
anchors.top: parent.top
Text {
anchors.left: parent.left
font.family: "Arial"
font.pixelSize: 12
color: "#545454"
text: qsTr("Amount") + translationManager.emptyString
}
Row {
spacing: 2
Text {
anchors.bottom: parent.bottom
anchors.bottomMargin: 3
font.family: "Arial"
font.pixelSize: 16
color: isOut ? "#FF4F41" : "#36B05B"
text: isOut ? "↓" : "↑"
}
Text {
id: amountText
anchors.bottom: parent.bottom
font.family: "Arial"
font.pixelSize: 18
color: isOut ? "#FF4F41" : "#36B05B"
text: displayAmount
}
}
}
// -- "Fee column
Column {
anchors.top: parent.top
width: 148
visible: isOut
Text {
anchors.left: parent.left
font.family: "Arial"
font.pixelSize: 12
color: "#545454"
text: qsTr("Fee") + translationManager.emptyString
}
Row {
spacing: 2
Text {
anchors.bottom: parent.bottom
font.family: "Arial"
font.pixelSize: 18
color: "#FF4F41"
text: fee
}
}
}
height: 1
color: "#404040"
}
/*
// Transaction dropdown menu.
// Disable for now until AddressBook implemented
TableDropdown {
id: dropdown
Rectangle{
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.bottomMargin: 11
anchors.rightMargin: 5
dataModel: dropModel
z: 1
onExpandedChanged: {
if(expanded) {
listView.previousItem = delegate
listView.currentIndex = index
}
anchors.left: parent.left
height: 1
color: "#404040"
}
Rectangle {
id: row1
anchors.left: parent.left
anchors.leftMargin: 20 * scaleRatio
anchors.right: parent.right
anchors.rightMargin: 20 * scaleRatio
anchors.top: parent.top
anchors.topMargin: 15 * scaleRatio
height: 40 * scaleRatio
color: "transparent"
Image {
id: arrowImage
source: isOut ? "../images/downArrow.png" : "../images/upArrow-green.png"
height: 18 * scaleRatio
width: 12 * scaleRatio
anchors.top: parent.top
anchors.topMargin: 12 * scaleRatio
}
onOptionClicked: {
if(option === 0)
clipboard.setText(address)
Text {
id: txrxLabel
anchors.left: arrowImage.right
anchors.leftMargin: 18 * scaleRatio
font.family: MoneroComponents.Style.fontLight.name
font.pixelSize: 14 * scaleRatio
text: isOut ? "Sent" : "Received"
color: "#808080"
}
Text {
id: amountLabel
anchors.left: arrowImage.right
anchors.leftMargin: 18 * scaleRatio
anchors.top: txrxLabel.bottom
anchors.topMargin: 0 * scaleRatio
font.family: MoneroComponents.Style.fontBold.name
font.pixelSize: 18 * scaleRatio
font.bold: true
text: {
var _amount = amount;
if(_amount === 0){
// *sometimes* amount is 0, while the 'destinations string'
// has the correct amount, so we try to fetch it from that instead.
_amount = TxUtils.destinationsToAmount(destinations);
_amount = (_amount *1);
}
return _amount + " XMR";
}
color: isOut ? "white" : "#2eb358"
}
Rectangle {
anchors.right: parent.right
width: 300 * scaleRatio
height: parent.height
color: "transparent"
Text {
id: dateLabel
anchors.left: parent.left
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14 * scaleRatio
text: date
color: "#808080"
}
Text {
id: timeLabel
anchors.left: dateLabel.right
anchors.leftMargin: 7 * scaleRatio
anchors.top: parent.top
anchors.topMargin: 3 * scaleRatio
font.pixelSize: 12 * scaleRatio
text: time
color: "#808080"
}
Text {
id: toLabel
property string address: ""
color: "#BBBBBB"
anchors.left: parent.left
anchors.top: dateLabel.bottom
anchors.topMargin: 0
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 16 * scaleRatio
text: {
if(isOut){
address = TxUtils.destinationsToAddress(destinations);
if(address){
var truncated = TxUtils.addressTruncate(address);
return "To " + truncated;
} else {
return "Unknown recipient";
}
}
return "";
}
MouseArea{
visible: parent.address !== undefined
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onEntered: {
toLabel.color = "white";
}
onExited: {
toLabel.color = "#BBBBBB";
}
onClicked: {
if(parent.address){
console.log("Address copied to clipboard");
clipboard.setText(parent.address);
appWindow.showStatusMessage(qsTr("Address copied to clipboard"),3)
}
}
}
}
Rectangle {
height: 24 * scaleRatio
width: 24 * scaleRatio
color: "transparent"
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
Image {
id: dropdownImage
height: 8 * scaleRatio
width: 12 * scaleRatio
source: "../images/whiteDropIndicator.png"
rotation: delegate.collapsed ? 180 : 0
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
}
MouseArea{
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
delegate.collapsed = !delegate.collapsed;
}
}
}
}
}
Rectangle {
id: row2
anchors.left: parent.left
anchors.leftMargin: 20 * scaleRatio
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "#DBDBDB"
}
*/
}
anchors.rightMargin: 20 * scaleRatio
anchors.top: row1.bottom
anchors.topMargin: 15 * scaleRatio
height: 40 * scaleRatio
color: "transparent"
visible: delegate.collapsed
ListModel {
id: dropModel
ListElement { name: "<b>Copy address to clipboard</b>"; icon: "../images/dropdownCopy.png" }
ListElement { name: "<b>Add to address book</b>"; icon: "../images/dropdownAdd.png" }
ListElement { name: "<b>Send to this address</b>"; icon: "../images/dropdownSend.png" }
ListElement { name: "<b>Find similar transactions</b>"; icon: "../images/dropdownSearch.png" }
// left column
MoneroComponents.HistoryTableInnerColumn{
anchors.left: parent.left
anchors.leftMargin: 30 * scaleRatio
labelHeader: "Transaction ID"
labelValue: hash.substring(0, 18) + "..."
copyValue: hash
}
// right column
MoneroComponents.HistoryTableInnerColumn{
anchors.right: parent.right
anchors.rightMargin: 100 * scaleRatio
width: 200 * scaleRatio
height: parent.height
color: "transparent"
labelHeader: qsTr("Fee")
labelValue: {
if(!isOut && !fee){
return "-";
} else if(isOut && fee){
return fee + " XMR";
} else {
return "Unknown"
}
}
copyValue: {
if(isOut && fee){ return fee }
else { return "" }
}
}
}
Rectangle {
id: row3
anchors.left: parent.left
anchors.leftMargin: 20 * scaleRatio
anchors.right: parent.right
anchors.rightMargin: 20 * scaleRatio
anchors.top: row2.bottom
anchors.topMargin: 15 * scaleRatio
height: 40 * scaleRatio
color: "transparent"
visible: delegate.collapsed
// left column
MoneroComponents.HistoryTableInnerColumn{
anchors.left: parent.left
anchors.leftMargin: 30 * scaleRatio
labelHeader: qsTr("Blockheight")
labelValue: {
if (!isPending)
if(confirmations < confirmationsRequired)
return blockHeight + " " + qsTr("(%1/%2 confirmations)").arg(confirmations).arg(confirmationsRequired);
else
return blockHeight;
if (!isOut)
return qsTr("UNCONFIRMED") + translationManager.emptyString
if (isFailed)
return qsTr("FAILED") + translationManager.emptyString
return qsTr("PENDING") + translationManager.emptyString
}
copyValue: labelValue
}
// right column
MoneroComponents.HistoryTableInnerColumn {
visible: currentWallet.getUserNote(hash)
anchors.right: parent.right
anchors.rightMargin: 80 * scaleRatio
width: 220 * scaleRatio
height: parent.height
color: "transparent"
labelHeader: qsTr("Description")
labelValue: {
var note = currentWallet.getUserNote(hash);
if(note){
if(note.length > 28) {
return note.substring(0, 28) + "...";
} else {
return note;
}
} else {
return "";
}
}
copyValue: {
return currentWallet.getUserNote(hash);
}
}
Rectangle {
id: proofButton
visible: isOut
color: "#404040"
height: 24 * scaleRatio
width: 24 * scaleRatio
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.bottomMargin: 36
radius: 20 * scaleRatio
MouseArea {
id: proofButtonMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
var address = TxUtils.destinationsToAddress(destinations);
if(address === undefined){
console.log('getProof: Error fetching address')
return;
}
var checked = (TxUtils.checkTxID(hash) && TxUtils.checkAddress(address, appWindow.persistentSettings.nettype));
if(!checked){
console.log('getProof: Error checking TxId and/or address');
}
console.log("getProof: Generate clicked: txid " + hash + ", address " + address);
root.getProofClicked(hash, address, '');
}
onEntered: {
proofButton.color = "#656565";
}
onExited: {
proofButton.color = "#404040";
}
}
Text {
color: MoneroComponents.Style.defaultFontColor
text: "P"
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 14 * scaleRatio
}
}
Rectangle {
id: detailsButton
color: "#404040"
height: 24 * scaleRatio
width: 24 * scaleRatio
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.bottomMargin: 6
radius: 20 * scaleRatio
MouseArea {
id: detailsButtonMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
var tx_key = currentWallet.getTxKey(hash)
var tx_note = currentWallet.getUserNote(hash)
var rings = currentWallet.getRings(hash)
if (rings)
rings = rings.replace(/\|/g, '\n')
informationPopup.title = "Transaction details";
informationPopup.content = buildTxDetailsString(hash,paymentId,tx_key,tx_note,destinations, rings);
informationPopup.onCloseCallback = null
informationPopup.open();
}
onEntered: {
detailsButton.color = "#656565";
}
onExited: {
detailsButton.color = "#404040";
}
}
Text {
color: MoneroComponents.Style.defaultFontColor
text: "?"
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 14 * scaleRatio
}
}
}
}
Clipboard { id: clipboard }

View File

@@ -0,0 +1,91 @@
// Copyright (c) 2014-2015, 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.
import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.2
import moneroComponents.Clipboard 1.0
import moneroComponents.PendingTransaction 1.0
import moneroComponents.Wallet 1.0
import "../components" as MoneroComponents
Rectangle{
Clipboard { id: clipboard }
width: label1.width > label2.width ? label1.width : label2.width
height: label1.height + label2.height
color: "transparent"
property string copyValue: ""
property alias labelHeader: label1.text
property alias labelValue: label2.text
Text {
id: label1
anchors.left: parent.left
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14 * scaleRatio
text: labelHeader
color: MoneroComponents.Style.dimmedFontColor
}
Text {
id: label2
anchors.left: parent.left
anchors.top: label1.bottom
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14 * scaleRatio
text: labelValue
color: MoneroComponents.Style.dimmedFontColor
}
// hover effect / copy value
MouseArea {
visible: copyValue !== ""
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onEntered: {
label1.color = MoneroComponents.Style.defaultFontColor;
label2.color = MoneroComponents.Style.defaultFontColor;
}
onExited: {
label1.color = MoneroComponents.Style.dimmedFontColor
label2.color = MoneroComponents.Style.dimmedFontColor;
}
onClicked: {
if(copyValue){
console.log("Copied to clipboard");
clipboard.setText(copyValue);
appWindow.showStatusMessage(qsTr("Copied to clipboard"),3)
}
}
}
}

View File

@@ -0,0 +1,222 @@
// Copyright (c) 2014-2018, 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.
import QtQuick 2.0
import QtQuick.Layouts 1.1
import moneroComponents.Clipboard 1.0
import moneroComponents.AddressBookModel 1.0
import "../components" as MoneroComponents
ListView {
id: listView
clip: true
boundsBehavior: ListView.StopAtBounds
property var previousItem
property var addressBookModel: null
function buildTxDetailsString(tx_id, paymentId, tx_key,tx_note, destinations, rings) {
var trStart = '<tr><td width="85" style="padding-top:5px"><b>',
trMiddle = '</b></td><td style="padding-left:10px;padding-top:5px;">',
trEnd = "</td></tr>";
return '<table border="0">'
+ (tx_id ? trStart + qsTr("Tx ID:") + trMiddle + tx_id + trEnd : "")
+ (paymentId ? trStart + qsTr("Payment ID:") + trMiddle + paymentId + trEnd : "")
+ (tx_key ? trStart + qsTr("Tx key:") + trMiddle + tx_key + trEnd : "")
+ (tx_note ? trStart + qsTr("Tx note:") + trMiddle + tx_note + trEnd : "")
+ (destinations ? trStart + qsTr("Destinations:") + trMiddle + destinations + trEnd : "")
+ (rings ? trStart + qsTr("Rings:") + trMiddle + rings + trEnd : "")
+ "</table>"
+ translationManager.emptyString;
}
function lookupPaymentID(paymentId) {
if (!addressBookModel)
return ""
var idx = addressBookModel.lookupPaymentID(paymentId)
if (idx < 0)
return ""
idx = addressBookModel.index(idx, 0)
return addressBookModel.data(idx, AddressBookModel.AddressBookDescriptionRole)
}
footer: Rectangle {
height: 127 * scaleRatio
width: listView.width
color: "transparent"
Text {
anchors.centerIn: parent
font.family: "Arial"
font.pixelSize: 14 * scaleRatio
color: "#545454"
text: qsTr("No more results") + translationManager.emptyString
}
}
delegate: Rectangle {
id: delegate
height: tableContent.height + 20 * scaleRatio
width: listView.width
color: "transparent"
Layout.leftMargin: 10 * scaleRatio
z: listView.count - index
function collapseDropdown() { dropdown.expanded = false }
Rectangle{
anchors.left: parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 1
color: "#404040"
}
Rectangle{
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.top: parent.top
width: 1
color: "#404040"
}
Rectangle{
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.left: parent.left
height: 1
color: "#404040"
}
MouseArea {
anchors.fill: parent
onClicked: {
var tx_key = currentWallet.getTxKey(hash)
var tx_note = currentWallet.getUserNote(hash)
var rings = currentWallet.getRings(hash)
if (rings)
rings = rings.replace(/\|/g, '\n')
informationPopup.title = "Transaction details";
informationPopup.text = buildTxDetailsString(hash,paymentId,tx_key,tx_note,destinations, rings);
informationPopup.open();
informationPopup.onCloseCallback = null
}
}
Rectangle {
anchors.right: parent.right
anchors.rightMargin: 15 * scaleRatio
anchors.top: parent.top
anchors.topMargin: parent.height/2 - this.height/2
width: 30 * scaleRatio; height: 30 * scaleRatio
radius: 25
color: "#404040"
Image {
width: 20 * scaleRatio
height: 20 * scaleRatio
fillMode: Image.PreserveAspectFit
anchors.centerIn: parent
source: "qrc:///images/nextPage.png"
}
}
ColumnLayout {
id: tableContent
// Date
RowLayout {
Layout.topMargin: 20 * scaleRatio
Layout.leftMargin: 10 * scaleRatio
Text {
font.family: MoneroComponents.Style.fontMedium.name
font.pixelSize: 14 * scaleRatio
color: MoneroComponents.Style.defaultFontColor
text: date
}
Text {
font.family: Style.fontRegular.name
font.pixelSize: 14 * scaleRatio
color: MoneroComponents.Style.dimmedFontColor
text: time
}
// Show confirmations
Text {
visible: confirmations < confirmationsRequired || isPending
Layout.leftMargin: 5 * scaleRatio
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14 * scaleRatio
color: (confirmations < confirmationsRequired)? "#FF6C3C" : "#545454"
text: {
if (!isPending)
if(confirmations < confirmationsRequired)
return qsTr("(%1/%2 confirmations)").arg(confirmations).arg(confirmationsRequired)
if (!isOut)
return qsTr("UNCONFIRMED") + translationManager.emptyString
if (isFailed)
return qsTr("FAILED") + translationManager.emptyString
return qsTr("PENDING") + translationManager.emptyString
}
}
}
// Amount & confirmations
RowLayout {
Layout.leftMargin: 10 * scaleRatio
spacing: 2
Text {
font.family: "Arial"
font.pixelSize: 14 * scaleRatio
color: isOut ? MoneroComponents.Style.defaultFontColor : "#2eb358"
text: isOut ? "↓" : "↑"
}
Text {
id: amountText
font.family: "Arial"
font.pixelSize: 18 * scaleRatio
color: isOut ? MoneroComponents.Style.defaultFontColor : "#2eb358"
text: displayAmount
}
}
}
}
ListModel {
id: dropModel
ListElement { name: "<b>Copy address to clipboard</b>"; icon: "../images/dropdownCopy.png" }
ListElement { name: "<b>Add to address book</b>"; icon: "../images/dropdownAdd.png" }
ListElement { name: "<b>Send to this address</b>"; icon: "../images/dropdownSend.png" }
ListElement { name: "<b>Find similar transactions</b>"; icon: "../images/dropdownSearch.png" }
}
Clipboard { id: clipboard }
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -30,6 +30,7 @@
import QtQuick 2.0
Item {
property alias image : buttonImage
property alias imageSource : buttonImage.source
signal clicked(var mouse)
@@ -53,7 +54,8 @@ Item {
MouseArea {
id: buttonArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onPressed: {
buttonImage.x = buttonImage.x + 2

View File

@@ -0,0 +1,93 @@
// Copyright (c) 2014-2015, 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.
import QtQuick 2.0
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
Item {
id: inlineButton
height: rect.height * scaleRatio
property string shadowPressedColor: "#B32D00"
property string shadowReleasedColor: "#FF4304"
property string pressedColor: "#FF4304"
property string releasedColor: "#FF6C3C"
property string icon: ""
property string textColor: "#FFFFFF"
property int fontSize: 12 * scaleRatio
property alias text: inlineText.text
signal clicked()
function doClick() {
// Android workaround
releaseFocus();
clicked();
}
Rectangle{
id: rect
color: MoneroComponents.Style.buttonBackgroundColorDisabled
border.color: "black"
height: 28 * scaleRatio
width: inlineText.width + 22 * scaleRatio
radius: 4
anchors.top: parent.top
anchors.right: parent.right
Text {
id: inlineText
font.family: MoneroComponents.Style.fontBold.name
font.bold: true
font.pixelSize: 16 * scaleRatio
color: "black"
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
}
MouseArea {
id: buttonArea
cursorShape: rect.enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
hoverEnabled: true
anchors.fill: parent
onClicked: doClick()
onEntered: {
rect.color = "#707070";
rect.opacity = 0.8;
}
onExited: {
rect.opacity = 1.0;
rect.color = "#808080";
}
}
}
Keys.onSpacePressed: doClick()
Keys.onReturnPressed: doClick()
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -26,21 +26,22 @@
// 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.
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick 2.2
import QtQuick.Controls 2.0
import QtQuick 2.7
import "../components" as MoneroComponents
TextField {
font.family: "Arial"
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 18 * scaleRatio
font.bold: true
horizontalAlignment: TextInput.AlignLeft
selectByMouse: true
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectedTextColor: MoneroComponents.Style.defaultFontColor
style: TextFieldStyle {
textColor: "#3F3F3F"
placeholderTextColor: "#BABABA"
background: Rectangle {
border.width: 0
color: "transparent"
}
background: Rectangle {
color: "transparent"
}
}

160
components/InputDialog.qml Normal file
View File

@@ -0,0 +1,160 @@
// Copyright (c) 2014-2018, 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.
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
import QtQuick.Window 2.0
import "../components" as MoneroComponents
Item {
id: root
visible: false
property alias labelText: label.text
property alias inputText: input.text
// same signals as Dialog has
signal accepted()
signal rejected()
function open() {
inactiveOverlay.visible = true
leftPanel.enabled = false
middlePanel.enabled = false
titleBar.enabled = false
show()
root.visible = true;
input.focus = true;
input.text = "";
}
function close() {
inactiveOverlay.visible = false
leftPanel.enabled = true
middlePanel.enabled = true
titleBar.enabled = true
root.visible = false;
}
ColumnLayout {
z: parent.z + 1
id: mainLayout
spacing: 10
anchors { fill: parent; margins: 35 }
ColumnLayout {
id: column
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Layout.maximumWidth: 400 * scaleRatio
Label {
id: label
anchors.left: parent.left
Layout.fillWidth: true
font.pixelSize: 16 * scaleRatio
font.family: MoneroComponents.Style.fontLight.name
color: MoneroComponents.Style.defaultFontColor
}
TextField {
id : input
focus: true
Layout.topMargin: 6
Layout.fillWidth: true
anchors.left: parent.left
horizontalAlignment: TextInput.AlignLeft
verticalAlignment: TextInput.AlignVCenter
font.family: MoneroComponents.Style.fontLight.name
font.pixelSize: 24 * scaleRatio
KeyNavigation.tab: okButton
bottomPadding: 10
leftPadding: 10
topPadding: 10
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectedTextColor: MoneroComponents.Style.defaultFontColor
background: Rectangle {
radius: 2
border.color: Qt.rgba(255, 255, 255, 0.35)
border.width: 1
color: "black"
}
Keys.onReturnPressed: {
root.close()
root.accepted()
}
Keys.onEscapePressed: {
root.close()
root.rejected()
}
}
// Ok/Cancel buttons
RowLayout {
id: buttons
spacing: 16 * scaleRatio
Layout.topMargin: 16
Layout.alignment: Qt.AlignRight
MoneroComponents.StandardButton {
id: cancelButton
small: true
width: 120
fontSize: 14
text: qsTr("Cancel") + translationManager.emptyString
KeyNavigation.tab: input
onClicked: {
root.close()
root.rejected()
}
}
MoneroComponents.StandardButton {
id: okButton
small: true
width: 120
fontSize: 14
text: qsTr("Ok")
KeyNavigation.tab: cancelButton
onClicked: {
root.close()
root.accepted()
}
}
}
}
}
}

64
components/InputMulti.qml Normal file
View File

@@ -0,0 +1,64 @@
// Copyright (c) 2014-2015, 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.
import QtQuick.Controls 2.0
import QtQuick 2.7
import "../js/TxUtils.js" as TxUtils
import "../components" as MoneroComponents
TextArea {
property int fontSize: 18 * scaleRatio
property bool fontBold: false
property string fontColor: MoneroComponents.Style.defaultFontColor
property bool mouseSelection: true
property bool error: false
property bool addressValidation: false
id: textArea
font.family: MoneroComponents.Style.fontRegular.name
color: fontColor
font.pixelSize: fontSize
font.bold: fontBold
horizontalAlignment: TextInput.AlignLeft
selectByMouse: mouseSelection
selectionColor: MoneroComponents.Style.dimmedFontColor
selectedTextColor: MoneroComponents.Style.defaultFontColor
onTextChanged: {
if(addressValidation){
// js replacement for `RegExpValidator { regExp: /[0-9A-Fa-f]{95}/g }`
textArea.text = textArea.text.replace(/[^a-z0-9.@]/gi,'');
var address_ok = TxUtils.checkAddress(textArea.text, appWindow.persistentSettings.nettype);
if(!address_ok) error = true;
else error = false;
TextArea.cursorPosition = textArea.text.length;
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -26,58 +26,44 @@
// 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.
import QtQuick 2.0
import QtQuick 2.5
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
Item {
id: item
property alias text: label.text
property alias color: label.color
property alias textFormat: label.textFormat
property string tipText: ""
property int fontSize: 12
property int fontSize: 16 * scaleRatio
property bool fontBold: false
property string fontColor: MoneroComponents.Style.defaultFontColor
property string fontFamily: ""
property alias wrapMode: label.wrapMode
property alias horizontalAlignment: label.horizontalAlignment
property alias hoveredLink: label.hoveredLink
signal linkActivated()
width: icon.x + icon.width
height: icon.height
height: label.height * scaleRatio
width: label.width * scaleRatio
Layout.topMargin: 10 * scaleRatio
Text {
id: label
anchors.bottom: parent.bottom
anchors.bottomMargin: 2
anchors.bottomMargin: 2 * scaleRatio
anchors.left: parent.left
font.family: "Arial"
font.pixelSize: parent.fontSize
color: "#555555"
font.family: {
if(fontFamily){
return fontFamily;
} else {
return MoneroComponents.Style.fontRegular.name;
}
}
font.pixelSize: fontSize
font.bold: fontBold
color: fontColor
onLinkActivated: item.linkActivated()
}
Image {
id: icon
anchors.verticalCenter: parent.verticalCenter
anchors.left: label.right
anchors.leftMargin: 5
source: "../images/whatIsIcon.png"
visible: appWindow.whatIsEnable
}
// MouseArea {
// anchors.fill: icon
// enabled: appWindow.whatIsEnable
// hoverEnabled: true
// onEntered: {
// icon.visible = false
// var pos = appWindow.mapFromItem(icon, 0, -15)
// tipItem.text = item.tipText
// tipItem.x = pos.x
// if(tipItem.height > 30)
// pos.y -= tipItem.height - 28
// tipItem.y = pos.y
// tipItem.visible = true
// }
// onExited: {
// icon.visible = Qt.binding(function(){ return appWindow.whatIsEnable; })
// tipItem.visible = false
// }
// }
}

View File

@@ -0,0 +1,73 @@
// Copyright (c) 2014-2015, 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.
import QtQuick 2.0
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
Rectangle {
signal clicked();
property alias text: labelButtonText.text
id: labelButton
color: "#808080"
radius: 3
height: 20
width: labelButtonText.width + 14
anchors.right: copyButton.left
anchors.rightMargin: 6
Text {
id: labelButtonText
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 12
font.bold: true
text: ""
color: "black"
}
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
hoverEnabled: true
onClicked: labelButton.clicked()
onEntered: {
labelButton.color = "#707070";
labelButtonText.opacity = 0.8;
}
onExited: {
labelButton.color = "#808080";
labelButtonText.opacity = 1.0;
}
}
}

View File

@@ -0,0 +1,52 @@
// Copyright (c) 2014-2015, 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.
import QtQuick 2.0
import "../components" as MoneroComponents
Label {
id: item
fontSize: 18 * scaleRatio
Rectangle {
anchors.top: item.bottom
anchors.topMargin: 4
anchors.left: parent.left
anchors.right: parent.right
height: 2
color: MoneroComponents.Style.dividerColor
opacity: MoneroComponents.Style.dividerOpacity
}
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -28,51 +28,191 @@
import QtQuick 2.0
import "../components" as MoneroComponents
Item {
id: item
property alias placeholderText: input.placeholderText
property alias text: input.text
property alias placeholderText: placeholderLabel.text
property bool placeholderCenter: false
property string placeholderFontFamily: MoneroComponents.Style.fontRegular.name
property bool placeholderFontBold: false
property int placeholderFontSize: 18 * scaleRatio
property string placeholderColor: MoneroComponents.Style.defaultFontColor
property real placeholderOpacity: 0.35
property alias validator: input.validator
property alias readOnly : input.readOnly
property alias cursorPosition: input.cursorPosition
property alias echoMode: input.echoMode
property int fontSize: 18
property alias inlineButton: inlineButtonId
property alias inlineButtonText: inlineButtonId.text
property alias inlineIcon: inlineIcon.visible
property bool copyButton: false
property bool borderDisabled: false
property string borderColor: {
if(input.activeFocus){
return MoneroComponents.Style.inputBorderColorActive;
} else {
return MoneroComponents.Style.inputBorderColorInActive;
}
}
property int fontSize: 18 * scaleRatio
property bool fontBold: false
property alias fontColor: input.color
property bool error: false
signal editingFinished()
property alias labelText: inputLabel.text
property alias labelColor: inputLabel.color
property alias labelTextFormat: inputLabel.textFormat
property string backgroundColor: "transparent"
property string tipText: ""
property int labelFontSize: 16 * scaleRatio
property bool labelFontBold: false
property alias labelWrapMode: inputLabel.wrapMode
property alias labelHorizontalAlignment: inputLabel.horizontalAlignment
property bool showingHeader: inputLabel.text !== "" || copyButton
property int inputHeight: 42 * scaleRatio
signal labelLinkActivated(); // input label, rich text <a> signal
signal editingFinished();
signal accepted();
signal textUpdated();
height: 37
height: showingHeader ? (inputLabel.height + inputItem.height + 2) * scaleRatio : 42 * scaleRatio
function getColor(error) {
if (error)
return "#FFDDDD"
else
return "#FFFFFF"
onTextUpdated: {
// check to remove placeholder text when there is content
if(item.isEmpty()){
placeholderLabel.visible = true;
} else {
placeholderLabel.visible = false;
}
}
Rectangle {
anchors.fill: parent
anchors.bottomMargin: 1
color: "#DBDBDB"
//radius: 4
function isEmpty(){
var val = input.text;
if(val === "") {
return true;
}
else {
return false;
}
}
Rectangle {
anchors.fill: parent
anchors.topMargin: 1
color: getColor(error)
//radius: 4
Text {
id: inputLabel
anchors.top: parent.top
anchors.left: parent.left
anchors.topMargin: 2 * scaleRatio
font.family: MoneroComponents.Style.fontLight.name
font.pixelSize: labelFontSize
font.bold: labelFontBold
textFormat: Text.RichText
color: MoneroComponents.Style.defaultFontColor
onLinkActivated: item.labelLinkActivated()
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}
Input {
id: input
anchors.fill: parent
anchors.leftMargin: 4
anchors.rightMargin: 30
font.pixelSize: parent.fontSize
onEditingFinished: item.editingFinished()
onAccepted: item.accepted();
onTextChanged: item.textUpdated()
MoneroComponents.LabelButton {
id: copyButtonId
text: qsTr("Copy")
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);
}
}
visible: copyButton && input.text !== ""
}
Item{
id: inputItem
height: inputHeight * scaleRatio
anchors.top: showingHeader ? inputLabel.bottom : parent.top
anchors.topMargin: showingHeader ? 12 * scaleRatio : 2 * scaleRatio
width: parent.width
clip: true
Text {
id: placeholderLabel
visible: input.text ? false : true
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: placeholderCenter ? parent.horizontalCenter : undefined
anchors.left: placeholderCenter ? undefined : parent.left
anchors.leftMargin: {
if(placeholderCenter){
return undefined;
}
else if(inlineIcon.visible){ return 50 * scaleRatio; }
else { return 10 * scaleRatio; }
}
opacity: item.placeholderOpacity
color: item.placeholderColor
font.family: item.placeholderFontFamily
font.pixelSize: placeholderFontSize * scaleRatio
font.bold: item.placeholderFontBold
text: ""
z: 3
}
Rectangle {
anchors.fill: parent
anchors.topMargin: 1 * scaleRatio
color: "transparent"
}
Rectangle {
id: inputFill
color: backgroundColor
anchors.fill: parent
border.width: borderDisabled ? 0 : 1
border.color: borderColor
radius: 4
}
Image {
id: inlineIcon
width: 26 * scaleRatio
height: 26 * scaleRatio
anchors.top: parent.top
anchors.topMargin: 8 * scaleRatio
anchors.left: parent.left
anchors.leftMargin: 12 * scaleRatio
source: "../images/moneroIcon-28x28.png"
visible: false
}
MoneroComponents.Input {
id: input
anchors.fill: parent
anchors.leftMargin: inlineIcon.visible ? 44 * scaleRatio : 0
font.pixelSize: item.fontSize
font.bold: item.fontBold
onEditingFinished: item.editingFinished()
onAccepted: item.accepted();
onTextChanged: item.textUpdated()
topPadding: 10 * scaleRatio
bottomPadding: 10 * scaleRatio
}
MoneroComponents.InlineButton {
id: inlineButtonId
visible: item.inlineButtonText ? true : false
anchors.right: parent.right
anchors.rightMargin: 8 * scaleRatio
anchors.top: parent.top
anchors.topMargin: 6 * scaleRatio
}
}
}

View File

@@ -0,0 +1,174 @@
// Copyright (c) 2014-2015, 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.
import QtQuick 2.0
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
ColumnLayout {
id: item
Layout.fillWidth: true
Layout.preferredHeight: childrenRect.height
property alias text: input.text
property alias labelText: inputLabel.text
property alias labelButtonText: labelButton.text
property alias placeholderText: placeholderLabel.text
property bool placeholderCenter: false
property string placeholderFontFamily: MoneroComponents.Style.fontRegular.name
property bool placeholderFontBold: false
property int placeholderFontSize: 18 * scaleRatio
property string placeholderColor: MoneroComponents.Style.defaultFontColor
property real placeholderOpacity: 0.35
property bool borderDisabled: false
property string borderColor: {
if(input.error && input.text !== ""){
return MoneroComponents.Style.inputBorderColorInvalid;
} else if(input.activeFocus){
return MoneroComponents.Style.inputBorderColorActive;
} else {
return MoneroComponents.Style.inputBorderColorInActive;
}
}
property bool error: false
property string labelFontColor: MoneroComponents.Style.defaultFontColor
property bool labelFontBold: false
property int labelFontSize: 16 * scaleRatio
property bool labelButtonVisible: false
property string fontColor: "white"
property bool fontBold: false
property int fontSize: 16 * scaleRatio
property bool mouseSelection: true
property alias readOnly: input.readOnly
property bool copyButton: false
property bool showingHeader: true
property var wrapMode: Text.NoWrap
property alias addressValidation: input.addressValidation
property string backgroundColor: "" // mock
signal labelButtonClicked();
signal inputLabelLinkActivated();
signal editingFinished();
spacing: 0
Rectangle {
id: inputLabelRect
color: "transparent"
Layout.fillWidth: true
height: (inputLabel.height + 10) * scaleRatio
visible: showingHeader ? true : false
Text {
id: inputLabel
anchors.top: parent.top
anchors.left: parent.left
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: item.labelFontSize
font.bold: labelFontBold
textFormat: Text.RichText
color: item.labelFontColor
onLinkActivated: inputLabelLinkActivated()
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}
MoneroComponents.LabelButton {
id: labelButton
onClicked: labelButtonClicked()
visible: labelButtonVisible
}
MoneroComponents.LabelButton {
id: copyButtonId
visible: copyButton && input.text !== ""
text: qsTr("Copy")
anchors.right: labelButton.visible ? inputLabel.right : parent.right
anchors.rightMargin: labelButton.visible? 4 : 0
onClicked: {
if (input.text.length > 0) {
console.log("Copied to clipboard");
clipboard.setText(input.text);
appWindow.showStatusMessage(qsTr("Copied to clipboard"), 3);
}
}
}
}
MoneroComponents.InputMulti {
id: input
readOnly: false
addressValidation: false
anchors.top: item.showingHeader ? inputLabelRect.bottom : item.top
Layout.fillWidth: true
topPadding: item.showingHeader ? 10 * scaleRatio : 0
bottomPadding: 10 * scaleRatio
wrapMode: item.wrapMode
fontSize: item.fontSize
fontBold: item.fontBold
fontColor: item.fontColor
mouseSelection: item.mouseSelection
onEditingFinished: item.editingFinished()
error: item.error
Text {
id: placeholderLabel
visible: input.text ? false : true
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 10 * scaleRatio
opacity: item.placeholderOpacity
color: item.placeholderColor
font.family: item.placeholderFontFamily
font.bold: item.placeholderFontBold
font.pixelSize: item.placeholderFontSize
text: ""
z: 3
}
Rectangle {
color: "transparent"
border.width: 1
border.color: item.borderColor
radius: 4
anchors.fill: parent
visible: !item.borderDisabled
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -26,7 +26,9 @@
// 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.
import QtQuick 2.0
import QtQuick 2.5
import "../components" as MoneroComponents
Rectangle {
id: button
@@ -38,31 +40,122 @@ Rectangle {
property var under: null
signal clicked()
function doClick() {
// Android workaround
releaseFocus();
clicked();
}
function getOffset() {
var offset = 0
var item = button
while (item.under) {
offset += 20
offset += 20 * scaleRatio
item = item.under
}
return offset
}
color: checked ? "#FFFFFF" : "#1C1C1C"
color: "transparent"
property bool present: !under || under.checked || checked || under.numSelectedChildren > 0
height: present ? ((appWindow.height >= 800) ? 64 : 52) : 0
height: present ? ((appWindow.height >= 800) ? 44 * scaleRatio : 38 * scaleRatio ) : 0
// button gradient while checked
Image {
height: parent.height
width: 260
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: -20
anchors.leftMargin: parent.getOffset()
source: "../images/menuButtonGradient.png"
visible: button.checked
}
// button decorations that are subject to leftMargin offsets
Rectangle {
anchors.left: parent.left
anchors.leftMargin: parent.getOffset() + 20 * scaleRatio
height: parent.height
width: button.checked ? 20: 10
color: "#00000000"
// dot if unchecked
Rectangle {
id: dot
anchors.centerIn: parent
width: button.checked ? 20 * scaleRatio : 8 * scaleRatio
height: button.checked ? 20 * scaleRatio : 8 * scaleRatio
radius: button.checked ? 20 * scaleRatio : 4 * scaleRatio
color: button.dotColor
// arrow if checked
Image {
anchors.centerIn: parent
anchors.left: parent.left
source: "../images/arrow-right-medium-white.png"
visible: button.checked
}
}
// button text
Text {
id: label
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.right
anchors.leftMargin: 8 * scaleRatio
font.family: MoneroComponents.Style.fontMedium.name
font.bold: true
font.pixelSize: 16 * scaleRatio
color: "#FFFFFF"
}
}
// menu button right arrow
Image {
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 20 * scaleRatio
anchors.leftMargin: parent.getOffset()
source: "../images/right.png"
opacity: button.checked ? 1.0 : 0.4
}
Text {
id: symbolText
anchors.right: parent.right
anchors.rightMargin: 44 * scaleRatio
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 12 * scaleRatio
font.bold: true
color: button.checked || buttonArea.containsMouse ? "#FFFFFF" : dot.color
visible: appWindow.ctrlPressed
}
MouseArea {
id: buttonArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
if(parent.checked)
return
button.doClick()
parent.checked = true
}
}
transform: Scale {
yScale: button.present ? 1 : 0
Behavior on yScale {
NumberAnimation { duration: 500; easing.type: Easing.InOutCubic }
NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
}
}
Behavior on height {
SequentialAnimation {
NumberAnimation { duration: 500; easing.type: Easing.InOutCubic }
NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
}
}
@@ -70,77 +163,4 @@ Rectangle {
// we get the value of checked before the change
ScriptAction { script: if (under) under.numSelectedChildren += checked > 0 ? -1 : 1 }
}
Item {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.leftMargin: parent.getOffset()
width: 50
Rectangle {
id: dot
anchors.centerIn: parent
width: 16
height: width
radius: height / 2
Rectangle {
anchors.centerIn: parent
width: 12
height: width
radius: height / 2
color: "#1C1C1C"
visible: !button.checked && !buttonArea.containsMouse
}
}
Text {
id: symbolText
anchors.centerIn: parent
font.pixelSize: 11
font.bold: true
color: button.checked || buttonArea.containsMouse ? "#FFFFFF" : dot.color
visible: appWindow.ctrlPressed
}
}
Rectangle {
anchors.left: parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 1
color: "#DBDBDB"
visible: parent.checked
}
Image {
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 20
anchors.leftMargin: parent.getOffset()
source: "../images/menuIndicator.png"
}
Text {
id: label
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: parent.getOffset() + 50
font.family: "Arial"
font.pixelSize: 18
color: parent.checked ? "#000000" : "#FFFFFF"
}
MouseArea {
id: buttonArea
anchors.fill: parent
hoverEnabled: true
onClicked: {
if(parent.checked)
return
button.clicked()
parent.checked = true
}
}
}

View File

@@ -1,8 +1,9 @@
import QtQuick 2.2
import QtGraphicalEffects 1.0
import QtQuick.Layouts 1.1
import moneroComponents.Wallet 1.0
import moneroComponents.Wallet 1.0
import "../components" as MoneroComponents
// BasicPanel header
Rectangle {
@@ -10,17 +11,16 @@ Rectangle {
anchors.leftMargin: 1
anchors.rightMargin: 1
Layout.fillWidth: true
Layout.preferredHeight: 64
Layout.preferredHeight: 64 * scaleRatio
color: "#FFFFFF"
// visible: basicMode
Image {
id: logo
visible: appWindow.width > 460
visible: appWindow.width > 460 * scaleRatio
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: -5
anchors.left: parent.left
anchors.leftMargin: appWindow.persistentSettings.customDecorations ? 20 : 40
anchors.leftMargin: 50 * scaleRatio
source: "../images/moneroLogo2.png"
}
@@ -28,9 +28,8 @@ Rectangle {
id: icon
visible: !logo.visible
anchors.verticalCenter: parent.verticalCenter
// anchors.verticalCenterOffset: -5
anchors.left: parent.left
anchors.leftMargin: appWindow.persistentSettings.customDecorations ? 20 : 40
anchors.leftMargin: 40 * scaleRatio
source: "../images/moneroIcon.png"
}
@@ -38,16 +37,16 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter
anchors.top: parent.top
anchors.right: parent.right
anchors.topMargin: 10
width: 256
anchors.topMargin: 10 * scaleRatio
width: 256 * scaleRatio
columns: 3
Text {
id: balanceLabel
width: 116
height: 20
width: 116 * scaleRatio
height: 20 * scaleRatio
font.family: "Arial"
font.pixelSize: 12
font.pixelSize: 12 * scaleRatio
font.letterSpacing: -1
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
@@ -58,10 +57,10 @@ Rectangle {
Text {
id: balanceText
width: 110
height: 20
width: 110 * scaleRatio
height: 20 * scaleRatio
font.family: "Arial"
font.pixelSize: 18
font.pixelSize: 18 * scaleRatio
font.letterSpacing: -1
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
@@ -71,8 +70,8 @@ Rectangle {
}
Item {
height: 20
width: 20
height: 20 * scaleRatio
width: 20 * scaleRatio
Image {
anchors.verticalCenter: parent.verticalCenter
@@ -82,10 +81,10 @@ Rectangle {
}
Text {
width: 116
height: 20
width: 116 * scaleRatio
height: 20 * scaleRatio
font.family: "Arial"
font.pixelSize: 12
font.pixelSize: 12 * scaleRatio
font.letterSpacing: -1
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
@@ -96,10 +95,10 @@ Rectangle {
Text {
id: availableBalanceText
width: 110
height: 20
width: 110 * scaleRatio
height: 20 * scaleRatio
font.family: "Arial"
font.pixelSize: 14
font.pixelSize: 14 * scaleRatio
font.letterSpacing: -1
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -27,30 +27,22 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick 2.0
import QtQuick.Layouts 1.1
import moneroComponents.Wallet 1.0
import "../components" as MoneroComponents
Row {
Rectangle {
id: item
color: "transparent"
property var connected: Wallet.ConnectionStatus_Disconnected
function getConnectionStatusImage(status) {
if (status == Wallet.ConnectionStatus_Connected)
return "../images/statusConnected.png"
else
return "../images/statusDisconnected.png"
}
function getConnectionStatusColor(status) {
if (status == Wallet.ConnectionStatus_Connected)
return "#FF6C3B"
else
return "#AAAAAA"
}
function getConnectionStatusString(status) {
if (status == Wallet.ConnectionStatus_Connected) {
if(!appWindow.daemonSynced)
return qsTr("Synchronizing")
if(appWindow.remoteNodeConnected)
return qsTr("Remote node")
return qsTr("Connected")
}
if (status == Wallet.ConnectionStatus_WrongVersion)
@@ -60,37 +52,68 @@ Row {
return qsTr("Invalid connection status")
}
Item {
id: iconItem
anchors.bottom: parent.bottom
width: 50
height: 50
RowLayout {
Layout.preferredHeight: 40 * scaleRatio
Image {
anchors.centerIn: parent
source: getConnectionStatusImage(item.connected)
Item {
id: iconItem
anchors.top: parent.top
width: 40 * scaleRatio
height: 40 * scaleRatio
opacity: {
if(item.connected == Wallet.ConnectionStatus_Connected){
return 1
} else {
return 0.5
}
}
Image {
anchors.top: parent.top
anchors.topMargin: 6
anchors.right: parent.right
anchors.rightMargin: 11
source: {
if(item.connected == Wallet.ConnectionStatus_Connected){
return "../images/lightning.png"
} else {
return "../images/lightning-white.png"
}
}
}
}
Item {
anchors.top: parent.top
anchors.left: iconItem.right
height: 40 * scaleRatio
width: 260 * scaleRatio
Text {
id: statusText
anchors.left: parent.left
anchors.top: parent.top
anchors.topMargin: 0
font.family: MoneroComponents.Style.fontMedium.name
font.bold: true
font.pixelSize: 13 * scaleRatio
color: "white"
opacity: 0.5
text: qsTr("Network status") + translationManager.emptyString
}
Text {
id: statusTextVal
anchors.left: parent.left
anchors.top: parent.top
anchors.topMargin: 14
font.family: MoneroComponents.Style.fontMedium.name
font.pixelSize: 20 * scaleRatio
color: "white"
text: getConnectionStatusString(item.connected) + translationManager.emptyString
}
}
}
Column {
anchors.bottom: parent.bottom
height: 53
spacing: 3
Text {
anchors.left: parent.left
font.family: "Arial"
font.pixelSize: 12
color: "#545454"
text: qsTr("Network status") + translationManager.emptyString
}
Text {
anchors.left: parent.left
font.family: "Arial"
font.pixelSize: 18
color: getConnectionStatusColor(item.connected)
text: getConnectionStatusString(item.connected) + translationManager.emptyString
}
}
}

View File

@@ -0,0 +1,248 @@
// Copyright (c) 2017, 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.
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
import QtQuick.Window 2.0
import "../components" as MoneroComponents
Item {
id: root
visible: false
z: parent.z + 2
property alias password: passwordInput1.text
// same signals as Dialog has
signal accepted()
signal rejected()
signal closeCallback()
function open() {
inactiveOverlay.visible = true
leftPanel.enabled = false
middlePanel.enabled = false
titleBar.enabled = false
show();
root.visible = true;
passwordInput1.text = "";
passwordInput2.text = "";
passwordInput1.focus = true
}
function close() {
inactiveOverlay.visible = false
leftPanel.enabled = true
middlePanel.enabled = true
titleBar.enabled = true
root.visible = false;
closeCallback();
}
// TODO: implement without hardcoding sizes
width: 480
height: 360
// Make window draggable
MouseArea {
anchors.fill: parent
property point lastMousePos: Qt.point(0, 0)
onPressed: { lastMousePos = Qt.point(mouseX, mouseY); }
onMouseXChanged: root.x += (mouseX - lastMousePos.x)
onMouseYChanged: root.y += (mouseY - lastMousePos.y)
}
ColumnLayout {
z: inactiveOverlay.z + 1
id: mainLayout
spacing: 10
anchors { fill: parent; margins: 35 * scaleRatio }
ColumnLayout {
id: column
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Layout.maximumWidth: 400 * scaleRatio
Label {
text: qsTr("Please enter new password")
anchors.left: parent.left
Layout.fillWidth: true
font.pixelSize: 16 * scaleRatio
font.family: MoneroComponents.Style.fontLight.name
color: MoneroComponents.Style.defaultFontColor
}
TextField {
id : passwordInput1
Layout.topMargin: 6
Layout.fillWidth: true
anchors.left: parent.left
horizontalAlignment: TextInput.AlignLeft
verticalAlignment: TextInput.AlignVCenter
font.family: MoneroComponents.Style.fontLight.name
font.pixelSize: 24 * scaleRatio
echoMode: TextInput.Password
bottomPadding: 10
leftPadding: 10
topPadding: 10
color: MoneroComponents.Style.defaultFontColor
KeyNavigation.tab: passwordInput2
background: Rectangle {
radius: 2
border.color: Qt.rgba(255, 255, 255, 0.35)
border.width: 1
color: "black"
Image {
width: 12
height: 16
source: "../images/lockIcon.png"
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 20
}
}
Keys.onEscapePressed: {
root.close()
root.rejected()
}
}
// padding
Rectangle {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
height: 10
opacity: 0
color: "black"
}
Label {
text: qsTr("Please confirm new password")
anchors.left: parent.left
Layout.fillWidth: true
font.pixelSize: 16 * scaleRatio
font.family: MoneroComponents.Style.fontLight.name
color: MoneroComponents.Style.defaultFontColor
}
TextField {
id : passwordInput2
Layout.topMargin: 6
Layout.fillWidth: true
anchors.left: parent.left
horizontalAlignment: TextInput.AlignLeft
verticalAlignment: TextInput.AlignVCenter
font.family: MoneroComponents.Style.fontLight.name
font.pixelSize: 24 * scaleRatio
echoMode: TextInput.Password
KeyNavigation.tab: okButton
bottomPadding: 10
leftPadding: 10
topPadding: 10
color: MoneroComponents.Style.defaultFontColor
background: Rectangle {
radius: 2
border.color: Qt.rgba(255, 255, 255, 0.35)
border.width: 1
color: "black"
Image {
width: 12
height: 16
source: "../images/lockIcon.png"
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 20
}
}
Keys.onReturnPressed: {
if (passwordInput1.text === passwordInput2.text) {
root.close()
root.accepted()
}
}
Keys.onEscapePressed: {
root.close()
root.rejected()
}
}
// padding
Rectangle {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
height: 10
opacity: 0
color: "black"
}
// Ok/Cancel buttons
RowLayout {
id: buttons
spacing: 16 * scaleRatio
Layout.topMargin: 16
Layout.alignment: Qt.AlignRight
MoneroComponents.StandardButton {
id: cancelButton
text: qsTr("Cancel") + translationManager.emptyString
KeyNavigation.tab: passwordInput1
onClicked: {
root.close()
root.rejected()
}
}
MoneroComponents.StandardButton {
id: okButton
text: qsTr("Continue")
KeyNavigation.tab: cancelButton
enabled: passwordInput1.text === passwordInput2.text
onClicked: {
root.close()
root.accepted()
}
}
}
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017, The Monero Project
// Copyright (c) 2017-2018, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -26,8 +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.
import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
@@ -35,79 +35,99 @@ import QtQuick.Window 2.0
import "../components" as MoneroComponents
Window {
Item {
id: root
modality: Qt.ApplicationModal
flags: Qt.Window | Qt.FramelessWindowHint
visible: false
z: parent.z + 2
property alias password: passwordInput.text
property string walletName
// same signals as Dialog has
signal accepted()
signal rejected()
signal closeCallback()
function open(walletName) {
inactiveOverlay.visible = true // draw appwindow inactive
root.walletName = walletName ? walletName : ""
leftPanel.enabled = false
middlePanel.enabled = false
titleBar.enabled = false
show()
root.visible = true;
passwordInput.forceActiveFocus();
passwordInput.text = ""
}
// TODO: implement without hardcoding sizes
width: 480
height: walletName ? 240 : 200
// Make window draggable
MouseArea {
anchors.fill: parent
property point lastMousePos: Qt.point(0, 0)
onPressed: { lastMousePos = Qt.point(mouseX, mouseY); }
onMouseXChanged: root.x += (mouseX - lastMousePos.x)
onMouseYChanged: root.y += (mouseY - lastMousePos.y)
function close() {
inactiveOverlay.visible = false
leftPanel.enabled = true
middlePanel.enabled = true
titleBar.enabled = true
root.visible = false;
closeCallback();
}
ColumnLayout {
z: inactiveOverlay.z + 1
id: mainLayout
spacing: 10
anchors { fill: parent; margins: 35 }
anchors { fill: parent; margins: 35 * scaleRatio }
ColumnLayout {
id: column
//anchors {fill: parent; margins: 16 }
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Layout.maximumWidth: 400 * scaleRatio
Label {
text: root.walletName.length > 0 ? qsTr("Please enter wallet password for:<br>") + root.walletName : qsTr("Please enter wallet password")
Layout.alignment: Qt.AlignHCenter
Layout.columnSpan: 2
text: root.walletName.length > 0 ? qsTr("Please enter wallet password for: ") + root.walletName : qsTr("Please enter wallet password")
anchors.left: parent.left
Layout.fillWidth: true
horizontalAlignment: Text.AlignHCenter
font.pixelSize: 24
font.family: "Arial"
color: "#555555"
font.pixelSize: 16 * scaleRatio
font.family: MoneroComponents.Style.fontLight.name
color: MoneroComponents.Style.defaultFontColor
}
TextField {
id : passwordInput
focus: true
Layout.topMargin: 6
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
horizontalAlignment: TextInput.AlignHCenter
anchors.left: parent.left
horizontalAlignment: TextInput.AlignLeft
verticalAlignment: TextInput.AlignVCenter
font.family: "Arial"
font.pixelSize: 32
font.family: MoneroComponents.Style.fontLight.name
font.pixelSize: 24 * scaleRatio
echoMode: TextInput.Password
KeyNavigation.tab: okButton
bottomPadding: 10
leftPadding: 10
topPadding: 10
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectedTextColor: MoneroComponents.Style.defaultFontColor
style: TextFieldStyle {
renderType: Text.NativeRendering
textColor: "#35B05A"
passwordCharacter: "•"
// no background
background: Rectangle {
radius: 0
border.width: 0
background: Rectangle {
radius: 2
border.color: Qt.rgba(255, 255, 255, 0.35)
border.width: 1
color: "black"
Image {
width: 12
height: 16
source: "../images/lockIcon.png"
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 20
}
}
Keys.enabled: root.visible
Keys.onReturnPressed: {
root.close()
root.accepted()
@@ -118,66 +138,38 @@ Window {
root.rejected()
}
}
// underline
Rectangle {
height: 1
color: "#DBDBDB"
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
anchors.bottomMargin: 3
}
// padding
Rectangle {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
height: 10
opacity: 0
color: "black"
}
}
// Ok/Cancel buttons
RowLayout {
id: buttons
spacing: 60
Layout.alignment: Qt.AlignHCenter
MoneroComponents.StandardButton {
id: cancelButton
width: 120
fontSize: 14
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
text: qsTr("Cancel") + translationManager.emptyString
KeyNavigation.tab: passwordInput
onClicked: {
root.close()
root.rejected()
}
}
MoneroComponents.StandardButton {
id: okButton
width: 120
fontSize: 14
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
text: qsTr("Ok")
KeyNavigation.tab: cancelButton
onClicked: {
root.close()
root.accepted()
// Ok/Cancel buttons
RowLayout {
id: buttons
spacing: 16 * scaleRatio
Layout.topMargin: 16
Layout.alignment: Qt.AlignRight
MoneroComponents.StandardButton {
id: cancelButton
small: true
text: qsTr("Cancel") + translationManager.emptyString
KeyNavigation.tab: passwordInput
onClicked: {
root.close()
root.rejected()
}
}
MoneroComponents.StandardButton {
id: okButton
small: true
text: qsTr("Continue")
KeyNavigation.tab: cancelButton
onClicked: {
root.close()
root.accepted()
}
}
}
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -26,6 +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.
// @TODO: Remove component after wizard redesign
import QtQuick 2.0
Item {
@@ -62,11 +64,7 @@ Item {
//radius: 2
width: row.x
color: {
if(item.fillLevel < 3) return "#FF6C3C"
if(item.fillLevel < 13) return "#AAFFBB"
return "#36B25C"
}
color: "#FF6C3C"
Timer {
interval: 500

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -26,6 +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.
// @TODO: Remove component after wizard redesign
import QtQuick 2.0
Item {
@@ -71,11 +73,7 @@ Item {
//radius: 2
width: row.x
color: {
if(item.fillLevel < 5) return "#FF6C3C"
if(item.fillLevel < 13) return "#AAFFBB"
return "#36B25C"
}
color: "#FF6C3C"
Timer {
interval: 500

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -31,17 +31,26 @@ import QtQuick.Window 2.1
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.1
Window {
Rectangle {
id: root
modality: Qt.ApplicationModal
flags: Qt.Window
color: "white"
visible: false
z:11
property alias messageText: messageTitle.text
property alias heightProgressText : heightProgress.text
width: 200
height: 100
width: 200 * scaleRatio
height: 100 * scaleRatio
opacity: 0.7
function show() {
root.visible = true;
}
function close() {
root.visible = false;
}
ColumnLayout {
id: rootLayout
@@ -49,8 +58,8 @@ Window {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: 30
anchors.rightMargin: 30
anchors.leftMargin: 30 * scaleRatio
anchors.rightMargin: 30 * scaleRatio
BusyIndicator {
running: parent.visible
@@ -61,7 +70,7 @@ Window {
id: messageTitle
text: "Please wait..."
font {
pixelSize: 22
pixelSize: 22 * scaleRatio
}
horizontalAlignment: Text.AlignHCenter
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
@@ -72,7 +81,7 @@ Window {
Text {
id: heightProgress
font {
pixelSize: 18
pixelSize: 18 * scaleRatio
}
horizontalAlignment: Text.AlignHCenter
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -29,78 +29,94 @@
import QtQuick 2.0
import moneroComponents.Wallet 1.0
Item {
import "../components" as MoneroComponents
Rectangle {
id: item
property int fillLevel: 0
height: 22
anchors.margins:15
property string syncType // Wallet or Daemon
property string syncText: qsTr("%1 blocks remaining: ").arg(syncType)
visible: false
//clip: true
function updateProgress(currentBlock,targetBlock, blocksToSync){
if(targetBlock == 1) {
fillLevel = 0
progressText.text = qsTr("Establishing connection...");
progressBar.visible = true
return
}
color: "transparent"
function updateProgress(currentBlock,targetBlock, blocksToSync, statusTxt){
if(targetBlock > 0) {
var remaining = targetBlock - currentBlock
// wallet sync
if(blocksToSync > 0)
var progressLevel = (100*(blocksToSync - remaining)/blocksToSync).toFixed(0);
// Daemon sync
else
var progressLevel = (100*(currentBlock/targetBlock)).toFixed(0);
var remaining = (currentBlock < targetBlock) ? targetBlock - currentBlock : 0
var progressLevel = (blocksToSync > 0 && blocksToSync != remaining) ? (100*(blocksToSync - remaining)/blocksToSync).toFixed(0) : (100*(currentBlock / targetBlock)).toFixed(0)
fillLevel = progressLevel
progressText.text = qsTr("Blocks remaining: %1").arg(remaining.toFixed(0));
progressBar.visible = currentBlock < targetBlock
if(typeof statusTxt != "undefined" && statusTxt != "") {
progressText.text = statusTxt;
} else {
progressText.text = syncText + remaining.toFixed(0);
}
}
}
Rectangle {
id: bar
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: 22
radius: 2
color: "#FFFFFF"
Item {
anchors.top: item.top
anchors.topMargin: 10 * scaleRatio
anchors.leftMargin: 15 * scaleRatio
anchors.rightMargin: 15 * scaleRatio
anchors.fill: parent
Rectangle {
id: fillRect
Text {
id: progressText
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.margins: 2
height: bar.height
property int maxWidth: parent.width - 4
width: (maxWidth * fillLevel) / 100
color: {
if(item.fillLevel < 99 ) return "#FF6C3C"
//if(item.fillLevel < 99) return "#FFE00A"
return "#36B25C"
}
anchors.topMargin: 6
font.family: MoneroComponents.Style.fontMedium.name
font.pixelSize: 13 * scaleRatio
font.bold: true
color: "white"
text: qsTr("Synchronizing %1").arg(syncType) + translationManager.emptyString
height: 18 * scaleRatio
}
Text {
id: progressTextValue
anchors.top: parent.top
anchors.topMargin: 6
anchors.right: parent.right
font.family: MoneroComponents.Style.fontMedium.name
font.pixelSize: 13 * scaleRatio
font.bold: true
color: "white"
height:18 * scaleRatio
}
Rectangle {
color:"#333"
anchors.bottom: parent.bottom
id: bar
anchors.left: parent.left
anchors.leftMargin: 8
anchors.right: parent.right
anchors.top: progressText.bottom
anchors.topMargin: 4
height: 8 * scaleRatio
radius: 8 * scaleRatio
color: "#333333" // progressbar bg
Text {
id:progressText
Rectangle {
id: fillRect
anchors.top: parent.top
anchors.bottom: parent.bottom
font.family: "Arial"
font.pixelSize: 12
color: "#000"
text: qsTr("Synchronizing blocks")
height:18
anchors.left: parent.left
height: bar.height
property int maxWidth: bar.width * scaleRatio
width: (maxWidth * fillLevel) / 100
radius: 8
// could change color based on progressbar status; if(item.fillLevel < 99 )
color: "#FA6800"
}
Rectangle {
color:"#333"
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.leftMargin: 8 * scaleRatio
}
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2017, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -44,7 +44,7 @@ Rectangle {
color: "black"
state: "Stopped"
signal qrcode_decoded(string address, string payment_id, string amount, string tx_description, string recipient_name)
signal qrcode_decoded(string address, string payment_id, string amount, string tx_description, string recipient_name, var extra_parameters)
states: [
State {
@@ -83,7 +83,7 @@ Rectangle {
id : finder
objectName: "QrFinder"
onDecoded : {
root.qrcode_decoded(address, payment_id, amount, tx_description, recipient_name)
root.qrcode_decoded(address, payment_id, amount, tx_description, recipient_name, extra_parameters)
root.state = "Stopped"
}
onNotifyError : {
@@ -126,7 +126,7 @@ Rectangle {
MessageDialog {
id: messageDialog
title: "Scanning QrCode"
title: qsTr("QrCode Scanned") + translationManager.emptyString
onAccepted: {
root.state = "Stopped"
}

101
components/RadioButton.qml Normal file
View File

@@ -0,0 +1,101 @@
// Copyright (c) 2014-2018, 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.
import QtQuick 2.0
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
RowLayout {
id: radioButton
property alias text: label.text
property bool checked: false
property int fontSize: 14 * scaleRatio
property alias fontColor: label.color
signal clicked()
height: 26 * scaleRatio
// legacy properties
property var checkedColor: "white"
property var borderColor: checked ? Qt.rgba(1, 1, 1, 0.35) : Qt.rgba(1, 1, 1, 0.25)
function toggle(){
radioButton.checked = !radioButton.checked
radioButton.clicked()
}
RowLayout {
Layout.fillWidth: true
Rectangle {
id: button
anchors.left: parent.left
y: 0
color: "transparent"
border.color: borderColor
width: radioButton.height
height: radioButton.height
radius: radioButton.height
Rectangle {
visible: radioButton.checked
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
color: checkedColor
width: 10 * scaleRatio
height: 10 * scaleRatio
radius: 10
opacity: 0.8
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
}
}
}
Text {
id: label
anchors.left: button.right
anchors.leftMargin: !isMobile ? 10 : 8
color: MoneroComponents.Style.defaultFontColor
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: radioButton.fontSize
wrapMode: Text.Wrap
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
}
}
}
}
}

View File

@@ -0,0 +1,102 @@
// Copyright (c) 2014-2018, 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.
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick 2.2
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
GridLayout {
columns: (isMobile) ? 1 : 2
columnSpacing: 32
id: root
property alias daemonAddrText: daemonAddr.text
property alias daemonPortText: daemonPort.text
property alias daemonAddrLabelText: daemonAddr.labelText
property alias daemonPortLabelText: daemonPort.labelText
// TODO: LEGACY; remove these placeHolder variables when
// the wizards get redesigned to the black-theme
property string placeholderFontFamily: MoneroComponents.Style.fontRegular.name
property bool placeholderFontBold: false
property int placeholderFontSize: 18 * scaleRatio
property string placeholderColor: MoneroComponents.Style.defaultFontColor
property real placeholderOpacity: 0.35
property string lineEditBorderColor: Qt.rgba(0, 0, 0, 0.15)
property string lineEditBackgroundColor: "white"
property string lineEditFontColor: "black"
property int lineEditFontSize: 18 * scaleRatio
property int labelFontSize: 16 * scaleRatio
property bool lineEditFontBold: true
signal editingFinished()
function getAddress() {
return daemonAddr.text.trim() + ":" + daemonPort.text.trim()
}
LineEditMulti {
id: daemonAddr
Layout.fillWidth: true
placeholderText: qsTr("Remote Node Hostname / IP") + translationManager.emptyString
placeholderFontFamily: root.placeholderFontFamily
placeholderFontBold: root.placeholderFontBold
placeholderFontSize: root.placeholderFontSize
placeholderColor: root.placeholderColor
placeholderOpacity: root.placeholderOpacity
labelFontSize: root.labelFontSize
borderColor: lineEditBorderColor
backgroundColor: lineEditBackgroundColor
fontColor: lineEditFontColor
fontBold: lineEditFontBold
fontSize: lineEditFontSize
onEditingFinished: root.editingFinished()
}
LineEditMulti {
id: daemonPort
Layout.fillWidth: true
placeholderText: qsTr("Port") + translationManager.emptyString
placeholderFontFamily: root.placeholderFontFamily
placeholderFontBold: root.placeholderFontBold
placeholderFontSize: root.placeholderFontSize
placeholderColor: root.placeholderColor
placeholderOpacity: root.placeholderOpacity
labelFontSize: root.labelFontSize
borderColor: lineEditBorderColor
backgroundColor: lineEditBackgroundColor
fontColor: lineEditFontColor
fontBold: lineEditFontBold
fontSize: lineEditFontSize
onEditingFinished: root.editingFinished()
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -51,7 +51,7 @@ Item {
Rectangle {
id: scroll
width: 15
width: 4
height: {
var t = (flickable.height * flickable.height) / flickable.contentHeight
return t < 20 ? 20 : t
@@ -62,7 +62,7 @@ Item {
visible: flickable.contentHeight > flickable.height
Behavior on opacity {
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
NumberAnimation { duration: 200; easing.type: Easing.InQuad }
}
MouseArea {

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -28,6 +28,8 @@
import QtQuick 2.0
import "../components" as MoneroComponents
Item {
id: item
signal searchClicked(string text, int option)
@@ -213,18 +215,13 @@ Item {
}
}
StandardButton {
MoneroComponents.StandardButton {
id: button
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
anchors.margins: 6
width: 80
shadowReleasedColor: "#C60F00"
shadowPressedColor: "#8C0B00"
pressedColor: "#C60F00"
releasedColor: "#FF4F41"
text: qsTr("SEARCH")
onClicked: item.searchClicked(input.text, droplist.currentOption)
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -29,50 +29,71 @@
import QtQuick 2.0
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
Item {
id: button
height: 37
property string shadowPressedColor
property string shadowReleasedColor
property string pressedColor
property string releasedColor
property string rightIcon: ""
property string rightIconInactive: ""
property string icon: ""
property string textColor: "#FFFFFF"
property int fontSize: 12
property string textColor: button.enabled? MoneroComponents.Style.buttonTextColor: MoneroComponents.Style.buttonTextColorDisabled
property string textAlign: rightIcon !== "" ? "left" : "center"
property bool small: false
property alias text: label.text
property int fontSize: {
if(small) return 14 * scaleRatio;
else return 16 * scaleRatio;
}
signal clicked()
// Dynamic label width
Layout.minimumWidth: (label.contentWidth > 80)? label.contentWidth + 20 : 100
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
y: buttonArea.pressed ? 0 : 1
//radius: 4
color: {
parent.enabled ? (buttonArea.pressed ? parent.shadowPressedColor : parent.shadowReleasedColor)
: Qt.lighter(parent.shadowReleasedColor)
// Dynamic height/width
Layout.minimumWidth: {
var _padding = 22;
if(button.rightIcon !== ""){
_padding += 60;
}
border.color: Qt.darker(parent.releasedColor)
border.width: parent.focus ? 1 : 0
var _width = label.contentWidth + _padding;
if(_width <= 50) {
return 60;
}
return _width;
}
height: small ? 30 * scaleRatio : 36 * scaleRatio
function doClick() {
// Android workaround
releaseFocus();
clicked();
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
y: buttonArea.pressed ? 1 : 0
color: {
parent.enabled ? (buttonArea.pressed ? parent.pressedColor : parent.releasedColor)
: Qt.lighter(parent.releasedColor)
radius: 3
color: parent.enabled ? MoneroComponents.Style.buttonBackgroundColor : MoneroComponents.Style.buttonBackgroundColorDisabled
border.width: parent.focus ? 1 : 0
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
propagateComposedEvents: true
// possibly do some hover effects here
onEntered: {
// if(button.enabled) parent.color = Style.buttonBackgroundColorHover;
// else parent.color = Style.buttonBackgroundColorDisabledHover;
}
onExited: {
// if(button.enabled) parent.color = Style.buttonBackgroundColor;
// else parent.color = Style.buttonBackgroundColorDisabled;
}
}
//radius: 4
}
Text {
@@ -80,13 +101,13 @@ Item {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: parent.right
horizontalAlignment: Text.AlignHCenter
font.family: "Arial"
horizontalAlignment: textAlign === "center" ? Text.AlignHCenter : Text.AlignLeft
anchors.leftMargin: textAlign === "center" ? 0 : 11
font.family: MoneroComponents.Style.fontBold.name
font.bold: true
font.pixelSize: button.fontSize
font.pixelSize: buttonArea.pressed ? button.fontSize - 1 : button.fontSize
color: parent.textColor
visible: parent.icon === ""
// font.capitalization : Font.Capitalize
}
Image {
@@ -95,12 +116,28 @@ Item {
source: parent.icon
}
Image {
visible: parent.rightIcon !== ""
anchors.right: parent.right
anchors.rightMargin: 11 * scaleRatio
anchors.verticalCenter: parent.verticalCenter
width: parent.small ? 16 * scaleRatio : 20 * scaleRatio
height: parent.small ? 16 * scaleRatio : 20 * scaleRatio
source: {
if(parent.rightIconInactive !== "" && !parent.enabled){
return parent.rightIconInactive;
}
return parent.rightIcon;
}
}
MouseArea {
id: buttonArea
anchors.fill: parent
onClicked: parent.clicked()
onClicked: doClick()
cursorShape: Qt.PointingHandCursor
}
Keys.onSpacePressed: clicked()
Keys.onReturnPressed: clicked()
Keys.onSpacePressed: doClick()
Keys.onReturnPressed: doClick()
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -27,7 +27,7 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
@@ -35,10 +35,10 @@ import QtQuick.Window 2.0
import "../components" as MoneroComponents
Window {
Rectangle {
id: root
modality: Qt.ApplicationModal
flags: Qt.Window | Qt.FramelessWindowHint
color: "transparent"
visible: false
property alias title: dialogTitle.text
property alias text: dialogContent.text
property alias content: root.text
@@ -53,6 +53,15 @@ Window {
// same signals as Dialog has
signal accepted()
signal rejected()
signal closeCallback();
Image {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
source: "../images/middlePanelBg.jpg"
}
// Make window draggable
MouseArea {
@@ -64,29 +73,42 @@ Window {
}
function open() {
// Center
if(!isMobile) {
root.x = parent.width/2 - root.width/2
root.y = 100
}
show()
root.z = 11
root.visible = true;
}
function close() {
root.visible = false;
closeCallback();
}
// TODO: implement without hardcoding sizes
width: 480
height: 280
width: isMobile ? screenWidth : 520
height: isMobile ? screenHeight : 380
ColumnLayout {
id: mainLayout
spacing: 10
anchors { fill: parent; margins: 35 }
anchors { fill: parent; margins: 15 }
RowLayout {
id: column
//anchors {fill: parent; margins: 16 }
Layout.topMargin: 14 * scaleRatio
Layout.alignment: Qt.AlignHCenter
Label {
MoneroComponents.Label {
id: dialogTitle
horizontalAlignment: Text.AlignHCenter
font.pixelSize: 32
font.family: "Arial"
color: "#555555"
fontSize: 18 * scaleRatio
fontFamily: "Arial"
color: MoneroComponents.Style.defaultFontColor
}
}
@@ -96,10 +118,28 @@ Window {
id : dialogContent
Layout.fillWidth: true
Layout.fillHeight: true
font.family: "Arial"
renderType: Text.QtRendering
font.family: MoneroComponents.Style.fontLight.name
textFormat: TextEdit.AutoText
readOnly: true
font.pixelSize: 12
font.pixelSize: 14 * scaleRatio
selectByMouse: false
wrapMode: TextEdit.Wrap
color: MoneroComponents.Style.defaultFontColor
MouseArea {
anchors.fill: parent
onClicked: {
appWindow.showStatusMessage(qsTr("Double tap to copy"),3)
}
onDoubleClicked: {
parent.selectAll()
parent.copy()
parent.deselect()
console.log("copied to clipboard");
appWindow.showStatusMessage(qsTr("Content copied to clipboard"),3)
}
}
}
}
@@ -111,12 +151,6 @@ Window {
MoneroComponents.StandardButton {
id: cancelButton
width: 120
fontSize: 14
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
text: qsTr("Cancel") + translationManager.emptyString
onClicked: {
root.close()
@@ -126,13 +160,7 @@ Window {
MoneroComponents.StandardButton {
id: okButton
width: 120
fontSize: 14
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
text: qsTr("Ok")
text: qsTr("OK")
KeyNavigation.tab: cancelButton
onClicked: {
root.close()
@@ -143,7 +171,36 @@ Window {
}
}
// window borders
Rectangle{
width: 1
color: MoneroComponents.Style.grey
anchors.left: parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
}
Rectangle{
width: 1
color: MoneroComponents.Style.grey
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
}
Rectangle{
height: 1
color: MoneroComponents.Style.grey
anchors.left: parent.left
anchors.top: parent.top
anchors.right: parent.right
}
Rectangle{
height: 1
color: MoneroComponents.Style.grey
anchors.left: parent.left
anchors.bottom: parent.bottom
anchors.right: parent.right
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -28,8 +28,11 @@
import QtQuick 2.0
import "../components" as MoneroComponents
Item {
id: dropdown
property int itemTopMargin: 0
property alias dataModel: repeater.model
property string shadowPressedColor
property string shadowReleasedColor
@@ -38,7 +41,17 @@ Item {
property string textColor: "#FFFFFF"
property alias currentIndex: column.currentIndex
property bool expanded: false
height: 37
property int dropdownHeight: 42
property int fontHeaderSize: 16 * scaleRatio
property int fontItemSize: 14 * scaleRatio
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
function hide() { dropdown.expanded = false }
@@ -54,83 +67,36 @@ Item {
return true
}
// Workaroud for suspected memory leak in 5.8 causing malloc crash on app exit
function update() {
firstColText.text = column.currentIndex < repeater.model.rowCount() ? qsTr(repeater.model.get(column.currentIndex).column1) + translationManager.emptyString : ""
}
Item {
id: head
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: 37
anchors.topMargin: parent.itemTopMargin
height: dropdown.dropdownHeight
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
y: dropdown.expanded || droplist.height > 0 ? 0 : 1
color: dropdown.expanded || droplist.height > 0 ? dropdown.shadowPressedColor : dropdown.shadowReleasedColor
//radius: 4
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
y: dropdown.expanded || droplist.height > 0 ? 1 : 0
color: dropdown.expanded || droplist.height > 0 ? dropdown.pressedColor : dropdown.releasedColor
//radius: 4
}
Rectangle {
anchors.left: parent.left
anchors.bottom: parent.bottom
height: 3
width: 3
color: dropdown.pressedColor
visible: dropdown.expanded || droplist.height > 0
}
Rectangle {
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 3
width: 3
color: dropdown.pressedColor
visible: dropdown.expanded || droplist.height > 0
color: dropdown.colorHeaderBackground
border.width: dropdown.headerBorder ? 1 : 0
border.color: dropdown.colorBorder
radius: 4
anchors.fill: parent
}
Text {
id: firstColText
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 12
anchors.leftMargin: 12 * scaleRatio
elide: Text.ElideRight
font.family: "Arial"
font.bold: true
font.pixelSize: 12
color: "#FFFFFF"
text: column.currentIndex < repeater.model.rowCount() ? qsTr(repeater.model.get(column.currentIndex).column1) + translationManager.emptyString : ""
}
Text {
id: secondColText
anchors.verticalCenter: parent.verticalCenter
anchors.right: separator.left
anchors.rightMargin: 12
width: dropdown.expanded ? w : (separator.x - 12) - (firstColText.x + firstColText.width + 5)
font.family: "Arial"
font.pixelSize: 12
color: "#FFFFFF"
text: column.currentIndex < repeater.model.rowCount() ? qsTr(repeater.model.get(column.currentIndex).column2) + translationManager.emptyString : ""
property int w: 0
Component.onCompleted: w = implicitWidth
}
Rectangle {
id: separator
anchors.right: dropIndicator.left
anchors.verticalCenter: parent.verticalCenter
height: 18
width: 1
font.family: MoneroComponents.Style.fontRegular.name
font.bold: dropdown.headerFontBold
font.pixelSize: dropdown.fontHeaderSize
color: "#FFFFFF"
}
@@ -139,12 +105,12 @@ Item {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
width: 32
width: 32 * scaleRatio
Image {
anchors.centerIn: parent
source: "../images/whiteDropIndicator.png"
rotation: dropdown.expanded ? 180 : 0
rotation: dropdown.expanded ? 180 * scaleRatio : 0
}
}
@@ -152,6 +118,8 @@ Item {
id: dropArea
anchors.fill: parent
onClicked: dropdown.expanded = !dropdown.expanded
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
}
}
@@ -168,14 +136,14 @@ Item {
Rectangle {
anchors.left: parent.left
anchors.top: parent.top
width: 3; height: 3
width: 3 * scaleRatio; height: 3 * scaleRatio
color: dropdown.pressedColor
}
Rectangle {
anchors.right: parent.right
anchors.top: parent.top
width: 3; height: 3
width: 3 * scaleRatio; height: 3 * scaleRatio
color: dropdown.pressedColor
}
@@ -205,24 +173,24 @@ Item {
property string stringSent: qsTr("Sent") + translationManager.emptyString
property string stringReceived: qsTr("Received") + translationManager.emptyString
delegate: Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 30
height: (dropdown.dropdownHeight * 0.75) * scaleRatio
//radius: index === repeater.count - 1 ? 4 : 0
color: itemArea.containsMouse || index === column.currentIndex || itemArea.containsMouse ? dropdown.releasedColor : dropdown.pressedColor
Text {
id: col1Text
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: col2Text.left
anchors.leftMargin: 12
anchors.rightMargin: column2.length > 0 ? 12 : 0
font.family: "Arial"
anchors.leftMargin: 12 * scaleRatio
anchors.rightMargin: 0
font.family: MoneroComponents.Style.fontRegular.name
font.bold: true
font.pixelSize: 12
color: "#FFFFFF"
font.pixelSize: fontItemSize
color: itemArea.containsMouse || index === column.currentIndex || itemArea.containsMouse ? "#FA6800" : "#FFFFFF"
text: qsTr(column1) + translationManager.emptyString
}
@@ -230,24 +198,24 @@ Item {
id: col2Text
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 45
font.family: "Arial"
font.pixelSize: 12
anchors.rightMargin: 45 * scaleRatio
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14 * scaleRatio
color: "#FFFFFF"
text: column2
text: ""
}
Rectangle {
anchors.left: parent.left
anchors.top: parent.top
width: 3; height: 3
width: 3 * scaleRatio; height: 3 * scaleRatio
color: parent.color
}
Rectangle {
anchors.right: parent.right
anchors.top: parent.top
width: 3; height: 3
width: 3 * scaleRatio; height: 3 * scaleRatio
color: parent.color
}
@@ -255,9 +223,13 @@ Item {
id: itemArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: {
dropdown.expanded = false
column.currentIndex = index
changed();
dropdown.update()
}
}
}

31
components/Style.qml Normal file
View File

@@ -0,0 +1,31 @@
pragma Singleton
import QtQuick 2.5
QtObject {
property QtObject fontMedium: FontLoader { id: _fontMedium; source: "qrc:/fonts/Roboto-Medium.ttf"; }
property QtObject fontBold: FontLoader { id: _fontBold; source: "qrc:/fonts/Roboto-Bold.ttf"; }
property QtObject fontLight: FontLoader { id: _fontLight; source: "qrc:/fonts/Roboto-Light.ttf"; }
property QtObject fontRegular: FontLoader { id: _fontRegular; source: "qrc:/fonts/Roboto-Regular.ttf"; }
property string grey: "#404040"
property string defaultFontColor: "white"
property string dimmedFontColor: "#BBBBBB"
property string inputBoxBackground: "black"
property string inputBoxBackgroundError: "#FFDDDD"
property string inputBoxColor: "white"
property string legacy_placeholderFontColor: "#BABABA"
property string inputBorderColorActive: Qt.rgba(255, 255, 255, 0.38)
property string inputBorderColorInActive: Qt.rgba(255, 255, 255, 0.32)
property string inputBorderColorInvalid: Qt.rgba(255, 0, 0, 0.40)
property string buttonBackgroundColor: "#FA6800"
property string buttonBackgroundColorHover: "#E65E00"
property string buttonBackgroundColorDisabled: "#707070"
property string buttonBackgroundColorDisabledHover: "#808080"
property string buttonTextColor: "white"
property string buttonTextColorDisabled: "black"
property string dividerColor: "white"
property real dividerOpacity: 0.20
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -36,26 +36,40 @@ Rectangle {
property int offset: 0
height: 31
color: "#FFFFFF"
color: "transparent"
Rectangle{
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 1
color: "#808080"
}
Rectangle{
anchors.left: parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 1
color: "#808080"
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "#DBDBDB"
color: "#808080"
}
Row {
id: row
anchors.horizontalCenter: header.offset !== 0 ? undefined: parent.horizontalCenter
anchors.left: header.offset !== 0 ? parent.left : undefined
anchors.leftMargin: header.offset
anchors.horizontalCenter: parent.horizontalCenter
Rectangle {
height: 31
width: 1
color: "#DBDBDB"
color: "#808080"
}
Repeater {
@@ -70,6 +84,7 @@ Rectangle {
delegate: Rectangle {
id: delegate
property bool desc: false
color: "transparent"
height: 31
width: columnWidth
@@ -86,7 +101,7 @@ Rectangle {
color: {
if(delegateArea.pressed)
return "#FF4304"
return index === header.activeSortColumn || delegateArea.containsMouse ? "#FF6C3C" : "#4A4949"
return index === header.activeSortColumn || delegateArea.containsMouse ? "white" : "#808080"
}
text: qsTr(columnName) + translationManager.emptyString
}
@@ -95,6 +110,7 @@ Rectangle {
id: delegateArea
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
delegate.desc = !delegate.desc
header.activeSortColumn = index
@@ -170,7 +186,7 @@ Rectangle {
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: index === header.activeSortColumn ? "#FFFFFF" : "#DBDBDB"
color: "transparent"
}
Rectangle {
@@ -178,7 +194,7 @@ Rectangle {
anchors.bottom: parent.bottom
anchors.right: parent.right
width: 1
color: "#DBDBDB"
color: "#808080"
}
}
}

View File

@@ -1,7 +1,17 @@
import QtQuick 2.0
import "../components" as MoneroComponents
TextEdit {
color: MoneroComponents.Style.defaultFontColor
font.family: MoneroComponents.Style.fontRegular.name
selectionColor: MoneroComponents.Style.dimmedFontColor
wrapMode: Text.Wrap
readOnly: true
selectByMouse: true
// Workaround for https://bugreports.qt.io/browse/QTBUG-50587
onFocusChanged: {
if(focus === false)
deselect()
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -28,6 +28,8 @@
import QtQuick 2.0
import "../components" as MoneroComponents
Item {
id: delegateItem
width: 1
@@ -49,10 +51,10 @@ Item {
anchors.bottomMargin: 2
font.family: "Arial"
font.bold: true
font.pixelSize: 12
color: "#4A4949"
font.pixelSize: 12 * scaleRatio
color: MoneroComponents.Style.defaultFontColor
text: {
if(currentIndex === 0) return qsTr("Normal") + translationManager.emptyString
if(currentIndex === 0) return qsTr("Default") + translationManager.emptyString
if(currentIndex === 13) return qsTr("High") + translationManager.emptyString
return ""
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -26,55 +26,111 @@
// 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.
import QtQuick 2.2
import QtQuick 2.5
import QtQuick.Window 2.0
import QtQuick.Layouts 1.1
Rectangle {
id: titleBar
color: "#000000"
height: {
if(!customDecorations || isMobile){
return 0;
}
if(small) return 38 * scaleRatio;
else return 50 * scaleRatio;
}
y: -height
z: 1
property string title
property int mouseX: 0
property bool containsMouse: false
property alias basicButtonVisible: goToBasicVersionButton.visible
property bool customDecorations: true
signal goToBasicVersion(bool yes)
height: customDecorations ? 30 : 0
y: -height
property string title
property alias maximizeButtonVisible: maximizeButton.visible
z: 1
property bool customDecorations: persistentSettings.customDecorations
property bool showWhatIsButton: true
property bool showMinimizeButton: false
property bool showMaximizeButton: false
property bool showCloseButton: true
property bool showMoneroLogo: false
property bool small: false
Text {
anchors.centerIn: parent
font.family: "Arial"
font.pixelSize: 15
color: "#FFFFFF"
text: titleBar.title
visible: customDecorations
signal closeClicked
signal maximizeClicked
signal minimizeClicked
signal goToBasicVersion(bool yes)
Item {
// Background gradient
width: parent.width
height: parent.height
z: parent.z + 1
Image {
anchors.fill: parent
height: titleBar.height
width: titleBar.width
source: "../images/titlebarGradient.jpg"
}
}
Item {
id: titlebarlogo
width: 125
height: parent.height
anchors.centerIn: parent
visible: customDecorations && showMoneroLogo
z: parent.z + 1
Image {
anchors.left: parent.left
anchors.top: parent.top
anchors.topMargin: 11
width: 125
height: 28
source: "../images/titlebarLogo.png"
}
}
Label {
id: titleLabel
visible: !showMoneroLogo && customDecorations && titleBar.title !== ''
anchors.centerIn: parent
fontSize: 18
text: titleBar.title
z: parent.z + 1
}
// collapse left panel
Rectangle {
id: goToBasicVersionButton
property bool containsMouse: titleBar.mouseX >= x && titleBar.mouseX <= x + width
property bool checked: false
anchors.top: parent.top
anchors.left: parent.left
color: basicMouseArea.containsMouse || !leftPanel.visible ? "#FFE00A" : "#000000"
height: 30
color: "transparent"
height: titleBar.height
width: height
visible: isMobile
z: parent.z + 2
Image {
width: 14
height: 14
anchors.centerIn: parent
rotation: !leftPanel.visible ? 180 : 0
source: parent.customDecorations || !leftPanel.visible ? "../images/goToBasicVersionHovered.png" :
"../images/gotoBasicVersion.png"
source: "../images/expand.png"
}
MouseArea {
id: basicMouseArea
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onEntered: goToBasicVersionButton.color = "#262626";
onExited: goToBasicVersionButton.color = "transparent";
onClicked: {
releaseFocus()
parent.checked = !parent.checked
titleBar.goToBasicVersion(leftPanel.visible)
}
@@ -87,91 +143,102 @@ Rectangle {
anchors.top: parent.top
anchors.bottom: parent.bottom
visible: parent.customDecorations
z: parent.z + 2
Rectangle {
property bool containsMouse: titleBar.mouseX >= x + row.x && titleBar.mouseX <= x + row.x + width && titleBar.containsMouse
id: minimizeButton
visible: showMinimizeButton
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
color: containsMouse ? "#6B0072" : "#000000"
width: 42
color: "transparent"
Image {
anchors.centerIn: parent
source: "../images/helpIcon.png"
}
MouseArea {
id: whatIsArea
anchors.fill: parent
onClicked: {
}
}
}
Rectangle {
property bool containsMouse: titleBar.mouseX >= x + row.x && titleBar.mouseX <= x + row.x + width && titleBar.containsMouse
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
color: containsMouse ? "#3665B3" : "#000000"
Image {
anchors.centerIn: parent
source: "../images/minimizeIcon.png"
source: "../images/minimize.png"
}
MouseArea {
id: minimizeArea
anchors.fill: parent
onClicked: {
appWindow.visibility = Window.Minimized
}
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: minimizeButton.color = "#262626";
onExited: minimizeButton.color = "transparent";
onClicked: minimizeClicked();
}
}
Rectangle {
id: maximizeButton
property bool containsMouse: titleBar.mouseX >= x + row.x && titleBar.mouseX <= x + row.x + width && titleBar.containsMouse
visible: showMaximizeButton
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
color: containsMouse ? "#FF6C3C" : "#000000"
width: 42
color: "transparent";
Image {
anchors.centerIn: parent
height: 16
width: 16
source: appWindow.visibility === Window.FullScreen ? "../images/backToWindowIcon.png" :
"../images/maximizeIcon.png"
"../images/fullscreen.png"
}
MouseArea {
id: maximizeArea
anchors.fill: parent
onClicked: {
appWindow.visibility = appWindow.visibility !== Window.FullScreen ? Window.FullScreen :
Window.Windowed
}
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: maximizeButton.color = "#262626";
onExited: maximizeButton.color = "transparent";
onClicked: maximizeClicked();
}
}
Rectangle {
property bool containsMouse: titleBar.mouseX >= x + row.x && titleBar.mouseX <= x + row.x + width && titleBar.containsMouse
id: closeButton
visible: showCloseButton
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
color: containsMouse ? "#E04343" : "#000000"
width: 42
color: containsMouse ? "#E04343" : "#00000000"
Image {
anchors.centerIn: parent
source: "../images/closeIcon.png"
width: 16
height: 16
source: "../images/close.png"
}
MouseArea {
anchors.fill: parent
onClicked: appWindow.close();
onClicked: closeClicked();
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: closeButton.color = "#262626";
onExited: closeButton.color = "transparent";
}
}
}
// window borders
Rectangle {
anchors.bottom: parent.bottom
anchors.right: parent.right
anchors.left: parent.left
height: 1
color: "#2F2F2F"
z: parent.z + 1
}
Rectangle {
anchors.top: parent.top
anchors.right: parent.right
anchors.left: parent.left
visible: titleBar.small
height: 1
color: "#2F2F2F"
z: parent.z + 1
}
}

63
components/WarningBox.qml Normal file
View File

@@ -0,0 +1,63 @@
import QtQuick 2.7
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.0
import "." as MoneroComponents
Rectangle {
id: root
property alias text: content.text
property int fontSize: 15 * scaleRatio
Layout.fillWidth: true
Layout.preferredHeight: warningLayout.height
color: "#09FFFFFF"
radius: 4
border.color: MoneroComponents.Style.inputBorderColorInActive
border.width: 1
signal linkActivated;
RowLayout {
id: warningLayout
spacing: 0
anchors.left: parent.left
anchors.right: parent.right
Image {
Layout.alignment: Qt.AlignVCenter
Layout.preferredHeight: 33
Layout.preferredWidth: 33
Layout.rightMargin: 14
Layout.leftMargin: 14
Layout.topMargin: 12
Layout.bottomMargin: 12
source: "../images/warning.png"
}
TextArea {
id: content
Layout.fillWidth: true
color: MoneroComponents.Style.defaultFontColor
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: root.fontSize
horizontalAlignment: TextInput.AlignLeft
selectByMouse: false
textFormat: Text.RichText
wrapMode: Text.WordWrap
textMargin: 0
leftPadding: 0
topPadding: 6
readOnly: true
onLinkActivated: root.linkActivated();
// @TODO: Legacy. Remove after Qt 5.8.
// https://stackoverflow.com/questions/41990013
MouseArea {
anchors.fill: parent
enabled: false
}
}
}
}

1
components/qmldir Normal file
View File

@@ -0,0 +1 @@
singleton Style 1.0 Style.qml

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -34,13 +34,20 @@ filter::filter(QObject *parent) :
QObject(parent)
{
m_tabPressed = false;
m_backtabPressed = false;
}
bool filter::eventFilter(QObject *obj, QEvent *ev) {
switch(ev->type()) {
case QEvent::KeyPress: {
QKeyEvent *ke = static_cast<QKeyEvent*>(ev);
if(ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab) {
if(ke->key() == Qt::Key_Backtab) {
if(m_backtabPressed)
break;
else m_backtabPressed = true;
}
if(ke->key() == Qt::Key_Tab) {
if(m_tabPressed)
break;
else m_tabPressed = true;
@@ -58,7 +65,7 @@ bool filter::eventFilter(QObject *obj, QEvent *ev) {
sks = ks.toString();
}
#ifndef Q_OS_MAC
if(sks.contains("Alt+Tab") || sks.contains("Alt+Shift+Backtab"))
if(sks.contains("Alt+Tab") || sks.contains("Alt+Backtab"))
break;
#else
sks.replace("Meta", "Ctrl");
@@ -67,10 +74,20 @@ bool filter::eventFilter(QObject *obj, QEvent *ev) {
} break;
case QEvent::KeyRelease: {
QKeyEvent *ke = static_cast<QKeyEvent*>(ev);
if(ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab)
if(ke->key() == Qt::Key_Backtab)
m_backtabPressed = false;
if(ke->key() == Qt::Key_Tab)
m_tabPressed = false;
QString sks;
#ifdef Q_OS_ANDROID
if(ke->key() == Qt::Key_Back) {
qDebug() << "Android back hit";
sks = "android_back";
}
#endif
if(ke->key() == Qt::Key_Control) {
sks = "Ctrl";
#ifdef Q_OS_MAC
@@ -82,7 +99,7 @@ bool filter::eventFilter(QObject *obj, QEvent *ev) {
sks = ks.toString();
}
#ifndef Q_OS_MAC
if(sks.contains("Alt+Tab") || sks.contains("Alt+Shift+Backtab"))
if(sks.contains("Alt+Tab") || sks.contains("Alt+Backtab"))
break;
#else
sks.replace("Meta", "Ctrl");

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2018, The Monero Project
//
// All rights reserved.
//
@@ -36,7 +36,7 @@ class filter : public QObject
Q_OBJECT
private:
bool m_tabPressed;
bool m_backtabPressed;
public:
explicit filter(QObject *parent = 0);

202
fonts/LICENSE.txt Normal file
View File

@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

BIN
fonts/Roboto-Bold.ttf Normal file

Binary file not shown.

BIN
fonts/Roboto-Light.ttf Normal file

Binary file not shown.

BIN
fonts/Roboto-Medium.ttf Normal file

Binary file not shown.

BIN
fonts/Roboto-Regular.ttf Normal file

Binary file not shown.

View File

@@ -17,13 +17,16 @@ if [ ! -d $MONERO_DIR/src ]; then
fi
git submodule update --remote
git -C $MONERO_DIR fetch
git -C $MONERO_DIR checkout release-v0.11.0.0
git -C $MONERO_DIR checkout release-v0.13
# get monero core tag
get_tag
# create local monero branch
git -C $MONERO_DIR checkout -B $VERSIONTAG
git -C $MONERO_DIR submodule init
git -C $MONERO_DIR submodule update
# Merge monero PR dependencies
# Workaround for git username requirements
@@ -72,8 +75,7 @@ else
fi
if [ "$BUILD_LIBWALLET" != true ]; then
# exit this script
return
exit 0
fi
echo "GUI_MONERO_VERSION=\"$VERSIONTAG\"" > $MONERO_DIR/version.sh
@@ -108,6 +110,7 @@ elif [ "$BUILD_TYPE" == "debug-android" ]; then
elif [ "$BUILD_TYPE" == "debug" ]; then
echo "Building libwallet debug"
CMAKE_BUILD_TYPE=Debug
STATIC=true
else
echo "Valid build types are release, release-static, release-android, debug-android and debug"
exit 1;
@@ -115,14 +118,14 @@ fi
echo "cleaning up existing monero build dir, libs and includes"
#rm -fr $MONERO_DIR/build
rm -fr $MONERO_DIR/build
rm -fr $MONERO_DIR/lib
rm -fr $MONERO_DIR/include
rm -fr $MONERO_DIR/bin
mkdir -p $MONERO_DIR/build/release
pushd $MONERO_DIR/build/release
mkdir -p $MONERO_DIR/build/$BUILD_TYPE
pushd $MONERO_DIR/build/$BUILD_TYPE
# reusing function from "utils.sh"
platform=$(get_platform)
@@ -208,7 +211,7 @@ if test -z "$CPU_CORE_COUNT"; then
fi
# Build libwallet_merged
pushd $MONERO_DIR/build/release/src/wallet
pushd $MONERO_DIR/build/$BUILD_TYPE/src/wallet
eval $make_exec version -C ../..
eval $make_exec -j$CPU_CORE_COUNT
eval $make_exec install -j$CPU_CORE_COUNT
@@ -217,21 +220,24 @@ popd
# Build monerod
# win32 need to build daemon manually with msys2 toolchain
if [ "$platform" != "mingw32" ] && [ "$ANDROID" != true ]; then
pushd $MONERO_DIR/build/release/src/daemon
pushd $MONERO_DIR/build/$BUILD_TYPE/src/daemon
eval make -j$CPU_CORE_COUNT
eval make install -j$CPU_CORE_COUNT
popd
fi
# build install epee
eval make -C $MONERO_DIR/build/release/contrib/epee all install
eval make -C $MONERO_DIR/build/$BUILD_TYPE/contrib/epee all install
# install easylogging
eval make -C $MONERO_DIR/build/release/external/easylogging++ all install
eval make -C $MONERO_DIR/build/$BUILD_TYPE/external/easylogging++ all install
# Install libunwind
# install lmdb
eval make -C $MONERO_DIR/build/$BUILD_TYPE/external/db_drivers/liblmdb all install
# Install libunbound
echo "Installing libunbound..."
pushd $MONERO_DIR/build/release/external/unbound
pushd $MONERO_DIR/build/$BUILD_TYPE/external/unbound
# no need to make, it was already built as dependency for libwallet
# make -j$CPU_CORE_COUNT
$make_exec install -j$CPU_CORE_COUNT

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 396 B

BIN
images/card-background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
images/checkedBlackIcon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 B

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 460 B

BIN
images/close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
images/createWalletFromDevice.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
images/downArrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

After

Width:  |  Height:  |  Size: 563 B

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