Compare commits

..

1067 Commits

Author SHA1 Message Date
luigi1111
2f5c47e95f Merge pull request #2448
d2b9d56 ContextMenu: styling, implement ContextMenuItem component (xiphon)
2019-11-19 10:36:34 -06:00
luigi1111
34b216e6dc Merge pull request #2444
5a65d28 build: set submodule to v0.15.0.1 (selsta)
2019-11-19 10:35:25 -06:00
xiphon
d2b9d5690b ContextMenu: styling, implement ContextMenuItem component 2019-11-19 12:32:53 +00:00
luigi1111
d10f1b5d30 Merge pull request #2447
d92cc94 readme: add 'zeromq-devel' to Fedora deps (xiphon)
2019-11-18 13:00:54 -06:00
luigi1111
fea3bb503f Merge pull request #2446
f57b2d5 workflows: add basic ubuntu/macOS build script (selsta)
2019-11-18 12:58:46 -06:00
xiphon
d92cc944cb readme: add 'zeromq-devel' to Fedora deps 2019-11-17 19:32:13 +00:00
selsta
f57b2d57cd workflows: add basic ubuntu/macOS build script 2019-11-14 22:12:38 +01:00
luigi1111
cf0e5a811e Merge pull request #2440
e9cdaf4 Transfer: convert and display entered amount in fiat currency (xiphon)
2019-11-13 09:08:16 -06:00
luigi1111
ea8f51d168 Merge pull request #2439
17f032e fiat: fix invalid type, don't round conversion rate to whole number (xiphon)
2019-11-13 09:06:51 -06:00
luigi1111
e8befc4c67 Merge pull request #2438
92f9bec installer: automatically set app version information (xiphon)
2019-11-13 09:05:55 -06:00
luigi1111
5518771a8b Merge pull request #2437
ef565e5 build: embed version metadata into binary (xiphon)
2019-11-13 09:04:49 -06:00
luigi1111
47bc0f2a3c Merge pull request #2435
0e3f3c1 SettingsWallet: refactor list items into separate component (xiphon)
2019-11-13 09:03:51 -06:00
luigi1111
8bd820b909 Merge pull request #2429
74e12ce ContextMenu: implement 'paste' context menu for all text fields (xiphon)
2019-11-13 09:03:02 -06:00
luigi1111
f948d0e214 Merge pull request #2428
5fe6b48 Settings: fix 'Light theme' checkbox (xiphon)
2019-11-13 09:02:03 -06:00
luigi1111
3a7c9e6c8e Merge pull request #2417
212c8dd Warning added that balance reflects only incoming transactions for view-only wallets (peli-pro)
2019-11-13 09:00:44 -06:00
selsta
5a65d28d29 build: set submodule to v0.15.0.1 2019-11-13 15:45:42 +01:00
xiphon
e9cdaf4dbe Transfer: convert and display entered amount in fiat currency 2019-11-13 08:10:49 +00:00
xiphon
17f032ea11 fiat: fix invalid type, don't round conversion rate to whole number 2019-11-13 06:34:33 +00:00
xiphon
ef565e5fa3 build: embed version metadata into binary 2019-11-12 16:23:02 +00:00
xiphon
92f9bec1e7 installer: automatically set app version information 2019-11-12 02:25:29 +00:00
xiphon
0e3f3c13a1 SettingsWallet: refactor list items into separate component 2019-11-11 21:14:39 +00:00
xiphon
74e12ce71d ContextMenu: implement 'paste' context menu for all text fields 2019-11-08 12:41:32 +00:00
xiphon
5fe6b48517 Settings: fix 'Light theme' checkbox 2019-11-04 21:47:38 +00:00
luigi1111
7f7a39292c Merge pull request #2427
2e1e227 build: MinGW fix gcc >= 9.1 build, enable stack protection (xiphon)
2019-11-04 11:06:35 -06:00
xiphon
2e1e227b4c build: MinGW fix gcc >= 9.1 build, enable stack protection 2019-11-04 16:26:28 +03:00
luigi1111
ee68bcb6e9 Merge pull request #2426
a4c17ac build: set submodule to v0.15.0.0 (selsta)
2019-11-03 19:13:04 -06:00
luigi1111
025a638082 Merge pull request #2424
06ba205 Windows Installer: Update for Carbon Chamaeleon 0.15.0.0 (rbrunner7)
2019-11-03 19:12:16 -06:00
luigi1111
33babc5d85 Merge pull request #2423
5df14ab Merchant: fix leaving the page (xiphon)
2019-11-03 19:11:29 -06:00
selsta
a4c17ac82b build: set submodule to v0.15.0.0 2019-11-03 23:56:27 +01:00
René Brunner
06ba205320 Windows Installer: Update for Carbon Chamaeleon 0.15.0.0 2019-11-01 16:13:11 +01:00
xiphon
5df14abed2 Merchant: fix leaving the page 2019-11-01 12:19:25 +00:00
luigi1111
cdad85c0ef Merge pull request #2419
40e2d20 Translations from Weblate (Monero-Weblate)
2019-10-26 19:06:42 -05:00
Weblate
40e2d2045b Translations from Weblate
Translators:

[Czech]
dskch83

[German]
Christian
M5M400
Sneaky Squid
Paul Rant

[Japanese]
Andrew Onishi
Scott Anecito

[French]
el00ruobuob
glv2

[Dutch]
Jonathan Heirbaut
siesero

[Italian]
erciccione
Luca Ciavatta
Alessandro Lotta
stefanomarty

[Finnish]
vaa red

[Chinese (Simplified)]
jindouyunz
TE Scott
razorshaman909

[Catalan]
Assumpta Anglada
BennyBeat
Ecron
Joan Montané

[Ukrainian]
Agent LvM
TheFuzzStone

[Russian]
Agent LvM
TheFuzzStone
Russian Bear

[Chinese (Traditional)]
Lafudoci
2019-10-26 13:08:33 +00:00
peli-pro
212c8dd054 Warning added that balance reflects only incoming transactions for view-only wallets 2019-10-17 14:25:36 +02:00
luigi1111
290582d428 Merge pull request #2416
582267a main: apply WalletMode check on start (xiphon)
2019-10-16 14:22:56 -05:00
xiphon
582267a923 main: apply WalletMode check on start 2019-10-15 18:07:08 +00:00
luigi1111
fe3c06c36b Merge pull request #2415
631a1c4 fix fee labels in transfer (#2412) (jtgrassie)
2019-10-14 17:59:13 -05:00
luigi1111
95d7826163 Merge pull request #2413
c60c9ee Change 'Pootle' to 'Weblate' in readme (erciccione)
2019-10-14 17:58:15 -05:00
luigi1111
5e2099ad47 Merge pull request #2411
965081c DaemonManager: reset disconnectedEpoch on start, start timeout 60s (xiphon)
2019-10-14 17:57:23 -05:00
luigi1111
44280d1e52 Merge pull request #2399
d3b20d2 SimpleMode: implement 'switch to another public node' button (xiphon)
2019-10-14 17:53:08 -05:00
luigi1111
897d879dad Merge pull request #2398
32257c8 DaemonManager: implement async sendCommand (xiphon)
2019-10-14 17:50:54 -05:00
Jethro Grassie
631a1c49c8 fix fee labels in transfer (#2412) 2019-10-13 13:07:52 -04:00
xiphon
d3b20d2c04 SimpleMode: implement "switch to another public node" button 2019-10-11 01:01:19 +00:00
erciccione
c60c9ee69a Change 'Pootle' to 'Weblate' in readme 2019-10-10 11:46:59 +02:00
xiphon
965081c554 DaemonManager: reset disconnectedEpoch on start, start timeout 60s 2019-10-09 02:02:58 +00:00
luigi1111
e6458b58ef Merge pull request #2402
f72ed25 Transfer: forbid long Payment IDs (xiphon)
2019-10-08 15:21:35 -05:00
luigi1111
9207462676 Merge pull request #2401
947e265 Transfer: warn on long Payment ID filled into description field (xiphon)
2019-10-08 15:20:07 -05:00
luigi1111
ab020358e7 Merge pull request #2400
77ff362 SettingsNode: 'auto' special case for Bootstrap Address edit (xiphon)
2019-10-08 15:19:01 -05:00
luigi1111
135cfbac68 Merge pull request #2397
9d40baa SimpleMode: allow wrong local daemon version (xiphon)
2019-10-08 15:17:50 -05:00
luigi1111
3dbf09e7ad Merge pull request #2393
a6cd010 windeploy: bump icu version to 64, add libdouble-conversion.dll (stoffu)
2019-10-08 15:17:02 -05:00
xiphon
32257c8fab DaemonManager: implement async sendCommand 2019-10-07 10:39:30 +00:00
luigi1111
5ecca50977 Merge pull request #2403
ae2fdc7 build: build, install and link against randomx library (xiphon)
2019-09-30 18:59:26 -05:00
xiphon
ae2fdc7ab3 build: build, install and link against randomx library 2019-09-28 12:20:30 +00:00
xiphon
f72ed257ce Transfer: forbid long Payment IDs 2019-09-28 02:01:20 +00:00
xiphon
947e265a1a Transfer: warn on long Payment ID filled into description field 2019-09-28 01:46:22 +00:00
xiphon
77ff362b58 SettingsNode: 'auto' special case for Bootstrap Address edit 2019-09-27 15:50:38 +00:00
xiphon
9d40baa3ef SimpleMode: allow wrong local daemon version 2019-09-26 23:36:18 +00:00
luigi1111
d3b81cb6f8 Merge pull request #2391
4905341 TitleBar: add close wallet button (selsta)
c87ebf1 TitleBar: slightly reduce size of moon icon (selsta)
2019-09-24 11:15:28 -05:00
selsta
c87ebf1f31 TitleBar: slightly reduce size of moon icon 2019-09-24 17:53:02 +02:00
selsta
4905341999 TitleBar: add close wallet button 2019-09-24 17:53:02 +02:00
luigi1111
047dee4eb4 Merge pull request #2396
413507b build: highlight minimum required Qt version (selsta)
2019-09-24 10:52:48 -05:00
luigi1111
dd1046b31f Merge pull request #2392
411505b SimpleMode: ignore persistent daemon flags (xiphon)
2019-09-24 10:51:29 -05:00
luigi1111
2b82a472ae Merge pull request #2390
4f4e879 main: set TERM='goaway' (selsta)
2019-09-24 10:48:43 -05:00
luigi1111
8d5ef035d2 Merge pull request #2389
448727f WizardLang: reduce top margin (selsta)
2019-09-24 10:47:37 -05:00
luigi1111
a3d41a80bf Merge pull request #2383
2ca76ff LeftPanel: new balance card (selsta)
2019-09-24 10:46:40 -05:00
selsta
413507bba9 build: highlight minimum required Qt version 2019-09-23 16:47:56 +02:00
selsta
2ca76ff13c LeftPanel: new balance card 2019-09-21 01:23:09 +02:00
stoffu
a6cd010695 windeploy: bump icu version to 64, add libdouble-conversion.dll 2019-09-19 14:06:18 +09:00
xiphon
411505bff5 SimpleMode: ignore persistent daemon flags 2019-09-16 23:54:05 +00:00
selsta
4f4e879f8d main: set TERM="goaway" 2019-09-15 20:43:52 +02:00
selsta
448727f4b5 WizardLang: reduce top margin 2019-09-14 21:47:20 +02:00
luigi1111
ca8138bb46 Merge pull request #2385
bc22de4 DaemonManager: use 'sync_info' to avoid bootstrap daemon requests (xiphon)
2019-09-14 12:46:18 -05:00
luigi1111
10764b8a68 Merge pull request #2384
2c78f77 WizardController: fix overlap with network type dropdown (selsta)
2019-09-14 12:45:20 -05:00
luigi1111
b91afaf5c7 Merge pull request #2378
738e802 macOS/Windows: fix compiler warning (selsta)
2019-09-14 12:44:35 -05:00
luigi1111
31501316c9 Merge pull request #2377
8dab075 repo: remove isMobile leftovers (selsta)
2019-09-14 12:43:36 -05:00
luigi1111
120a62257f Merge pull request #2376
5f81b57 TitleBar: show wallet name (selsta)
2019-09-14 12:42:51 -05:00
luigi1111
a1e416ee83 Merge pull request #2375
6df9e58 fontawesome: fix regular/solid font style (selsta)
2019-09-14 12:41:52 -05:00
luigi1111
3cf2dc0c04 Merge pull request #2370
0d247a9 SimpleMode: automatic public nodes discovering and switching (xiphon)
2019-09-14 12:41:02 -05:00
selsta
6df9e584b3 fontawesome: fix regular/solid font style 2019-09-10 13:14:10 +02:00
xiphon
0d247a9b8a SimpleMode: automatic public nodes discovering and switching 2019-09-09 15:24:26 +00:00
xiphon
bc22de47f9 DaemonManager: use 'sync_info' to avoid bootstrap daemon requests 2019-09-09 01:14:06 +00:00
luigi1111
a5b2d5e727 Merge pull request #2373
4c05bff main: node and log page are hidden in simple mode (selsta)
2019-09-08 20:13:24 -05:00
selsta
2c78f77eb2 WizardController: fix overlap with network type dropdown 2019-09-08 17:06:14 +02:00
selsta
738e802f3c macOS/Windows: fix compiler warning 2019-09-06 00:22:39 +02:00
selsta
8dab0755d3 repo: remove isMobile leftovers 2019-09-06 00:11:12 +02:00
selsta
5f81b573c0 TitleBar: show wallet name 2019-09-05 18:49:28 +02:00
luigi1111
a267712d10 Merge pull request #2358
5392dd7 TitleBar: change Light Theme icon from 'light bulb' to 'moon' (xiphon)
2019-09-04 09:49:57 -05:00
luigi1111
0abaae073d Merge pull request #2372
cb9cb6e FontAwesome: bump to 5.10.2 (xiphon)
2019-09-04 09:48:58 -05:00
luigi1111
a6791561d6 Merge pull request #2366
a83910d SettingsNode: make input read only (selsta)
2019-09-04 09:48:06 -05:00
luigi1111
3ca2473239 Merge pull request #2362
3a33dde fix invalid include paths, compilation warnings, update README.md (xiphon)
2019-09-04 09:46:13 -05:00
luigi1111
779cc3e24d Merge pull request #2361
336ed9d sync and update language files (erciccione)
2019-09-04 09:44:41 -05:00
luigi1111
cfd2139310 Merge pull request #2346
049cef9 android: fix build (selsta)
2019-09-04 09:42:09 -05:00
selsta
4c05bff21e main: node and log page are hidden in simple mode 2019-09-04 00:06:26 +02:00
xiphon
5392dd7ed0 TitleBar: change Light Theme icon from 'light bulb' to 'moon' 2019-09-03 18:51:12 +00:00
xiphon
cb9cb6eb09 FontAwesome: bump to 5.10.2 2019-09-03 18:43:12 +00:00
xiphon
3a33ddeecd fix invalid include paths, compilation warnings, update README.md 2019-09-02 20:01:28 +00:00
selsta
a83910d7de SettingsNode: make input read only 2019-09-01 02:38:03 +02:00
erciccione
336ed9d6e5 sync and update language files 2019-08-28 12:44:06 +02:00
luigi1111
346e942e93 Merge pull request #2360
29580de History: fix tx key 'click to reveal' handling (xiphon)
2019-08-27 14:58:33 -05:00
luigi1111
13a5be7306 Merge pull request #2357
67e08da README: update (selsta)
2019-08-27 14:57:46 -05:00
luigi1111
bdceff6380 Merge pull request #2355
e660b2d build: link libstdc++ on Windows to statically link libwinpthreads (xiphon)
2019-08-27 14:56:11 -05:00
luigi1111
17c61f897a Merge pull request #2353
40bdf69 Ledger: improve hw wallet splash screen (selsta)
2019-08-27 14:55:15 -05:00
luigi1111
9a58e88ec6 Merge pull request #2351
b616e1c SettingsNode: change icons (selsta)
2019-08-27 14:53:29 -05:00
luigi1111
355cccaa64 Merge pull request #2175
ab47b4a Expose get/set attrs for wallet cache in libwalletqt, requires #5534 (xmrdsc)
2019-08-27 14:52:17 -05:00
xiphon
29580de2c7 History: fix tx key 'click to reveal' handling 2019-08-26 04:05:35 +00:00
selsta
67e08da918 README: update 2019-08-22 00:07:12 +02:00
xiphon
e660b2d169 build: link libstdc++ on Windows to statically link libwinpthreads 2019-08-20 14:17:46 +00:00
selsta
40bdf692d1 Ledger: improve hw wallet splash screen 2019-08-17 01:05:22 +02:00
luigi1111
562c46660a Merge pull request #2349
1ec22b3 history: fix start/end of the day calculation, apply local timezone (xiphon)
2019-08-14 15:52:02 -05:00
luigi1111
0724dd0043 Merge pull request #2348
a01ffc6 daemon: async daemon status check, don't freeze on wallet startup (xiphon)
2019-08-14 15:45:54 -05:00
luigi1111
c0932a1bd5 Merge pull request #2347
e1bbc1e LeftPanel: use currency symbol for fiat toggle (selsta)
2019-08-14 15:44:21 -05:00
luigi1111
d7a65fafad Merge pull request #2340
2f5c926 WizardLanguage: add missing qsTr() (selsta)
2019-08-14 15:43:06 -05:00
luigi1111
239e27c1b5 Merge pull request #2338
18f7a6a Receive: fix warning (selsta)
2019-08-14 15:42:04 -05:00
luigi1111
1ca10373a3 Merge pull request #2336
30a3abe Wallet: explicitly set trusted daemon flag (xiphon)
2019-08-14 15:40:33 -05:00
luigi1111
ac6687f6ff Merge pull request #2313
01740a2 images: fix known incorrect sRGB profile warning (selsta)
2019-08-14 15:39:32 -05:00
selsta
b616e1c8f6 SettingsNode: change icons 2019-08-14 20:35:53 +02:00
xiphon
1ec22b3d0c history: fix start/end of the day calculation, apply local timezone 2019-08-13 14:25:16 +00:00
xiphon
a01ffc6e1a daemon: async daemon status check, don't freeze on wallet startup 2019-08-13 12:21:47 +00:00
selsta
e1bbc1e525 LeftPanel: use currency symbol for fiat toggle 2019-08-12 00:10:24 +02:00
selsta
049cef9ce3 android: fix build 2019-08-10 22:09:30 +02:00
selsta
18f7a6a694 Receive: fix warning 2019-08-07 14:19:56 +02:00
xiphon
30a3abedbe Wallet: explicitly set trusted daemon flag 2019-08-07 06:43:18 +00:00
selsta
2f5c926c82 WizardLanguage: add missing qsTr() 2019-08-06 23:44:53 +02:00
luigi1111
55b4425c5d Merge pull request #2335
f666e6f main: don't attempt to close already closed wallet (xiphon)
2019-08-06 15:06:27 -05:00
luigi1111
dc49d7af38 Merge pull request #2331
e546ce8 WizardRestoreWallet1: use RadioButtons instead of buttons (selsta)
2019-08-06 15:05:36 -05:00
luigi1111
e01c2e903a Merge pull request #2327
059a2d7 SettingsNode: make button text more consistent (selsta)
2019-08-06 15:04:39 -05:00
luigi1111
886be81af2 Merge pull request #2315
1e64ebe QML: warning fixes (selsta)
2019-08-06 15:03:40 -05:00
luigi1111
671ddf5bef Merge pull request #2314
8abf8f8 wizard: bug fixes (selsta)
2019-08-06 15:02:36 -05:00
luigi1111
5f8cb04fee Merge pull request #2221
2d72f55 device: show address on device display (ph4r05)
2019-08-06 15:01:48 -05:00
luigi1111
3f06560c51 Revert "set submodule v0.14.1.2"
This reverts commit 8d17018019.
2019-08-06 15:00:43 -05:00
xiphon
f666e6f42e main: don't attempt to close already closed wallet 2019-08-06 10:50:26 +00:00
selsta
e546ce83b4 WizardRestoreWallet1: use RadioButtons instead of buttons 2019-07-31 18:17:46 +02:00
selsta
059a2d754e SettingsNode: make button text more consistent 2019-07-27 18:08:24 +02:00
selsta
1e64ebe17a QML: warning fixes 2019-07-24 05:24:37 +02:00
selsta
8abf8f844f wizard: bug fixes
- property binding loop
- wrong transition
- html in plaintext
2019-07-24 05:07:54 +02:00
selsta
01740a253d images: fix known incorrect sRGB profile warning 2019-07-24 04:05:39 +02:00
luigi1111
0461a28701 Merge pull request #2310
ff23a5b prices: improve error message (selsta)
2019-07-23 11:29:46 -05:00
luigi1111
a3b1590286 Merge pull request #2309
afe2b14 QML: fix more warnings (selsta)
2019-07-23 11:28:50 -05:00
luigi1111
b5cbb8b990 Merge pull request #2308
d4a6826 WizardController: make scrollbar visible (selsta)
2019-07-23 11:27:34 -05:00
selsta
ff23a5bf1e prices: improve error message 2019-07-23 01:00:40 +02:00
selsta
afe2b14430 QML: fix more warnings 2019-07-22 23:11:38 +02:00
selsta
d4a6826d13 WizardController: make scrollbar visible 2019-07-22 22:28:46 +02:00
luigi1111
8d17018019 set submodule v0.14.1.2 2019-07-22 13:40:20 -05:00
luigi1111
a65222d057 Merge pull request #2302
7e40a81 Account: fix theme switch label color (selsta)
2019-07-22 13:35:24 -05:00
luigi1111
25e56ee8fb Merge pull request #2307
f20ab12 QML: fix various warnings (selsta)
2019-07-22 13:29:31 -05:00
luigi1111
40c3e38f5a Merge pull request #2305
e6642c4 Account/Receive: update table on new entry (selsta)
2019-07-22 13:25:20 -05:00
luigi1111
f810c56100 Merge pull request #2303
5b81a1a Windows installer: Bumped the version number to 0.14.1.2 (rbrunner7)
2019-07-22 13:24:14 -05:00
luigi1111
95b3bb955c Merge pull request #2300
8f7d2b5 WizardAskPassword: improve label (selsta)
2019-07-22 13:21:50 -05:00
luigi1111
8db07974e2 Merge pull request #2299
e7653d0 updating the readme (parasew)
2019-07-22 13:20:41 -05:00
luigi1111
6c25650bbd Merge pull request #2297
7480f9b Changes Change wallet/Continue to Cancel/Ok (notmike-5)
2019-07-22 13:18:23 -05:00
luigi1111
4775fd74b8 Merge pull request #2294
ba33649 Fix segfault on Tails (tobtoht)
2019-07-22 13:11:15 -05:00
selsta
f20ab12cf3 QML: fix various warnings 2019-07-21 23:23:03 +02:00
selsta
e6642c4338 Account/Receive: update table on new entry 2019-07-21 21:17:18 +02:00
René Brunner
5b81a1a9d6 Windows installer: Bumped the version number to 0.14.1.2 2019-07-20 17:27:31 +02:00
selsta
7e40a810eb Account: fix theme switch label color 2019-07-20 02:54:16 +02:00
Matthias
e7653d0497 updating the readme 2019-07-19 18:03:48 +03:00
selsta
8f7d2b592a WizardAskPassword: improve label 2019-07-18 23:25:50 +02:00
notmike
7480f9b559 Changes Change wallet/Continue to Cancel/Ok
see #2290 #2204
2019-07-18 09:02:53 -06:00
thotbot
ba33649d7e Fix segfault on Tails 2019-07-18 13:22:38 +00:00
luigi1111
705439c78b Merge pull request #2289
cddba56 Fix project file (xmrdsc)
2019-07-16 11:50:11 -05:00
dsc
cddba56848 Fix project file 2019-07-16 18:47:12 +02:00
luigi1111
39fe5478b9 Merge pull request #2287
b96004a main: don't lock on inactivity if passwordDialog is visible (selsta)
2019-07-16 11:38:46 -05:00
luigi1111
cb3c310eb8 Merge pull request #2286
d2e7358 PasswordDialog: label improvements (selsta)
2019-07-16 11:37:19 -05:00
luigi1111
c426f1eb83 Merge pull request #2283
e04d563 src: fix compiler warnings (selsta)
2019-07-16 11:36:26 -05:00
luigi1111
beb94783c6 Merge pull request #2258
0b61328 Detect tails, support data persistence (xmrdsc)
2019-07-16 11:35:16 -05:00
dsc
0b61328971 Detect tails, support data persistence
Co-authored-by: Thotbot <thotbot@protonmail.com>
Co-authored-by: Selsta <selsta@sent.at>
2019-07-16 18:33:44 +02:00
selsta
b96004a101 main: don't lock on inactivity if passwordDialog is visible 2019-07-16 14:17:22 +02:00
selsta
d2e7358db7 PasswordDialog: label improvements 2019-07-16 14:08:22 +02:00
luigi1111
cfec9dde96 Merge pull request #2257
96c99b2 Replace Qt.labs.settings with MoneroSettings to allow for more customization (xmrdsc)
2019-07-15 23:38:56 -05:00
selsta
e04d563eb4 src: fix compiler warnings 2019-07-16 03:34:46 +02:00
dsc
96c99b250e Replace Qt.labs.settings with MoneroSettings to allow for more customization 2019-07-16 01:47:07 +02:00
luigi1111
4370733b2b Merge pull request #2282
d113bf1 main: fix password dialog overlay (selsta)
2019-07-15 18:43:33 -05:00
luigi1111
cac7662558 Merge pull request #2279
59550ec Windows installer: Achieve reproducible builds (rbrunner7)
2019-07-15 18:42:42 -05:00
luigi1111
0abd21b434 Merge pull request #2276
4b0d1dc Fixes #2275, transactionCommited txid list (ph4r05)
2019-07-15 18:41:19 -05:00
luigi1111
0d29ea33d8 Merge pull request #2256
817115f Start script for Tails (xmrdsc)
2019-07-15 18:39:39 -05:00
luigi1111
3a9f0e1100 Merge pull request #2240
35a0f25 PasswordDialog: merge components and bug fixes (selsta)
2019-07-15 18:38:32 -05:00
selsta
d113bf1a66 main: fix password dialog overlay 2019-07-15 21:56:57 +02:00
Dusan Klinec
2d72f55e57 device: show address on device display 2019-07-15 17:54:50 +02:00
Dusan Klinec
4b0d1dcfbf Fixes #2275, transactionCommited txid list
txid list was empty when emitted
2019-07-15 16:17:21 +02:00
selsta
35a0f25b57 PasswordDialog: merge components and bug fixes
This commit merges PasswordDialog, PassphraseDialog and
NewPasswordDialog. Also the following bugs were fixed:

- Wizard pages still being active when opening a wallet
  from wizard.
- Capslock detection was buggy when copy pasting password, I
  replaced it with native implementations for each platform.
- isAlpha could throw errors when using special characters.
2019-07-15 00:05:10 +02:00
luigi1111
702b654f09 Merge pull request #2263
14619b9 History: don't reset date filtering when switching page (selsta)
2019-07-12 20:39:27 -05:00
luigi1111
f6de660e0e Merge pull request #2255
6baa963 NetworkStatusItem: simple mode has no node settings page (selsta)
2019-07-12 20:37:46 -05:00
luigi1111
b3402b3d4e Merge pull request #2251
5f5f210 History: dynamic number of tx rows (selsta)
2019-07-12 20:36:52 -05:00
luigi1111
5b411b471e Merge pull request #2250
84865cd History: allow to search for tx_note (selsta)
2019-07-12 20:35:29 -05:00
luigi1111
79dcb92d18 Merge pull request #2247
ab9e31e WalletManager: async close with splash screen (xiphon)
2019-07-12 20:34:10 -05:00
luigi1111
8bbc2e87bc Merge pull request #2246
c34a2b4 QML: fix warnings (selsta)
2019-07-12 20:33:22 -05:00
luigi1111
c10ea20f83 Merge pull request #2241
e1b4bcb build: minimum required qt version is 5.9 (selsta)
2019-07-12 20:32:14 -05:00
luigi1111
b4231a758c Merge pull request #2237
1b5796a WizardSummary: remove duplicated entry (selsta)
2019-07-12 20:31:17 -05:00
René Brunner
59550ec673 Windows installer: Achieve reproducible builds 2019-07-07 17:23:08 +02:00
selsta
6baa96360f NetworkStatusItem: simple mode has no node settings page 2019-07-05 20:57:19 +02:00
selsta
14619b9437 History: don't reset date filtering when switching page 2019-07-04 15:17:41 +02:00
dsc
817115fa47 Start script for Tails
Co-authored-by: thotbot <thotbot@protonmail.com>
2019-07-04 01:25:03 +02:00
selsta
5f5f2103c0 History: dynamic number of tx rows 2019-07-03 15:24:39 +02:00
selsta
84865cdead History: allow to search for tx_note 2019-07-03 13:54:01 +02:00
selsta
c34a2b43fc QML: fix warnings 2019-07-02 15:10:40 +02:00
xiphon
ab9e31e7cc WalletManager: async close with splash screen 2019-07-02 11:11:38 +00:00
selsta
e1b4bcb2ef build: minimum required qt version is 5.9 2019-07-01 14:40:20 +02:00
luigi1111
c4b3fbae1d Merge pull request #2235
9ab2922 Add vim generated files to gitignore (TheCharlatan)
2019-06-29 13:37:54 -05:00
selsta
1b5796a0ee WizardSummary: remove duplicated entry 2019-06-29 04:29:55 +02:00
TheCharlatan
9ab2922eb2 Add vim generated files to gitignore 2019-06-28 06:48:54 +02:00
luigi1111
036b3b56c5 Merge pull request #2229
be7810c qt: implement FutureScheduler, always await async code to complete (xiphon)
2019-06-25 14:02:40 -05:00
luigi1111
3c3848633e Merge pull request #1960
63ee61b transfer: make simple mode more simple (mmbyday)
2019-06-25 14:00:47 -05:00
xiphon
be7810c5a8 qt: implement FutureScheduler, always await async code to complete 2019-06-24 20:09:50 +00:00
luigi1111
c7956f76ea Merge pull request #2231
9d6038e main: make variable used once local to function (selsta)
df50c51 main: remove unused variables (selsta)
2019-06-21 14:46:02 -05:00
luigi1111
30997a8262 Merge pull request #2230
484d403 NetworkStatusItem: correctly display remote node status (selsta)
2019-06-21 14:44:53 -05:00
luigi1111
431a789a39 Merge pull request #2228
024fe1b MainApp: send unhandled events to base class (selsta)
2019-06-21 14:44:06 -05:00
luigi1111
8428e77c16 Merge pull request #2226
55ad588 main: fix UI freeze on close in remote node mode (xiphon)
2019-06-21 14:43:08 -05:00
luigi1111
fe40ceab20 Merge pull request #2224
2dc820c repo: remove unused components (xiphon)
2019-06-21 14:41:49 -05:00
luigi1111
27ad473695 Merge pull request #2223
d237e70 main: fix false positive daemonRunning (invalid daemon address check) (xiphon)
2019-06-21 14:41:05 -05:00
luigi1111
2c81f1808f Merge pull request #2222
68c5527 persistentSettings: preserve fiat balance toggle on wallet restart (xiphon)
2019-06-21 14:40:18 -05:00
luigi1111
f6a797fcb5 Merge pull request #2220
8d49ad9 tx_key not displayed by default, click to reveal (ph4r05)
6d03d63 get_tx_key, get_tx_proof, tx_spend_proof async (ph4r05)
2019-06-21 14:39:20 -05:00
luigi1111
934ca28e2c Merge pull request #2217
0d7289d Windows installer: Add 3 new exe files (pruning, stats) (rbrunner7)
2019-06-21 14:38:01 -05:00
luigi1111
de65413390 Merge pull request #2216
cbbd898 WalletManager: remove unused functions (selsta)
2019-06-21 14:37:14 -05:00
luigi1111
3bb69fd645 Merge pull request #2200
c69f0ad add missed translatable string in SettingsNode.qml (erciccione)
2019-06-21 14:36:20 -05:00
luigi1111
d301a9ac6e Merge pull request #2198
725cf73 wizardhome: add change network label (mmbyday)
2019-06-21 14:34:58 -05:00
luigi1111
a4648d9738 Merge pull request #2194
7aff9e6 remove Seed & Keys subtab in left panel (cryptochangements34)
2019-06-21 14:33:40 -05:00
luigi1111
df34693d4e Merge pull request #2189
6267be0 monero-wallet-gui.pro: add lupdate options no-obsolete and locations none (mmbyday)
2019-06-21 14:31:05 -05:00
luigi1111
edb849fa81 Merge pull request #2170
a3c620f restore height visibility enhancements (mmbyday)
2019-06-21 14:27:26 -05:00
selsta
df50c5111b main: remove unused variables 2019-06-21 01:54:17 +02:00
selsta
9d6038e0a3 main: make variable used once local to function 2019-06-21 01:24:39 +02:00
selsta
484d403921 NetworkStatusItem: correctly display remote node status 2019-06-21 00:43:29 +02:00
Dusan Klinec
6d03d63c88 get_tx_key, get_tx_proof, tx_spend_proof async 2019-06-20 14:57:10 +02:00
selsta
024fe1b834 MainApp: send unhandled events to base class 2019-06-19 20:36:16 +02:00
xiphon
d237e70ef1 main: fix false positive daemonRunning (invalid daemon address check) 2019-06-18 21:06:27 +00:00
Dusan Klinec
8d49ad9ba4 tx_key not displayed by default, click to reveal 2019-06-18 13:30:06 +02:00
xiphon
55ad5886b4 main: fix UI freeze on close in remote node mode 2019-06-18 11:23:13 +00:00
xiphon
2dc820c9d4 repo: remove unused components 2019-06-18 00:32:55 +00:00
xiphon
68c55270d4 persistentSettings: preserve fiat balance toggle on wallet restart 2019-06-17 20:51:18 +00:00
René Brunner
0d7289d94b Windows installer: Add 3 new exe files (pruning, stats) 2019-06-15 21:06:06 +02:00
luigi1111
d1e8b6f823 Merge pull request #2213
2524cc1 Wallet: async fetching wallet, daemon and target height (xiphon)
2019-06-14 14:34:27 -05:00
selsta
cbbd898cd5 WalletManager: remove unused functions 2019-06-14 17:08:26 +02:00
xiphon
2524cc179e Wallet: async fetching wallet, daemon and target height 2019-06-13 12:33:05 +00:00
erciccione
c69f0adac8 add missed translatable string in SettingsNode.qml 2019-06-06 15:04:54 +02:00
mmbyday
725cf737bc wizardhome: add change network label 2019-06-05 23:15:26 -07:00
luigi1111
68c7cf7276 Merge pull request #2197
42bf4b2 KeysFiles: fix file path (mmbyday)
2019-06-05 22:36:49 -05:00
luigi1111
c32f26fc8f Merge pull request #2192
8cb93ec Windows installer: Simplify script thanks to static linking of GUI wallet exe (rbrunner7)
2019-06-05 22:35:40 -05:00
luigi1111
863c75f6a2 Merge pull request #2188
f61656a Fix windows mingw build (mmbyday)
2019-06-05 22:34:48 -05:00
luigi1111
189f905785 Merge pull request #2182
73a3549 WalletManager: non-blocking mining status updates (xiphon)
2019-06-05 22:33:57 -05:00
luigi1111
477bce6117 Merge pull request #2180
a9cb42e WalletManager: fix compilation warnings (unused args, members order) (xiphon)
2019-06-05 22:32:52 -05:00
luigi1111
f8a6dec0ed Merge pull request #2179
1cffa8b WalletManager: fix crash on null/dangling pointer dereference (xiphon)
2019-06-05 22:31:39 -05:00
luigi1111
da39be9a8d Merge pull request #2178
8bc9fbe WalletManager: async setDaemonAddress (xiphon)
2019-06-05 22:30:46 -05:00
luigi1111
1c3201b17f Merge pull request #2177
a4928ba windeploy: deploy libssl and libcrypto binaries (xiphon)
2019-06-05 22:29:33 -05:00
mmbyday
42bf4b2e87 KeysFiles: fix file path 2019-06-04 23:46:10 -07:00
mmbyday
f61656a1b8 Fix windows mingw build 2019-06-04 13:55:14 -07:00
cryptochangements34
7aff9e6af0 remove Seed & Keys subtab in left panel 2019-06-03 17:32:38 -04:00
René Brunner
8cb93ec466 Windows installer: Simplify script thanks to static linking of GUI wallet exe 2019-06-02 09:10:00 +02:00
mmbyday
6267be0413 monero-wallet-gui.pro: add lupdate options no-obsolete and locations none
Co-authored-by: selsta <selsta@sent.at>
Co-authored-by: erciccione <erciccione@users.noreply.github.com>
2019-05-31 23:05:56 -07:00
xiphon
73a3549e09 WalletManager: non-blocking mining status updates 2019-05-30 23:17:26 +00:00
xiphon
a9cb42e2a4 WalletManager: fix compilation warnings (unused args, members order) 2019-05-28 15:55:10 +00:00
xiphon
1cffa8b68d WalletManager: fix crash on null/dangling pointer dereference 2019-05-28 15:46:26 +00:00
xiphon
8bc9fbecaf WalletManager: async setDaemonAddress 2019-05-28 15:08:50 +00:00
xiphon
a4928bae6a windeploy: deploy libssl and libcrypto binaries 2019-05-27 21:12:23 +00:00
luigi1111
a5a90c7ed8 Merge pull request #2176
bac13af translations for release 0.14.1 (Pootle) (Monero-Pootle)
2019-05-27 13:55:05 -05:00
luigi1111
d0e8cf2b43 Merge pull request #2174
65422ae use https to fetch remote nodes list on Windows (xiphon)
2019-05-27 13:42:20 -05:00
luigi1111
f197f507bc Merge pull request #2173
fbd6d68 build: Windows statically link gcc and c++ runtime (xiphon)
07bda54 build: Windows link against setupapi (hidapi dependency) (xipon)
2019-05-27 13:34:22 -05:00
luigi1111
4481aa7028 Merge pull request #2171
d3cf9ea Bootstrap warning text should be richtext (xmrdsc)
2019-05-27 13:30:18 -05:00
luigi1111
d71e7354d9 Merge pull request #2169
d518b20 WizardSummary: always show restore height when restoring from seed/keys/device (mmbyday)
2019-05-27 13:27:59 -05:00
luigi1111
bec3605757 Merge pull request #2168
ca9883b Fix restore height when using stagenet/testnet (mmbyday)
2019-05-27 13:26:12 -05:00
Monero-Pootle
bac13afc9b translations for release 0.14.1 (Pootle) 2019-05-27 13:19:30 +00:00
dsc
ab47b4a783 Expose get/set attrs for wallet cache in libwalletqt, requires #5534 2019-05-25 22:38:38 +02:00
mmbyday
d518b204b1 WizardSummary: always show restore height when restoring from seed/keys/device 2019-05-24 12:01:23 -07:00
mmbyday
ca9883b6c0 Fix restore height when using stagenet/testnet 2019-05-24 11:58:46 -07:00
xiphon
65422ae6ca use https to fetch remote nodes list on Windows 2019-05-22 15:03:01 +00:00
xiphon
07bda54c41 build: Windows link against setupapi (hidapi dependency) 2019-05-22 11:19:09 +00:00
xiphon
fbd6d683ed build: Windows statically link gcc and c++ runtime 2019-05-22 10:54:05 +00:00
xmrdsc
d3cf9eaf97 Bootstrap warning text should be richtext 2019-05-16 16:19:16 +02:00
mmbyday
a3c620f78d restore height visibility enhancements 2019-05-15 00:37:53 -07:00
luigi1111
c286c7e5a8 Merge pull request #2167
3734767 build: fix monero-wallet-gui.pro (selsta)
2019-05-13 12:57:49 -05:00
selsta
37347672a8 build: fix monero-wallet-gui.pro 2019-05-11 10:03:49 +02:00
luigi1111
f4982834ab Merge pull request #2165
5b79cf7 Windows installer: Update for Boron Butterfly 0.14.1.0 (rbrunner7)
2019-05-10 13:23:08 -05:00
luigi1111
209679abef Merge pull request #2164
96945c2 MiddlePanel: dynamic content height (selsta)
2019-05-10 13:22:15 -05:00
luigi1111
80a992553d Merge pull request #2158
ceed212 wallet: fix deadlock, omit invoking 'refresh' from callback (xiphon)
2019-05-10 13:21:14 -05:00
luigi1111
b77eca9db1 Merge pull request #2156
fbe1de1 keys: ux improvements for hardware device wallet (mmbyday)
2019-05-10 13:20:04 -05:00
luigi1111
cfa594e595 Merge pull request #2155
949e774 msys2: fix windows build with trezor (mmbyday)
2019-05-10 13:19:00 -05:00
luigi1111
abf823e38d Merge pull request #2147
c88bb60 transaction: async commit (ph4r05)
2019-05-10 13:01:29 -05:00
luigi1111
08caf05eb2 Merge pull request #2141
d4be763 Fiat API (xmrdsc)
2019-05-10 12:59:37 -05:00
René Brunner
5b79cf7a6a Windows installer: Update for Boron Butterfly 0.14.1.0 2019-05-07 10:37:30 +02:00
selsta
96945c2c79 MiddlePanel: dynamic content height 2019-05-07 07:34:50 +02:00
dsc
d4be7634cb Fiat API
Co-Authored-By: selsta <selsta@sent.at>
Co-Authored-By: Gene Peters <gene@telligent-data.com>
2019-05-06 04:36:23 +02:00
xiphon
ceed212e63 wallet: fix deadlock, omit invoking 'refresh' from callback
Co-authored-by: Dusan Klinec <dusan.klinec@gmail.com>
2019-05-03 18:43:11 +00:00
luigi1111
3c1fe1da8b Merge pull request #2157
1f2f081 Black theme by default (xiphon)
2019-05-03 13:06:07 -05:00
luigi1111
4b43a1dfb6 Merge pull request #2153
94440f9 readme: add svg module (mmbyday)
2019-05-03 13:04:37 -05:00
luigi1111
1fcd79729c Merge pull request #2149
5d3fe93 Check before disconnecting wallet (xmrdsc)
2019-05-03 13:01:13 -05:00
luigi1111
f53d01be56 Merge pull request #2146
c82bffe SettingsLayout: fix order (selsta)
2019-05-03 13:00:24 -05:00
luigi1111
58e7af27c4 Merge pull request #2145
c840549 Add copyright headers (mmbyday)
2019-05-03 12:59:28 -05:00
luigi1111
2d7b3e2bef Merge pull request #2144
119d91a labelSubHeader: fix width bug (mmbyday)
2019-05-03 12:58:41 -05:00
luigi1111
1b529fabef Merge pull request #2143
b74aa1a dialogs: fix titlebar disabledness (mmbyday)
2019-05-03 12:57:53 -05:00
luigi1111
eb53c72ca4 Merge pull request #2142
c151e5e wizardcreatedevice: cleanup layout (mmbyday)
2019-05-03 12:56:57 -05:00
luigi1111
d0a40b4ca8 Merge pull request #2133
cb4a9da RightPanel: cleanup from repo (selsta)
2019-05-03 12:47:46 -05:00
luigi1111
34e46eda64 Merge pull request #2100
171e1fc Fix checking for gui updates (mmbyday)
2019-05-03 12:46:42 -05:00
luigi1111
fc4ae89039 Merge pull request #2068
480acf4 Scan keysfiles in wizard - open wallet (xmrdsc)
2019-05-03 12:45:14 -05:00
xiphon
1f2f08190a Black theme by default 2019-05-03 14:39:09 +00:00
mmbyday
fbe1de1164 keys: ux improvements for hardware device wallet 2019-05-03 00:38:09 -07:00
mmbyday
949e774a9f msys2: fix windows build with trezor 2019-05-02 23:16:53 -07:00
mmbyday
94440f9d0b readme: add svg module
Fixes #2152
2019-05-02 14:01:14 -07:00
mmbyday
c151e5e7a1 wizardcreatedevice: cleanup layout 2019-05-02 12:11:21 -07:00
xmrdsc
5d3fe93e1f Check before disconnecting wallet 2019-05-02 16:27:35 +02:00
Dusan Klinec
c88bb60135 transaction: async commit
Addresses #2123, reduces UI freezing on long-lasting operation, improves Trezor experience
2019-05-02 16:19:22 +02:00
dsc
480acf441d Scan keysfiles in wizard - open wallet 2019-05-02 00:41:09 +02:00
selsta
c82bffeacc SettingsLayout: fix order 2019-05-01 23:17:41 +02:00
mmbyday
c840549db5 Add copyright headers 2019-05-01 13:53:04 -07:00
mmbyday
119d91ab80 labelSubHeader: fix width bug 2019-04-30 22:59:08 -07:00
mmbyday
b74aa1a585 dialogs: fix titlebar disabledness 2019-04-30 22:00:39 -07:00
mmbyday
171e1fc023 Fix checking for gui updates 2019-04-30 18:43:37 -07:00
luigi1111
97cd215491 Merge pull request #2131
83e4343 Transfer: warn when sending to a known long PID service (selsta)
2019-04-30 15:46:38 -05:00
selsta
83e434395b Transfer: warn when sending to a known long PID service 2019-04-30 22:45:11 +02:00
luigi1111
afd9449b1d Merge pull request #2136
ed0bccc LeftPanel: don't change font size if balance is hidden (selsta)
2019-04-30 15:40:39 -05:00
luigi1111
7ee0f5907f Merge pull request #2135
e9df885 Merchant: fix title bar with custom decorations turned off (selsta)
2019-04-30 15:39:48 -05:00
luigi1111
18f7c43fff Merge pull request #2134
e910e40 repo: cleanup unused files (selsta)
2019-04-30 15:38:57 -05:00
luigi1111
de257c0ab2 Merge pull request #2132
b1ceaea add missing language files for Greek (_el) and Nepali (_ne) (Monero-Pootle)
ca2356f round of translations + refresh template and language files (Monero-Pootle)
2019-04-30 15:28:28 -05:00
luigi1111
060a718b0c Merge pull request #2128
607b1f8 logging: initial log level set by ENV var (ph4r05)
2019-04-30 15:27:03 -05:00
luigi1111
8d9f33b5aa Merge pull request #2127
131c427 passworddialog: replace eye with font awesome (mmbyday)
2019-04-30 15:25:59 -05:00
luigi1111
5062886815 Merge pull request #2125
d37de31 sign: use radiobuttons to change modes (mmbyday)
2019-04-30 15:25:05 -05:00
luigi1111
7dfc6ceef5 Merge pull request #2124
5f38dbb wizard: fix non-existent property backTransition (mmbyday)
2019-04-30 15:23:56 -05:00
luigi1111
7daff4c13a Merge pull request #2117
b2a7cb3 macOS: enable fullscreen support (selsta)
2019-04-30 15:22:41 -05:00
luigi1111
6b54017f08 Merge pull request #2092
9b7adfc transfer: change description/pid checkbox (mmbyday)
2019-04-30 15:20:51 -05:00
luigi1111
776d0ab33d Merge pull request #2029
18f2acc IPC and custom protocol handler for monero:// (xmrdsc)
2019-04-30 15:20:05 -05:00
selsta
e910e40d0b repo: cleanup unused files 2019-04-30 03:10:51 +02:00
selsta
ed0bccc7e2 LeftPanel: don't change font size if balance is hidden 2019-04-30 02:48:34 +02:00
selsta
e9df885b26 Merchant: fix title bar with custom decorations turned off 2019-04-30 02:34:27 +02:00
selsta
cb4a9daca2 RightPanel: cleanup from repo 2019-04-30 02:14:11 +02:00
mmbyday
131c42701c passworddialog: replace eye with font awesome 2019-04-29 12:39:11 -07:00
dsc
18f2accc7f IPC and custom protocol handler for monero:// 2019-04-29 19:56:46 +02:00
Monero-Pootle
ca2356f509 round of translations + refresh template and language files 2019-04-29 14:36:07 +00:00
Monero-Pootle
b1ceaea4ac add missing language files for Greek (_el) and Nepali (_ne) 2019-04-29 14:36:00 +00:00
Dusan Klinec
607b1f8ede logging: initial log level set by ENV var 2019-04-29 14:26:34 +02:00
selsta
b2a7cb3d40 macOS: enable fullscreen support 2019-04-29 13:38:20 +02:00
mmbyday
5f38dbb7dd wizard: fix non-existent property backTransition 2019-04-28 23:44:08 -07:00
luigi1111
ff6ce6294b Merge pull request #2122
3658bf8 build: link against QtSVG module to enable SVG format support (xiphon)
2019-04-28 22:06:01 -05:00
luigi1111
03ade34cc7 Merge pull request #2121
6d60785 build: Mac OS X link CoreFoundation framework for static libhidapi (xiphon)
2019-04-28 22:05:18 -05:00
luigi1111
c8a3e29f9f Merge pull request #2120
91da476 wizard: reset remote node when switching network type (selsta)
2019-04-28 22:04:26 -05:00
luigi1111
cc5aab8c5f Merge pull request #2119
4ab1816 Mining: fix newline (selsta)
2019-04-28 22:03:37 -05:00
luigi1111
002404227f Merge pull request #2118
e6a8fcd Clean up m_wallet before opening new wallets (xmrdsc)
2019-04-28 22:02:44 -05:00
luigi1111
dff0a07a8a Merge pull request #2116
7ab8b4f SettingsLayout: userInactivitySliderTimer is not defined (selsta)
2019-04-28 21:58:45 -05:00
luigi1111
5f6a0d81de Merge pull request #2115
c92c362 components: remove show() from password dialogs (selsta)
2019-04-28 21:57:32 -05:00
luigi1111
e06e7d3e07 Merge pull request #2085
0e65f25 Update README.md for Qt 5.9.7 (xmrdsc)
2019-04-28 21:55:32 -05:00
luigi1111
78d8f1992b Merge pull request #2071
e84f462 Back transitions for the wizards (xmrdsc)
2019-04-28 21:54:43 -05:00
luigi1111
36b0900589 Merge pull request #2041
1644d3e Windows installer: Set up 'monero:' and 'moneroseed:' custom URI schemes (rbrunner7)
2019-04-28 21:53:35 -05:00
mmbyday
d37de31b35 sign: use radiobuttons to change modes 2019-04-27 21:47:25 -07:00
xiphon
3658bf8c53 build: link against QtSVG module to enable SVG format support 2019-04-28 01:40:21 +00:00
xiphon
6d60785800 build: Mac OS X link CoreFoundation framework for static libhidapi 2019-04-28 01:17:08 +00:00
selsta
91da476cb3 wizard: reset remote node when switching network type 2019-04-28 00:11:14 +02:00
selsta
4ab1816e1a Mining: fix newline 2019-04-27 23:47:44 +02:00
mmbyday
9b7adfc0a8 transfer: change description/pid checkbox 2019-04-26 02:03:50 -07:00
dsc
e6a8fcd6cc Clean up m_wallet before opening new wallets 2019-04-26 02:45:07 +02:00
dsc
e84f4623d8 Back transitions for the wizards 2019-04-26 01:53:42 +02:00
selsta
7ab8b4fac7 SettingsLayout: userInactivitySliderTimer is not defined 2019-04-25 23:41:55 +02:00
selsta
c92c3627a6 components: remove show() from password dialogs 2019-04-25 23:11:56 +02:00
luigi1111
e81cb7e640 Merge pull request #2081
99365fa Dynamic height for the settings->wallet (xmrdsc)
2019-04-25 16:01:42 -05:00
xmrdsc
0e65f25406 Update README.md for Qt 5.9.7 2019-04-25 23:00:22 +02:00
xmrdsc
99365fadf0 Dynamic height for the settings->wallet 2019-04-25 22:55:46 +02:00
luigi1111
7d9a698732 Merge pull request #2078
74dbe8b Account/Receive: update design (selsta)
2019-04-25 15:37:59 -05:00
selsta
74dbe8bfcb Account/Receive: update design 2019-04-25 22:36:02 +02:00
luigi1111
edaa28cc23 Merge pull request #2086
4b9da83 Change settings navbar text: Layout -> Interface (xmrdsc)
2019-04-25 15:33:06 -05:00
luigi1111
6477e18040 Merge pull request #2083
b8d2d05 Hide certain information from the transactions page if there are no transactions yet (xmrdsc)
2019-04-25 15:30:43 -05:00
luigi1111
9ce7c86558 Merge pull request #2073
a6525e7 wizard/device: hide splash screen (selsta)
2019-04-25 15:29:19 -05:00
luigi1111
36ec1a1c56 Merge pull request #2070
baff7f2 Animation slow down for debugging (xmrdsc)
2019-04-25 15:28:28 -05:00
luigi1111
b0ba2379f4 Merge pull request #2069
62285b0 Remove scaleRatio (xmrdsc)
2019-04-25 15:27:19 -05:00
luigi1111
5887f87677 Merge pull request #2058
247f129 Use Slider.onMoved for inactivity slider, remove Timer (xmrdsc)
2019-04-25 15:26:19 -05:00
xmrdsc
4b9da8385b Change settings navbar text: Layout -> Interface 2019-04-25 21:16:13 +02:00
xmrdsc
b8d2d05fce Hide certain information from the transactions page if there are no transactions yet 2019-04-25 21:13:41 +02:00
dsc
62285b01dc Remove scaleRatio 2019-04-25 21:09:23 +02:00
selsta
a6525e74e6 wizard/device: hide splash screen 2019-04-25 20:53:28 +02:00
xmrdsc
baff7f213f Animation slow down for debugging 2019-04-25 20:48:12 +02:00
luigi1111
e1c429110f Merge pull request #2096
f9dec6e wizard: replace icon with Font Awesome version (selsta)
2019-04-25 13:32:02 -05:00
selsta
f9dec6e882 wizard: replace icon with Font Awesome version 2019-04-25 20:29:53 +02:00
luigi1111
fd230789e9 Merge pull request #2113
035887d Activate Hindi language (erccicione)
2019-04-25 13:15:32 -05:00
luigi1111
f37a17581e Merge pull request #2111
24e7307 components: hide password on dialog opening (selsta)
2019-04-25 13:14:36 -05:00
luigi1111
8fd8bdcb2f Merge pull request #2107
04d0b14 InlineButton: fix warning and set font (selsta)
2019-04-25 13:12:40 -05:00
luigi1111
528aba8724 Merge pull request #2095
507441f History: improve human readable time format (selsta)
2019-04-25 13:08:00 -05:00
luigi1111
fb4dfd0ea8 Merge pull request #2060
42f7afa White theme (xmrdsc)
2019-04-25 13:05:54 -05:00
erciccione
035887d3be Activate Hindi language 2019-04-24 17:58:13 +02:00
selsta
24e7307a93 components: hide password on dialog opening 2019-04-24 14:14:36 +02:00
dsc
42f7afaefd White theme 2019-04-24 05:37:35 +02:00
selsta
04d0b14152 InlineButton: fix warning and set font 2019-04-23 23:21:47 +02:00
luigi1111
358e1d23fa Merge pull request #2106
7b7996d qrcodescanner: update icon with font awesome (mmbyday)
2019-04-23 15:34:24 -05:00
luigi1111
ba0f7fc9f6 Merge pull request #2105
45efb41 wizard: allow viewonly wallet restores (mmbyday)
2019-04-23 15:33:33 -05:00
luigi1111
b39f041177 Merge pull request #2103
1f90854 support user defined max-concurrency (xmrdsc)
2019-04-23 15:32:42 -05:00
luigi1111
4b324bb719 Merge pull request #2102
ee87122 wizardhome: fix network dropdown (mmbyday)
2019-04-23 15:30:08 -05:00
luigi1111
8cd97e807c Merge pull request #2098
c721670 main: remove unused openWalletFromFile and fileDialog code (xiphon)
2019-04-23 15:29:08 -05:00
luigi1111
f56d3ea590 Merge pull request #2097
ed603f3 device: fix hardware wallet creation / restore height (xiphon)
2019-04-23 15:28:16 -05:00
luigi1111
5d7102efd2 Merge pull request #2094
024abdb Merchant: remove unintentional file and add emptryString (selsta)
2019-04-23 14:06:21 -05:00
luigi1111
340b0836ff Merge pull request #2090
a6f7b13 wizard: don't translate hardware wallet names (selsta)
2019-04-23 14:04:31 -05:00
luigi1111
4926ee790b Merge pull request #2080
7f1fa6b Transfer: warn if description is a valid PID (selsta)
2019-04-23 14:01:44 -05:00
mmbyday
7b7996dc66 qrcodescanner: update icon with font awesome 2019-04-22 19:31:29 -07:00
mmbyday
45efb415cd wizard: allow viewonly wallet restores 2019-04-21 13:09:12 -07:00
mmbyday
ee87122d5b wizardhome: fix network dropdown 2019-04-21 12:26:55 -07:00
xmrdsc
1f908547e3 support user defined max-concurrency 2019-04-21 18:39:00 +02:00
xiphon
c721670098 main: remove unused openWalletFromFile and fileDialog code 2019-04-20 05:47:01 +00:00
xiphon
ed603f310e device: fix hardware wallet creation / restore height 2019-04-20 05:38:55 +00:00
selsta
507441f8b6 History: improve human readable time format 2019-04-19 14:20:26 +02:00
selsta
024abdb46f Merchant: remove unintentional file and add emptryString 2019-04-19 13:35:15 +02:00
René Brunner
1644d3eb17 Windows installer: Set up 'monero:' and 'moneroseed:' custom URI schemes 2019-04-18 18:19:00 +02:00
luigi1111
10926644bf Merge pull request #2088
15a5f76 add missing TranslationManager.emptyString (selsta)
2019-04-16 16:54:17 -04:00
luigi1111
e760d33dad Merge pull request #2084
c03ea40 Add Fedora requirements (xmrdsc)
2019-04-16 16:53:28 -04:00
luigi1111
2e4b7450ac Merge pull request #2079
5527507 repo: remove unused components/images (selsta)
2019-04-16 16:51:58 -04:00
luigi1111
09a89d8f4e Merge pull request #2076
71c3dd3 build: Linux static OpenSSL linking, add default OpenSSL lib path (xiphon)
2019-04-16 16:51:11 -04:00
luigi1111
f61a242f66 Merge pull request #2066
55fd233 readme: update link to pootle, add guide for translators, update copyright year (erciccione)
2019-04-16 16:50:23 -04:00
luigi1111
29e0f7c68f Merge pull request #2065
9c4688b PasswordDialog: don't always show() (mmbyday)
2019-04-16 16:49:25 -04:00
luigi1111
32d9c8f661 Merge pull request #2064
34fdfcb Use pkg-config to find libusb and protobuf (Trezor dependencies) (prusnak)
2019-04-16 16:48:18 -04:00
luigi1111
221a49a823 Merge pull request #2057
bd2687c flickable for wizardController (xmrdsc)
2019-04-16 16:47:31 -04:00
luigi1111
c30fd82636 Merge pull request #2056
7b0bdb1 wizard: fix clearing of restore wallet fields (mmbyday)
2019-04-16 16:46:37 -04:00
selsta
a6f7b13389 wizard: don't translate hardware wallet names 2019-04-16 16:53:35 +02:00
selsta
5527507115 repo: remove unused components/images 2019-04-16 16:44:00 +02:00
selsta
7f1fa6bbd6 Transfer: warn if description is a valid PID 2019-04-16 16:36:46 +02:00
selsta
15a5f76334 add missing TranslationManager.emptyString 2019-04-16 16:35:30 +02:00
xmrdsc
c03ea40552 Add Fedora requirements 2019-04-16 15:40:26 +02:00
xiphon
71c3dd3515 build: Linux static OpenSSL linking, add default OpenSSL lib path 2019-04-16 00:52:28 +00:00
erciccione
55fd2332ed readme: update link to pootle, add guide for translators, update copyright year 2019-04-14 11:05:12 +02:00
mmbyday
63ee61b8c4 transfer: make simple mode more simple 2019-04-12 21:36:13 -07:00
mmbyday
9c4688b3f0 PasswordDialog: don't always show() 2019-04-11 22:14:44 -07:00
dsc
bd2687c22f flickable for wizardController 2019-04-11 20:05:09 +02:00
mmbyday
7b0bdb1750 wizard: fix clearing of restore wallet fields 2019-04-11 01:28:19 -07:00
Pavol Rusnak
34fdfcb458 Use pkg-config to find libusb and protobuf (Trezor dependencies) 2019-04-10 22:10:32 +02:00
luigi1111
d2c47606ca Merge pull request #2061
568b78d Remove unused image, fix js/Utils.js, requires #5355 (xmrdsc)
2019-04-09 23:26:21 -04:00
dsc
568b78df81 Remove unused image, fix js/Utils.js, requires #5355 2019-04-09 15:27:28 +02:00
luigi1111
d72284dc0e Merge pull request #2025
7611e82 History redesign (xmrdsc)
2019-04-08 15:32:20 -04:00
dsc
7611e826aa History redesign 2019-04-08 21:28:51 +02:00
luigi1111
98a7a9e663 Merge pull request #2055
1e6e928 AddressBook: redesign (selsta)
2019-04-08 14:42:17 -04:00
selsta
1e6e928995 AddressBook: redesign 2019-04-08 20:40:35 +02:00
luigi1111
723ad8c8ae Merge pull request #2052
6833275 wizard: small UI fix (selsta)
2019-04-08 14:37:54 -04:00
luigi1111
c596e49a04 Merge pull request #2050
f7af87e Add compiled qml/js cache to gitignore (xmrdsc)
2019-04-08 14:36:33 -04:00
luigi1111
cd65cc12da Merge pull request #2037
1a2675b async device open and create from device, passphrase (ph4r05)
2019-04-08 14:35:29 -04:00
luigi1111
2f22503c8b Merge pull request #1822
5dbcd71 PasswordDialog: add CAPSLOCK checking (mmbyday)
2019-04-08 14:33:59 -04:00
dsc
247f129a24 Use Slider.onMoved for inactivity slider, remove Timer 2019-04-08 04:13:29 +02:00
Dusan Klinec
1a2675b246 async device open and create from device, passphrase
- passphrase entry on host added, requires early listener setting monero pull #5355
- wallet open and create from device shows splash to indicate possible long process
- create from device is async to support passphrase entry
2019-04-06 14:52:14 +02:00
selsta
6833275b2a wizard: small UI fix 2019-04-03 20:42:24 +02:00
luigi1111
19c2208dc4 Merge pull request #2019
9074633 device: Trezor support added (ph4r05)
2019-04-03 14:36:34 -04:00
luigi1111
82cf31010a Merge pull request #2049
49a3ead build: set monero submodule to master (selsta)
2019-04-03 14:32:00 -04:00
luigi1111
d3ad848ea1 Merge pull request #2035
8412218  README: update brew boost installation step (selsta)
2019-04-03 14:30:52 -04:00
luigi1111
f3cc2818c5 Merge pull request #2012
c2f1d01 main: automatically fix common wallet cache errors (mmbyday)
2019-04-03 14:27:34 -04:00
luigi1111
91d4470295 Merge pull request #1997
5403b94 Fix double titlebar (MaxXor)
2019-04-03 14:26:33 -04:00
xmrdsc
f7af87e57b Add compiled qml/js cache to gitignore 2019-04-03 18:11:25 +02:00
mmbyday
5dbcd714ea PasswordDialog: add CAPSLOCK checking 2019-04-02 13:18:16 -07:00
selsta
49a3eadd61 build: set monero submodule to master 2019-04-02 16:59:29 +02:00
luigi1111
d4d8ff54e6 Merge pull request #2036
51e48db addressbook description should not be richtext (xmrdsc)
2019-03-26 19:35:16 -04:00
dsc
51e48db6e5 addressbook description should not be richtext 2019-03-26 23:23:28 +01:00
selsta
8412218f70 README: update brew boost installation step 2019-03-26 12:26:07 +01:00
luigi1111
4bab4c510c Merge pull request #2022
190e2eb round of translations (about 600 strings) (Monero-Pootle)
2019-03-21 16:18:24 -04:00
luigi1111
d3d8e9fd0d Merge pull request #2021
e80e1b4 fix restore height option for hardware wallet restore (lacksfish)
2019-03-21 16:16:20 -04:00
luigi1111
11468d44be Merge pull request #2016
f5aec0e main: fix refreshing of language fields (mmbyday)
2019-03-21 16:15:21 -04:00
luigi1111
9c8b123fe5 Merge pull request #2015
e5bdf34 historytable: fix blockheight copying (mmbyday)
2019-03-21 16:14:34 -04:00
luigi1111
38788aab43 Merge pull request #2014
d6f8834 mining: fix layout issues (mmbyday)
2019-03-21 16:13:46 -04:00
luigi1111
9f53353b07 Merge pull request #2011
3562ab1 settingsnode: fix trusted node flag (mmbyday)
2019-03-21 16:13:02 -04:00
luigi1111
5c19a4d46f Merge pull request #1999
e664549 makes placeholder string untranslatable (erciccione)
2019-03-21 16:12:11 -04:00
luigi1111
3b791035bf Merge pull request #1976
dc5028f SettingsInfo: allow a date for restore height (selsta)
2019-03-21 16:11:08 -04:00
luigi1111
c47fed96b0 Merge pull request #1971
1ff1091 transfer, merchant: placehodler text for amount (mmbyday)
2019-03-21 16:10:15 -04:00
luigi1111
072d0dea24 Merge pull request #1965
01844ef transfer: messaging for disabled send button (mmbyday)
2019-03-21 16:09:13 -04:00
Monero-Pootle
190e2eb9ab round of translations (about 600 strings) 2019-03-17 18:49:54 +00:00
lacksfish
e80e1b4c1f fix restore height option for hardware wallet restore 2019-03-17 05:40:26 +01:00
Dusan Klinec
9074633751 device: Trezor support added 2019-03-15 14:21:37 +01:00
mmbyday
f5aec0eba9 main: fix refreshing of language fields 2019-03-12 18:53:56 -07:00
mmbyday
e5bdf34325 historytable: fix blockheight copying 2019-03-12 18:11:56 -07:00
mmbyday
d6f88349b9 mining: fix layout issues 2019-03-12 16:32:11 -07:00
mmbyday
c2f1d0168b main: automatically fix common wallet cache errors 2019-03-12 00:25:46 -07:00
mmbyday
3562ab1444 settingsnode: fix trusted node flag 2019-03-11 22:51:12 -07:00
erciccione
e664549f43 makes placeholder string untranslatable 2019-03-09 15:15:36 +01:00
MaxXor
5403b94f2e Fix double titlebar 2019-03-07 15:23:23 +01:00
luigi1111
02e1663471 Merge pull request #1991
2438b20 resync translations for 0.14.0 (round two) (erciccione)
2019-03-01 15:04:09 -06:00
erciccione
2438b20cf1 resync translations for 0.14.0 (round two) 2019-03-01 13:41:31 +01:00
luigi1111
287e379a24 Merge pull request #1990
0d24f64 invalidate wallet name after creation (xmrdsc)
2019-03-01 02:40:18 -06:00
luigi1111
cd9e1bf0ea Merge pull request #1989
fc68567 wizard: improve restore from device ui/ux (selsta)
2019-03-01 02:38:52 -06:00
luigi1111
39b0fa18e1 Merge pull request #1987
e729cd2 settingslayout: fix change language button does not change language (mmbyday)
2019-03-01 02:37:32 -06:00
luigi1111
5ce689972e Merge pull request #1981
3f0241a Revert 'Dont show message on simple mode disconnect/reconnect' (selsta)
2019-03-01 02:36:05 -06:00
dsc
0d24f642c3 invalidate wallet name after creation 2019-03-01 09:13:36 +01:00
selsta
fc68567f23 wizard: improve restore from device ui/ux 2019-03-01 08:37:35 +01:00
luigi1111
f7ac041b4e Merge pull request #1986
2af79ca Translations for 0.14.0 (Monero-Pootle)
1eadb1d wizard: allow restore height when creating wallet from device (mmbyday)
2019-02-28 22:24:30 -06:00
luigi1111
7fd1f8e025 Merge pull request #1985
61af76f wizard: allow restore height when creating wallet from device (mmbyday)
2019-02-28 16:59:50 -06:00
mmbyday
e729cd233c settingslayout: fix change language button does not change language 2019-02-28 14:44:11 -08:00
mmbyday
1eadb1dbf8 wizard: allow restore height when creating wallet from device 2019-02-28 21:49:19 +00:00
Monero-Pootle
2af79ca8b5 Translations for 0.14.0
Translations submitted on translate.getmonero.org. Before opening this PR all strings were synced to the codebase
2019-02-28 21:49:11 +00:00
luigi1111
effa019053 Merge pull request #1983
15f56e4 Update get_libwallet_api.sh, set submodule to release-v0.13 (xmrdsc)
2019-02-28 13:47:17 -06:00
luigi1111
b93b201eb3 Merge pull request #1980
e516a80 Removing HTTPs for Windows (xmrdsc)
2019-02-28 13:46:11 -06:00
mmbyday
61af76fcb8 wizard: allow restore height when creating wallet from device 2019-02-28 11:23:19 -08:00
dsc
15f56e4cea Update get_libwallet_api.sh, set submodule to release-v0.13 2019-02-28 18:14:52 +01:00
dsc
e516a8060a Removing HTTPs for Windows 2019-02-28 15:15:05 +01:00
selsta
3f0241a039 Revert "Dont show message on simple mode disconnect/reconnect"
This reverts commit 632423da07.
2019-02-28 13:08:41 +01:00
luigi1111
07df0f41bf Merge pull request #1977
c80bc12 Receive: change account -> address in string (selsta)
2019-02-27 17:40:36 -06:00
selsta
c80bc12284 Receive: change account -> address in string
Also remove stray spaces.
2019-02-27 23:18:24 +01:00
luigi1111
cf3f785fa2 Merge pull request #1975
87e93e1 Settings: fix create view only wallet button (selsta)
2019-02-27 14:43:29 -06:00
selsta
dc5028f019 SettingsInfo: allow a date for restore height 2019-02-27 00:26:16 +01:00
selsta
87e93e1b08 Settings: fix create view only wallet button 2019-02-27 00:08:30 +01:00
luigi1111
42103432b7 Merge pull request #1970
891ea15 SettingsWallet: hide creating a view wallet for viewOnly wallets (mmbyday)
2019-02-25 14:42:06 -06:00
luigi1111
842fe0d5f7 Merge pull request #1969
9b17235 sign, receive: fix reference errors (mmbyday)
2019-02-25 14:41:10 -06:00
luigi1111
94c50199ea Merge pull request #1968
6a7d42f LineEditMulti: fix binding loop (xiphon)
2019-02-25 14:39:53 -06:00
luigi1111
c2091e3a33 Merge pull request #1966
d3400db wizardController: cleanup restart variables (mmbyday)
2019-02-25 14:39:04 -06:00
luigi1111
a22203573f Merge pull request #1963
89d87b6 Add high-res images for mode selection wizard icons (xmrdsc)
2019-02-25 14:38:00 -06:00
luigi1111
0a5e87d007 Merge pull request #1962
05f0f82 Save wallet password (xmrdsc)
2019-02-25 14:36:45 -06:00
luigi1111
a237d16f7d Merge pull request #1961
632423d Dont show message on simple mode disconnect/reconnect (xmrdsc)
2019-02-25 14:33:04 -06:00
mmbyday
1ff1091ea4 transfer, merchant: placehodler text for amount 2019-02-25 12:17:54 -08:00
mmbyday
891ea158dc SettingsWallet: hide creating a view wallet for viewOnly wallets 2019-02-25 11:22:30 -08:00
mmbyday
9b17235533 sign, receive: fix reference errors 2019-02-25 09:45:06 -08:00
xiphon
6a7d42f3de LineEditMulti: fix binding loop 2019-02-25 17:24:17 +00:00
mmbyday
d3400db5c0 wizardController: cleanup restart variables 2019-02-25 08:30:59 -08:00
mmbyday
01844efaa7 transfer: messaging for disabled send button 2019-02-25 08:15:08 -08:00
dsc
89d87b66d4 Add high-res images for mode selection wizard icons 2019-02-25 16:24:34 +01:00
dsc
05f0f82bdc Save wallet password 2019-02-25 16:15:52 +01:00
dsc
632423da07 Dont show message on simple mode disconnect/reconnect 2019-02-25 16:07:03 +01:00
luigi1111
a89ffd02d0 Merge pull request #1959
47fcd31 wizardsummary: hide restore height when creating new wallet (mmbyday)
2019-02-25 04:52:16 -06:00
luigi1111
eb71974e73 Merge pull request #1958
3ac8772 addressbook: fix placeholder text for stagenet/testnet (mmbyday)
2019-02-25 04:51:12 -06:00
luigi1111
c7542932f0 Merge pull request #1956
341c00b Main: fix changing language from settings (mmbyday)
2019-02-25 04:50:21 -06:00
mmbyday
47fcd31806 wizardsummary: hide restore height when creating new wallet 2019-02-24 13:45:10 -08:00
mmbyday
341c00b15c Main: fix changing language from settings 2019-02-24 13:34:37 -08:00
mmbyday
3ac8772546 addressbook: fix placeholder text for stagenet/testnet 2019-02-24 13:25:11 -08:00
luigi1111
f3a47dbff8 Merge pull request #1953
9bc3bbd Windows installer: Update for Boron Butterfly 0.14.0.0 (rbrunner7)
2019-02-24 10:30:20 -06:00
luigi1111
944ab59642 Merge pull request #1952
fd842bb StandardButton: fix button appearance on Qt 5.7 (xiphon)
2019-02-24 10:29:29 -06:00
luigi1111
d9c2b34d3f Merge pull request #1951
30d8ba7 Fix color for daemon settings radiobutton (xmrdsc)
2019-02-24 10:28:48 -06:00
luigi1111
ecb683bd94 Merge pull request #1949
3dc04b0 Replace language sidebar with a dedicated language screen (xmrdsc)
2019-02-24 10:27:44 -06:00
luigi1111
64718235c7 Merge pull request #1947
08ec5e9 wizard: fix restore from key and seed functionality (mmbyday)
2019-02-24 10:16:36 -06:00
René Brunner
9bc3bbd966 Windows installer: Update for Boron Butterfly 0.14.0.0 2019-02-24 08:09:22 +01:00
xiphon
fd842bb9e4 StandardButton: fix button appearance on Qt 5.7 2019-02-24 09:21:34 +03:00
dsc
30d8ba72d1 Fix color for daemon settings radiobutton 2019-02-24 07:00:58 +01:00
dsc
3dc04b0df3 Replace language sidebar with a dedicated language screen 2019-02-24 06:31:01 +01:00
mmbyday
08ec5e99ac wizard: fix restore from key and seed functionality 2019-02-23 10:02:51 -08:00
luigi1111
c2889c2b81 Merge pull request #1909
f329a71 Wizard redesign (xmrdsc)
c6107d8 wizard: allow calendar date for restoration height (mmbyday)
2019-02-22 11:30:58 -06:00
mmbyday
c6107d8376 wizard: allow calendar date for restoration height 2019-02-22 03:05:29 +01:00
dsc
f329a71029 Wizard redesign 2019-02-22 03:05:27 +01:00
luigi1111
333f4aaf83 Merge pull request #1944
235a1ee Address input field indicative text based on nettype (xmrdsc)
2019-02-21 14:16:33 -06:00
luigi1111
f2b4c468a2 Merge pull request #1943
3aff7dd Fix default daemon/remote node RPC port based on the network type (xiphon)
2019-02-21 14:15:39 -06:00
luigi1111
7a5456e3e4 Merge pull request #1939
bd42200 settingsnode: enable trusted daemon option (mmbyday)
2019-02-21 14:13:38 -06:00
luigi1111
a219eb5d47 Merge pull request #1928
2c64769 Add Font-Awesome (xmrdsc)
2019-02-21 14:12:26 -06:00
dsc
235a1ee4b0 Address input field indicative text based on nettype 2019-02-20 06:29:44 +01:00
xiphon
3aff7ddcef Fix default daemon/remote node RPC port based on the network type 2019-02-17 14:40:03 +00:00
mmbyday
bd42200a29 settingsnode: enable trusted daemon option 2019-02-16 21:19:37 -08:00
luigi1111
0064e595c3 Merge pull request #1936
f91b38f Revert 02493be (xiphon)
2019-02-14 11:18:07 -06:00
luigi1111
b1ae99c3df Merge pull request #1870
d369040 openalias: usuability improvements on addressbook/transfer page (mmbyday)
2019-02-14 11:15:26 -06:00
xiphon
f91b38ff53 Revert "Bring back paymentID to tranfer page and force hide paymentId on a settings toggle (and reset fields on transfer page)"
This reverts commit 02493be6eb.
2019-02-12 13:42:22 +03:00
mmbyday
d36904096d openalias: usuability improvements on addressbook/transfer page 2019-02-06 22:19:56 -08:00
luigi1111
ed760cfc82 Merge pull request #1932
27285d0 HistoryTable: fix time alignment (selsta)
2019-02-06 16:12:55 -06:00
luigi1111
b5f63184a9 Merge pull request #1931
fe959dc warningbox: make text readonly (mmbyday)
2019-02-06 16:11:34 -06:00
luigi1111
bb14eeb4fc Merge pull request #1930
57ade04 transfer: fix non-existent property cursorPosition (mmbyday)
2019-02-06 16:09:55 -06:00
luigi1111
9e0311fa3d Merge pull request #1929
a3128c9 Cleanup advanced pages (xmrdsc)
2019-02-06 16:08:45 -06:00
luigi1111
3caa1c6840 Merge pull request #1923
d76330d Merchant: fix checkbox (mmbyday)
2019-02-06 16:06:20 -06:00
luigi1111
64df6a027e Merge pull request #1914
28332f5 Receive: update subaddress table design (selsta)
2019-02-06 16:04:55 -06:00
luigi1111
8850661b6c Merge pull request #1856
ecb6949 StandardDialog: make scrollable + close button (mmbyday)
2019-02-06 16:02:12 -06:00
luigi1111
b4e19cb3e8 Merge pull request #1807
6fa805d qrscanner: update addressbook and transfer UI (mmbyday)
2019-02-06 15:59:10 -06:00
selsta
27285d04dd HistoryTable: fix time alignment 2019-02-04 05:37:05 +01:00
mmbyday
57ade0406e transfer: fix non-existent property cursorPosition 2019-02-01 17:43:40 -08:00
mmbyday
fe959dceb4 warningbox: make text readonly 2019-02-01 17:38:46 -08:00
mmbyday
6fa805df62 qrscanner: update addressbook and transfer UI 2019-02-01 15:39:41 -08:00
dsc
a3128c9103 Cleanup advanced pages 2019-02-01 22:20:38 +01:00
dsc
2c64769a51 Add Font-Awesome 2019-02-01 18:18:06 +01:00
mmbyday
d76330d32a Merchant: fix checkbox 2019-02-01 00:37:09 -08:00
selsta
28332f54e6 Receive: update subaddress table design 2019-02-01 08:22:03 +01:00
luigi1111
c7f3deb5cc Merge pull request #1922
8eb4f0d Force save daemon flags (xmrdsc)
515d051 daemonFlags input: fillWidth and force wrap (multiline) (xmrdsc)
2019-02-01 01:11:18 -06:00
luigi1111
0ac4c8c07d Merge pull request #1921
9b5b241 History: omit redundant 'Cancel' button in confirmation dialog (xiphon)
2019-02-01 01:09:58 -06:00
luigi1111
f8008002f6 Merge pull request #1920
da3eae2 Dynamic monerod --max-concurrency, max 6 (xmrdsc)
2019-02-01 01:09:04 -06:00
luigi1111
666dee9bd8 Merge pull request #1916
02493be Bring back paymentID to tranfer page and force hide paymentId on a settings toggle (and reset fields on transfer page) (xmrdsc)
2019-02-01 01:07:47 -06:00
luigi1111
225abb3144 Merge pull request #1913
15b7fe1 layout: fix top margin on various pages (selsta)
2019-02-01 01:06:31 -06:00
luigi1111
d2113686ab Merge pull request #1907
eec1560 IconButton: fix mousearea and animation (selsta)
2019-02-01 01:05:32 -06:00
luigi1111
10d8fc01ea Merge pull request #1905
bd809ab add account support (selsta)
2019-02-01 01:04:38 -06:00
luigi1111
443e9c260d Merge pull request #1876
65f99c9 PasswordDialog: cancel button text is more descriptive and dynamic (mmbyday)
2019-02-01 01:02:36 -06:00
luigi1111
73d6b2744e Merge pull request #1872
4b78ef7 Use MoneroComponents for keys page and make warningbox selectable (xmrdsc)
2019-02-01 01:00:55 -06:00
luigi1111
b78968b9d5 Merge pull request #1861
d5a69cb history: enable set_tx_note (mmbyday)
2019-02-01 00:02:07 -06:00
dsc
515d051c6a daemonFlags input: fillWidth and force wrap (multiline) 2019-01-30 15:13:30 +01:00
dsc
8eb4f0db2a Force save daemon flags 2019-01-30 15:09:45 +01:00
dsc
da3eae20f0 Dynamic monerod --max-concurrency, max 6 2019-01-30 10:38:11 +01:00
xiphon
9b5b241163 History: omit redundant 'Cancel' button in confirmation dialog 2019-01-29 22:42:32 +03:00
dsc
02493be6eb Bring back paymentID to tranfer page and force hide paymentId on a settings toggle (and reset fields on transfer page) 2019-01-28 14:17:06 +01:00
skftn
4b78ef71dc Use MoneroComponents for keys page and make warningbox selectable 2019-01-24 09:07:19 +01:00
selsta
eec1560ead IconButton: fix mousearea and animation
Co-authored-by: mmbyday <mmbyday@protonmail.com>
2019-01-23 16:09:49 +01:00
selsta
bd809abc52 add account support
Co-authored-by: kenshi84 <kenshi84@protonmail.ch>
2019-01-22 23:07:30 +01:00
selsta
15b7fe159f layout: fix top margin on various pages 2019-01-22 15:10:53 +01:00
luigi1111
9689fff957 Merge pull request #1912
fd3280c CSV export functionality for transaction history (xmrdsc)
2019-01-21 15:04:28 -06:00
luigi1111
aa0742fe05 Merge pull request #1908
a84bdce tabs: cleanup from repo (selsta)
2019-01-21 15:03:07 -06:00
luigi1111
ea92e411c4 Merge pull request #1906
c963fac WalletManager: fix handling Payment URLs with empty amount (xiphon)
2019-01-21 15:02:22 -06:00
luigi1111
3577bef711 Merge pull request #1904
b758c79 AddressBook: hide 'Add' form when invoked from 'Send' tab (xiphon)
2019-01-21 15:01:25 -06:00
luigi1111
1593038224 Merge pull request #1889
c06870b repo: cleanup unused components (selsta)
2019-01-21 15:00:02 -06:00
luigi1111
7ff851aabc Merge pull request #1883
578f826 images: remove unused images (selsta)
2019-01-21 14:58:58 -06:00
selsta
c06870ba53 repo: cleanup unused components
- PrivacyLevel
- TickDelegate
2019-01-21 21:58:15 +01:00
luigi1111
2fbc3d7290 Merge pull request #1895
ae2c666 translations with pootle (translate.getmonero.org) (Monero-Pootle)
2019-01-21 14:57:53 -06:00
selsta
578f8261d7 images: remove unused images 2019-01-21 21:56:27 +01:00
luigi1111
2b3be5ef9a Merge pull request #1894
3840126 merchant: hide color stripe (selsta)
2d18821 merchant: round in ago() function (selsta)
aa82615 merchant: fix payment tracker sorting (selsta)
84c509c merchant: fix timezone offset (selsta)
2019-01-21 14:56:27 -06:00
luigi1111
b44bcffd6f Merge pull request #1891
fa64421 receive/wizard: fix warnings (mmbyday)
2019-01-21 14:55:03 -06:00
luigi1111
e68d922a0c Merge pull request #1886
bea033b SettingsWallet: readd change password button (selsta)
2019-01-21 14:53:45 -06:00
luigi1111
a6824c6802 Merge pull request #1885
f2749fa repo: cleanup unused pages and components (selsta)
2019-01-21 14:52:40 -06:00
luigi1111
8a4596ee47 Merge pull request #1884
310679c QML: fix various warnings (xiphon)
2019-01-21 14:51:43 -06:00
luigi1111
6404bf9bb3 Merge pull request #1881
52e5317 images: add more @2x high DPI versions (selsta)
2019-01-21 14:50:04 -06:00
luigi1111
7316716e15 Merge pull request #1879
bebb902 build: always checkout latest remote master (selsta)
2019-01-21 14:48:56 -06:00
luigi1111
90b0f4fa55 Merge pull request #1878
77cd521 Wizard/Device: set estimated restore height if none is provided (selsta)
2019-01-21 14:48:08 -06:00
luigi1111
f6ba2e28cb Merge pull request #1873
b26cbe8 HistoryTable: show address and address label in tx details (mmbyday)
2019-01-21 14:47:14 -06:00
luigi1111
442320bc36 Merge pull request #1866
bb37234 Transfer: disable long payment ids by default (selsta)
2019-01-21 14:45:48 -06:00
luigi1111
2207fd5b29 Merge pull request #1865
3c0f269 Transfer: remove ability to transfer with detached short payment ids (selsta)
2019-01-21 14:44:38 -06:00
luigi1111
eb028646b2 Merge pull request #1836
ba2815b receive: add 'Download QR-Code image' and 'Copy Payment URL' buttons (xiphon)
2019-01-21 14:43:35 -06:00
dsc
fd3280c254 CSV export functionality for transaction history 2019-01-21 04:50:43 +01:00
selsta
a84bdce356 tabs: cleanup from repo 2019-01-18 00:15:24 +01:00
xiphon
c963facc8c WalletManager: fix handling Payment URLs with empty amount 2019-01-16 18:01:11 +00:00
xiphon
b758c799d4 AddressBook: hide 'Add' form when invoked from 'Send' tab 2019-01-15 20:24:18 +00:00
selsta
bea033b18a SettingsWallet: readd change password button 2019-01-15 18:29:42 +01:00
xiphon
ba2815b6c9 receive: add "Download QR-Code image" and "Copy Payment URL" buttons 2019-01-10 15:07:39 +00:00
Monero-Pootle
ae2c666a49 translations with pootle (translate.getmonero.org) 2019-01-10 12:55:30 +00:00
selsta
84c509c00d merchant: fix timezone offset 2019-01-10 11:19:21 +01:00
selsta
aa82615374 merchant: fix payment tracker sorting
If the History page wasn't opened once
before opening the Merchant page,
sorting was messed up.
2019-01-10 11:19:16 +01:00
selsta
2d1882108f merchant: round in ago() function 2019-01-10 11:11:02 +01:00
selsta
38401262cf merchant: hide color stripe 2019-01-10 11:10:48 +01:00
mmbyday
b26cbe8101 HistoryTable: show address and address label in tx details 2019-01-09 23:15:21 -08:00
selsta
f2749fa1f0 repo: cleanup unused pages and components
- Dashboard
- TableHeader
- SearchInput
- DashboardTable
2019-01-10 06:58:43 +01:00
selsta
52e5317133 images: add more @2x high DPI versions
Thanks to knueffelbund for drawing the missing @2x graphics.

Co-authored-by: GBKS <chri@sto.ph>
2019-01-10 06:44:16 +01:00
mmbyday
fa64421f94 receive/wizard: fix warnings 2019-01-09 21:32:27 -08:00
xiphon
310679c680 QML: fix various warnings 2019-01-10 04:57:57 +03:00
luigi1111
36eb1f80e1 Merge pull request #1890
8022db3 Proof: don't round amounts received (selsta)
2019-01-09 17:52:26 -06:00
luigi1111
dc7a95c8d1 Merge pull request #1888
9aef631 Wizard: use one icon and add @2x version (selsta)
2019-01-09 17:50:41 -06:00
luigi1111
a6289ba0f5 Merge pull request #1887
cae85bc Wizard: remove grey triangle (selsta)
2019-01-09 17:49:47 -06:00
luigi1111
999c2d1faa Merge pull request #1882
1050883 DatePicker: use one icon and add @2x version (selsta)
2019-01-09 17:47:39 -06:00
luigi1111
cc22466fa3 Merge pull request #1875
b4b4149 add new unactivated languages (bn,fa,ga,kmr,ur,zu) (ericcione)
2019-01-09 17:46:31 -06:00
luigi1111
6eac7daac9 Merge pull request #1874
c2e2777 wizard: add copying seed to clipboard warning (mmbyday)
2019-01-09 17:45:30 -06:00
luigi1111
4b2df0418a Merge pull request #1867
600c5a7 mining: optimize update function, improve performance (mmbyday)
2019-01-09 17:44:31 -06:00
luigi1111
5a682b37ec Merge pull request #1793
85cd428 Merchant page (xmrdsc)
2019-01-09 17:43:31 -06:00
selsta
8022db34c6 Proof: don't round amounts received 2019-01-08 10:07:50 +01:00
selsta
9aef631a25 Wizard: use one icon and add @2x version 2019-01-08 06:55:22 +01:00
selsta
cae85bce85 Wizard: remove grey triangle 2019-01-08 06:17:01 +01:00
selsta
10508839cb DatePicker: use one icon and add @2x version 2019-01-07 11:06:52 +01:00
selsta
bebb902aeb build: always checkout latest remote master 2019-01-02 14:53:12 +01:00
selsta
77cd521ffe Wizard/Device: set estimated restore height if none is provided
requires #5034
2019-01-02 10:12:21 +01:00
erciccione
b4b4149173 add new unactivated languages (bn,fa,ga,kmr,ur,zu) 2018-12-30 16:45:50 +01:00
mmbyday
65f99c9cbc PasswordDialog: cancel button text is more descriptive and dynamic 2018-12-30 00:44:52 -08:00
mmbyday
c2e27772e4 wizard: add copying seed to clipboard warning 2018-12-29 23:19:28 -08:00
luigi1111
97de72b27d Merge pull request #1869
7fe69ca Receive: fix priority dropdown alignment (selsta)
2018-12-29 15:07:58 -06:00
luigi1111
4320ead7f8 Merge pull request #1868
57556bf sign: fix style references (mmbyday)
2018-12-29 15:06:34 -06:00
luigi1111
659b89936f Merge pull request #1821
a8a518d Keys: add clipboard warning (mmbyday)
2018-12-29 15:03:27 -06:00
luigi1111
f2fad10483 Merge pull request #1800
125e1d4 Logging: fix logging file paths (mmbyday)
2018-12-29 15:02:18 -06:00
dsc
85cd428dcb Merchant page 2018-12-29 18:08:21 +01:00
selsta
bb37234142 Transfer: disable long payment ids by default 2018-12-28 20:06:51 +01:00
selsta
7fe69cac94 Receive: fix priority dropdown alignment
Also remove unnecessary row layout.
2018-12-28 19:10:50 +01:00
mmbyday
57556bf73c sign: fix style references 2018-12-27 20:50:19 -08:00
mmbyday
600c5a76f1 mining: optimize update function, improve performance 2018-12-27 20:42:37 -08:00
selsta
3c0f269c64 Transfer: remove ability to transfer with detached short payment ids 2018-12-27 01:18:19 +01:00
luigi1111
48a267f631 Merge pull request #1863
c57b2ef PrivacyLevelSmall: fix variable shadowing (xiphon)
2018-12-26 16:14:47 -06:00
luigi1111
c038c8e40a Merge pull request #1860
530a815 mining: fix unable to assign to int warning (mmbyday)
2018-12-26 16:13:48 -06:00
luigi1111
e553376c82 Merge pull request #1858
e098a3f history: enable search by recipient address (mmbyday)
2018-12-26 16:13:00 -06:00
luigi1111
b3794a8ece Merge pull request #1857
c484157 HistoryTable: icon for mining reward transactions (mmbyday)
2018-12-26 16:12:12 -06:00
luigi1111
b88ac2baa9 Merge pull request #1855
55c3d07 Transfer: hide PaymentId and Description by default (xiphon)
2018-12-26 16:11:02 -06:00
luigi1111
f5b684811c Merge pull request #1854
548bc5f CheckBox: iconOnTheLeft property, optional uncheckedIcon and border, rich text format (xiphon)
2018-12-26 16:09:24 -06:00
luigi1111
1f2d2db1fe Merge pull request #1853
787234e LineEditMulti: fix showingHeader and padding (empty label case) (xiphon)
2018-12-26 16:08:10 -06:00
luigi1111
342f85a68f Merge pull request #1852
2b5f920 main: use custom daemon settings goes directly to settings>node page (mmbyday)
2018-12-26 16:06:14 -06:00
luigi1111
bd3721a8e0 Merge pull request #1851
da5dade keys: add text for viewonly wallet (mmbyday)
2018-12-26 16:04:49 -06:00
luigi1111
886cea3172 Merge pull request #1838
d8b40b6 build: fixes build with Trezor, requires #4945, on current monero master (ph4r05)
2018-12-26 16:03:09 -06:00
luigi1111
a2a4754982 Merge pull request #1826
7708b09 Sign: redesign page with message/file toggle (mmbyday)
2018-12-26 16:01:33 -06:00
mmbyday
d5a69cb638 history: enable set_tx_note 2018-12-25 11:52:41 -08:00
xiphon
c57b2ef12d PrivacyLevelSmall: fix variable shadowing 2018-12-25 19:44:37 +00:00
mmbyday
530a81563c mining: fix unable to assign to int warning 2018-12-24 09:53:06 -08:00
xiphon
55c3d07a14 Transfer: hide PaymentId and Description by default 2018-12-24 11:13:32 +03:00
mmbyday
ecb6949c30 StandardDialog: make scrollable + close button 2018-12-23 17:16:20 -08:00
mmbyday
e098a3f15e history: enable search by recipient address 2018-12-22 13:34:19 -08:00
mmbyday
c484157068 HistoryTable: icon for mining reward transactions 2018-12-21 21:36:30 -08:00
xiphon
548bc5f028 CheckBox: iconOnTheLeft property, optional uncheckedIcon and border, rich text format 2018-12-22 01:19:15 +03:00
mmbyday
da5dadec3b keys: add text for viewonly wallet 2018-12-21 10:18:49 -08:00
xiphon
787234e838 LineEditMulti: fix showingHeader and padding (empty label case) 2018-12-21 06:24:13 +00:00
mmbyday
2b5f920bc2 main: use custom daemon settings goes directly to settings>node page 2018-12-20 16:36:37 -08:00
mmbyday
7708b09ea2 Sign: redesign page with message/file toggle 🎨 2018-12-20 14:09:37 -08:00
luigi1111
002c800ee8 Merge pull request #1850
b38a93a Receive: fix subaddress alignment (selsta)
2018-12-20 14:37:14 -06:00
luigi1111
561ff356b8 Merge pull request #1849
6778742 openalias: handle address validation correctly (mmbyday)
2018-12-20 14:36:29 -06:00
luigi1111
806262a5a2 Merge pull request #1848
c2c1260 main: disable resize bar if custom decorations are off (selsta)
2018-12-20 14:35:16 -06:00
luigi1111
25b53782ab Merge pull request #1845
da6d01c MiddlePanel: fix scrollbar margin top/bottom (selsta)
2018-12-20 14:34:25 -06:00
luigi1111
d7f9ea7467 Merge pull request #1843
d2d4c21 SettingsLog: fix TextArea layout, border, scrollbar (xiphon)
2018-12-20 14:33:29 -06:00
luigi1111
d6981981d3 Merge pull request #1842
09a49f6 RadioButton: remove a gap between rectangle and text, fix layout (xiphon)
2018-12-20 14:32:27 -06:00
luigi1111
9477fe9286 Merge pull request #1841
50a9c00 images: add @2x high DPI versions (selsta)
2018-12-20 14:31:19 -06:00
luigi1111
1e4e9384eb Merge pull request #1830
84a6042 mining: add visual icon/indicator that mining is enabled, visible on all the screens (mmbyday)
2018-12-20 14:30:08 -06:00
luigi1111
7cf94734be Merge pull request #1820
09201b1 Clear text fields up switching wallets (mmbyday)
2018-12-20 14:28:29 -06:00
luigi1111
1e3c2f014c Merge pull request #1818
d10ce17 SettingsInfo: use MoneroComponents.StandardButton (mmbyday)
2018-12-20 14:27:29 -06:00
luigi1111
5d285452b3 Merge pull request #1814
5bebf83 Lock wallet on inactivity (xmrdsc)
2018-12-20 14:26:24 -06:00
mmbyday
67787421e1 openalias: handle address validation correctly 2018-12-20 12:24:55 -08:00
dsc
5bebf83d52 Lock wallet on inactivity 2018-12-20 10:38:38 +01:00
selsta
b38a93a412 Receive: fix subaddress alignment 2018-12-20 00:06:23 +01:00
selsta
da6d01c451 MiddlePanel: fix scrollbar margin top/bottom 2018-12-19 23:37:42 +01:00
selsta
c2c1260da0 main: disable resize bar if custom decorations are off 2018-12-19 22:10:54 +01:00
selsta
50a9c00c59 images: add @2x high DPI versions 2018-12-19 16:56:38 +01:00
xiphon
d2d4c21cde SettingsLog: fix TextArea layout, border, scrollbar 2018-12-19 08:06:52 +03:00
mmbyday
84a60424ef mining: add visual icon/indicator that mining is enabled, visible on all the screens 2018-12-18 19:07:26 -08:00
xiphon
09a49f6392 RadioButton: remove a gap between rectangle and text, fix layout 2018-12-18 20:45:56 +00:00
Dusan Klinec
d8b40b6c46 build: fixes build with Trezor, requires #4945, on current monero master 2018-12-18 21:09:10 +01:00
luigi1111
bac833c1dd Merge pull request #1809
fbac6f2 standard-button: handle changing text/icon at runtime (xiphon)
2018-12-18 13:31:39 -06:00
luigi1111
0c9c96206e Merge pull request #1808
f3941c3 Package import requires a version number (xmrdsc)
2018-12-18 13:30:43 -06:00
mmbyday
09201b17fb Clear text fields up switching wallets 2018-12-18 11:07:58 -08:00
mmbyday
d10ce1744c SettingsInfo: use MoneroComponents.StandardButton 💄 2018-12-18 10:31:25 -08:00
luigi1111
7c0a557e62 Merge pull request #1839
481ef1f mining: display max cpu thread count and warn about impact (mmbyday)
2018-12-18 09:52:57 -06:00
luigi1111
4c3f84a695 Merge pull request #1835
515bb16 fix various QML warnings (xiphon)
2018-12-18 09:52:02 -06:00
luigi1111
9b3a0d5b13 Merge pull request #1834
77ec8e5 middlepanel: fix length of scrollable area on Transfer page (mmbyday)
2018-12-18 09:50:31 -06:00
luigi1111
4d2b454e6d Merge pull request #1832
616fd66 main: hide Unlock time when switching wallets (mmbyday)
2018-12-18 09:49:34 -06:00
luigi1111
8ea0c16390 Merge pull request #1831
1d5937e wizard: add close button by enabling titlebar (mmbyday)
2018-12-18 09:48:24 -06:00
luigi1111
83f8508f56 Merge pull request #1829
bd82898 PasswordDialog: hide balance when passwordDialog is open (xiphon)
2018-12-18 09:45:36 -06:00
luigi1111
16e08c2a12 Merge pull request #1825
e1623e0 readme: add 'Translations' section and link to pootle in 'Development resources' (erciccione)
2018-12-18 09:44:41 -06:00
luigi1111
619cc2b147 Merge pull request #1824
da7abd8 Transfer: fix amount label boldness (mmbyday)
2018-12-18 09:38:42 -06:00
luigi1111
b8f531382d Merge pull request #1823
fc26bd1 Transfer: transaction priority persists over page changes and reset to automatic after successful send (mmbyday)
2018-12-18 09:36:30 -06:00
luigi1111
f463d2c511 Merge pull request #1817
9c09294 settings-wallet: use StandardButton instead of custom buttons (xiphon)
2018-12-18 09:34:04 -06:00
luigi1111
5b3adeeb73 Merge pull request #1815
d70f714 settings-node: use StandardButton instead of custom buttons (xiphon)
2018-12-18 09:32:15 -06:00
luigi1111
29df4ab244 Merge pull request #1813
564f256 settingsLog: fix layout glitch when loaded first time (mmbyday)
2018-12-18 09:25:36 -06:00
luigi1111
923fe7b02b Merge pull request #1811
793b4ab StandardDropdown: fix variable name (> Qt 5.7) (selsta)
2018-12-18 09:22:19 -06:00
mmbyday
481ef1f895 mining: display max cpu thread count and warn about impact 2018-12-17 21:17:28 -08:00
erciccione
e1623e0928 readme: add 'Translations' section and link to pootle in 'Development resources' 2018-12-17 23:15:52 +01:00
mmbyday
a8a518d728 Keys: add clipboard warning 💬 2018-12-17 13:12:12 -08:00
xiphon
515bb16418 fix various QML warnings 2018-12-17 09:10:11 +00:00
mmbyday
77ec8e5bda middlepanel: fix length of scrollable area on Transfer page 2018-12-16 22:30:02 -08:00
mmbyday
616fd6603f main: hide Unlock time when switching wallets 2018-12-16 20:13:07 -08:00
mmbyday
1d5937e1e8 wizard: add close button by enabling titlebar 2018-12-16 19:27:27 -08:00
xiphon
bd8289803e PasswordDialog: hide balance when passwordDialog is open
Co-authored-by: mmbyday <mmbyday@protonmail.com>
2018-12-15 04:07:01 +00:00
mmbyday
da7abd885a Transfer: fix amount label boldness 🐛 2018-12-14 09:17:00 -08:00
mmbyday
fc26bd175e Transfer: transaction priority persists over page changes and reset to automatic after successful send 2018-12-13 19:53:50 -08:00
xiphon
9c09294d95 settings-wallet: use StandardButton instead of custom buttons 2018-12-13 19:10:20 +00:00
xiphon
d70f714f35 settings-node: use StandardButton instead of custom buttons 2018-12-13 18:45:21 +00:00
mmbyday
564f256f81 settingsLog: fix layout glitch when loaded first time 🐛 2018-12-13 10:19:46 -08:00
selsta
793b4ab708 StandardDropdown: fix variable name (> Qt 5.7)
Newer Qt versions don't like the name "column"
2018-12-13 18:13:39 +01:00
xiphon
fbac6f2afa standard-button: handle changing text/icon at runtime 2018-12-13 08:43:38 +00:00
dsc
f3941c37d4 Package import requires a version number 2018-12-13 09:12:23 +01:00
luigi1111
59fc48bd8b Merge pull request #1805
646ce0d MiddlePanel: fix color stripe z value (selsta)
2018-12-12 14:03:42 -06:00
luigi1111
68014ee4b2 Merge pull request #1802
db51dd0 Toggle hiding balance via Settings->Layout->Hide balance (xmrdsc)
2018-12-12 14:02:15 -06:00
luigi1111
2d9dc09be9 Merge pull request #1804
7e95253 MiddlePanel: use QtQuick.Control scrollbar (selsta)
2018-12-12 14:00:30 -06:00
luigi1111
3cf2b7ddbc Merge pull request #1803
fe6ce68 Use Text.PlainText as default for Text (xmrdsc)
2018-12-12 13:58:17 -06:00
selsta
646ce0dc0b MiddlePanel: fix color stripe z value 2018-12-12 15:33:21 +01:00
selsta
7e95253fa2 MiddlePanel: use QtQuick.Control scrollbar 2018-12-12 14:52:55 +01:00
dsc
fe6ce682bf Use Text.PlainText as default for Text 2018-12-12 11:41:52 +01:00
dsc
db51dd0c39 Toggle hiding balance via Settings->Layout->Hide balance 2018-12-12 09:33:24 +01:00
luigi1111
03f09865e8 Merge pull request #1797
84bf873 MiddlePanel: add scrollbars (mmbyday)
2018-12-11 14:02:04 -06:00
luigi1111
7b10b0b6b7 Merge pull request #1796
49c3b4e README: add MSYS2 workaround for qmlcachegen Bad address error with qt 5.11.2 (stoffu)
2018-12-11 14:01:11 -06:00
luigi1111
f8cd4c86d9 Merge pull request #1794
e650818 TextField.onEditingFinished() is not available in Qt versions lower than 5.9. Replace with onEditingFinished() (xmrdsc)
b466f9f string.startsWith() is not available in Qt versions lower than 5.8. Replace with string.indexOf() (xmrdsc)
2018-12-11 13:59:03 -06:00
luigi1111
bd451e1402 Merge pull request #1791
e0796b2 standard-button: fix layout (xiphon)
f8a920d standard-button: add hover color animation (xiphon)
831dc59 standard-button: remove redundant 'icon' property (xiphon)
2018-12-11 13:57:21 -06:00
luigi1111
ee8d7f8f65 Merge pull request #1790
923fba3 submodules: update master to v0.13.0.4 to fix bad offset calculation otherwise unable to transfer funds (mmbyday)
2018-12-11 13:55:47 -06:00
luigi1111
3712da7e3f Merge pull request #1789
fa0c691 PasswordDialog: add ability to toggle text echo mode (mmbyday)
2018-12-11 13:54:34 -06:00
mmbyday
125e1d4a19 Logging: fix logging file paths 🐛 2018-12-11 10:36:37 -08:00
mmbyday
84bf8736d7 MiddlePanel: add scrollbars 💄 2018-12-10 10:49:07 -08:00
mmbyday
fa0c691666 PasswordDialog: add ability to toggle text echo mode 💄 2018-12-10 09:14:01 -08:00
stoffu
49c3b4e83c README: add MSYS2 workaround for qmlcachegen Bad address error with qt 5.11.2 2018-12-10 15:47:58 +09:00
dsc
b466f9fe96 string.startsWith() is not available in Qt versions lower than 5.8. Replace with string.indexOf() 2018-12-09 17:44:01 +01:00
dsc
e650818016 TextField.onEditingFinished() is not available in Qt versions lower than 5.9. Replace with onEditingFinished() 2018-12-09 17:43:55 +01:00
mmbyday
923fba3973 submodules: update master to v0.13.0.4 to fix bad offset calculation otherwise unable to transfer funds ⬆️ 2018-12-08 14:14:01 -08:00
xiphon
831dc59013 standard-button: remove redundant 'icon' property 2018-12-09 00:49:23 +03:00
xiphon
f8a920dc38 standard-button: add hover color animation 2018-12-09 00:49:22 +03:00
xiphon
e0796b24c9 standard-button: fix layout 2018-12-09 00:49:22 +03:00
luigi1111
0f05127262 Merge pull request #1788
1ea7766 import utils fix (xmrdsc)
2018-12-07 19:03:36 -06:00
luigi1111
fc06005e3a Merge pull request #1786
b1b8efd wizard: use hand cursor instead of arrow (xiphon)
2018-12-07 19:02:48 -06:00
luigi1111
c67077e428 Merge pull request #1785
950ac55 receive: enable advanced option checkbox2 to persist (mmbyday)
2018-12-07 19:01:46 -06:00
luigi1111
b5c7811dde Merge pull request #1784
a4efe92 readme: Add zbar pacman command to windows compile instructions (mmbyday)
2018-12-07 19:00:52 -06:00
luigi1111
4a6762a427 Merge pull request #1782
f72b407 checkbox: remove a gap between rectangle and text, fix layout (xiphon)
2018-12-07 18:59:59 -06:00
luigi1111
cda7dcb484 Merge pull request #1780
493623e settings: fix Binding loop detected for property preferredHeight (mmbyday)
2018-12-07 18:59:09 -06:00
luigi1111
2697ac69b2 Merge pull request #1779
722d32a wizard: fix flags hovering, cursor, layout (xiphon)
2018-12-07 18:58:15 -06:00
luigi1111
54f9b7413f Merge pull request #1778
56bd606 addressbook: improve readability by truncating long text and allowing wrapmode on address/description/paymentid fields (mmbyday)
2018-12-07 18:57:26 -06:00
luigi1111
99fe6fb628 Merge pull request #1775
a1170dd images: remove black background from History arrow (selsta)
2018-12-07 18:56:18 -06:00
luigi1111
9dcb3604d7 Merge pull request #1774
4bfd856 Enable clipboard copy functionality on XMR amounts (mmbyday)
2018-12-07 18:55:25 -06:00
luigi1111
4355dab38c Merge pull request #1769
97847d5 macOS: fix UI issues with dark mode (selsta)
2018-12-07 17:52:40 -06:00
dsc
1ea77662fe import utils fix 2018-12-07 08:48:20 +01:00
xiphon
b1b8efdc3b wizard: use hand cursor instead of arrow 2018-12-06 21:43:29 +00:00
mmbyday
950ac55281 receive: enable advanced option checkbox2 to persist 2018-12-06 14:56:23 -05:00
mmbyday
a4efe92e6d readme: Add zbar pacman command to windows compile instructions 2018-12-05 22:28:16 -05:00
xiphon
f72b4073ac checkbox: remove a gap between rectangle and text, fix layout 2018-12-05 21:14:12 +03:00
selsta
a1170dd9f9 images: remove black background from History arrow
convert downArrow.png -fuzz 50% -transparent black downArrow.png
convert upArrow-green.png -fuzz 20% -transparent black upArrow-green.png
2018-12-05 00:04:30 +01:00
luigi1111
71a1ff6677 Merge pull request #1772
8e0e088 HistoryTable: missing TransactionID text fix (mmbyday)
2018-12-04 14:32:52 -06:00
mmbyday
493623e929 settings: fix Binding loop detected for property preferredHeight 2018-12-04 15:17:51 -05:00
luigi1111
b27632e131 Merge pull request #1771
6c60b37 Fix Receive.qml:388: Error: Insufficient arguments (mmbyday)
2018-12-04 13:32:15 -06:00
xiphon
722d32a50c wizard: fix flags hovering, cursor, layout 2018-12-04 22:23:23 +03:00
mmbyday
56bd6065e5 addressbook: improve readability by truncating long text and allowing wrapmode on address/description/paymentid fields 2018-12-04 14:16:03 -05:00
mmbyday
4bfd8560cd Enable clipboard copy functionality on XMR amounts 2018-12-04 13:29:50 -05:00
luigi1111
9f6b4334a1 Merge pull request #1764
0a3c806 fix clipping of text in search box (mmbyday)
2018-12-03 01:07:28 -06:00
luigi1111
b5722cfce2 Merge pull request #1753
bbc790a get_libwallet_api: configure cmake toolchain for msys (stoffu)
2018-12-03 01:06:32 -06:00
luigi1111
72808de1ad Merge pull request #1768
02134c4 transfer: paste Payment URL to fill the payment form fields (xiphon)
2018-12-01 14:03:51 -06:00
luigi1111
6182d85f7e Merge pull request #1767
01209b1 SettingsNode: make TextArea readOnly (mmbyday)
2018-12-01 14:01:46 -06:00
luigi1111
41326d0a8d Merge pull request #1766
7a9c6f4 sign: fix label layout consistency (mmbyday)
2018-12-01 14:00:37 -06:00
luigi1111
377dd544eb Merge pull request #1765
079cfe2 titlebar: fix logos when isMobile (mmbyday)
2018-12-01 13:30:11 -06:00
luigi1111
dcddaad2be Merge pull request #1762
b9c7d8d keys: dynamic panel height and qrcode is no longer clipped (mmbyday)
2018-12-01 12:59:34 -06:00
luigi1111
f5c428b546 Merge pull request #1759
33e04a3 keys: bug fixes and aligned with wallet definition URI scheme (mmbyday)
2018-12-01 12:58:16 -06:00
luigi1111
11d65ea2d7 Merge pull request #1757
8ede250 icon background change to white for consistency (mmbyday)
2018-12-01 12:50:47 -06:00
luigi1111
401aafab48 Merge pull request #1756
eb311b9 receive: qrcode fixes (mmbyday)
2018-12-01 12:49:11 -06:00
luigi1111
eb7e271fc6 Merge pull request #1752
722e37f get_libwallet_api: init/update submodules after optional merging of PRs (stoffu)
2018-12-01 12:44:28 -06:00
luigi1111
7b2548b9fb Merge pull request #1746
5bdbe25 update translations (first Pootle commit) (Monero-Pootle)
2018-12-01 12:20:08 -06:00
luigi1111
46f0bb3f28 Merge pull request #1498
c840e2b Allow adjusting number of rounds for the key derivation function (stoffu)
2018-12-01 12:18:18 -06:00
mmbyday
8e0e088e70 HistoryTable: missing TransactionID text fix 2018-12-01 20:17:00 +02:00
mmbyday
6c60b37e63 Fix Receive.qml:388: Error: Insufficient arguments 2018-12-01 20:13:31 +02:00
selsta
97847d5a06 macOS: fix UI issues with dark mode 2018-11-30 07:51:39 +01:00
mmbyday
7a9c6f4de4 sign: fix label layout consistency 2018-11-30 06:12:19 +02:00
xiphon
02134c4fc6 transfer: paste Payment URL to fill the payment form fields 2018-11-30 03:51:03 +00:00
mmbyday
01209b11b9 SettingsNode: make TextArea readOnly 2018-11-30 04:34:14 +02:00
stoffu
c840e2b664 Allow adjusting number of rounds for the key derivation function 2018-11-30 11:22:32 +09:00
mmbyday
079cfe226d titlebar: fix logos when isMobile 2018-11-30 02:32:05 +02:00
mmbyday
b9c7d8d7b1 keys: dynamic panel height and qrcode is no longer clipped 2018-11-30 01:42:44 +02:00
Monero-Pootle
5bdbe25b3a update translations (first Pootle commit) 2018-11-29 18:38:04 +00:00
mmbyday
33e04a3190 keys: bug fixes and aligned with wallet definition URI scheme 2018-11-28 17:17:15 -08:00
mmbyday
0a3c80688b fix clipping of text in search box 2018-11-28 16:41:34 -08:00
mmbyday
8ede250bc6 icon background change to white for consistency 2018-11-28 15:06:26 -08:00
mmbyday
eb311b9aca receive: qrcode fixes 2018-11-28 14:03:05 -08:00
stoffu
bbc790a981 get_libwallet_api: configure cmake toolchain for msys 2018-11-27 17:22:02 +09:00
stoffu
722e37fb84 get_libwallet_api: init/update submodules after optional merging of PRs 2018-11-27 14:37:22 +09:00
luigi1111
45781ab4a1 Merge pull request #1750
2c44d97 transfer: fix amount validation regexp (xiphon)
2018-11-25 18:37:41 -06:00
luigi1111
777cea24c8 Merge pull request #1749
a79d76f transfer: prepend '0' to amount starting with '.' (xiphon)
2018-11-25 18:36:15 -06:00
luigi1111
bbc4bb27fe Merge pull request #1734
0a2e02b issue_1: fix push error (buricl)
2018-11-25 18:34:58 -06:00
luigi1111
0b73229f6c Merge pull request #1706
12a3d68 receive: fix Amount and QR-Code layout (xiphon)
3b36dc9 receive: add Payment URL (xiphon)
2018-11-25 18:33:47 -06:00
xiphon
2c44d979c6 transfer: fix amount validation regexp 2018-11-24 14:06:59 +00:00
xiphon
a79d76ff3f transfer: prepend '0' to amount starting with '.' 2018-11-24 00:39:17 +00:00
luigi1111
0e21b3cfda Merge pull request #1717
d9280b1 Build: fix static link to hidapi (MoroccanMalinois)
2018-11-20 17:58:24 -06:00
luigi1111
3e57bb344e Merge pull request #1657
3481acb Print the GUI version on application startup (skftn)
2018-11-17 23:58:35 -06:00
luigi1111
33a8a7276b Merge pull request #1722
aba5a0b Windows Installer: Update for Beryllium Bullet 0.13.0.4, take one+two (rbrunner)
2018-11-17 23:55:13 -06:00
luigi1111
4a744cf949 Merge pull request #1733
b34d540 components: RemoteNodeEdit validate port number range (xiphon)
1c61de0 settings: fix Remote Node 'Connect' button (xiphon)
2018-11-16 12:01:52 -06:00
luigi1111
73eb6b4b75 Merge pull request #1732
01054f2 left-panel: implement wallet 'Logout' shortcut button (xiphon)
2018-11-16 11:58:11 -06:00
luigi1111
d81ad1ce4f Merge pull request #1737
ebeb3fe mac build: remove PCSC framework (selsta)
2018-11-13 11:19:56 -06:00
luigi1111
8ae4a7708e Merge pull request #1620
6868e26 update catalan translation (duub)
2018-11-13 11:14:17 -06:00
selsta
ebeb3fefdb mac build: remove PCSC framework 2018-11-12 13:21:16 +01:00
buricl
0a2e02bb4d issue_1: fix push error 2018-11-12 00:42:45 +01:00
xiphon
1c61de082a settings: fix Remote Node 'Connect' button 2018-11-11 03:02:42 +03:00
xiphon
b34d5409e6 components: RemoteNodeEdit validate port number range 2018-11-11 02:44:48 +03:00
duub qnnp
6868e26678 update catalan translation 2018-11-10 13:54:16 +00:00
luigi1111
270a637924 Merge pull request #1728
808ecf5 settings-node: implement correct 'Start/Stop daemon' button logic (xiphon)
42a9e2f settings-node: change element id 'btnStopNode' to 'btnStartStopNode' (xiphon)
2018-11-09 13:24:36 -06:00
luigi1111
71603973c8 Merge pull request #1727
44d3966 left-panel: use consistent font size (xiphon)
2018-11-09 13:22:38 -06:00
luigi1111
7969f69866 Merge pull request #1699
3985524 password dialog: show error in place (xiphon)
2018-11-09 13:20:22 -06:00
luigi1111
ac709fed45 Merge pull request #1659
665eaf0 build: use correct monero core tag (xiphon)
2018-11-09 13:18:07 -06:00
xiphon
01054f2549 left-panel: implement wallet 'Logout' shortcut button 2018-11-07 20:16:33 +00:00
xiphon
42a9e2fe35 settings-node: change element id 'btnStopNode' to 'btnStartStopNode' 2018-11-06 22:19:07 +03:00
xiphon
808ecf57ac settings-node: implement correct 'Start/Stop daemon' button logic 2018-11-06 22:18:56 +03:00
luigi1111
6eb8c8c9d6 Merge pull request #1687
1aec393 Update Indonesian Translation (geomars)
2018-11-06 12:45:57 -06:00
geomars
1aec393c2f Update Indonesian Translation
Fix double closing tag an add space

Update and fix Indonesian translations
2018-11-06 18:41:32 +00:00
luigi1111
c6ebb71948 Merge pull request #1724
a261339 fix typo in finnish translation (erciccione)
2018-11-06 11:30:11 -06:00
luigi1111
0d7f135aaa Merge pull request #1712
0aed3cc fixed missing line break (DrRac27)
2018-11-06 11:27:41 -06:00
luigi1111
57aeeb0a6c Merge pull request #1707
11c0041 [IT-Translation] Typo fix and translation change (hrumag)
2018-11-06 11:26:33 -06:00
luigi1111
19082461e8 Merge pull request #1664
6dcd2b7 fix strings not marked as translatable (erciccione)
d32dabf syn and add unpicked strings in language files (erciccione)
2018-11-06 11:25:07 -06:00
xiphon
44d3966951 left-panel: use consistent font size 2018-11-06 00:40:55 +00:00
hrumag
11c0041794 [IT-Translation] Typo fix and translation change
[monero-core_it.ts] Typo fix and translation term change

[monero-core_it.ts] Translation term change
"wallet" => "portafoglio"
"inclusa" => "incorporata"

[monero-core_it.ts] Translation term change
    "wallet" => "portafoglio"

[monero-core_it.ts] General fixes
2018-11-04 17:43:00 +01:00
erciccione
a261339ddc fix typo in finnish translation 2018-11-03 11:55:18 +00:00
René Brunner
aba5a0b4ad Windows Installer: Update for Beryllium Bullet 0.13.0.4, take one+two 2018-11-02 13:18:41 +01:00
MoroccanMalinois
d9280b1711 Build: fix static link to hidapi 2018-11-02 02:31:08 +01:00
luigi1111
2641eda20a Merge pull request #1710
b1e9676 Debian 9 dependency (lunarthegrey)
2018-10-31 11:49:18 -05:00
luigi1111
8ed48b667e Merge pull request #1709
15ac299 settings: don't call parseFloat, isFinite to parse height (xiphon)
2018-10-31 11:47:14 -05:00
luigi1111
313e0865c6 Merge pull request #1708
7dea3a2 wizard: optionally hide restore 'From QR Code' btn (xiphon)
2018-10-31 11:38:23 -05:00
luigi1111
0fcccfe2d8 Merge pull request #1704
8d5e97a Changed Bulgarian flag to match style. (kasperaitis)
2018-10-31 11:37:15 -05:00
luigi1111
76b437e494 Merge pull request #1703
85a3682 Correction of View-Only Wallet description (see Issue #1610) (Leza89)
2018-10-31 11:36:12 -05:00
luigi1111
1c58d4377a Merge pull request #1695
a30ce26 Fix daemon host/port setting to allow tab switching (sectioneight)
2018-10-31 11:33:47 -05:00
luigi1111
459ece51b6 Merge pull request #1662
64f8c07 Adjustments to the Swedish translation (snaggen)
2018-10-31 11:32:07 -05:00
xiphon
15ac299fef settings: don't call parseFloat, isFinite to parse height 2018-10-29 19:01:46 +00:00
DrRac27
0aed3ccc96 fixed missing line break 2018-10-29 18:08:50 +01:00
Lunar
b1e9676f32 Debian 9 dependency 2018-10-28 11:15:40 -05:00
xiphon
7dea3a2373 wizard: optionally hide restore 'From QR Code' btn 2018-10-28 14:56:33 +03:00
xiphon
3b36dc997c receive: add Payment URL 2018-10-27 12:42:25 +00:00
xiphon
12a3d687c6 receive: fix Amount and QR-Code layout 2018-10-27 12:27:18 +00:00
Mattias Eriksson
64f8c07c5a Adjustments to the Swedish translation 2018-10-26 09:11:36 +02:00
Leza89
85a3682ac6 Correction of View-Only Wallet description (see Issue #1610)
* changed

<location filename="../pages/settings/SettingsWallet.qml" line="185"/>
        <source>Creates a new wallet that can only view transactions, cannot initialize transactions.</source>

to

"Creates a new wallet that can only view and initiate transactions, but requires a spendable wallet to sign transactions before sending"

in /pages/settings/SettingsWallet.qml (Thanks for the guidance, Erciccione)

* Updated all translations and added "unfinished" tag where necessary

* Updated german translation
2018-10-25 21:26:20 +02:00
Aivaras Kasperaitis
8d5e97acd3 Changed Bulgarian flag to match style. 2018-10-25 13:45:52 +03:00
xiphon
665eaf00c5 build: use correct monero core tag 2018-10-24 19:27:52 +00:00
erciccione
d32dabfd7f syn and add unpicked strings in language files 2018-10-24 19:29:30 +01:00
erciccione
6dcd2b76fa fix strings not marked as translatable 2018-10-24 19:27:48 +01:00
xiphon
39855241fc password dialog: show error in place 2018-10-24 06:54:31 +03:00
Aiden Scandella
a30ce26dba Fix daemon host/port setting to allow tab switching
Previously, these were multiline editing (for some reason I'm not sure,
perhaps you can have multiple remote nodes?)

I tried various workarounds, but the simplest was to change them to
simply LineEdit (like username/password) and now my bug is fixed.
2018-10-23 00:03:40 -07:00
luigi1111
3aa6da058a Merge pull request #1681
9a09e61 Rename 'blackball' for clarity (moneromooo-monero)
2018-10-19 00:04:30 -05:00
luigi1111
7fd4de60db Merge pull request #1677
e5dd174 Ukrainian translation for GUI 0.13 -- done (TheFuzzStone)
2018-10-19 00:02:34 -05:00
moneromooo-monero
9a09e6189b Rename "blackball" for clarity
Apparently some people seem to think it's a censorship list...
2018-10-18 20:51:03 +01:00
TheFuzzStone
e5dd174d69 Ukrainian translation for GUI 0.13 -- done 2018-10-18 17:32:47 +01:00
luigi1111
7615b86ac7 Merge pull request #1660
784ca96 fixed: networkStatus overlaps menu, padding (xiphon)
2018-10-16 18:16:45 -05:00
luigi1111
9735327df9 Merge pull request #1647
607ee52 Link to libhidapi rather than pcsclite (bjacquin)
2018-10-16 18:15:50 -05:00
luigi1111
b590282f66 Merge pull request #1669
a34608a Linking libhidapi for Linux; updating README (skftn)
2018-10-16 16:32:49 -05:00
luigi1111
2e2e7be4d0 Merge pull request #1667
cd024be tracking: query blockchain height only once during update (xiphon)
cf8f36b tracking: don't fetch redundant txes (xiphon)
2018-10-16 16:31:47 -05:00
luigi1111
003c916d71 Merge pull request #1656
258cd58 Resetting monero submodule to master (skftn)
2018-10-16 16:25:17 -05:00
luigi1111
e255b7828b Merge pull request #1653
977f2f4 README: add note for incompatible MSYS2 Qt version (Lafudoci)
2018-10-16 16:24:06 -05:00
luigi1111
3da9eab934 Merge pull request #1652
448519d Linking hidapi for OSX builds (skftn)
2018-10-16 16:09:08 -05:00
luigi1111
d7f0be3270 Merge pull request #1648
79452bc Add border to generated QR codes (glv2)
2018-10-16 16:05:59 -05:00
Sander Ferdinand
a34608a801 Linking libhidapi for Linux; updating README 2018-10-16 22:27:52 +02:00
xiphon
cf8f36ba76 tracking: don't fetch redundant txes 2018-10-16 18:37:48 +00:00
xiphon
cd024bed8b tracking: query blockchain height only once during update 2018-10-16 18:32:38 +00:00
xiphon
784ca96cca fixed: networkStatus overlaps menu, padding 2018-10-16 05:20:04 +00:00
Sander Ferdinand
3481acbe3c Print the GUI version on application startup 2018-10-16 02:03:29 +02:00
Lafudoci
977f2f4d93 README: add note for incompatible MSYS2 Qt version 2018-10-15 23:36:55 +08:00
Sander Ferdinand
258cd58c96 Resetting monero submodule to master 2018-10-15 17:25:55 +02:00
Sander Ferdinand
448519ddc1 Linking hidapi for OSX builds 2018-10-14 21:50:21 +02:00
Guillaume LE VAILLANT
79452bc9ac Add border to generated QR codes 2018-10-14 13:55:59 +02:00
Bertrand Jacquin
607ee5254a Link to libhidapi rather than pcsclite 2018-10-14 00:13:37 +01:00
luigi1111
7adeb694c1 Merge pull request #1644
97cfbf5 Linking crypto32 and libhidapi for Windows builds (skftn)
2018-10-13 13:23:07 -05:00
luigi1111
ba2c9b5beb Merge pull request #1643
d845e6b fix styling in bulgarian translation and sync with code (erciccione)
2018-10-13 13:21:03 -05:00
luigi1111
3cd4336bd0 Merge pull request #1642
421f6b5 Fix tags in Bulgarian translation (Lafudoci)
2018-10-13 13:18:52 -05:00
luigi1111
d86aa1a5a3 Merge pull request #1607
cc72eb2 Update monero-core_ro.ts (ni311)
2018-10-13 13:17:26 -05:00
Sander Ferdinand
97cfbf5c50 Linking crypto32 and libhidapi for Windows builds 2018-10-13 19:40:05 +02:00
ni311
cc72eb24c2 Update monero-core_ro.ts 2018-10-13 16:36:39 +01:00
erciccione
d845e6bb9e fix styling in bulgarian translation and sync with code 2018-10-13 11:31:08 +01:00
Lafudoci
421f6b582b Fix tags in Bulgarian translation 2018-10-13 14:11:34 +08:00
luigi1111
caae87e72b Merge pull request #1637
71bb2e8 Added the Bulgarian translation file (whotheff)
1e7f3c8 Updating languages.xml (whotheff)
b780142 Added the Bulgarian flag and updating qml.qrc (skftn)
2018-10-12 17:42:52 -05:00
luigi1111
fc7f2793e3 Merge pull request #1562
3bf20a0 Dll update (BigslimVdub)
2018-10-12 15:11:47 -05: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
Sander Ferdinand
b780142c14 Added the Bulgarian flag and updating qml.qrc 2018-10-11 17:59:04 +02:00
whotheff
1e7f3c8126 Updating languages.xml 2018-10-11 17:58:56 +02:00
whotheff
71bb2e87c8 Added the Bulgarian translation file 2018-10-11 17:57:39 +02: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
BigslimVdub
3bf20a0bd1 Dll update
Update for latest msys2 build dll files
2018-09-17 13:06:04 -05: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
cryptochangements34
da93fc4a86 export/import key images 2018-05-14 17:43:52 -04:00
509 changed files with 141850 additions and 56444 deletions

30
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: GUI build
on: [push, pull_request]
jobs:
build-macos:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: update brew and install dependencies
run: brew update && brew install boost hidapi zmq libpgm unbound libsodium miniupnpc ldns expat doxygen graphviz libunwind-headers protobuf qt5
- name: build
run: export PATH=$PATH:/usr/local/opt/qt/bin && ./build.sh
build-ubuntu:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: update apt
run: sudo apt update
- name: install monero dependencies
run: sudo apt -y install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libnorm-dev libusb-1.0-0-dev libpgm-dev
- name: install monero gui dependencies
run: sudo apt -y 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 qml-module-qtquick-templates2 libqt5svg5-dev
- name: build
run: ./build.sh

21
.gitignore vendored
View File

@@ -11,3 +11,24 @@ moc_*
*.xcodeproj
monero-wallet-gui_plugin_import.cpp
monero-wallet-gui_qml_plugin_import.cpp
*.qmlc
*.jsc
### Vim ###
# Swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
@@ -26,28 +26,35 @@
// 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.9
import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0
import moneroComponents.Wallet 1.0
import moneroComponents.NetworkType 1.0
import "components"
import moneroComponents.Clipboard 1.0
import FontAwesome 1.0
import "components" as MoneroComponents
import "components/effects/" as MoneroEffects
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 int currentAccountIndex: 0
property string currentAccountLabel: "Primary account"
property string balanceString: "?.??"
property string balanceUnlockedString: "?.??"
property string balanceFiatString: "?.??"
property string minutesToUnlock: ""
property bool isSyncing: false
property alias networkStatus : networkStatus
property alias progressBar : progressBar
property alias daemonProgressBar : daemonProgressBar
property alias minutesToUnlockTxt: unlockedBalanceLabel.text
property int titleBarHeight: 50
signal dashboardClicked()
property int titleBarHeight: 50
property string copyValue: ""
Clipboard { id: clipboard }
signal historyClicked()
signal transferClicked()
signal receiveClicked()
@@ -57,14 +64,15 @@ Rectangle {
signal addressBookClicked()
signal miningClicked()
signal signClicked()
signal keysClicked()
signal merchantClicked()
signal accountClicked()
function selectItem(pos) {
menuColumn.previousButton.checked = false
if(pos === "Dashboard") menuColumn.previousButton = dashboardButton
else if(pos === "History") menuColumn.previousButton = historyButton
if(pos === "History") menuColumn.previousButton = historyButton
else if(pos === "Transfer") menuColumn.previousButton = transferButton
else if(pos === "Receive") menuColumn.previousButton = receiveButton
else if(pos === "Merchant") menuColumn.previousButton = merchantButton
else if(pos === "AddressBook") menuColumn.previousButton = addressBookButton
else if(pos === "Mining") menuColumn.previousButton = miningButton
else if(pos === "TxKey") menuColumn.previousButton = txkeyButton
@@ -72,22 +80,27 @@ Rectangle {
else if(pos === "Sign") menuColumn.previousButton = signButton
else if(pos === "Settings") menuColumn.previousButton = settingsButton
else if(pos === "Advanced") menuColumn.previousButton = advancedButton
else if(pos === "Account") menuColumn.previousButton = accountButton
menuColumn.previousButton.checked = true
}
width: (isMobile)? appWindow.width : 300
width: 300
color: "transparent"
anchors.bottom: parent.bottom
anchors.top: parent.top
Image {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: panel.height
source: "images/leftPanelBg.jpg"
z: 1
MoneroEffects.GradientBackground {
anchors.fill: parent
fallBackColor: MoneroComponents.Style.middlePanelBackgroundColor
initialStartColor: MoneroComponents.Style.leftPanelBackgroundGradientStart
initialStopColor: MoneroComponents.Style.leftPanelBackgroundGradientStop
blackColorStart: MoneroComponents.Style._b_leftPanelBackgroundGradientStart
blackColorStop: MoneroComponents.Style._b_leftPanelBackgroundGradientStop
whiteColorStart: MoneroComponents.Style._w_leftPanelBackgroundGradientStart
whiteColorStop: MoneroComponents.Style._w_leftPanelBackgroundGradientStop
posStart: 0.6
start: Qt.point(0, 0)
end: Qt.point(height, width)
}
// card with monero logo
@@ -95,30 +108,43 @@ Rectangle {
visible: true
z: 2
id: column1
height: 200
height: 175
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: (persistentSettings.customDecorations)? 50 : 0
RowLayout {
visible: true
Item {
Item {
anchors.left: parent.left
anchors.top: parent.top
anchors.topMargin: 20
anchors.leftMargin: 20
anchors.verticalCenter: parent.verticalCenter
height: 490 * scaleRatio
width: 259 * scaleRatio
height: 490
width: 260
Image {
width: 259; height: 170
id: card
visible: !isOpenGL || MoneroComponents.Style.blackTheme
width: 260
height: 135
fillMode: Image.PreserveAspectFit
source: "images/card-background.png"
source: MoneroComponents.Style.blackTheme ? "qrc:///images/card-background-black.png" : "qrc:///images/card-background-white.png"
}
Text {
DropShadow {
visible: isOpenGL && !MoneroComponents.Style.blackTheme
anchors.fill: card
horizontalOffset: 3
verticalOffset: 3
radius: 10.0
samples: 15
color: "#3B000000"
source: card
cached: true
}
MoneroComponents.TextPlain {
id: testnetLabel
visible: persistentSettings.nettype != NetworkType.MAINNET
text: (persistentSettings.nettype == NetworkType.TESTNET ? qsTr("Testnet") : qsTr("Stagenet")) + translationManager.emptyString
@@ -129,9 +155,10 @@ Rectangle {
font.bold: true
font.pixelSize: 12
color: "#f33434"
themeTransition: false
}
Text {
MoneroComponents.TextPlain {
id: viewOnlyLabel
visible: viewOnly
text: qsTr("View Only") + translationManager.emptyString
@@ -142,6 +169,7 @@ Rectangle {
font.pixelSize: 12
font.bold: true
color: "#ff9323"
themeTransition: false
}
}
@@ -150,91 +178,160 @@ Rectangle {
anchors.top: parent.top
anchors.topMargin: 20
anchors.leftMargin: 20
anchors.verticalCenter: parent.verticalCenter
height: 490 * scaleRatio
width: 50 * scaleRatio
height: 490
width: 50
Text {
visible: !isMobile
id: balanceText
MoneroComponents.Label {
fontSize: 12
id: accountIndex
text: qsTr("Account") + " #" + currentAccountIndex
color: MoneroComponents.Style.blackTheme ? "white" : "black"
anchors.left: parent.left
anchors.leftMargin: 20
anchors.leftMargin: 60
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;
anchors.topMargin: 23
themeTransition: false
MouseArea{
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: appWindow.showPageRequest("Account")
}
}
Text {
id: unlockedBalanceText
visible: true
MoneroComponents.Label {
fontSize: 16
id: accountLabel
textWidth: 170
text: currentAccountLabel
color: MoneroComponents.Style.blackTheme ? "white" : "black"
anchors.left: parent.left
anchors.leftMargin: 20
anchors.leftMargin: 60
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;
anchors.topMargin: 36
themeTransition: false
elide: Text.ElideRight
MouseArea {
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: appWindow.showPageRequest("Account")
}
}
Label {
id: unlockedBalanceLabel
visible: true
text: qsTr("Unlocked balance") + translationManager.emptyString
MoneroComponents.Label {
fontSize: 16
visible: isSyncing
text: qsTr("Syncing...")
color: MoneroComponents.Style.blackTheme ? "white" : "black"
anchors.left: parent.left
anchors.leftMargin: 20
anchors.top: parent.top
anchors.topMargin: 110
anchors.bottom: currencyLabel.top
anchors.bottomMargin: 15
themeTransition: false
}
Label {
visible: !isMobile
id: balanceLabel
text: qsTr("Balance") + translationManager.emptyString
fontSize: 14
MoneroComponents.TextPlain {
id: currencyLabel
font.pixelSize: 16
text: {
if (persistentSettings.fiatPriceEnabled && persistentSettings.fiatPriceToggle) {
return appWindow.fiatApiCurrencySymbol();
} else {
return "XMR"
}
}
color: MoneroComponents.Style.blackTheme ? "white" : "black"
anchors.left: parent.left
anchors.leftMargin: 20
anchors.top: parent.top
anchors.topMargin: 60
anchors.topMargin: 100
themeTransition: false
MouseArea {
hoverEnabled: true
anchors.fill: parent
visible: persistentSettings.fiatPriceEnabled
cursorShape: Qt.PointingHandCursor
onClicked: persistentSettings.fiatPriceToggle = !persistentSettings.fiatPriceToggle
}
}
MoneroComponents.TextPlain {
id: balancePart1
themeTransition: false
anchors.left: parent.left
anchors.leftMargin: 58
anchors.baseline: currencyLabel.baseline
color: MoneroComponents.Style.blackTheme ? "white" : "black"
text: {
if (persistentSettings.fiatPriceEnabled && persistentSettings.fiatPriceToggle) {
return balanceFiatString.split('.')[0] + "."
} else {
return balanceString.split('.')[0] + "."
}
}
font.pixelSize: {
var defaultSize = 29;
var digits = (balancePart1.text.length - 1)
if (digits > 2 && !(persistentSettings.fiatPriceEnabled && persistentSettings.fiatPriceToggle)) {
return defaultSize - 1.1 * digits
} else {
return defaultSize
}
}
MouseArea {
id: balancePart1MouseArea
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onEntered: {
balancePart1.color = MoneroComponents.Style.orange
balancePart2.color = MoneroComponents.Style.orange
}
onExited: {
balancePart1.color = Qt.binding(function() { return MoneroComponents.Style.blackTheme ? "white" : "black" })
balancePart2.color = Qt.binding(function() { return MoneroComponents.Style.blackTheme ? "white" : "black" })
}
onClicked: {
console.log("Copied to clipboard");
clipboard.setText(balancePart1.text + balancePart2.text);
appWindow.showStatusMessage(qsTr("Copied to clipboard"),3)
}
}
}
MoneroComponents.TextPlain {
id: balancePart2
themeTransition: false
anchors.left: balancePart1.right
anchors.leftMargin: 2
anchors.baseline: currencyLabel.baseline
color: MoneroComponents.Style.blackTheme ? "white" : "black"
text: {
if (persistentSettings.fiatPriceEnabled && persistentSettings.fiatPriceToggle) {
return balanceFiatString.split('.')[1]
} else {
return balanceString.split('.')[1]
}
}
font.pixelSize: 16
MouseArea {
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onEntered: balancePart1MouseArea.entered()
onExited: balancePart1MouseArea.exited()
onClicked: balancePart1MouseArea.clicked(mouse)
}
}
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
}
*/
}
}
}
@@ -245,22 +342,18 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.top: (isMobile)? parent.top : column1.bottom
anchors.topMargin: (isMobile)? 0 : 32
anchors.top: column1.bottom
color: "transparent"
Flickable {
id:flicker
contentHeight: (progressBar.visible)? menuColumn.height + separator.height +
networkStatus.height + progressBar.height + daemonProgressBar.height :
menuColumn.height + separator.height + networkStatus.height
anchors.fill: parent
contentHeight: menuColumn.height
anchors.top: parent.top
anchors.bottom: networkStatus.top
width: parent.width
clip: true
Column {
id: menuColumn
anchors.left: parent.left
anchors.right: parent.right
@@ -268,45 +361,37 @@ Rectangle {
clip: true
property var previousButton: transferButton
// ------------- Dashboard tab ---------------
/*
MenuButton {
id: dashboardButton
// top border
MoneroComponents.MenuButtonDivider {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Dashboard") + translationManager.emptyString
symbol: qsTr("D") + translationManager.emptyString
dotColor: "#FFE00A"
checked: true
anchors.leftMargin: 16
}
// ------------- Account tab ---------------
MoneroComponents.MenuButton {
id: accountButton
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Account") + translationManager.emptyString
symbol: qsTr("T") + translationManager.emptyString
dotColor: "#44AAFF"
onClicked: {
parent.previousButton.checked = false
parent.previousButton = dashboardButton
panel.dashboardClicked()
parent.previousButton = accountButton
panel.accountClicked()
}
}
Rectangle {
MoneroComponents.MenuButtonDivider {
visible: accountButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
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 {
MoneroComponents.MenuButton {
id: transferButton
anchors.left: parent.left
anchors.right: parent.right
@@ -320,18 +405,16 @@ Rectangle {
}
}
Rectangle {
MoneroComponents.MenuButtonDivider {
visible: transferButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- AddressBook tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: addressBookButton
anchors.left: parent.left
anchors.right: parent.right
@@ -346,17 +429,15 @@ Rectangle {
}
}
Rectangle {
MoneroComponents.MenuButtonDivider {
visible: addressBookButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Receive tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: receiveButton
anchors.left: parent.left
anchors.right: parent.right
@@ -369,22 +450,46 @@ Rectangle {
panel.receiveClicked()
}
}
Rectangle {
MoneroComponents.MenuButtonDivider {
visible: receiveButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Merchant tab ---------------
MoneroComponents.MenuButton {
id: merchantButton
visible: appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Merchant") + translationManager.emptyString
symbol: qsTr("U") + translationManager.emptyString
dotColor: "#FF4F41"
under: receiveButton
onClicked: {
parent.previousButton.checked = false
parent.previousButton = merchantButton
panel.merchantClicked()
}
}
MoneroComponents.MenuButtonDivider {
visible: merchantButton.present && appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
}
// ------------- History tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: historyButton
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("History") + translationManager.emptyString
text: qsTr("Transactions") + translationManager.emptyString
symbol: qsTr("H") + translationManager.emptyString
dotColor: "#6B0072"
onClicked: {
@@ -393,18 +498,18 @@ Rectangle {
panel.historyClicked()
}
}
Rectangle {
MoneroComponents.MenuButtonDivider {
visible: historyButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Advanced tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: advancedButton
visible: appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Advanced") + translationManager.emptyString
@@ -415,19 +520,18 @@ Rectangle {
parent.previousButton = advancedButton
}
}
Rectangle {
visible: advancedButton.present
MoneroComponents.MenuButtonDivider {
visible: advancedButton.present && appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Mining tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: miningButton
visible: !isAndroid && !isIOS
visible: !isAndroid && !isIOS && appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Mining") + translationManager.emptyString
@@ -441,17 +545,17 @@ Rectangle {
}
}
Rectangle {
visible: miningButton.present
MoneroComponents.MenuButtonDivider {
visible: miningButton.present && appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: miningButton.checked || settingsButton.checked ? "#1C1C1C" : "#313131"
height: 1
}
// ------------- TxKey tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: txkeyButton
visible: appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Prove/check") + translationManager.emptyString
@@ -464,21 +568,22 @@ Rectangle {
panel.txkeyClicked()
}
}
Rectangle {
visible: txkeyButton.present
MoneroComponents.MenuButtonDivider {
visible: txkeyButton.present && appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Shared RingDB tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: sharedringdbButton
visible: appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Shared RingDB") + translationManager.emptyString
symbol: qsTr("A") + translationManager.emptyString
symbol: qsTr("G") + translationManager.emptyString
dotColor: "#FFD781"
under: advancedButton
onClicked: {
@@ -487,19 +592,18 @@ Rectangle {
panel.sharedringdbClicked()
}
}
Rectangle {
visible: sharedringdbButton.present
MoneroComponents.MenuButtonDivider {
visible: sharedringdbButton.present && appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Sign/verify tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: signButton
visible: appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Sign/verify") + translationManager.emptyString
@@ -512,16 +616,16 @@ Rectangle {
panel.signClicked()
}
}
Rectangle {
visible: signButton.present
MoneroComponents.MenuButtonDivider {
visible: signButton.present && appWindow.walletMode >= 2
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#313131"
height: 1
}
// ------------- Settings tab ---------------
MenuButton {
MoneroComponents.MenuButton {
id: settingsButton
anchors.left: parent.left
anchors.right: parent.right
@@ -534,36 +638,12 @@ Rectangle {
panel.settingsClicked()
}
}
Rectangle {
MoneroComponents.MenuButtonDivider {
visible: settingsButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
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
@@ -577,50 +657,39 @@ Rectangle {
anchors.leftMargin: 0
anchors.rightMargin: 0
anchors.bottom: networkStatus.top;
height: 10 * scaleRatio
height: 10
color: "transparent"
}
NetworkStatusItem {
MoneroComponents.NetworkStatusItem {
id: networkStatus
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 0
anchors.leftMargin: 5
anchors.rightMargin: 0
anchors.bottom: (progressBar.visible)? progressBar.top : parent.bottom;
connected: Wallet.ConnectionStatus_Disconnected
height: 48 * scaleRatio
height: 48
}
ProgressBar {
MoneroComponents.ProgressBar {
id: progressBar
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: daemonProgressBar.top
height: 48 * scaleRatio
syncType: qsTr("Wallet")
height: 48
syncType: qsTr("Wallet") + translationManager.emptyString
visible: networkStatus.connected
}
ProgressBar {
MoneroComponents.ProgressBar {
id: daemonProgressBar
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
syncType: qsTr("Daemon")
syncType: qsTr("Daemon") + translationManager.emptyString
visible: networkStatus.connected
height: 62 * scaleRatio
height: 62
}
} // menuRect
// indicate disabled state
// Desaturate {
// anchors.fill: parent
// source: parent
// desaturation: panel.enabled ? 0.0 : 1.0
// }
}
}

View File

@@ -1,33 +1,84 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <QCoreApplication>
#include <QStandardPaths>
#include <QFileInfo>
#include <QString>
#include <QDir>
#include <QDebug>
#include "Logger.h"
#include "src/qt/TailsOS.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 defaultLogName = "monero-wallet-gui.log";
#if defined(Q_OS_IOS)
//AppDataLocation = "<APPROOT>/Library/Application Support"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0);
static const QString appFolder = "monero-wallet-gui";
#elif defined(Q_OS_WIN)
static const QString osPath = QCoreApplication::applicationDirPath();
//AppDataLocation = "C:/Users/<USER>/AppData/Roaming/<APPNAME>"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0);
static const QString appFolder = "monero-wallet-gui";
#elif defined(Q_OS_ANDROID)
//AppDataLocation = "<USER>/<APPNAME>/files"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(1);
static const QString appFolder = "";
#elif defined(Q_OS_MAC)
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0) + "/Library/Logs";
#else // linux + bsd
//HomeLocation = "~"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
static const QString appFolder = "Library/Logs";
#else // linux + bsd
//HomeLocation = "~"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
static const QString appFolder = ".bitmonero";
#endif
// return the absolute path of the logfile
// return the absolute path of the logfile and ensure path folder exists
const QString getLogPath(const QString logPath)
{
const QFileInfo fi(logPath);
if(TailsOS::detect() && TailsOS::usePersistence)
return QDir::homePath() + "/Persistent/Monero/logs/" + defaultLogName;
if(!logPath.isEmpty() && !fi.isDir())
return fi.absoluteFilePath();
else
return osPath + "/" + default_name;
else {
QDir appDir(osPath + "/" + appFolder);
if(!appDir.exists())
if(!appDir.mkpath("."))
qWarning() << "Logger: Cannot create log directory " + appDir.path();
return appDir.path() + "/" + defaultLogName;
}
}

View File

@@ -1,3 +1,31 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef LOGGER_H
#define LOGGER_H

View File

@@ -1,3 +1,31 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "MainApp.h"
#include <QCloseEvent>
@@ -10,5 +38,6 @@ bool MainApp::event (QEvent *event)
return true;
}
return false;
// Pass unhandled events to base class
return QApplication::event(event);
}

View File

@@ -1,3 +1,31 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef MAINAPP_H
#define MAINAPP_H
#include <QApplication>

View File

@@ -28,33 +28,31 @@
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 2.9
import QtQuick.Controls 2.0
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0
import moneroComponents.Wallet 1.0
import "./pages"
import "./pages/settings"
import "./pages/merchant"
import "./components" as MoneroComponents
import "./components/effects/" as MoneroEffects
Rectangle {
id: root
property Item currentView
property Item previousView
property bool basicMode : isMobile
property string balanceLabelText: qsTr("Balance") + translationManager.emptyString
property string balanceText
property string unlockedBalanceLabelText: qsTr("Unlocked Balance") + translationManager.emptyString
property string unlockedBalanceText
property int minHeight: (appWindow.height > 800) ? appWindow.height : 800 * scaleRatio
property int minHeight: (appWindow.height > 800) ? appWindow.height : 800
property alias contentHeight: mainFlickable.contentHeight
property alias flickable: mainFlickable
// property int headerHeight: header.height
property Transfer transferView: Transfer { }
property Receive receiveView: Receive { }
property Merchant merchantView: Merchant { }
property TxKey txkeyView: TxKey { }
property SharedRingDB sharedringdbView: SharedRingDB { }
property History historyView: History { }
@@ -63,7 +61,7 @@ Rectangle {
property Mining miningView: Mining { }
property AddressBook addressBookView: AddressBook { }
property Keys keysView: Keys { }
property Account accountView: Account { }
signal paymentClicked(string address, string paymentId, string amount, int mixinCount, int priority, string description)
signal sweepUnmixableClicked()
@@ -71,12 +69,25 @@ Rectangle {
signal getProofClicked(string txid, string address, string message);
signal checkProofClicked(string txid, string address, string message, string signature);
Image {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
source: "../images/middlePanelBg.jpg"
Rectangle {
// grey background on merchantView
visible: currentView === merchantView
color: MoneroComponents.Style.moneroGrey
anchors.fill: parent
}
MoneroEffects.GradientBackground {
visible: currentView !== merchantView
anchors.fill: parent
fallBackColor: MoneroComponents.Style.middlePanelBackgroundColor
initialStartColor: MoneroComponents.Style.middlePanelBackgroundGradientStart
initialStopColor: MoneroComponents.Style.middlePanelBackgroundGradientStop
blackColorStart: MoneroComponents.Style._b_middlePanelBackgroundGradientStart
blackColorStop: MoneroComponents.Style._b_middlePanelBackgroundGradientStop
whiteColorStart: MoneroComponents.Style._w_middlePanelBackgroundGradientStart
whiteColorStop: MoneroComponents.Style._w_middlePanelBackgroundGradientStop
start: Qt.point(0, 0)
end: Qt.point(height, width)
}
onCurrentViewChanged: {
@@ -107,60 +118,65 @@ Rectangle {
states: [
State {
name: "Dashboard"
PropertyChanges { }
}, State {
name: "History"
PropertyChanges { target: root; currentView: historyView }
PropertyChanges { target: historyView; model: appWindow.currentWallet ? appWindow.currentWallet.historyModel : null }
PropertyChanges { target: mainFlickable; contentHeight: historyView.tableHeight + 220 * scaleRatio }
PropertyChanges { target: mainFlickable; contentHeight: historyView.contentHeight + 80}
}, State {
name: "Transfer"
PropertyChanges { target: root; currentView: transferView }
PropertyChanges { target: mainFlickable; contentHeight: 1000 * scaleRatio }
PropertyChanges { target: mainFlickable; contentHeight: transferView.transferHeight1 + transferView.transferHeight2 + 80 }
}, State {
name: "Receive"
PropertyChanges { target: root; currentView: receiveView }
PropertyChanges { target: mainFlickable; contentHeight: receiveView.receiveHeight + 100 }
name: "Receive"
PropertyChanges { target: root; currentView: receiveView }
PropertyChanges { target: mainFlickable; contentHeight: receiveView.receiveHeight + 80 }
}, State {
name: "TxKey"
PropertyChanges { target: root; currentView: txkeyView }
PropertyChanges { target: mainFlickable; contentHeight: 1200 * scaleRatio }
name: "Merchant"
PropertyChanges { target: root; currentView: merchantView }
PropertyChanges { target: mainFlickable; contentHeight: merchantView.merchantHeight + 80 }
}, State {
name: "SharedRingDB"
PropertyChanges { target: root; currentView: sharedringdbView }
PropertyChanges { target: mainFlickable; contentHeight: sharedringdbView.panelHeight + 100 }
name: "TxKey"
PropertyChanges { target: root; currentView: txkeyView }
PropertyChanges { target: mainFlickable; contentHeight: txkeyView.txkeyHeight + 80 }
}, State {
name: "SharedRingDB"
PropertyChanges { target: root; currentView: sharedringdbView }
PropertyChanges { target: mainFlickable; contentHeight: sharedringdbView.panelHeight + 80 }
}, State {
name: "AddressBook"
PropertyChanges { target: root; currentView: addressBookView }
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
PropertyChanges { target: root; currentView: addressBookView }
PropertyChanges { target: mainFlickable; contentHeight: addressBookView.addressbookHeight + 80 }
}, State {
name: "Sign"
PropertyChanges { target: root; currentView: signView }
PropertyChanges { target: mainFlickable; contentHeight: 1200 * scaleRatio }
PropertyChanges { target: root; currentView: signView }
PropertyChanges { target: mainFlickable; contentHeight: signView.signHeight + 80 }
}, State {
name: "Settings"
PropertyChanges { target: root; currentView: settingsView }
PropertyChanges { target: mainFlickable; contentHeight: settingsView.settingsHeight + 100 }
PropertyChanges { target: root; currentView: settingsView }
PropertyChanges { target: mainFlickable; contentHeight: settingsView.settingsHeight }
}, State {
name: "Mining"
PropertyChanges { target: root; currentView: miningView }
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
PropertyChanges { target: mainFlickable; contentHeight: miningView.miningHeight + 80 }
}, State {
name: "Keys"
PropertyChanges { target: root; currentView: keysView }
PropertyChanges { target: mainFlickable; contentHeight: minHeight + 200 * scaleRatio }
}
PropertyChanges { target: mainFlickable; contentHeight: keysView.keysHeight + 80}
}, State {
name: "Account"
PropertyChanges { target: root; currentView: accountView }
PropertyChanges { target: mainFlickable; contentHeight: accountView.accountHeight + 80 }
}
]
// color stripe at the top
Row {
id: styledRow
visible: currentView !== merchantView
height: 4
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
z: parent.z + 1
Rectangle { height: 4; width: parent.width / 5; color: "#FFE00A" }
Rectangle { height: 4; width: parent.width / 5; color: "#6B0072" }
@@ -171,7 +187,13 @@ Rectangle {
ColumnLayout {
anchors.fill: parent
anchors.margins: 18
anchors.margins: {
if(currentView === merchantView || currentView === historyView)
return 0;
return 20;
}
anchors.topMargin: appWindow.persistentSettings.customDecorations ? 50 : 0
spacing: 0
@@ -181,14 +203,20 @@ Rectangle {
Layout.fillHeight: true
clip: true
ScrollBar.vertical: ScrollBar {
parent: root
anchors.left: parent.right
anchors.leftMargin: -14 // 10 margin + 4 scrollbar width
anchors.top: parent.top
anchors.topMargin: persistentSettings.customDecorations ? 60 : 10
anchors.bottom: parent.bottom
anchors.bottomMargin: persistentSettings.customDecorations ? 15 : 10
}
onFlickingChanged: {
releaseFocus();
}
// Disabled scrollbars, gives crash on startup on windows
// ScrollIndicator.vertical: ScrollIndicator { }
// ScrollBar.vertical: ScrollBar { } // uncomment to test
// Views container
StackView {
id: stackView
@@ -223,11 +251,28 @@ Rectangle {
// border
Rectangle {
id: borderLeft
visible: middlePanel.state !== "Merchant"
anchors.top: styledRow.bottom
anchors.bottom: parent.bottom
anchors.left: parent.left
width: 1
color: "#313131"
color: MoneroComponents.Style.appWindowBorderColor
MoneroEffects.ColorTransition {
targetObj: parent
blackColor: MoneroComponents.Style._b_appWindowBorderColor
whiteColor: MoneroComponents.Style._w_appWindowBorderColor
}
}
// border shadow
Image {
source: "qrc:///images/middlePanelShadow.png"
width: 12
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: borderLeft.right
}
/* connect "payment" click */

View File

@@ -1,6 +1,6 @@
# Monero GUI
Copyright (c) 2014-2018, The Monero Project
Copyright (c) 2014-2019, The Monero Project
## Development resources
@@ -9,6 +9,7 @@ Copyright (c) 2014-2018, The Monero Project
- Mail: [dev@getmonero.org](mailto:dev@getmonero.org)
- Github: [https://github.com/monero-project/monero-gui](https://github.com/monero-project/monero-gui)
- IRC: [#monero-dev on Freenode](irc://chat.freenode.net/#monero-dev)
- Translation platform (Weblate): [translate.getmonero.org](https://translate.getmonero.org)
## Vulnerability response
@@ -55,6 +56,13 @@ There are also several mining pools that kindly donate a portion of their fees,
See [LICENSE](LICENSE).
## Translations
Do you speak a second language and would like to help translate the Monero GUI? Check out Pootle, our localization platform, at [translate.getmonero.org](https://translate.getmonero.org/projects/monero-gui/). Choose the language and suggest a translation for a string or review an existing one. The Localization Workgroup made [a guide with step-by-step instructions](https://github.com/monero-ecosystem/monero-translations/blob/master/pootle.md) for Pootle.
&nbsp;
If you need help/support or any info you can contact the localization workgroup on the IRC channel #monero-translations (relayed on matrix/riot and MatterMost) or by email at translate[at]getmonero[dot]org. For more info about the Localization workgroup: [github.com/monero-ecosystem/monero-translations](https://github.com/monero-ecosystem/monero-translations)
## Installing the Monero GUI from a package
Packages are available for
@@ -67,6 +75,8 @@ Packaging for your favorite distribution would be a welcome contribution!
## Compiling the Monero GUI from source
*Note*: Qt 5.9.7 is the minimum version required to build the GUI.
### On Linux:
(Tested on Ubuntu 17.10 x64, Ubuntu 18.04 x64 and Gentoo x64)
@@ -75,19 +85,27 @@ Packaging for your favorite distribution would be a welcome contribution!
- For Debian distributions (Debian, Ubuntu, Mint, Tails...)
`sudo apt install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev`
`sudo apt install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libnorm-dev libusb-1.0-0-dev libpgm-dev`
- For Gentoo
`sudo emerge app-arch/xz-utils app-doc/doxygen dev-cpp/gtest dev-libs/boost dev-libs/expat dev-libs/openssl dev-util/cmake media-gfx/graphviz net-dns/unbound net-libs/ldns net-libs/miniupnpc net-libs/zeromq sys-libs/libunwind`
`sudo emerge app-arch/xz-utils app-doc/doxygen dev-cpp/gtest dev-libs/boost dev-libs/expat dev-libs/openssl dev-util/cmake media-gfx/graphviz net-dns/unbound net-libs/ldns net-libs/miniupnpc net-libs/zeromq sys-libs/libunwind dev-libs/libsodium dev-libs/hidapi`
- For Fedora
`sudo dnf install make automake cmake gcc-c++ boost-devel miniupnpc-devel graphviz doxygen unbound-devel libunwind-devel pkgconfig openssl-devel libcurl-devel hidapi-devel libusb-devel zeromq-devel`
2. Install Qt:
*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.
*Note*: The Qt 5.9.7 or newer requirement makes **some** distributions (mostly based on debian, like Ubuntu 16.x or Linux Mint 18.x) obsolete due to their repositories containing an older Qt version.
The recommended way is to install 5.9.7 from the [official Qt installer](https://www.qt.io/download-qt-installer) or [compiling it yourself](https://wiki.qt.io/Install_Qt_5_on_Ubuntu). This ensures you have the correct version. Higher versions *can* work but as it differs from our production build target, slight differences may occur.
The following instructions will fetch Qt from your distribution's repositories instead. Take note of what version it installs. Your mileage may vary.
- For Ubuntu 17.10+
`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`
`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 qml-module-qtquick-templates2 libqt5svg5-dev`
- For Gentoo
@@ -114,7 +132,7 @@ Packaging for your favorite distribution would be a welcome contribution!
```
cd monero-gui
./build.sh
QT_SELECT=5 ./build.sh
```
The executable can be found in the build/release/bin folder.
@@ -127,7 +145,7 @@ The executable can be found in the build/release/bin folder.
3. Install [monero](https://github.com/monero-project/monero) dependencies:
`brew install boost --c++11`
`brew install boost`
`brew install openssl` - to install openssl headers
@@ -141,7 +159,7 @@ The executable can be found in the build/release/bin folder.
4. Install Qt:
`brew install qt5` (or download QT 5.8+ from [qt.io](https://www.qt.io/download-open-source/))
`brew install qt5` (or download QT 5.9.7+ 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:
@@ -149,9 +167,8 @@ The executable can be found in the build/release/bin folder.
5. Add the Qt bin directory to your path
Example: `export PATH=$PATH:$HOME/Qt/5.8/clang_64/bin`
This is the directory where Qt 5.x is installed on **your** system
- Example for Qt: `export PATH=$PATH:$HOME/Qt/5.9.7/clang_64/bin`
- Example for Homebrew: `export PATH=$PATH:/usr/local/opt/qt/bin`
6. Grab an up-to-date copy of the monero-gui repository
@@ -169,7 +186,7 @@ The executable can be found in the `build/release/bin` folder.
**Note:** Workaround for "ERROR: Xcode not set up properly"
Edit `$HOME/Qt/5.8/clang_64/mkspecs/features/mac/default_pre.prf`
Edit `$HOME/Qt/5.9.7/clang_64/mkspecs/features/mac/default_pre.prf`
replace
`isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))`
@@ -191,9 +208,15 @@ The Monero GUI on Windows is 64 bits only; 32-bit Windows GUI builds are not off
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
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 mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb
```
Optional : To build the flag `WITH_SCANNER`
```
pacman -S mingw-w64-x86_64-zbar
```
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
@@ -220,9 +243,11 @@ The Monero GUI on Windows is 64 bits only; 32-bit Windows GUI builds are not off
```
cd monero-gui
./build.sh
source ./build.sh release-static
cd build
make deploy
```
**Note:** The use of `source` above is a dirty workaround for a suspected bug in the current QT version 5.11.2-3 available in the MSYS2 packaging system, see https://github.com/monero-project/monero-gui/issues/1559 for more info.
The executable can be found in the `.\release\bin` directory.

View File

@@ -1,3 +1,31 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "TranslationManager.h"
#include <QApplication>

View File

@@ -1,3 +1,31 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef TRANSLATIONMANAGER_H
#define TRANSLATIONMANAGER_H

View File

@@ -1,6 +1,7 @@
#!/bin/bash
BUILD_TYPE=$1
BUILD_TREZOR=${BUILD_TREZOR-true}
source ./utils.sh
platform=$(get_platform)
# default build type
@@ -72,6 +73,7 @@ if [[ $platform == *bsd* ]]; then
fi
# build libwallet
export BUILD_TREZOR
./get_libwallet_api.sh $BUILD_TYPE
# build zxcvbn

View File

@@ -38,3 +38,7 @@ void clipboardAdapter::setText(const QString &text) {
m_pClipboard->setText(text, QClipboard::Clipboard);
m_pClipboard->setText(text, QClipboard::Selection);
}
QString clipboardAdapter::text() const {
return m_pClipboard->text();
}

View File

@@ -1,21 +1,21 @@
// Copyright (c) 2014-2018, The Monero Project
//
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
@@ -39,6 +39,7 @@ class clipboardAdapter : public QObject
public:
explicit clipboardAdapter(QObject *parent = 0);
Q_INVOKABLE void setText(const QString &text);
Q_INVOKABLE QString text() const;
private:
QClipboard *m_pClipboard;

View File

@@ -1,171 +0,0 @@
// 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 moneroComponents.Clipboard 1.0
ListView {
id: listView
clip: true
boundsBehavior: ListView.StopAtBounds
footer: Rectangle {
height: 127
width: listView.width
color: "transparent"
Text {
anchors.centerIn: parent
font.family: "Arial"
font.pixelSize: 14
color: "#808080"
text: qsTr("No more results") + translationManager.emptyString
}
}
property var previousItem
delegate: Rectangle {
id: delegate
height: 64
width: listView.width
color: "transparent"
z: listView.count - index
function collapseDropdown() { dropdown.expanded = false }
Text {
id: descriptionText
anchors.left: parent.left
anchors.top: parent.top
anchors.topMargin: 12
width: text.length ? (descriptionArea.containsMouse ? 139 : 139) : 0
font.family: "Arial"
font.bold: true
font.pixelSize: 19
color: "#ffffff"
elide: Text.ElideRight
text: description
MouseArea {
id: descriptionArea
anchors.fill: parent
hoverEnabled: true
}
}
TextEdit {
id: addressText
selectByMouse: true
anchors.bottom: descriptionText.bottom
anchors.left: descriptionText.right
anchors.right: dropdown.left
anchors.leftMargin: description.length > 0 ? 12 : 0
anchors.rightMargin: 40
font.family: "Arial"
font.pixelSize: 16
color: "#ffffff"
text: address
readOnly: true
}
Text {
id: paymentLabel
anchors.left: parent.left
anchors.bottom: parent.bottom
anchors.bottomMargin: 12
width: 139
font.family: "Arial"
font.pixelSize: 12
color: "#ffffff"
text: qsTr("Payment ID:") + translationManager.emptyString
}
TextEdit {
selectByMouse: true;
anchors.bottom: paymentLabel.bottom
anchors.left: paymentLabel.right
anchors.leftMargin: 12
anchors.rightMargin: 12
anchors.right: dropdown.left
readOnly: true
font.family: "Arial"
font.pixelSize: 13
color: "#545454"
text: paymentId
}
ListModel {
id: dropModel
ListElement { name: "<b>Copy address to clipboard</b>"; icon: "../images/dropdownCopy.png" }
ListElement { name: "<b>Send to this address</b>"; icon: "../images/dropdownSend.png" }
// ListElement { name: "<b>Find similar transactions</b>"; icon: "../images/dropdownSearch.png" }
ListElement { name: "<b>Remove from address book</b>"; icon: "../images/dropdownDel.png" }
}
Clipboard { id: clipboard }
TableDropdown {
id: dropdown
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: 5
dataModel: dropModel
z: 1
onExpandedChanged: {
if(expanded) {
listView.previousItem = delegate
listView.currentIndex = index
}
}
onOptionClicked: {
// Ensure tooltip is closed
appWindow.toolTip.visible = false;
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);
leftPanel.selectItem(middlePanel.state)
} else if(option === 2){
console.log("Delete: ", rowId);
currentWallet.addressBookModel.deleteRow(rowId);
}
}
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "#404040"
}
}
}

View File

@@ -26,84 +26,94 @@
// 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.9
import QtQuick.Layouts 1.1
import FontAwesome 1.0
import "../components" as MoneroComponents
import "." as MoneroComponents
import "effects/" as MoneroEffects
RowLayout {
Item {
id: checkBox
property alias text: label.text
property string checkedIcon: "../images/checkedIcon-black.png"
property string checkedIcon: "qrc:///images/check-white.svg"
property string uncheckedIcon
property int imgWidth: 13
property int imgHeight: 13
property bool toggleOnClick: true
property bool checked: false
property alias background: backgroundRect.color
property int fontSize: 14 * scaleRatio
property bool border: true
property int fontSize: 14
property alias fontColor: label.color
property bool iconOnTheLeft: true
signal clicked()
height: 25 * scaleRatio
height: 25
width: checkBoxLayout.width
function toggle(){
checkBox.checked = !checkBox.checked
if (checkBox.toggleOnClick) {
checkBox.checked = !checkBox.checked
}
checkBox.clicked()
}
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;
}
}
id: checkBoxLayout
layoutDirection: iconOnTheLeft ? Qt.LeftToRight : Qt.RightToLeft
spacing: 10
Rectangle {
id: backgroundRect
anchors.left: parent.left
width: 25 * scaleRatio
height: checkBox.height - 1
y: 1
color: "transparent"
Item {
id: checkMark
height: checkBox.height
width: checkBox.height
Image {
anchors.centerIn: parent
source: checkBox.checkedIcon
visible: checkBox.checked
}
MouseArea {
Rectangle {
id: backgroundRect
visible: checkBox.border
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
radius: 3
color: "transparent"
border.color:
if(checkBox.checked){
return MoneroComponents.Style.inputBorderColorActive;
} else {
return MoneroComponents.Style.inputBorderColorInActive;
}
}
MoneroEffects.ImageMask {
id: img
visible: checkBox.checked || checkBox.uncheckedIcon != ""
anchors.centerIn: parent
width: checkBox.imgWidth
height: checkBox.imgHeight
color: MoneroComponents.Style.defaultFontColor
fontAwesomeFallbackIcon: FontAwesome.plus
fontAwesomeFallbackSize: 14
image: {
if (checkBox.checked || checkBox.uncheckedIcon == "")
return checkBox.checkedIcon;
return checkBox.uncheckedIcon;
}
}
}
Text {
MoneroComponents.TextPlain {
id: label
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: checkBox.fontSize
color: MoneroComponents.Style.defaultFontColor
textFormat: Text.RichText
wrapMode: Text.Wrap
Layout.fillWidth: true
anchors.left: backgroundRect.right
anchors.leftMargin: !isMobile ? 10 : 8
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
}
}
}
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
}
}
}

View File

@@ -26,22 +26,24 @@
// 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.9
import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0
import FontAwesome 1.0
import "." 1.0
import "." as MoneroComponents
import "effects/" as MoneroEffects
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 int fontSize: 14
property alias fontColor: label.color
property int textMargin: 8 * scaleRatio
property int textMargin: 8
signal clicked()
height: 25 * scaleRatio
height: 25
function toggle(){
checkBox.checked = !checkBox.checked
@@ -55,9 +57,8 @@ RowLayout {
height: label.height
width: (label.width + indicatorRect.width + checkBox.textMargin)
color: "transparent"
anchors.left: parent.left
Text {
MoneroComponents.TextPlain {
id: label
font.family: Style.fontLight.name
font.pixelSize: checkBox.fontSize
@@ -74,16 +75,29 @@ RowLayout {
anchors.left: label.right
anchors.leftMargin: textMargin
color: "transparent"
rotation: checkBox.checked ? 180 : 0
Image {
MoneroEffects.ImageMask {
id: indicatorImage
anchors.centerIn: parent
source: "../images/whiteDropIndicator.png"
rotation: checkBox.checked ? 180 * scaleRatio : 0
width: 12
height: 8
image: "qrc:///images/whiteDropIndicator.png"
color: MoneroComponents.Style.defaultFontColor
opacity: MoneroComponents.Style.blackTheme ? 1 : 0.75
fontAwesomeFallbackIcon: FontAwesome.arrowDown
fontAwesomeFallbackSize: 14
MoneroEffects.ColorTransition {
targetObj: indicatorImage
blackColor: "white"
whiteColor: "black"
duration: 500
}
}
}
MouseArea{
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
@@ -92,7 +106,5 @@ RowLayout {
}
}
}
}
}

View File

@@ -0,0 +1,40 @@
import QtQuick 2.9
import QtQuick.Controls 2.2
import FontAwesome 1.0
import "../components" as MoneroComponents
MouseArea {
signal paste()
id: root
acceptedButtons: Qt.RightButton
anchors.fill: parent
onClicked: {
if (mouse.button === Qt.RightButton)
contextMenu.open()
}
Menu {
id: contextMenu
background: Rectangle {
border.color: MoneroComponents.Style.buttonBackgroundColorDisabledHover
border.width: 1
radius: 2
color: MoneroComponents.Style.buttonBackgroundColorDisabled
}
padding: 1
width: 100
x: root.mouseX
y: root.mouseY
MoneroComponents.ContextMenuItem {
enabled: root.parent.canPaste === true
glyphIcon: FontAwesome.paste
onTriggered: root.paste()
text: qsTr("Paste") + translationManager.emptyString
}
}
}

View File

@@ -0,0 +1,52 @@
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.1
import FontAwesome 1.0
import "../components" as MoneroComponents
MenuItem {
id: menuItem
property bool glyphIconSolid: true
property alias glyphIcon: glyphIcon.text
background: Rectangle {
color: MoneroComponents.Style.buttonBackgroundColorDisabledHover
opacity: mouse.containsMouse ? 1 : 0
MouseArea {
id: mouse
anchors.fill: parent
hoverEnabled: true
onClicked: menuItem.triggered()
visible: menuItem.enabled
}
}
contentItem: RowLayout {
anchors.fill: parent
anchors.leftMargin: 10
anchors.rightMargin: 10
opacity: menuItem.enabled ? 1 : 0.4
spacing: 8
Text {
id: glyphIcon
color: MoneroComponents.Style.buttonTextColor
font.family: glyphIconSolid ? FontAwesome.fontFamilySolid : FontAwesome.fontFamily
font.pixelSize: 14
font.styleName: glyphIconSolid ? "Solid" : "Regular"
}
Text {
color: MoneroComponents.Style.buttonTextColor
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
Layout.fillWidth: true
text: menuItem.text
}
}
}

View File

@@ -26,14 +26,15 @@
// 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.9
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.2
import "../components" as MoneroComponents
import "." as MoneroComponents
import "effects/" as MoneroEffects
import "../js/Windows.js" as Windows
import "../js/Utils.js" as Utils
@@ -64,10 +65,18 @@ Window {
width: 480
height: 280
// background gradient
Image {
// background
MoneroEffects.GradientBackground {
anchors.fill: parent
source: "../images/middlePanelBg.jpg"
fallBackColor: MoneroComponents.Style.middlePanelBackgroundColor
initialStartColor: MoneroComponents.Style.middlePanelBackgroundGradientStart
initialStopColor: MoneroComponents.Style.middlePanelBackgroundGradientStop
blackColorStart: MoneroComponents.Style._b_middlePanelBackgroundGradientStart
blackColorStop: MoneroComponents.Style._b_middlePanelBackgroundGradientStop
whiteColorStart: MoneroComponents.Style._w_middlePanelBackgroundGradientStart
whiteColorStop: MoneroComponents.Style._w_middlePanelBackgroundGradientStop
start: Qt.point(0, 0)
end: Qt.point(height, width)
}
// Make window draggable
@@ -83,14 +92,21 @@ Window {
id: mainLayout
anchors.fill: parent
anchors.topMargin: 20 * scaleRatio
anchors.margins: 35 * scaleRatio
spacing: 20 * scaleRatio
anchors.topMargin: 20
anchors.margins: 35
spacing: 20
RowLayout {
id: content
Layout.fillWidth: true
Item {
Layout.fillHeight: true
Layout.fillWidth: true
Rectangle {
anchors.fill: parent
color: "transparent"
border.color: MoneroComponents.Style.inputBorderColorActive
border.width: 1
radius: 4
}
Flickable {
id: flickable
@@ -101,31 +117,23 @@ Window {
textFormat: TextEdit.RichText
selectByMouse: true
selectByKeyboard: true
anchors.fill: parent
font.family: "Ariel"
font.pixelSize: 14 * scaleRatio
font.family: MoneroComponents.Style.defaultFontColor
font.pixelSize: 14
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectionColor: MoneroComponents.Style.textSelectionColor
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");
msg = log_color(msg, MoneroComponents.Style.blackTheme ? "lime" : "#009100");
textArea.append(msg);
}
function logMessage(msg){
msg = msg.trim();
var color = "white";
var color = MoneroComponents.Style.defaultFontColor;
if(msg.toLowerCase().indexOf('error') >= 0){
color = "red";
color = MoneroComponents.Style.errorColor;
} else if (msg.toLowerCase().indexOf('warning') >= 0){
color = "yellow";
color = MoneroComponents.Style.warningColor;
}
// format multi-lines
@@ -156,15 +164,7 @@ Window {
}
}
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
}
ScrollBar.vertical: ScrollBar {}
}
}
@@ -178,7 +178,11 @@ Window {
onAccepted: {
if(text.length > 0) {
textArea.logCommand(">>> " + text)
daemonManager.sendCommand(text, currentWallet.nettype);
daemonManager.sendCommandAsync(text.split(" "), currentWallet.nettype, function(result) {
if (!result) {
appWindow.showStatusMessage(qsTr("Failed to send command"), 3);
}
});
}
text = ""
}

View File

@@ -26,7 +26,7 @@
// 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.9
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
@@ -89,12 +89,14 @@ Window {
}
}
Text {
text: qsTr("Starting local node in %1 seconds").arg(countDown);
MoneroComponents.TextPlain {
text: qsTr("Starting local node in %1 seconds").arg(countDown) + translationManager.emptyString;
font.pixelSize: 18
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
horizontalAlignment: Text.AlignHCenter
themeTransition: false
color: "black"
}
}
@@ -108,7 +110,7 @@ Window {
id: okButton
visible:false
fontSize: 14
text: qsTr("Start daemon (%1)").arg(countDown)
text: qsTr("Start daemon (%1)").arg(countDown) + translationManager.emptyString
KeyNavigation.tab: cancelButton
onClicked: {
timer.stop();
@@ -121,7 +123,7 @@ Window {
MoneroComponents.StandardButton {
id: cancelButton
fontSize: 14
text: qsTr("Use custom settings")
text: qsTr("Use custom settings") + translationManager.emptyString
onClicked: {
timer.stop();

View File

@@ -1,252 +0,0 @@
// 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 moneroComponents.Clipboard 1.0
ListView {
id: listView
clip: true
boundsBehavior: ListView.StopAtBounds
footer: Rectangle {
height: 127
width: listView.width
color: "#FFFFFF"
Text {
anchors.centerIn: parent
font.family: "Arial"
font.pixelSize: 14
color: "#545454"
text: qsTr("No more results") + translationManager.emptyString
}
}
property var previousItem
delegate: Rectangle {
id: delegate
height: 90
width: listView.width
color: index % 2 ? "#F8F8F8" : "#FFFFFF"
z: listView.count - index
function collapseDropdown() { dropdown.expanded = false }
Row {
id: row1
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: 14
Rectangle {
id: dot
width: 14
height: width
radius: width / 2
color: out ? "#FF4F41" : "#36B05B"
}
Item { //separator
width: 12
height: 14
}
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
}
Text {
id: addressText
anchors.verticalCenter: dot.verticalCenter
width: parent.width - x - 12
elide: Text.ElideRight
font.family: "Arial"
font.pixelSize: 14
color: "#545454"
text: address
visible: !descriptionArea.containsMouse
}
}
Row {
anchors.left: parent.left
anchors.top: row1.bottom
anchors.topMargin: 8
spacing: 12
Item { //separator
width: 14
height: 14
}
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
}
}
}
Column {
anchors.top: parent.top
width: 148
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
}
}
Column {
anchors.top: parent.top
width: 148
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: out ? "#FF4F41" : "#36B05B"
text: out ? "↓" : "↑"
}
Text {
anchors.bottom: parent.bottom
font.family: "Arial"
font.pixelSize: 18
color: out ? "#FF4F41" : "#36B05B"
text: amount
}
}
}
}
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 }
TableDropdown {
id: dropdown
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
}
}
onOptionClicked: {
if(option === 0)
clipboard.setText(address)
}
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "#DBDBDB"
}
}
}

View File

@@ -26,18 +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 2.2
import QtQuick 2.9
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.2
import QtGraphicalEffects 1.0
import QtQuick.Controls.Styles 1.2
import "../components" as MoneroComponents
import "." as MoneroComponents
import "effects/" as MoneroEffects
Item {
id: datePicker
z: parent.z + 1
property bool expanded: false
property date currentDate
property bool showCurrentDate: true
property color backgroundColor : "#404040"
property color backgroundColor : MoneroComponents.Style.appWindowBorderColor
property color errorColor : "red"
property bool error: false
property alias inputLabel: inputLabel
@@ -67,7 +71,7 @@ Item {
height: 22
width: parent.width
Text {
MoneroComponents.TextPlain {
id: inputLabel
anchors.top: parent.top
anchors.topMargin: 2
@@ -77,6 +81,7 @@ Item {
font.bold: false
textFormat: Text.RichText
color: MoneroComponents.Style.defaultFontColor
themeTransition: false
MouseArea {
anchors.fill: parent
@@ -89,7 +94,7 @@ Item {
Item {
id: head
anchors.top: inputLabelRect.bottom
anchors.topMargin: 6 * scaleRatio
anchors.topMargin: 6
anchors.left: parent.left
anchors.right: parent.right
height: 28
@@ -106,45 +111,14 @@ Item {
color: datePicker.backgroundColor
}
Item {
id: buttonItem
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: 4
width: height
Image {
id: button
anchors.centerIn: parent
source: "../images/whiteDropIndicator.png"
rotation: datePicker.expanded ? 180 : 0
}
MouseArea {
anchors.fill: parent
onClicked: datePicker.expanded = !datePicker.expanded
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
}
}
Rectangle {
id: separator
anchors.verticalCenter: parent.verticalCenter
anchors.right: buttonItem.left
anchors.rightMargin: 4
height: 16
width: 1
color: "#808080"
visible: datePicker.expanded
}
Row {
RowLayout {
id: dateInput
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 10
anchors.leftMargin: 2
anchors.right: parent.right
property string headerFontColor: MoneroComponents.Style.blackTheme ? "#e6e6e6" : "#333333"
spacing: 0
function setDate(date) {
var day = date.getDate()
@@ -164,12 +138,14 @@ Item {
TextInput {
id: dayInput
readOnly: true
width: 22
Layout.preferredWidth: childrenRect.width + 40
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
maximumLength: 2
color: datePicker.error ? errorColor : parent.headerFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectByMouse: true
horizontalAlignment: TextInput.AlignHCenter
maximumLength: 2
validator: IntValidator{bottom: 01; top: 31;}
KeyNavigation.tab: monthInput
@@ -187,22 +163,25 @@ Item {
}
}
Text {
MoneroComponents.TextPlain {
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
text: "-"
themeTransition: false
}
TextInput {
id: monthInput
readOnly: true
width: 22
Layout.preferredWidth: childrenRect.width + 40
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
maximumLength: 2
color: datePicker.error ? errorColor : parent.headerFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectByMouse: true
horizontalAlignment: TextInput.AlignHCenter
maximumLength: 2
validator: IntValidator{bottom: 01; top: 12;}
KeyNavigation.tab: yearInput
text: {
@@ -219,23 +198,27 @@ Item {
}
}
Text {
MoneroComponents.TextPlain {
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
text: "-"
themeTransition: false
}
TextInput {
id: yearInput
width: 44
Layout.preferredWidth: childrenRect.width + 60
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
color: datePicker.error ? errorColor : MoneroComponents.Style.defaultFontColor
maximumLength: 4
color: datePicker.error ? errorColor : parent.headerFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectByMouse: true
horizontalAlignment: TextInput.AlignHCenter
maximumLength: 4
validator: IntValidator{bottom: 1000; top: 9999;}
text: if(datePicker.showCurrentDate) datePicker.currentDate.getFullYear()
onFocusChanged: {
if(focus === false) {
var d = new Date()
@@ -245,6 +228,36 @@ Item {
}
}
}
Rectangle {
Layout.preferredHeight: parent.height
Layout.fillWidth: true
color: "transparent"
Image {
id: button
anchors.right: parent.right
anchors.rightMargin: 10
anchors.verticalCenter: parent.verticalCenter
source: "qrc:///images/whiteDropIndicator.png"
visible: false
}
ColorOverlay {
source: button
anchors.fill: button
color: MoneroComponents.Style.defaultFontColor
rotation: datePicker.expanded ? 180 : 0
opacity: 1
}
MouseArea {
anchors.fill: parent
onClicked: datePicker.expanded = !datePicker.expanded
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
}
}
}
}
@@ -253,12 +266,12 @@ Item {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: head.bottom
color: "#FFFFFF"
anchors.topMargin: 10
color: MoneroComponents.Style.middlePanelBackgroundColor
border.width: 1
border.color: "#DBDBDB"
border.color: MoneroComponents.Style.appWindowBorderColor
height: datePicker.expanded ? calendar.height + 2 : 0
clip: true
//radius: 4
Behavior on height {
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
@@ -270,7 +283,7 @@ Item {
anchors.leftMargin: 1
anchors.rightMargin: 1
anchors.top: parent.top
color: "#FFFFFF"
color: MoneroComponents.Style.appWindowBorderColor
height: 1
}
@@ -280,40 +293,58 @@ Item {
anchors.right: parent.right
anchors.top: parent.top
anchors.margins: 1
height: 180
anchors.bottomMargin: 10
height: 220
frameVisible: false
style: CalendarStyle {
gridVisible: false
background: Rectangle { color: "transparent" }
background: Rectangle { color: MoneroComponents.Style.middlePanelBackgroundColor }
dayDelegate: Item {
z: parent.z + 1
implicitHeight: implicitWidth
implicitWidth: calendar.width / 7
Rectangle {
id: dayRect
anchors.fill: parent
radius: parent.implicitHeight / 2
color: dayArea.pressed && styleData.visibleMonth ? "#FF6C3B" : "transparent"
color: {
if(dayArea.pressed && styleData.visibleMonth)
return MoneroComponents.Style.blackTheme ? "#20FFFFFF" : "#10000000"
return "transparent";
}
}
Text {
MoneroComponents.TextPlain {
id: dayText
anchors.centerIn: parent
font.family: "Arial"
font.pixelSize: 12
font.bold: dayArea.pressed
font.family: MoneroComponents.Style.fontMonoRegular.name
font.pixelSize: {
if(!styleData.visibleMonth) return 12
return 14
}
font.bold: {
if(dayArea.pressed || styleData.visibleMonth) return true;
return false;
}
text: styleData.date.getDate()
themeTransition: false
color: {
if(!styleData.visibleMonth) return "#DBDBDB"
if(dayArea.pressed) return "#FFFFFF"
if(styleData.today) return "#FF6C3B"
return "#4A4848"
if(!styleData.visibleMonth) return MoneroComponents.Style.lightGreyFontColor
if(dayArea.pressed) return MoneroComponents.Style.defaultFontColor
if(styleData.today) return MoneroComponents.Style.orange
return MoneroComponents.Style.defaultFontColor
}
}
MouseArea {
id: dayArea
anchors.fill: parent
hoverEnabled: true
onEntered: dayRect.color = MoneroComponents.Style.blackTheme ? "#20FFFFFF" : "#10000000"
onExited: dayRect.color = "transparent"
cursorShape: Qt.PointingHandCursor
onClicked: {
if(styleData.visibleMonth) {
currentDate = styleData.date
@@ -325,7 +356,7 @@ Item {
else calendar.showPreviousMonth()
}
dateChanged();
datePicker.dateChanged();
}
}
}
@@ -334,12 +365,13 @@ Item {
implicitHeight: 20
implicitWidth: calendar.width / 7
Text {
MoneroComponents.TextPlain {
anchors.centerIn: parent
elide: Text.ElideRight
font.family: "Arial"
font.pixelSize: 9
color: "#535353"
font.family: MoneroComponents.Style.fontMonoRegular.name
font.pixelSize: 12
color: MoneroComponents.Style.lightGreyFontColor
themeTransition: false
text: {
var locale = Qt.locale()
return locale.dayName(styleData.dayOfWeek, Locale.ShortFormat)
@@ -348,29 +380,44 @@ Item {
}
navigationBar: Rectangle {
color: MoneroComponents.Style.middlePanelBackgroundColor
implicitWidth: calendar.width
implicitHeight: 30
Text {
MoneroComponents.TextPlain {
anchors.centerIn: parent
font.family: "Arial"
font.pixelSize: 12
color: "#4A4646"
font.family: MoneroComponents.Style.fontMonoRegular.name
font.pixelSize: 14
color: MoneroComponents.Style.dimmedFontColor
themeTransition: false
text: styleData.title
}
Item {
anchors.left: parent.left
anchors.leftMargin: 4
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
Image {
id: prevMonthIcon
anchors.centerIn: parent
source: "../images/prevMonth.png"
source: "qrc:///images/prevMonth.png"
visible: false
}
ColorOverlay {
source: prevMonthIcon
anchors.fill: prevMonthIcon
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
}
MouseArea {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: calendar.showPreviousMonth()
}
@@ -378,16 +425,29 @@ Item {
Item {
anchors.right: parent.right
anchors.rightMargin: 4
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
Image {
id: nextMonthIcon
anchors.centerIn: parent
source: "../images/nextMonth.png"
source: "qrc:///images/prevMonth.png"
visible: false
}
ColorOverlay {
source: nextMonthIcon
anchors.fill: nextMonthIcon
color: MoneroComponents.Style.defaultFontColor
opacity: 0.5
rotation: 180
}
MouseArea {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: calendar.showNextMonth()
}

View File

@@ -1,484 +0,0 @@
// 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 moneroComponents.Clipboard 1.0
import moneroComponents.AddressBookModel 1.0
import "../components" as MoneroComponents
import "../js/TxUtils.js" as TxUtils
ListView {
id: listView
clip: true
boundsBehavior: ListView.StopAtBounds
property var previousItem
property int rowSpacing: 12
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
color: "#545454"
text: qsTr("No more results") + translationManager.emptyString
}
}
delegate: Rectangle {
id: delegate
property bool collapsed: index ? false : true
height: collapsed ? 180 * scaleRatio : 70 * scaleRatio
width: listView.width
color: "transparent"
function collapse(){
delegate.height = 180 * scaleRatio;
}
// borders
Rectangle{
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 1
color: "#404040"
}
Rectangle{
anchors.left: parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
width: collapsed ? 2 : 1
color: collapsed ? "#BBBBBB" : "#404040"
}
Rectangle{
anchors.right: parent.right
anchors.bottom: parent.top
anchors.left: parent.left
height: 1
color: "#404040"
}
Rectangle{
anchors.right: parent.right
anchors.bottom: parent.bottom
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
}
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.rightMargin: 20 * scaleRatio
anchors.top: row1.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: "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

@@ -1,222 +0,0 @@
// 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

@@ -26,49 +26,33 @@
// 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.9
import "../components" as MoneroComponents
import "../components/effects" as MoneroEffects
import QtQuick 2.0
Item {
property alias image : buttonImage
property alias imageSource : buttonImage.source
MoneroEffects.ImageMask {
id: button
z: 666
color: MoneroComponents.Style.defaultFontColor
image: ""
signal clicked(var mouse)
id: button
width: parent.height
height: parent.height
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
Image {
id: buttonImage
source: ""
x : (parent.width - width) / 2
y : (parent.height - height) /2
z: 100
}
MouseArea {
id: buttonArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onPressed: {
buttonImage.x = buttonImage.x + 2
buttonImage.y = buttonImage.y + 2
}
onReleased: {
buttonImage.x = buttonImage.x - 2
buttonImage.y = buttonImage.y - 2
onEntered: {
button.width = button.width + 2
button.height = button.height + 2
}
onClicked: {
parent.clicked(mouse)
onExited: {
button.width = button.width - 2
button.height = button.height - 2
}
onClicked: button.clicked(mouse)
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
@@ -26,22 +26,33 @@
// 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.9
import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0
import "../components" as MoneroComponents
import "." as MoneroComponents
import "./effects/" as MoneroEffects
Item {
id: inlineButton
height: rect.height * scaleRatio
height: parent.height
anchors.top: parent.top
anchors.bottom: parent.bottom
property bool small: false
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 string textColor: MoneroComponents.Style.inlineButtonTextColor
property int fontSize: small ? 14 : 16
property int rectHeight: small ? 24 : 24
property int rectHMargin: small ? 16 : 22
property alias text: inlineText.text
property alias fontPixelSize: inlineText.font.pixelSize
property alias fontFamily: inlineText.font.family
property alias buttonColor: rect.color
signal clicked()
function doClick() {
@@ -52,23 +63,37 @@ Item {
Rectangle{
id: rect
color: MoneroComponents.Style.buttonBackgroundColorDisabled
border.color: "black"
height: 28 * scaleRatio
width: inlineText.width + 22 * scaleRatio
color: MoneroComponents.Style.buttonInlineBackgroundColor
height: 24
width: inlineText.text ? (inlineText.width + 16) : inlineButton.icon ? (inlineImage.width + 16) : rect.height
radius: 4
anchors.top: parent.top
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 4
Text {
MoneroComponents.TextPlain {
id: inlineText
font.family: MoneroComponents.Style.fontBold.name
font.bold: true
font.pixelSize: 16 * scaleRatio
color: "black"
font.pixelSize: inlineButton.fontSize
color: inlineButton.textColor
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
themeTransition: false
MoneroEffects.ColorTransition {
targetObj: inlineText
blackColor: MoneroComponents.Style._b_inlineButtonTextColor
whiteColor: MoneroComponents.Style._w_inlineButtonTextColor
}
}
Image {
id: inlineImage
visible: inlineButton.icon !== ""
anchors.centerIn: parent
source: inlineButton.icon
}
MouseArea {
@@ -78,16 +103,28 @@ Item {
anchors.fill: parent
onClicked: doClick()
onEntered: {
rect.color = "#707070";
rect.color = buttonColor ? buttonColor : "#707070";
rect.opacity = 0.8;
}
onExited: {
rect.opacity = 1.0;
rect.color = "#808080";
rect.color = buttonColor ? buttonColor : "#808080";
}
}
}
DropShadow {
visible: !MoneroComponents.Style.blackTheme
anchors.fill: rect
horizontalOffset: 2
verticalOffset: 2
radius: 7.0
samples: 10
color: "#1B000000"
cached: true
source: rect
}
Keys.onSpacePressed: doClick()
Keys.onReturnPressed: doClick()
}

View File

@@ -27,21 +27,29 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick.Controls 2.0
import QtQuick 2.7
import QtQuick 2.9
import "../components" as MoneroComponents
TextField {
id: textField
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 18 * scaleRatio
font.pixelSize: 18
font.bold: true
horizontalAlignment: TextInput.AlignLeft
selectByMouse: true
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectedTextColor: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.textSelectionColor
selectedTextColor: MoneroComponents.Style.textSelectedColor
background: Rectangle {
color: "transparent"
}
MoneroComponents.ContextMenu {
onPaste: {
textField.clear();
textField.paste();
}
}
}

View File

@@ -26,7 +26,7 @@
// 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 2.9
import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
@@ -49,8 +49,7 @@ Item {
inactiveOverlay.visible = true
leftPanel.enabled = false
middlePanel.enabled = false
titleBar.enabled = false
show()
titleBar.state = "essentials"
root.visible = true;
input.focus = true;
input.text = "";
@@ -60,12 +59,12 @@ Item {
inactiveOverlay.visible = false
leftPanel.enabled = true
middlePanel.enabled = true
titleBar.enabled = true
titleBar.state = "default"
root.visible = false;
}
ColumnLayout {
z: bg.z + 1
z: parent.z + 1
id: mainLayout
spacing: 10
anchors { fill: parent; margins: 35 }
@@ -75,40 +74,40 @@ Item {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Layout.maximumWidth: 400 * scaleRatio
Layout.maximumWidth: 400
Label {
id: label
anchors.left: parent.left
Layout.fillWidth: true
font.pixelSize: 16 * scaleRatio
font.pixelSize: 16
font.family: MoneroComponents.Style.fontLight.name
color: MoneroComponents.Style.defaultFontColor
}
TextField {
MoneroComponents.Input {
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
font.pixelSize: 24
KeyNavigation.tab: okButton
bottomPadding: 10
leftPadding: 10
topPadding: 10
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.textSelectionColor
selectedTextColor: MoneroComponents.Style.textSelectedColor
background: Rectangle {
radius: 2
border.color: Qt.rgba(255, 255, 255, 0.35)
border.color: MoneroComponents.Style.inputBorderColorActive
border.width: 1
color: "black"
color: MoneroComponents.Style.blackTheme ? "black" : "#A9FFFFFF"
}
Keys.onReturnPressed: {
@@ -124,7 +123,7 @@ Item {
// Ok/Cancel buttons
RowLayout {
id: buttons
spacing: 16 * scaleRatio
spacing: 16
Layout.topMargin: 16
Layout.alignment: Qt.AlignRight
@@ -145,7 +144,7 @@ Item {
small: true
width: 120
fontSize: 14
text: qsTr("Ok")
text: qsTr("Ok") + translationManager.emptyString
KeyNavigation.tab: cancelButton
onClicked: {
root.close()

View File

@@ -27,44 +27,52 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick.Controls 2.0
import QtQuick 2.7
import QtQuick 2.9
import "../js/TxUtils.js" as TxUtils
import "../components" as MoneroComponents
TextArea {
property int fontSize: 18
property bool fontBold: false
property string fontColor: MoneroComponents.Style.defaultFontColor
property bool mouseSelection: true
property bool error: false
property bool addressValidation: false
property bool wrapAnywhere: true
property int fontSize: 18 * scaleRatio
property bool fontBold: false
id: textArea
font.family: MoneroComponents.Style.fontRegular.name
color: fontColor
font.pixelSize: fontSize
font.bold: fontBold
horizontalAlignment: TextInput.AlignLeft
selectByMouse: true
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.dimmedFontColor
selectedTextColor: MoneroComponents.Style.defaultFontColor
selectByMouse: mouseSelection
selectionColor: MoneroComponents.Style.textSelectionColor
selectedTextColor: MoneroComponents.Style.textSelectedColor
property int minimumHeight: 100
height: contentHeight > minimumHeight ? contentHeight : minimumHeight
wrapMode: {
if(wrapAnywhere){
return Text.WrapAnywhere;
} else {
return Text.WordWrap;
}
}
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 (textArea.text.startsWith("monero:")) {
error = false;
return;
}
textArea.text = textArea.text.replace(/[^a-z0-9.@\-]/gi,'');
var address_ok = TxUtils.checkAddress(textArea.text, appWindow.persistentSettings.nettype) || TxUtils.isValidOpenAliasAddress(textArea.text);
if(!address_ok) error = true;
else error = false;
TextArea.cursorPosition = textArea.text.length;
}
}
MoneroComponents.ContextMenu {
onPaste: {
textArea.clear();
textArea.paste();
}
}
}

View File

@@ -26,7 +26,7 @@
// 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.5
import QtQuick 2.9
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
@@ -35,24 +35,27 @@ Item {
id: item
property alias text: label.text
property alias color: label.color
property alias textFormat: label.textFormat
property int textFormat: Text.PlainText
property string tipText: ""
property int fontSize: 16 * scaleRatio
property int fontSize: 16
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
property alias elide: label.elide
property alias textWidth: label.width
property alias styleName: label.font.styleName
property alias themeTransition: label.themeTransition
signal linkActivated()
height: label.height * scaleRatio
width: label.width * scaleRatio
Layout.topMargin: 10 * scaleRatio
height: label.height
width: label.width
Layout.topMargin: 10
Text {
MoneroComponents.TextPlain {
id: label
anchors.bottom: parent.bottom
anchors.bottomMargin: 2 * scaleRatio
anchors.bottomMargin: 2
anchors.left: parent.left
font.family: {
if(fontFamily){
@@ -65,5 +68,6 @@ Item {
font.bold: fontBold
color: fontColor
onLinkActivated: item.linkActivated()
textFormat: parent.textFormat
}
}

View File

@@ -26,7 +26,7 @@
// 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.9
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
@@ -37,14 +37,14 @@ Rectangle {
property alias text: labelButtonText.text
id: labelButton
color: "#808080"
color: MoneroComponents.Style.buttonBackgroundColorDisabled
radius: 3
height: 20
width: labelButtonText.width + 14
anchors.right: copyButton.left
anchors.rightMargin: 6
Text {
MoneroComponents.TextPlain {
id: labelButtonText
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
@@ -52,7 +52,7 @@ Rectangle {
font.pixelSize: 12
font.bold: true
text: ""
color: "black"
color: MoneroComponents.Style.inlineButtonTextColor
}
MouseArea {
@@ -61,11 +61,11 @@ Rectangle {
hoverEnabled: true
onClicked: labelButton.clicked()
onEntered: {
labelButton.color = "#707070";
labelButton.color = MoneroComponents.Style.buttonBackgroundColorDisabledHover;
labelButtonText.opacity = 0.8;
}
onExited: {
labelButton.color = "#808080";
labelButton.color = MoneroComponents.Style.buttonBackgroundColorDisabled;
labelButtonText.opacity = 1.0;
}
}

View File

@@ -26,13 +26,14 @@
// 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.9
import "../components" as MoneroComponents
import "../components/effects/" as MoneroEffects
Label {
id: item
fontSize: 18 * scaleRatio
fontSize: 18
Rectangle {
anchors.top: item.bottom
@@ -40,13 +41,12 @@ Label {
anchors.left: parent.left
anchors.right: parent.right
height: 2
color: MoneroComponents.Style.dividerColor
opacity: MoneroComponents.Style.dividerOpacity
}
color: MoneroComponents.Style.appWindowBorderColor
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
MoneroEffects.ColorTransition {
targetObj: parent
blackColor: MoneroComponents.Style._b_appWindowBorderColor
whiteColor: MoneroComponents.Style._w_appWindowBorderColor
}
}
}

View File

@@ -0,0 +1,170 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import "../components" as MoneroComponents
import QtQuick 2.9
import QtQuick.XmlListModel 2.0
import QtQuick.Layouts 1.2
import QtQuick.Controls 2.0
Drawer {
id: sideBar
// @TODO: Qt 5.10 introduces `opened` built-in for Drawer
property bool isOpened: false
onClosed: {
isOpened = false;
}
onOpened: {
isOpened = true;
}
width: 240
height: parent.height - (persistentSettings.customDecorations ? 50 : 0)
y: titleBar.height
background: Rectangle {
color: "#0d0d0d"
width: parent.width
}
Rectangle {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
color: "red"
ListView {
clip: true
Layout.fillHeight: true
Layout.fillWidth: true
boundsBehavior: Flickable.StopAtBounds
width: sideBar.width
height: sideBar.height
model: langModel
delegate: Rectangle {
id: item
color: "transparent"
width: sideBar.width
height: 32
MoneroComponents.TextPlain {
anchors.left: parent.left
anchors.leftMargin: 16
font.bold: true
font.pixelSize: 14
color: MoneroComponents.Style.defaultFontColor
text: display_name
anchors.verticalCenter: parent.verticalCenter
}
Rectangle {
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
color: MoneroComponents.Style.dividerColor
opacity: MoneroComponents.Style.dividerOpacity
height: 1
}
// button gradient while checked
Image {
anchors.fill: parent
source: "qrc:///images/menuButtonGradient.png"
opacity: 0.65
visible: true
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
var locale_spl = locale.split("_");
// reload active translations
console.log(locale_spl[0]);
translationManager.setLanguage(locale_spl[0]);
// set wizard language settings
wizard.language_locale = locale;
wizard.language_wallet = wallet_language;
wizard.language_language = display_name + " (" + locale_spl[1] + ") ";
sideBar.close()
}
hoverEnabled: true
onEntered: {
// item.color = "#26FFFFFF"
parent.opacity = 1
}
onExited: {
// item.color = "transparent"
parent.opacity = 0.65
}
}
}
}
ScrollIndicator.vertical: ScrollIndicator {
// @TODO: QT 5.9 introduces `policy: ScrollBar.AlwaysOn`
active: true
contentItem.opacity: 0.7
onActiveChanged: {
if (!active) {
active = true;
}
}
}
}
}
//Flags model
XmlListModel {
id: langModel
source: "/lang/languages.xml"
query: "/languages/language"
XmlRole { name: "display_name"; query: "@display_name/string()" }
XmlRole { name: "locale"; query: "@locale/string()" }
XmlRole { name: "wallet_language"; query: "@wallet_language/string()" }
XmlRole { name: "flag"; query: "@flag/string()" }
// TODO: XmlListModel is read only, we should store current language somewhere else
// and set current language accordingly
XmlRole { name: "isCurrent"; query: "@enabled/string()" }
onStatusChanged: {
if(status === XmlListModel.Ready){
console.log("languages available: ",count);
}
}
}
}

View File

@@ -26,22 +26,25 @@
// 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.9
import QtGraphicalEffects 1.0
import "../components" as MoneroComponents
Item {
id: item
property alias input: input
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 int placeholderFontSize: 18
property string placeholderColor: MoneroComponents.Style.defaultFontColor
property real placeholderOpacity: 0.35
property alias acceptableInput: input.acceptableInput
property alias validator: input.validator
property alias readOnly : input.readOnly
property alias cursorPosition: input.cursorPosition
@@ -50,16 +53,21 @@ Item {
property alias inlineButtonText: inlineButtonId.text
property alias inlineIcon: inlineIcon.visible
property bool copyButton: false
property alias copyButtonText: copyButtonId.text
property alias copyButtonEnabled: copyButtonId.enabled
property bool borderDisabled: false
property string borderColor: {
if(input.activeFocus){
if(error && input.text !== ""){
return MoneroComponents.Style.inputBorderColorInvalid;
} else if(input.activeFocus){
return MoneroComponents.Style.inputBorderColorActive;
} else {
return MoneroComponents.Style.inputBorderColorInActive;
}
}
property bool borderDisabled: false
property int fontSize: 18 * scaleRatio
property bool showBorder: true
property int fontSize: 18
property bool fontBold: false
property alias fontColor: input.color
property bool error: false
@@ -68,19 +76,19 @@ Item {
property alias labelTextFormat: inputLabel.textFormat
property string backgroundColor: "transparent"
property string tipText: ""
property int labelFontSize: 16 * scaleRatio
property int labelFontSize: 16
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
property int inputHeight: 42
signal labelLinkActivated(); // input label, rich text <a> signal
signal editingFinished();
signal accepted();
signal textUpdated();
height: showingHeader ? (inputLabel.height + inputItem.height + 2) * scaleRatio : 42 * scaleRatio
height: showingHeader ? (inputLabel.height + inputItem.height + 2) : 42
onTextUpdated: {
// check to remove placeholder text when there is content
@@ -101,12 +109,11 @@ Item {
}
}
Text {
MoneroComponents.TextPlain {
id: inputLabel
anchors.top: parent.top
anchors.left: parent.left
anchors.topMargin: 2 * scaleRatio
font.family: MoneroComponents.Style.fontLight.name
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: labelFontSize
font.bold: labelFontBold
textFormat: Text.RichText
@@ -122,7 +129,7 @@ Item {
MoneroComponents.LabelButton {
id: copyButtonId
text: qsTr("Copy")
text: qsTr("Copy") + translationManager.emptyString
anchors.right: parent.right
onClicked: {
if (input.text.length > 0) {
@@ -136,12 +143,13 @@ Item {
Item{
id: inputItem
height: inputHeight * scaleRatio
height: inputHeight
anchors.top: showingHeader ? inputLabel.bottom : parent.top
anchors.topMargin: showingHeader ? 12 * scaleRatio : 2 * scaleRatio
anchors.topMargin: showingHeader ? 12 : 2
width: parent.width
clip: true
Text {
MoneroComponents.TextPlain {
id: placeholderLabel
visible: input.text ? false : true
anchors.verticalCenter: parent.verticalCenter
@@ -151,14 +159,14 @@ Item {
if(placeholderCenter){
return undefined;
}
else if(inlineIcon.visible){ return 50 * scaleRatio; }
else { return 10 * scaleRatio; }
else if(inlineIcon.visible){ return 50; }
else { return 10; }
}
opacity: item.placeholderOpacity
color: item.placeholderColor
font.family: item.placeholderFontFamily
font.pixelSize: placeholderFontSize * scaleRatio
font.pixelSize: placeholderFontSize
font.bold: item.placeholderFontBold
text: ""
z: 3
@@ -166,7 +174,7 @@ Item {
Rectangle {
anchors.fill: parent
anchors.topMargin: 1 * scaleRatio
anchors.topMargin: 1
color: "transparent"
}
@@ -181,34 +189,34 @@ Item {
Image {
id: inlineIcon
width: 26 * scaleRatio
height: 26 * scaleRatio
width: 26
height: 26
anchors.top: parent.top
anchors.topMargin: 8 * scaleRatio
anchors.topMargin: 8
anchors.left: parent.left
anchors.leftMargin: 12 * scaleRatio
source: "../images/moneroIcon-28x28.png"
anchors.leftMargin: 12
source: "qrc:///images/moneroIcon-28x28.png"
visible: false
}
MoneroComponents.Input {
id: input
anchors.fill: parent
anchors.leftMargin: inlineIcon.visible ? 38 : 0
anchors.leftMargin: inlineIcon.visible ? 44 : 0
font.pixelSize: item.fontSize
font.bold: item.fontBold
onEditingFinished: item.editingFinished()
onAccepted: item.accepted();
onTextChanged: item.textUpdated()
topPadding: 10
bottomPadding: 10
}
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
anchors.rightMargin: 8
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
@@ -26,96 +26,163 @@
// 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.9
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
ColumnLayout {
id: lineditmulti
property alias text: multiLine.text
property alias placeholderText: placeholderLabel.text
id: item
Layout.fillWidth: true
property alias text: input.text
property alias labelText: inputLabel.text
property alias error: multiLine.error
property alias readOnly: multiLine.readOnly
property alias addressValidation: multiLine.addressValidation
property alias labelButtonText: labelButton.text
property alias placeholderText: placeholderLabel.text
property int inputPaddingLeft: 10
property int inputPaddingRight: 10
property int inputPaddingTop: 10
property int inputPaddingBottom: 10
property int inputRadius: 4
property bool placeholderCenter: false
property string placeholderFontFamily: MoneroComponents.Style.fontRegular.name
property bool placeholderFontBold: false
property int placeholderFontSize: 18
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
property bool labelButtonVisible: false
property bool copyButton: false
property bool wrapAnywhere: true
property bool showingHeader: true
property bool showBorder: true
property string fontColor: MoneroComponents.Style.defaultFontColor
property bool fontBold: false
property int fontSize: 16 * scaleRatio
property int fontSize: 16
property bool mouseSelection: true
property alias readOnly: input.readOnly
property bool copyButton: false
property bool pasteButton: false
property bool showingHeader: labelText != "" || copyButton || pasteButton
property var wrapMode: Text.NoWrap
property alias addressValidation: input.addressValidation
property string backgroundColor: "" // mock
property alias inlineButton: inlineButtonId
property bool inlineButtonVisible: false
signal labelButtonClicked();
signal inputLabelLinkActivated();
signal editingFinished();
spacing: 0
Rectangle {
id: inputLabelRect
color: "transparent"
Layout.fillWidth: true
height: (inputLabel.height + 10) * scaleRatio
height: (inputLabel.height + 10)
visible: showingHeader ? true : false
Text {
MoneroComponents.TextPlain {
id: inputLabel
anchors.top: parent.top
anchors.left: parent.left
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 16 * scaleRatio
font.pixelSize: item.labelFontSize
font.bold: labelFontBold
textFormat: Text.RichText
color: MoneroComponents.Style.defaultFontColor
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
}
RowLayout {
anchors.right: parent.right
spacing: 16
MoneroComponents.LabelButton {
id: copyButtonId
visible: copyButton && multiLine.text !== ""
text: qsTr("Copy")
anchors.right: labelButton.visible ? inputLabel.right : parent.right
anchors.rightMargin: labelButton.visible? 4 : 0
onClicked: {
if (multiLine.text.length > 0) {
console.log("Copied to clipboard");
clipboard.setText(multiLine.text);
appWindow.showStatusMessage(qsTr("Copied to clipboard"), 3);
MoneroComponents.LabelButton {
id: labelButton
onClicked: labelButtonClicked()
visible: labelButtonVisible
}
MoneroComponents.LabelButton {
id: copyButtonId
visible: copyButton && input.text !== ""
text: qsTr("Copy") + translationManager.emptyString
onClicked: {
if (input.text.length > 0) {
console.log("Copied to clipboard");
clipboard.setText(input.text);
appWindow.showStatusMessage(qsTr("Copied to clipboard"), 3);
}
}
}
MoneroComponents.LabelButton {
id: pasteButtonId
onClicked: {
input.clear();
input.paste();
}
text: qsTr("Paste") + translationManager.emptyString
visible: pasteButton
}
}
}
MoneroComponents.InputMulti {
id: multiLine
id: input
readOnly: false
addressValidation: true
anchors.top: parent.showingHeader ? inputLabelRect.bottom : parent.top
addressValidation: false
Layout.fillWidth: true
topPadding: parent.showingHeader ? 10 * scaleRatio : 0
bottomPadding: 10 * scaleRatio
wrapAnywhere: parent.wrapAnywhere
fontSize: parent.fontSize
fontBold: parent.fontBold
leftPadding: item.inputPaddingLeft
rightPadding: item.inputPaddingRight
topPadding: item.inputPaddingTop
bottomPadding: item.inputPaddingBottom
Text {
wrapMode: item.wrapMode
fontSize: item.fontSize
fontBold: item.fontBold
fontColor: item.fontColor
mouseSelection: item.mouseSelection
onEditingFinished: item.editingFinished()
error: item.error
MoneroComponents.TextPlain {
id: placeholderLabel
visible: multiLine.text ? false : true
visible: input.text ? false : true
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 10 * scaleRatio
opacity: 0.35
color: MoneroComponents.Style.defaultFontColor
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 18 * scaleRatio
anchors.leftMargin: 10
opacity: item.placeholderOpacity
color: item.placeholderColor
font.family: item.placeholderFontFamily
font.bold: item.placeholderFontBold
font.pixelSize: item.placeholderFontSize
text: ""
z: 3
}
@@ -123,18 +190,17 @@ ColumnLayout {
Rectangle {
color: "transparent"
border.width: 1
border.color: {
if(multiLine.error && multiLine.text !== ""){
return MoneroComponents.Style.inputBorderColorInvalid;
} else if(multiLine.activeFocus){
return MoneroComponents.Style.inputBorderColorActive;
} else {
return MoneroComponents.Style.inputBorderColorInActive;
}
}
radius: 4
border.color: item.borderColor
radius: item.inputRadius
anchors.fill: parent
visible: lineditmulti.showBorder
visible: !item.borderDisabled
}
MoneroComponents.InlineButton {
id: inlineButtonId
visible: (inlineButtonId.text || inlineButtonId.icon) && inlineButtonVisible ? true : false
anchors.right: parent.right
anchors.rightMargin: 8
}
}
}

View File

@@ -26,9 +26,11 @@
// 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.5
import QtQuick 2.9
import QtGraphicalEffects 1.0
import "../components" as MoneroComponents
import "effects/" as MoneroEffects
Rectangle {
id: button
@@ -46,12 +48,11 @@ Rectangle {
clicked();
}
function getOffset() {
var offset = 0
var item = button
while (item.under) {
offset += 20 * scaleRatio
offset += 20
item = item.under
}
return offset
@@ -59,77 +60,93 @@ Rectangle {
color: "transparent"
property bool present: !under || under.checked || checked || under.numSelectedChildren > 0
height: present ? ((appWindow.height >= 800) ? 44 * scaleRatio : 38 * scaleRatio ) : 0
height: present ? ((appWindow.height >= 800) ? 44 : 38 ) : 0
// button gradient while checked
Image {
LinearGradient {
visible: isOpenGL && button.checked
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
start: Qt.point(width, 0)
end: Qt.point(0, 0)
gradient: Gradient {
GradientStop { position: 0.0; color: MoneroComponents.Style.menuButtonGradientStart }
GradientStop { position: 1.0; color: MoneroComponents.Style.menuButtonGradientStop }
}
}
// fallback hover effect when opengl is not available
Rectangle {
visible: !isOpenGL && button.checked
anchors.fill: parent
color: MoneroComponents.Style.menuButtonFallbackBackgroundColor
}
// button decorations that are subject to leftMargin offsets
Rectangle {
anchors.left: parent.left
anchors.leftMargin: parent.getOffset() + 20 * scaleRatio
anchors.leftMargin: parent.getOffset() + 20
height: parent.height
width: button.checked ? 20: 10
color: "#00000000"
color: "transparent"
// 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
width: button.checked ? 20 : 8
height: button.checked ? 20 : 8
radius: button.checked ? 20 : 4
color: button.dotColor
// arrow if checked
Image {
anchors.centerIn: parent
anchors.left: parent.left
source: "../images/arrow-right-medium-white.png"
source: MoneroComponents.Style.menuButtonImageDotArrowSource
visible: button.checked
}
}
// button text
Text {
MoneroComponents.TextPlain {
id: label
color: MoneroComponents.Style.menuButtonTextColor
themeTransitionBlackColor: MoneroComponents.Style._b_menuButtonTextColor
themeTransitionWhiteColor: MoneroComponents.Style._w_menuButtonTextColor
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.right
anchors.leftMargin: 8 * scaleRatio
font.family: MoneroComponents.Style.fontMedium.name
anchors.leftMargin: 8
font.bold: true
font.pixelSize: 16 * scaleRatio
color: "#FFFFFF"
font.pixelSize: 14
}
}
// menu button right arrow
Image {
MoneroEffects.ImageMask {
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
anchors.right: parent.right
anchors.rightMargin: 20
height: 14
width: 8
image: MoneroComponents.Style.menuButtonImageRightSource
color: button.checked ? MoneroComponents.Style.menuButtonImageRightColorActive : MoneroComponents.Style.menuButtonImageRightColor
opacity: button.checked ? 0.8 : 0.25
}
Text {
MoneroComponents.TextPlain {
id: symbolText
anchors.right: parent.right
anchors.rightMargin: 44 * scaleRatio
anchors.rightMargin: 44
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 12 * scaleRatio
font.pixelSize: 12
font.bold: true
color: button.checked || buttonArea.containsMouse ? "#FFFFFF" : dot.color
color: button.checked || buttonArea.containsMouse ? MoneroComponents.Style.menuButtonTextColor : dot.color
visible: appWindow.ctrlPressed
themeTransition: false
}
MouseArea {

View File

@@ -0,0 +1,15 @@
import QtQuick 2.9
import "." as MoneroComponents
import "effects/" as MoneroEffects
Rectangle {
color: MoneroComponents.Style.appWindowBorderColor
height: 1
MoneroEffects.ColorTransition {
targetObj: parent
blackColor: MoneroComponents.Style._b_appWindowBorderColor
whiteColor: MoneroComponents.Style._w_appWindowBorderColor
}
}

View File

@@ -1,118 +0,0 @@
import QtQuick 2.2
import QtGraphicalEffects 1.0
import QtQuick.Layouts 1.1
import moneroComponents.Wallet 1.0
import "../components" as MoneroComponents
// BasicPanel header
Rectangle {
id: header
anchors.leftMargin: 1
anchors.rightMargin: 1
Layout.fillWidth: true
Layout.preferredHeight: 64 * scaleRatio
color: "#FFFFFF"
Image {
id: logo
visible: appWindow.width > 460 * scaleRatio
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: -5
anchors.left: parent.left
anchors.leftMargin: 50 * scaleRatio
source: "../images/moneroLogo2.png"
}
Image {
id: icon
visible: !logo.visible
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 40 * scaleRatio
source: "../images/moneroIcon.png"
}
Grid {
anchors.verticalCenter: parent.verticalCenter
anchors.top: parent.top
anchors.right: parent.right
anchors.topMargin: 10 * scaleRatio
width: 256 * scaleRatio
columns: 3
Text {
id: balanceLabel
width: 116 * scaleRatio
height: 20 * scaleRatio
font.family: "Arial"
font.pixelSize: 12 * scaleRatio
font.letterSpacing: -1
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignBottom
color: "#535353"
text: leftPanel.balanceLabelText + ":"
}
Text {
id: balanceText
width: 110 * scaleRatio
height: 20 * scaleRatio
font.family: "Arial"
font.pixelSize: 18 * scaleRatio
font.letterSpacing: -1
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignBottom
color: "#000000"
text: leftPanel.balanceText
}
Item {
height: 20 * scaleRatio
width: 20 * scaleRatio
Image {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
source: "../images/lockIcon.png"
}
}
Text {
width: 116 * scaleRatio
height: 20 * scaleRatio
font.family: "Arial"
font.pixelSize: 12 * scaleRatio
font.letterSpacing: -1
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignBottom
color: "#535353"
text: qsTr("Unlocked Balance:")
}
Text {
id: availableBalanceText
width: 110 * scaleRatio
height: 20 * scaleRatio
font.family: "Arial"
font.pixelSize: 14 * scaleRatio
font.letterSpacing: -1
elide: Text.ElideRight
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignBottom
color: "#000000"
text: leftPanel.unlockedBalanceText
}
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "#DBDBDB"
}
}

View File

@@ -26,9 +26,10 @@
// 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.9
import QtQuick.Layouts 1.1
import FontAwesome 1.0
import moneroComponents.Wallet 1.0
import "../components" as MoneroComponents
@@ -41,25 +42,29 @@ Rectangle {
if (status == Wallet.ConnectionStatus_Connected) {
if(!appWindow.daemonSynced)
return qsTr("Synchronizing")
if(appWindow.remoteNodeConnected)
if(persistentSettings.useRemoteNode)
return qsTr("Remote node")
return qsTr("Connected")
return appWindow.isMining ? qsTr("Connected") + " + " + qsTr("Mining"): qsTr("Connected")
}
if (status == Wallet.ConnectionStatus_WrongVersion)
return qsTr("Wrong version")
if (status == Wallet.ConnectionStatus_Disconnected)
if (status == Wallet.ConnectionStatus_Disconnected){
if(appWindow.walletMode <= 1){
return qsTr("Searching node") + translationManager.emptyString;
}
return qsTr("Disconnected")
}
return qsTr("Invalid connection status")
}
RowLayout {
Layout.preferredHeight: 40 * scaleRatio
Layout.preferredHeight: 40
Item {
id: iconItem
anchors.top: parent.top
width: 40 * scaleRatio
height: 40 * scaleRatio
width: 40
height: 40
opacity: {
if(item.connected == Wallet.ConnectionStatus_Connected){
return 1
@@ -70,50 +75,122 @@ Rectangle {
Image {
anchors.top: parent.top
anchors.topMargin: 6
anchors.topMargin: !appWindow.isMining ? 6 : 4
anchors.right: parent.right
anchors.rightMargin: 11
anchors.rightMargin: !appWindow.isMining ? 11 : 0
source: {
if(item.connected == Wallet.ConnectionStatus_Connected){
return "../images/lightning.png"
if(appWindow.isMining) {
return "qrc:///images/miningxmr.png"
} else if(item.connected == Wallet.ConnectionStatus_Connected) {
return "qrc:///images/lightning.png"
} else {
return "../images/lightning-white.png"
return "qrc:///images/lightning-white.png"
}
}
MouseArea {
anchors.fill: parent
visible: appWindow.walletMode >= 2
cursorShape: Qt.PointingHandCursor
onClicked: {
if(!appWindow.isMining) {
middlePanel.settingsView.settingsStateViewState = "Node";
appWindow.showPageRequest("Settings");
} else {
appWindow.showPageRequest("Mining")
}
}
}
}
}
Item {
anchors.top: parent.top
anchors.left: iconItem.right
height: 40 * scaleRatio
width: 260 * scaleRatio
height: 40
width: 260
Text {
MoneroComponents.TextPlain {
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
font.pixelSize: 13
color: MoneroComponents.Style.dimmedFontColor
opacity: MoneroComponents.Style.blackTheme ? 0.65 : 0.5
text: qsTr("Network status") + translationManager.emptyString
themeTransition: false
}
Text {
MoneroComponents.TextPlain {
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"
font.pixelSize: 20
color: MoneroComponents.Style.defaultFontColor
text: getConnectionStatusString(item.connected) + translationManager.emptyString
opacity: MoneroComponents.Style.blackTheme ? 1.0 : 0.7
themeTransition: false
MouseArea {
anchors.fill: parent
visible: appWindow.walletMode >= 2
cursorShape: Qt.PointingHandCursor
onClicked: {
if(!appWindow.isMining) {
middlePanel.settingsView.settingsStateViewState = "Node";
appWindow.showPageRequest("Settings");
} else {
appWindow.showPageRequest("Mining")
}
}
}
}
Text {
anchors.left: statusTextVal.right
anchors.leftMargin: 16
anchors.verticalCenter: parent.verticalCenter
color: refreshMouseArea.containsMouse ? MoneroComponents.Style.dimmedFontColor : MoneroComponents.Style.defaultFontColor
font.family: FontAwesome.fontFamilySolid
font.pixelSize: 24
font.styleName: "Solid"
opacity: iconItem.opacity * (refreshMouseArea.visible ? 1 : 0.5)
text: FontAwesome.random
visible: (
item.connected != Wallet.ConnectionStatus_Disconnected &&
!persistentSettings.useRemoteNode &&
persistentSettings.bootstrapNodeAddress == "auto"
)
MouseArea {
id: refreshMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
visible: true
onClicked: {
const callback = function(result) {
refreshMouseArea.visible = true;
if (result) {
appWindow.showStatusMessage(qsTr("Successfully switched to another public node"), 3);
appWindow.currentWallet.refreshHeightAsync();
} else {
appWindow.showStatusMessage(qsTr("Failed to switch public node"), 3);
}
};
daemonManager.sendCommandAsync(
["set_bootstrap_daemon", "auto"],
appWindow.currentWallet.nettype,
callback);
refreshMouseArea.visible = false;
appWindow.showStatusMessage(qsTr("Switching to another public node"), 3);
}
}
}
}
}
}

View File

@@ -1,248 +0,0 @@
// 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

@@ -26,16 +26,17 @@
// 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.9
import QtQuick.Controls 1.4
import moneroComponents.Wallet 1.0
import "." as MoneroComponents
Item {
id: item
property string message: ""
property bool active: false
height: 120
width: 240
height: 180
width: 320
property int margin: 15
x: parent.width - width - margin
y: parent.height - height * scale.yScale - margin * scale.yScale
@@ -51,11 +52,12 @@ Item {
backgroundVisible: false
textFormat: TextEdit.AutoText
anchors.fill: parent
font.family: "Arial"
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 12
textMargin: 20
textColor: "white"
text: item.message
wrapMode: Text.WrapAnywhere
}
}
@@ -70,7 +72,7 @@ Item {
Timer {
id: hider
interval: 12000; running: false; repeat: false
interval: 30000; running: false; repeat: false
onTriggered: { item.active = false }
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
@@ -26,121 +26,364 @@
// 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 2.9
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 FontAwesome 1.0
import "../components" as MoneroComponents
import "." as MoneroComponents
import "effects/" as MoneroEffects
import "../js/Utils.js" as Utils
Item {
id: root
visible: false
z: parent.z + 2
property alias password: passwordInput.text
property bool isHidden: true
property alias password: passwordInput1.text
property string walletName
property string errorText
property bool passwordDialogMode
property bool passphraseDialogMode
property bool newPasswordDialogMode
// same signals as Dialog has
signal accepted()
signal acceptedNewPassword()
signal acceptedPassphrase()
signal rejected()
signal rejectedNewPassword()
signal rejectedPassphrase()
signal closeCallback()
function open(walletName) {
function _openInit(walletName, errorText) {
isHidden = true
capsLockTextLabel.visible = oshelper.isCapsLock();
passwordInput1.echoMode = TextInput.Password
passwordInput2.echoMode = TextInput.Password
passwordInput1.text = ""
passwordInput2.text = ""
passwordInput1.forceActiveFocus();
inactiveOverlay.visible = true // draw appwindow inactive
root.walletName = walletName ? walletName : ""
errorTextLabel.text = errorText ? errorText : "";
leftPanel.enabled = false
middlePanel.enabled = false
titleBar.enabled = false
show()
wizard.enabled = false
titleBar.state = "essentials"
root.visible = true;
passwordInput.forceActiveFocus();
passwordInput.text = ""
appWindow.hideBalanceForced = true;
appWindow.updateBalance();
}
function open(walletName, errorText) {
passwordDialogMode = true;
passphraseDialogMode = false;
newPasswordDialogMode = false;
_openInit(walletName, errorText);
}
function openPassphraseDialog() {
passwordDialogMode = false;
passphraseDialogMode = true;
newPasswordDialogMode = false;
_openInit("", "");
}
function openNewPasswordDialog() {
passwordDialogMode = false;
passphraseDialogMode = false;
newPasswordDialogMode = true;
_openInit("", "");
}
function showError(errorText) {
open(root.walletName, errorText);
}
function close() {
inactiveOverlay.visible = false
leftPanel.enabled = true
middlePanel.enabled = true
titleBar.enabled = true
wizard.enabled = true
titleBar.state = "default"
root.visible = false;
appWindow.hideBalanceForced = false;
appWindow.updateBalance();
closeCallback();
}
function toggleIsHidden() {
passwordInput1.echoMode = isHidden ? TextInput.Normal : TextInput.Password;
passwordInput2.echoMode = isHidden ? TextInput.Normal : TextInput.Password;
isHidden = !isHidden;
}
ColumnLayout {
z: inactiveOverlay.z + 1
id: mainLayout
spacing: 10
anchors { fill: parent; margins: 35 * scaleRatio }
anchors { fill: parent; margins: 35 }
ColumnLayout {
id: column
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Layout.maximumWidth: 400 * scaleRatio
Layout.maximumWidth: 400
Label {
text: root.walletName.length > 0 ? qsTr("Please enter wallet password for: ") + root.walletName : qsTr("Please enter wallet password")
anchors.left: parent.left
text: {
if (newPasswordDialogMode) {
return qsTr("Please enter new wallet password") + translationManager.emptyString;
} else {
var device = passwordDialogMode ? qsTr("wallet password") : qsTr("wallet device passphrase");
return (root.walletName.length > 0 ? qsTr("Please enter %1 for: ").arg(device) + root.walletName : qsTr("Please enter %1").arg(device)) + translationManager.emptyString;
}
}
Layout.fillWidth: true
font.pixelSize: 16 * scaleRatio
font.pixelSize: 16
font.family: MoneroComponents.Style.fontLight.name
color: MoneroComponents.Style.defaultFontColor
}
TextField {
id : passwordInput
Label {
text: qsTr("Warning: passphrase entry on host is a security risk as it can be captured by malware. It is advised to prefer device-based passphrase entry.") + translationManager.emptyString
visible: passphraseDialogMode
Layout.fillWidth: true
wrapMode: Text.Wrap
font.pixelSize: 14
font.family: MoneroComponents.Style.fontLight.name
color: MoneroComponents.Style.warningColor
}
Label {
id: errorTextLabel
visible: root.errorText || text !== ""
color: MoneroComponents.Style.errorColor
font.pixelSize: 16
font.family: MoneroComponents.Style.fontLight.name
Layout.fillWidth: true
wrapMode: Text.Wrap
}
Label {
id: capsLockTextLabel
visible: false
color: MoneroComponents.Style.errorColor
font.pixelSize: 16
font.family: MoneroComponents.Style.fontLight.name
Layout.fillWidth: true
wrapMode: Text.Wrap
text: qsTr("CAPSLOCKS IS ON.") + translationManager.emptyString;
}
MoneroComponents.Input {
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
font.pixelSize: 24
echoMode: TextInput.Password
KeyNavigation.tab: {
if (passwordDialogMode) {
return okButton
} else {
return passwordInput2
}
}
bottomPadding: 10
leftPadding: 10
topPadding: 10
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.textSelectionColor
selectedTextColor: MoneroComponents.Style.textSelectedColor
onTextChanged: capsLockTextLabel.visible = oshelper.isCapsLock();
background: Rectangle {
radius: 2
color: MoneroComponents.Style.blackTheme ? "black" : "#A9FFFFFF"
border.color: MoneroComponents.Style.inputBorderColorInActive
border.width: 1
MoneroEffects.ColorTransition {
targetObj: parent
blackColor: "black"
whiteColor: "#A9FFFFFF"
}
MoneroComponents.Label {
fontSize: 20
text: isHidden ? FontAwesome.eye : FontAwesome.eyeSlash
opacity: 0.7
fontFamily: FontAwesome.fontFamily
anchors.right: parent.right
anchors.rightMargin: 15
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: 1
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
onClicked: {
toggleIsHidden();
}
onEntered: {
parent.opacity = 0.9
parent.fontSize = 24
}
onExited: {
parent.opacity = 0.7
parent.fontSize = 20
}
}
}
}
Keys.enabled: root.visible
Keys.onReturnPressed: {
root.close()
if (passwordDialogMode) {
root.accepted()
} else if (newPasswordDialogMode) {
root.acceptedNewPassword()
} else if (passphraseDialogMode) {
root.acceptedPassphrase()
}
}
Keys.onEscapePressed: {
root.close()
if (passwordDialogMode) {
root.rejected()
} else if (newPasswordDialogMode) {
root.rejectedNewPassword()
} else if (passphraseDialogMode) {
root.rejectedPassphrase()
}
}
}
// padding
Rectangle {
visible: !passwordDialogMode
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
height: 10
opacity: 0
color: "black"
}
Label {
visible: !passwordDialogMode
text: newPasswordDialogMode ? qsTr("Please confirm new password") : qsTr("Please confirm wallet device passphrase") + translationManager.emptyString
Layout.fillWidth: true
font.pixelSize: 16
font.family: MoneroComponents.Style.fontLight.name
color: MoneroComponents.Style.defaultFontColor
}
MoneroComponents.Input {
id: passwordInput2
visible: !passwordDialogMode
Layout.topMargin: 6
Layout.fillWidth: true
horizontalAlignment: TextInput.AlignLeft
verticalAlignment: TextInput.AlignVCenter
font.family: MoneroComponents.Style.fontLight.name
font.pixelSize: 24
echoMode: TextInput.Password
KeyNavigation.tab: okButton
bottomPadding: 10
leftPadding: 10
topPadding: 10
color: MoneroComponents.Style.defaultFontColor
selectionColor: MoneroComponents.Style.textSelectionColor
selectedTextColor: MoneroComponents.Style.textSelectedColor
onTextChanged: capsLockTextLabel.visible = oshelper.isCapsLock();
background: Rectangle {
radius: 2
border.color: Qt.rgba(255, 255, 255, 0.35)
border.color: MoneroComponents.Style.inputBorderColorInActive
border.width: 1
color: "black"
color: MoneroComponents.Style.blackTheme ? "black" : "#A9FFFFFF"
Image {
width: 12
height: 16
source: "../images/lockIcon.png"
anchors.verticalCenter: parent.verticalCenter
MoneroComponents.Label {
fontSize: 20
text: isHidden ? FontAwesome.eye : FontAwesome.eyeSlash
opacity: 0.7
fontFamily: FontAwesome.fontFamily
anchors.right: parent.right
anchors.rightMargin: 20
anchors.rightMargin: 15
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: 1
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
onClicked: {
toggleIsHidden()
}
onEntered: {
parent.opacity = 0.9
parent.fontSize = 24
}
onExited: {
parent.opacity = 0.7
parent.fontSize = 20
}
}
}
}
Keys.onReturnPressed: {
root.close()
root.accepted()
if (passwordInput1.text === passwordInput2.text) {
root.close()
if (newPasswordDialogMode) {
root.acceptedNewPassword()
} else if (passphraseDialogMode) {
root.acceptedPassphrase()
}
}
}
Keys.onEscapePressed: {
root.close()
root.rejected()
if (newPasswordDialogMode) {
root.rejectedNewPassword()
} else if (passphraseDialogMode) {
root.rejectedPassphrase()
}
}
}
// padding
Rectangle {
visible: !passwordDialogMode
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
height: 10
opacity: 0
color: "black"
}
// Ok/Cancel buttons
RowLayout {
id: buttons
spacing: 16 * scaleRatio
spacing: 16
Layout.topMargin: 16
Layout.alignment: Qt.AlignRight
@@ -148,25 +391,37 @@ Item {
id: cancelButton
small: true
text: qsTr("Cancel") + translationManager.emptyString
KeyNavigation.tab: passwordInput
KeyNavigation.tab: passwordInput1
onClicked: {
root.close()
root.rejected()
if (passwordDialogMode) {
root.rejected()
} else if (newPasswordDialogMode) {
root.rejectedNewPassword()
} else if (passphraseDialogMode) {
root.rejectedPassphrase()
}
}
}
MoneroComponents.StandardButton {
id: okButton
small: true
text: qsTr("Continue")
text: qsTr("Ok") + translationManager.emptyString
KeyNavigation.tab: cancelButton
enabled: (passwordDialogMode == true) ? true : passwordInput1.text === passwordInput2.text
onClicked: {
root.close()
root.accepted()
if (passwordDialogMode) {
root.accepted()
} else if (newPasswordDialogMode) {
root.acceptedNewPassword()
} else if (passphraseDialogMode) {
root.acceptedPassphrase()
}
}
}
}
}
}
}

View File

@@ -1,151 +0,0 @@
// 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
Item {
id: item
property int fillLevel: 0
height: 70
clip: true
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: 24
//radius: 4
color: "#DBDBDB"
}
Rectangle {
id: bar
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: 1
height: 24
//radius: 4
color: "#FFFFFF"
Rectangle {
id: fillRect
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.margins: 4
//radius: 2
width: row.x
color: "#FF6C3C"
Timer {
interval: 500
running: true
repeat: false
onTriggered: fillRect.loaded = true
}
property bool loaded: false
Behavior on width {
enabled: fillRect.loaded
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
}
}
MouseArea {
anchors.fill: parent
function positionBar() {
var xDiff = 999999
var index = -1
for(var i = 0; i < 14; ++i) {
var tmp = Math.abs(row.positions[i].currentX + row.x - mouseX)
if(tmp < xDiff) {
xDiff = tmp
index = i
}
}
if(index !== -1) {
fillRect.width = Qt.binding(function(){ return row.positions[index].currentX + row.x })
item.fillLevel = index
}
}
onClicked: positionBar()
onMouseXChanged: positionBar()
}
}
Row {
id: row
anchors.right: bar.right
anchors.rightMargin: 8
anchors.top: bar.bottom
anchors.topMargin: -1
property var positions: new Array()
Row {
id: row2
spacing: bar.width / 14
Repeater {
model: 4
delegate: TickDelegate {
id: delegateItem2
currentX: x + row2.x
currentIndex: index
mainTick: currentIndex === 0
Component.onCompleted: {
row.positions[currentIndex] = delegateItem2
}
}
}
}
Row {
id: row1
spacing: bar.width / 14
Repeater {
model: 10
delegate: TickDelegate {
id: delegateItem1
currentX: x + row1.x
currentIndex: index + 4
mainTick: currentIndex === 13
Component.onCompleted: {
row.positions[currentIndex] = delegateItem1
}
}
}
}
}
}

View File

@@ -1,191 +0,0 @@
// 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
Item {
id: item
property alias interactive: mouseArea.enabled
property alias background: bar.color
property int fillLevel: 0
height: 40
clip: true
onFillLevelChanged: {
if (!interactive) {
//print("fillLevel: " + fillLevel)
fillRect.width = row.positions[fillLevel].currentX + row.x
}
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: 24
//radius: 4
color: "#DBDBDB"
}
Rectangle {
id: bar
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: 1
height: 24
//radius: 4
color: "#FFFFFF"
Rectangle {
id: fillRect
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.margins: 4
//radius: 2
width: row.x
color: "#FF6C3C"
Timer {
interval: 500
running: true
repeat: false
onTriggered: fillRect.loaded = true
}
property bool loaded: false
Behavior on width {
enabled: fillRect.loaded
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
}
}
Text {
anchors.verticalCenter: parent.verticalCenter
font.family: "Arial"
font.pixelSize: 15
color: "#000000"
x: row.x + (row.positions[0] !== undefined ? row.positions[0].currentX - 3 : 0) - width
text: qsTr("Low") + translationManager.emptyString
}
Text {
anchors.verticalCenter: parent.verticalCenter
font.family: "Arial"
font.pixelSize: 15
color: "#000000"
x: row.x + (row.positions[4] !== undefined ? row.positions[4].currentX - 3 : 0) - width
text: qsTr("Medium") + translationManager.emptyString
}
Text {
anchors.verticalCenter: parent.verticalCenter
font.family: "Arial"
font.pixelSize: 15
color: "#000000"
x: row.x + (row.positions[13] !== undefined ? row.positions[13].currentX - 3 : 0) - width
text: qsTr("High") + translationManager.emptyString
}
MouseArea {
id: mouseArea
anchors.fill: parent
function positionBar() {
var xDiff = 999999
var index = -1
for(var i = 0; i < 14; ++i) {
var tmp = Math.abs(row.positions[i].currentX + row.x - mouseX)
if(tmp < xDiff) {
xDiff = tmp
index = i
}
}
if(index !== -1) {
fillRect.width = Qt.binding(function(){ return row.positions[index].currentX + row.x })
item.fillLevel = index
print ("fillLevel: " + item.fillLevel)
}
}
onClicked: positionBar()
onMouseXChanged: positionBar()
}
}
Row {
id: row
anchors.right: bar.right
anchors.rightMargin: 8
anchors.top: bar.bottom
anchors.topMargin: 5
property var positions: []
Row {
id: row2
spacing: ((bar.width - 8) / 2.23) / 4
Repeater {
model: 4
delegate: Rectangle {
id: delegateItem2
property int currentX: x + row2.x
height: 8
width: 1
color: "#DBDBDB"
Component.onCompleted: {
row.positions[index] = delegateItem2
}
}
}
}
Row {
id: row1
spacing: ((bar.width - 8) / 2.23) / 10
Repeater {
model: 10
delegate: Rectangle {
id: delegateItem1
property int currentX: x + row1.x
height: index === 4 ? 8 : 4
width: 1
color: "#DBDBDB"
Component.onCompleted: {
row.positions[index + 4] = delegateItem1
}
}
}
}
}
}

View File

@@ -26,21 +26,23 @@
// 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.9
import QtQuick.Window 2.1
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
Rectangle {
id: root
color: "white"
color: MoneroComponents.Style.blackTheme ? "white" : "transparent"
visible: false
z:11
z: 11
property alias messageText: messageTitle.text
property alias heightProgressText : heightProgress.text
width: 200 * scaleRatio
height: 100 * scaleRatio
width: 200
height: 100
opacity: 0.7
function show() {
@@ -58,34 +60,40 @@ Rectangle {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: 30 * scaleRatio
anchors.rightMargin: 30 * scaleRatio
anchors.leftMargin: 30
anchors.rightMargin: 30
spacing: 12
BusyIndicator {
running: parent.visible
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
}
Text {
MoneroComponents.TextPlain {
id: messageTitle
text: "Please wait..."
font {
pixelSize: 22 * scaleRatio
pixelSize: 22
}
horizontalAlignment: Text.AlignHCenter
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
Layout.fillWidth: true
themeTransition: false
color: "black"
}
Text {
MoneroComponents.TextPlain {
id: heightProgress
font {
pixelSize: 18 * scaleRatio
pixelSize: 18
}
horizontalAlignment: Text.AlignHCenter
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
Layout.fillWidth: true
themeTransition: false
color: "black"
}
}
}

View File

@@ -26,7 +26,7 @@
// 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.9
import moneroComponents.Wallet 1.0
import "../components" as MoneroComponents
@@ -46,53 +46,71 @@ Rectangle {
fillLevel = progressLevel
if(typeof statusTxt != "undefined" && statusTxt != "") {
progressText.text = statusTxt;
progressTextValue.text = "";
} else {
progressText.text = syncText + remaining.toFixed(0);
progressText.text = syncText;
progressTextValue.text = remaining.toFixed(0);
}
}
}
Item {
anchors.top: item.top
anchors.topMargin: 10 * scaleRatio
anchors.leftMargin: 15 * scaleRatio
anchors.rightMargin: 15 * scaleRatio
anchors.topMargin: 10
anchors.leftMargin: 15
anchors.rightMargin: 15
anchors.fill: parent
Text {
MoneroComponents.TextPlain {
id: progressText
anchors.top: parent.top
anchors.topMargin: 6
font.family: MoneroComponents.Style.fontMedium.name
font.pixelSize: 13 * scaleRatio
font.bold: true
color: "white"
text: qsTr("Synchronizing %1").arg(syncType)
height: 18 * scaleRatio
font.pixelSize: 13
font.bold: MoneroComponents.Style.progressBarProgressTextBold
color: MoneroComponents.Style.defaultFontColor
text: qsTr("Synchronizing %1").arg(syncType) + translationManager.emptyString
height: 18
}
Text {
MoneroComponents.TextPlain {
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
font.pixelSize: 13
font.bold: MoneroComponents.Style.progressBarProgressTextBold
color: MoneroComponents.Style.defaultFontColor
height:18
}
Rectangle {
id: bar
anchors.left: parent.left
anchors.right: parent.right
anchors.top: progressText.bottom
anchors.topMargin: 4
height: 8 * scaleRatio
radius: 8 * scaleRatio
color: "#333333" // progressbar bg
height: 8
radius: 8
color: MoneroComponents.Style.progressBarBackgroundColor
states: [
State {
name: "black";
when: MoneroComponents.Style.blackTheme
PropertyChanges { target: bar; color: MoneroComponents.Style._b_progressBarBackgroundColor}
}, State {
name: "white";
when: !MoneroComponents.Style.blackTheme
PropertyChanges { target: bar; color: MoneroComponents.Style._w_progressBarBackgroundColor}
}
]
transitions: Transition {
enabled: appWindow.themeTransition
ColorAnimation { properties: "color"; easing.type: Easing.InOutQuad; duration: 300 }
}
Rectangle {
id: fillRect
@@ -100,10 +118,9 @@ Rectangle {
anchors.bottom: parent.bottom
anchors.left: parent.left
height: bar.height
property int maxWidth: bar.width * scaleRatio
property int maxWidth: bar.width
width: (maxWidth * fillLevel) / 100
radius: 8
// could change color based on progressbar status; if(item.fillLevel < 99 )
color: "#FA6800"
}
@@ -111,12 +128,9 @@ Rectangle {
color:"#333"
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.leftMargin: 8 * scaleRatio
anchors.leftMargin: 8
}
}
}
}

View File

@@ -26,7 +26,7 @@
// 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.9
import QtMultimedia 5.4
import QtQuick.Dialogs 1.2
import moneroComponents.QRCodeScanner 1.0

View File

@@ -26,22 +26,23 @@
// 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.9
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
RowLayout {
Item {
id: radioButton
property alias text: label.text
property bool checked: false
property int fontSize: 14 * scaleRatio
property int fontSize: 14
property alias fontColor: label.color
signal clicked()
height: 26 * scaleRatio
height: 26
width: layout.width
// legacy properties
property var checkedColor: "white"
property var borderColor: checked ? Qt.rgba(1, 1, 1, 0.35) : Qt.rgba(1, 1, 1, 0.25)
property var checkedColor: MoneroComponents.Style.blackTheme ? "white" : "#666666"
property var borderColor: checked ? MoneroComponents.Style.inputBorderColorActive : MoneroComponents.Style.inputBorderColorInActive
function toggle(){
radioButton.checked = !radioButton.checked
@@ -49,15 +50,14 @@ RowLayout {
}
RowLayout {
Layout.fillWidth: true
id: layout
Rectangle {
id: button
anchors.left: parent.left
y: 0
color: "transparent"
border.color: borderColor
width: radioButton.height
height: radioButton.height
width: radioButton.height
radius: radioButton.height
Rectangle {
@@ -65,37 +65,28 @@ RowLayout {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
color: checkedColor
width: 10 * scaleRatio
height: 10 * scaleRatio
width: 10
height: 10
radius: 10
opacity: 0.8
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
}
}
}
Text {
MoneroComponents.TextPlain {
id: label
anchors.left: button.right
anchors.leftMargin: !isMobile ? 10 : 8
Layout.leftMargin: 10
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()
}
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
toggle()
}
}
}

View File

@@ -28,13 +28,14 @@
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick 2.2
import QtQuick 2.9
import QtQuick.Layouts 1.1
import "../js/Utils.js" as Utils
import "../components" as MoneroComponents
GridLayout {
columns: (isMobile) ? 1 : 2
columns: 2
columnSpacing: 32
id: root
property alias daemonAddrText: daemonAddr.text
@@ -46,19 +47,33 @@ GridLayout {
// 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 int placeholderFontSize: 15
property string placeholderColor: MoneroComponents.Style.defaultFontColor
property real placeholderOpacity: 0.35
property int labelFontSize: 14
property string lineEditBorderColor: Qt.rgba(0, 0, 0, 0.15)
property string lineEditBackgroundColor: "white"
property string lineEditFontColor: "black"
property bool lineEditFontBold: true
property string lineEditBackgroundColor: "transparent"
property string lineEditBorderColor: MoneroComponents.Style.inputBorderColorInActive
property string lineEditFontColor: MoneroComponents.Style.defaultFontColor
property bool lineEditFontBold: false
property int lineEditFontSize: 15
signal editingFinished()
signal textChanged()
function isValid() {
return daemonAddr.text.trim().length > 0 && daemonPort.acceptableInput
}
function getAddress() {
return daemonAddr.text.trim() + ":" + daemonPort.text.trim()
var addr = daemonAddr.text.trim();
var port = daemonPort.text.trim();
// validation
if(addr === "" || addr.length < 2) return "";
if(!Utils.isNumeric(port)) return "";
return addr + ":" + port;
}
LineEdit {
@@ -70,11 +85,14 @@ GridLayout {
placeholderFontSize: root.placeholderFontSize
placeholderColor: root.placeholderColor
placeholderOpacity: root.placeholderOpacity
onEditingFinished: root.editingFinished()
labelFontSize: root.labelFontSize
borderColor: lineEditBorderColor
backgroundColor: lineEditBackgroundColor
fontColor: lineEditFontColor
fontBold: lineEditFontBold
fontSize: lineEditFontSize
onEditingFinished: root.editingFinished()
onTextChanged: root.textChanged()
}
LineEdit {
@@ -86,10 +104,15 @@ GridLayout {
placeholderFontSize: root.placeholderFontSize
placeholderColor: root.placeholderColor
placeholderOpacity: root.placeholderOpacity
onEditingFinished: root.editingFinished()
labelFontSize: root.labelFontSize
borderColor: lineEditBorderColor
backgroundColor: lineEditBackgroundColor
fontColor: lineEditFontColor
fontBold: lineEditFontBold
fontSize: lineEditFontSize
validator: IntValidator{bottom: 1; top: 65535;}
onEditingFinished: root.editingFinished()
onTextChanged: root.textChanged()
}
}

View File

@@ -26,11 +26,15 @@
// 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.9
import "." as MoneroComponents
Item {
id: scrollItem
property var flickable
property alias scrollColor: scroll.color
property alias scrollWidth: scroll.width
property alias scrollRadius: scroll.radius
width: 15
z: 1
@@ -52,13 +56,14 @@ Item {
id: scroll
width: 4
radius: width / 2
height: {
var t = (flickable.height * flickable.height) / flickable.contentHeight
return t < 20 ? 20 : t
return t < 50 ? 50 : t
}
y: 0; x: 0
color: "#DBDBDB"
opacity: flickable.moving || handleArea.pressed || scrollArea.containsMouse ? 0.5 : 0
color: MoneroComponents.Style.orange
opacity: flickable.moving || handleArea.pressed || scrollArea.containsMouse ? 0.8 : 0
visible: flickable.contentHeight > flickable.height
Behavior on opacity {

View File

@@ -1,229 +0,0 @@
// 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 "../components" as MoneroComponents
Item {
id: item
signal searchClicked(string text, int option)
height: 50
Rectangle {
anchors.fill: parent
color: "#DBDBDB"
//radius: 4
}
Rectangle {
anchors.fill: parent
anchors.topMargin: 1
color: "#FFFFFF"
//radius: 4
Item {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
width: 45
Image {
anchors.centerIn: parent
source: "../images/magnifier.png"
}
}
Input {
id: input
anchors.left: parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: dropdown.left
anchors.leftMargin: 45
font.pixelSize: 18
verticalAlignment: TextInput.AlignVCenter
placeholderText: qsTr("Search by...") + translationManager.emptyString
}
Item {
id: dropdown
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: button.left
width: 154
function hide() { droplist.height = 0 }
function containsPoint(px, py) {
if(px < 0)
return false
if(px > width)
return false
if(py < 0)
return false
if(py > height + droplist.height)
return false
return true
}
Row {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
Text {
id: dropText
width: 114 - 12
anchors.verticalCenter: parent.verticalCenter
font.family: "Arial"
font.pixelSize: 12
font.bold: true
color: "#4A4747"
text: "NAME"
}
Image {
anchors.verticalCenter: parent.verticalCenter
source: "../images/hseparator.png"
}
Item {
height: dropdown.height
width: 38
Image {
id: dropIndicator
anchors.centerIn: parent
source: "../images/dropIndicator.png"
rotation: droplist.height === 0 ? 0 : 180
}
}
}
MouseArea {
anchors.fill: parent
onClicked: {
if(droplist.height === 0) {
appWindow.currentItem = dropdown
droplist.height = dropcolumn.height + 2
} else {
droplist.height = 0
}
}
}
}
Rectangle {
id: droplist
property int currentOption: 0
width: 154
height: 0
clip: true
x: dropdown.x
y: dropdown.height
border.width: 1
border.color: "#DBDBDB"
color: "#FFFFFF"
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.leftMargin: 1
anchors.rightMargin: 1
height: 1
color: "#FFFFFF"
}
Behavior on height {
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
}
ListModel {
id: dropdownModel
ListElement { name: "NAME" }
ListElement { name: "DESCRIPTION" }
ListElement { name: "ADDRESS" }
}
Column {
id: dropcolumn
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.margins: 1
Repeater {
model: dropdownModel
delegate: Rectangle {
property bool isCurrent: name === dropText.text
anchors.left: parent.left
anchors.right: parent.right
height: 30
color: delegateArea.pressed || isCurrent ? "#4A4646" : "#FFFFFF"
Text {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: parent.right
elide: Text.ElideRight
anchors.leftMargin: 12
anchors.rightMargin: 12
font.family: "Arial"
font.bold: true
font.pixelSize: 12
color: delegateArea.pressed || parent.isCurrent ? "#FFFFFF" : "#4A4646"
text: name
}
MouseArea {
id: delegateArea
anchors.fill: parent
onClicked: {
droplist.currentOption = index
droplist.height = 0
dropText.text = name
}
}
}
}
}
}
MoneroComponents.StandardButton {
id: button
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
anchors.margins: 6
width: 80
text: qsTr("SEARCH")
onClicked: item.searchClicked(input.text, droplist.currentOption)
}
}
}

View File

@@ -0,0 +1,65 @@
import QtQuick 2.9
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
ColumnLayout {
property alias buttonText: button.text
property alias description: description.text
property alias title: title.text
signal clicked()
id: settingsListItem
Layout.fillWidth: true
spacing: 0
Rectangle {
// divider
Layout.preferredHeight: 1
Layout.fillWidth: true
Layout.bottomMargin: 8
color: MoneroComponents.Style.dividerColor
opacity: MoneroComponents.Style.dividerOpacity
}
RowLayout {
Layout.fillWidth: true
spacing: 0
ColumnLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
spacing: 0
MoneroComponents.TextPlain {
id: title
Layout.fillWidth: true
Layout.preferredHeight: 20
Layout.topMargin: 8
color: MoneroComponents.Style.defaultFontColor
opacity: MoneroComponents.Style.blackTheme ? 1.0 : 0.8
font.bold: true
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 16
}
MoneroComponents.TextPlainArea {
id: description
color: MoneroComponents.Style.dimmedFontColor
colorBlackTheme: MoneroComponents.Style._b_dimmedFontColor
colorWhiteTheme: MoneroComponents.Style._w_dimmedFontColor
Layout.fillWidth: true
horizontalAlignment: TextInput.AlignLeft
}
}
MoneroComponents.StandardButton {
id: button
small: true
onClicked: {
settingsListItem.clicked()
}
width: 135
}
}
}

View File

@@ -26,7 +26,7 @@
// 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.9
import QtQuick.Layouts 1.1
import "../components" as MoneroComponents
@@ -35,105 +35,113 @@ Item {
id: button
property string rightIcon: ""
property string rightIconInactive: ""
property string icon: ""
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;
if(small) return 14;
else return 16;
}
property alias label: label
signal clicked()
// Dynamic height/width
Layout.minimumWidth: {
var _padding = 22;
if(button.rightIcon !== ""){
_padding += 60;
}
height: small ? 30 : 36
width: buttonLayout.width + 22
implicitHeight: height
implicitWidth: width
var _width = label.contentWidth + _padding;
if(_width <= 50) {
return 60;
}
return _width;
}
height: small ? 30 * scaleRatio : 36 * scaleRatio
function doClick() {
// Android workaround
function doClick(){
releaseFocus();
clicked();
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
id: buttonRect
anchors.fill: parent
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
state: button.enabled ? "active" : "disabled"
Component.onCompleted: state = state
propagateComposedEvents: true
states: [
State {
name: "hover"
when: buttonArea.containsMouse || button.focus
PropertyChanges {
target: buttonRect
color: MoneroComponents.Style.buttonBackgroundColorHover
}
},
State {
name: "active"
when: button.enabled
PropertyChanges {
target: buttonRect
color: MoneroComponents.Style.buttonBackgroundColor
}
},
State {
name: "disabled"
when: !button.enabled
PropertyChanges {
target: buttonRect
color: MoneroComponents.Style.buttonBackgroundColorDisabled
}
}
]
// 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;
}
transitions: Transition {
enabled: appWindow.themeTransition
ColorAnimation { duration: 100 }
}
}
Text {
id: label
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: parent.right
horizontalAlignment: textAlign === "center" ? Text.AlignHCenter : Text.AlignLeft
anchors.leftMargin: textAlign === "center" ? 0 : 11
font.family: MoneroComponents.Style.fontBold.name
font.bold: true
font.pixelSize: buttonArea.pressed ? button.fontSize - 1 : button.fontSize
color: parent.textColor
visible: parent.icon === ""
}
Image {
RowLayout {
id: buttonLayout
height: button.height
spacing: 11
anchors.centerIn: parent
visible: parent.icon !== ""
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;
MoneroComponents.TextPlain {
id: label
font.family: MoneroComponents.Style.fontBold.name
font.bold: true
font.pixelSize: button.fontSize
color: !buttonArea.pressed ? button.textColor : "transparent"
visible: text !== ""
themeTransition: false
MoneroComponents.TextPlain {
anchors.centerIn: parent
color: button.textColor
font.bold: label.font.bold
font.family: label.font.family
font.pixelSize: label.font.pixelSize - 1
text: label.text
opacity: buttonArea.pressed ? 1 : 0
themeTransition: false
}
}
Image {
visible: button.rightIcon !== ""
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
width: button.small ? 16 : 20
height: button.small ? 16 : 20
source: {
if(button.rightIconInactive !== "" && !button.enabled) {
return button.rightIconInactive;
}
return button.rightIcon;
}
return parent.rightIcon;
}
}
MouseArea {
id: buttonArea
anchors.fill: parent
hoverEnabled: true
onClicked: doClick()
cursorShape: Qt.PointingHandCursor
}

View File

@@ -26,7 +26,7 @@
// 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.9
import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
@@ -34,6 +34,7 @@ import QtQuick.Controls.Styles 1.4
import QtQuick.Window 2.0
import "../components" as MoneroComponents
import "effects/" as MoneroEffects
Rectangle {
id: root
@@ -47,6 +48,7 @@ Rectangle {
property alias textArea: dialogContent
property alias okText: okButton.text
property alias cancelText: cancelButton.text
property alias closeVisible: closeButton.visible
property var icon
@@ -55,12 +57,18 @@ Rectangle {
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"
// background
MoneroEffects.GradientBackground {
anchors.fill: parent
fallBackColor: MoneroComponents.Style.middlePanelBackgroundColor
initialStartColor: MoneroComponents.Style.middlePanelBackgroundGradientStart
initialStopColor: MoneroComponents.Style.middlePanelBackgroundGradientStop
blackColorStart: MoneroComponents.Style._b_middlePanelBackgroundGradientStart
blackColorStop: MoneroComponents.Style._b_middlePanelBackgroundGradientStop
whiteColorStart: MoneroComponents.Style._w_middlePanelBackgroundGradientStart
whiteColorStop: MoneroComponents.Style._w_middlePanelBackgroundGradientStop
start: Qt.point(0, 0)
end: Qt.point(height, width)
}
// Make window draggable
@@ -74,11 +82,8 @@ Rectangle {
function open() {
// Center
if(!isMobile) {
root.x = parent.width/2 - root.width/2
root.y = 100
}
show()
root.x = parent.width/2 - root.width/2
root.y = 100
root.z = 11
root.visible = true;
}
@@ -89,55 +94,63 @@ Rectangle {
}
// TODO: implement without hardcoding sizes
width: isMobile ? screenWidth : 520
height: isMobile ? screenHeight : 380
width: 520
height: 380
ColumnLayout {
id: mainLayout
spacing: 10
anchors { fill: parent; margins: 15 }
anchors.fill: parent
anchors.margins: 20
RowLayout {
id: column
//anchors {fill: parent; margins: 16 }
Layout.topMargin: 14 * scaleRatio
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: 14
Layout.fillWidth: true
MoneroComponents.Label {
id: dialogTitle
horizontalAlignment: Text.AlignHCenter
fontSize: 18 * scaleRatio
fontSize: 18
fontFamily: "Arial"
color: MoneroComponents.Style.defaultFontColor
}
}
RowLayout {
TextArea {
id : dialogContent
Layout.fillWidth: true
Layout.fillHeight: true
renderType: Text.QtRendering
font.family: MoneroComponents.Style.fontLight.name
textFormat: TextEdit.AutoText
readOnly: true
font.pixelSize: 14 * scaleRatio
selectByMouse: false
wrapMode: TextEdit.Wrap
color: MoneroComponents.Style.defaultFontColor
Item {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredHeight: 240
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)
Flickable {
id: flickable
anchors.fill: parent
ScrollBar.vertical: ScrollBar { }
TextArea.flickable: TextArea {
id: dialogContent
Layout.fillWidth: true
Layout.fillHeight: true
renderType: Text.QtRendering
font.family: MoneroComponents.Style.fontLight.name
textFormat: TextEdit.AutoText
readOnly: true
font.pixelSize: 14
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)
}
}
}
}
@@ -160,17 +173,46 @@ Rectangle {
MoneroComponents.StandardButton {
id: okButton
text: qsTr("OK")
text: qsTr("OK") + translationManager.emptyString
KeyNavigation.tab: cancelButton
onClicked: {
root.close()
root.accepted()
}
}
}
}
// close icon
Rectangle {
id: closeButton
anchors.top: parent.top
anchors.right: parent.right
width: 48
height: 48
color: "transparent"
MoneroEffects.ImageMask {
anchors.centerIn: parent
width: 16
height: 16
image: MoneroComponents.Style.titleBarCloseSource
color: MoneroComponents.Style.defaultFontColor
opacity: 0.75
}
MouseArea {
anchors.fill: parent
onClicked: {
root.close()
root.rejected()
}
cursorShape: Qt.PointingHandCursor
onEntered: closeButton.color = "#262626";
onExited: closeButton.color = "transparent";
}
}
// window borders
Rectangle{
width: 1

View File

@@ -26,23 +26,26 @@
// 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.9
import QtGraphicalEffects 1.0
import "../components" as MoneroComponents
import "../components/effects/" as MoneroEffects
Item {
id: dropdown
property int itemTopMargin: 0
property alias dataModel: repeater.model
property string shadowPressedColor
property string shadowReleasedColor
property string pressedColor
property string releasedColor
property string textColor: "#FFFFFF"
property alias currentIndex: column.currentIndex
property string pressedColor: MoneroComponents.Style.appWindowBorderColor
property string releasedColor: MoneroComponents.Style.titleBarButtonHoverColor
property string textColor: MoneroComponents.Style.defaultFontColor
property alias currentIndex: columnid.currentIndex
property bool expanded: false
property int dropdownHeight: 42
property int fontHeaderSize: 16 * scaleRatio
property int fontItemSize: 14 * scaleRatio
property int fontHeaderSize: 16
property int fontItemSize: 14
property string colorBorder: MoneroComponents.Style.inputBorderColorInActive
property string colorHeaderBackground: "transparent"
property bool headerBorder: true
@@ -68,7 +71,7 @@ Item {
// 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 : ""
firstColText.text = columnid.currentIndex < repeater.model.rowCount() ? qsTr(repeater.model.get(columnid.currentIndex).column1) + translationManager.emptyString : ""
}
Item {
@@ -76,26 +79,27 @@ Item {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: parent.itemTopMargin
height: dropdown.dropdownHeight
Rectangle {
color: dropdown.colorHeaderBackground
color: "transparent"
border.width: dropdown.headerBorder ? 1 : 0
border.color: dropdown.colorBorder
radius: 4
anchors.fill: parent
}
Text {
MoneroComponents.TextPlain {
id: firstColText
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 12 * scaleRatio
anchors.leftMargin: 12
elide: Text.ElideRight
font.family: MoneroComponents.Style.fontRegular.name
font.bold: dropdown.headerFontBold
font.pixelSize: dropdown.fontHeaderSize
color: "#FFFFFF"
color: dropdown.textColor
}
Item {
@@ -103,12 +107,21 @@ Item {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
width: 32 * scaleRatio
width: 32
Image {
id: dropdownIcon
anchors.centerIn: parent
source: "../images/whiteDropIndicator.png"
rotation: dropdown.expanded ? 180 * scaleRatio : 0
source: "qrc:///images/whiteDropIndicator.png"
visible: false
}
ColorOverlay {
source: dropdownIcon
anchors.fill: dropdownIcon
color: MoneroComponents.Style.defaultFontColor
rotation: dropdown.expanded ? 180 : 0
opacity: 1
}
}
@@ -127,21 +140,20 @@ Item {
anchors.right: parent.right
anchors.top: head.bottom
clip: true
height: dropdown.expanded ? column.height : 0
height: dropdown.expanded ? columnid.height : 0
color: dropdown.pressedColor
//radius: 4
Rectangle {
anchors.left: parent.left
anchors.top: parent.top
width: 3 * scaleRatio; height: 3 * scaleRatio
width: 3; height: 3
color: dropdown.pressedColor
}
Rectangle {
anchors.right: parent.right
anchors.top: parent.top
width: 3 * scaleRatio; height: 3 * scaleRatio
width: 3; height: 3
color: dropdown.pressedColor
}
@@ -150,7 +162,7 @@ Item {
}
Column {
id: column
id: columnid
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
@@ -174,31 +186,31 @@ Item {
delegate: Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: (dropdown.dropdownHeight * 0.75) * scaleRatio
height: (dropdown.dropdownHeight * 0.75)
//radius: index === repeater.count - 1 ? 4 : 0
color: itemArea.containsMouse || index === column.currentIndex || itemArea.containsMouse ? dropdown.releasedColor : dropdown.pressedColor
color: itemArea.containsMouse || index === columnid.currentIndex || itemArea.containsMouse ? dropdown.releasedColor : dropdown.pressedColor
Text {
MoneroComponents.TextPlain {
id: col1Text
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: col2Text.left
anchors.leftMargin: 12 * scaleRatio
anchors.leftMargin: 12
anchors.rightMargin: 0
font.family: MoneroComponents.Style.fontRegular.name
font.bold: true
font.pixelSize: fontItemSize
color: itemArea.containsMouse || index === column.currentIndex || itemArea.containsMouse ? "#FA6800" : "#FFFFFF"
color: itemArea.containsMouse || index === columnid.currentIndex || itemArea.containsMouse ? "#FA6800" : "#FFFFFF"
text: qsTr(column1) + translationManager.emptyString
}
Text {
MoneroComponents.TextPlain {
id: col2Text
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 45 * scaleRatio
anchors.rightMargin: 45
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14 * scaleRatio
font.pixelSize: 14
color: "#FFFFFF"
text: ""
}
@@ -206,14 +218,14 @@ Item {
Rectangle {
anchors.left: parent.left
anchors.top: parent.top
width: 3 * scaleRatio; height: 3 * scaleRatio
width: 3; height: 3
color: parent.color
}
Rectangle {
anchors.right: parent.right
anchors.top: parent.top
width: 3 * scaleRatio; height: 3 * scaleRatio
width: 3; height: 3
color: parent.color
}
@@ -225,7 +237,7 @@ Item {
onClicked: {
dropdown.expanded = false
column.currentIndex = index
columnid.currentIndex = index
changed();
dropdown.update()
}

View File

@@ -3,30 +3,189 @@ pragma Singleton
import QtQuick 2.5
QtObject {
property QtObject fontMedium: FontLoader { id: _fontMedium; source: "qrc:/fonts/SFUIDisplay-Medium.otf"; }
property QtObject fontBold: FontLoader { id: _fontBold; source: "qrc:/fonts/SFUIDisplay-Bold.otf"; }
property QtObject fontLight: FontLoader { id: _fontLight; source: "qrc:/fonts/SFUIDisplay-Light.otf"; }
property QtObject fontRegular: FontLoader { id: _fontRegular; source: "qrc:/fonts/SFUIDisplay-Regular.otf"; }
property bool blackTheme: true
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 QtObject fontMonoMedium: FontLoader { id: _fontMonoMedium; source: "qrc:/fonts/RobotoMono-Medium.ttf"; }
property QtObject fontMonoBold: FontLoader { id: _fontMonoBold; source: "qrc:/fonts/RobotoMono-Bold.ttf"; }
property QtObject fontMonoLight: FontLoader { id: _fontMonoLight; source: "qrc:/fonts/RobotoMono-Light.ttf"; }
property QtObject fontMonoRegular: FontLoader { id: _fontMonoRegular; source: "qrc:/fonts/RobotoMono-Regular.ttf"; }
property string grey: "#404040"
property string orange: "#FF6C3C"
property string white: "#FFFFFF"
property string green: "#2EB358"
property string moneroGrey: "#4C4C4C"
property string warningColor: "orange"
property string defaultFontColor: "white"
property string greyFontColor: "#808080"
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 defaultFontColor: blackTheme ? _b_defaultFontColor : _w_defaultFontColor
property string dimmedFontColor: blackTheme ? _b_dimmedFontColor : _w_dimmedFontColor
property string lightGreyFontColor: blackTheme ? _b_lightGreyFontColor : _w_lightGreyFontColor
property string errorColor: blackTheme ? _b_errorColor : _w_errorColor
property string textSelectionColor: blackTheme ? _b_textSelectionColor : _w_textSelectionColor
property string textSelectedColor: blackTheme ? _b_textSelectedColor : _w_textSelectedColor
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
property string inputBoxBackground: blackTheme ? _b_inputBoxBackground : _w_inputBoxBackground
property string inputBoxBackgroundError: blackTheme ? _b_inputBoxBackgroundError : _w_inputBoxBackgroundError
property string inputBoxColor: blackTheme ? _b_inputBoxColor : _w_inputBoxColor
property string legacy_placeholderFontColor: blackTheme ? _b_legacy_placeholderFontColor : _w_legacy_placeholderFontColor
property string inputBorderColorActive: blackTheme ? _b_inputBorderColorActive : _w_inputBorderColorActive
property string inputBorderColorInActive: blackTheme ? _b_inputBorderColorInActive : _w_inputBorderColorInActive
property string inputBorderColorInvalid: blackTheme ? _b_inputBorderColorInvalid : _w_inputBorderColorInvalid
property string buttonBackgroundColor: blackTheme ? _b_buttonBackgroundColor : _w_buttonBackgroundColor
property string buttonBackgroundColorHover: blackTheme ? _b_buttonBackgroundColorHover : _w_buttonBackgroundColorHover
property string buttonBackgroundColorDisabled: blackTheme ? _b_buttonBackgroundColorDisabled : _w_buttonBackgroundColorDisabled
property string buttonBackgroundColorDisabledHover: blackTheme ? _b_buttonBackgroundColorDisabledHover : _w_buttonBackgroundColorDisabledHover
property string buttonInlineBackgroundColor: blackTheme ? _b_buttonInlineBackgroundColor : _w_buttonInlineBackgroundColor
property string buttonTextColor: blackTheme ? _b_buttonTextColor : _w_buttonTextColor
property string buttonTextColorDisabled: blackTheme ? _b_buttonTextColorDisabled : _w_buttonTextColorDisabled
property string dividerColor: blackTheme ? _b_dividerColor : _w_dividerColor
property real dividerOpacity: blackTheme ? _b_dividerOpacity : _w_dividerOpacity
property string titleBarBackgroundGradientStart: blackTheme ? _b_titleBarBackgroundGradientStart : _w_titleBarBackgroundGradientStart
property string titleBarBackgroundGradientStop: blackTheme ? _b_titleBarBackgroundGradientStop : _w_titleBarBackgroundGradientStop
property string titleBarBackgroundBorderColor: blackTheme ? _b_titleBarBackgroundBorderColor : _w_titleBarBackgroundBorderColor
property string titleBarLogoSource: blackTheme ? _b_titleBarLogoSource : _w_titleBarLogoSource
property string titleBarMinimizeSource: blackTheme ? _b_titleBarMinimizeSource : _w_titleBarMinimizeSource
property string titleBarFullscreenSource: blackTheme ? _b_titleBarFullscreenSource : _w_titleBarFullscreenSource
property string titleBarCloseSource: blackTheme ? _b_titleBarCloseSource : _w_titleBarCloseSource
property string titleBarButtonHoverColor: blackTheme ? _b_titleBarButtonHoverColor : _w_titleBarButtonHoverColor
property string wizardBackgroundGradientStart: blackTheme ? _b_wizardBackgroundGradientStart : _w_wizardBackgroundGradientStart
property string middlePanelBackgroundGradientStart: blackTheme ? _b_middlePanelBackgroundGradientStart : _w_middlePanelBackgroundGradientStart
property string middlePanelBackgroundGradientStop: blackTheme ? _b_middlePanelBackgroundGradientStop : _w_middlePanelBackgroundGradientStop
property string middlePanelBackgroundColor: blackTheme ? _b_middlePanelBackgroundColor : _w_middlePanelBackgroundColor
property string menuButtonFallbackBackgroundColor: blackTheme ? _b_menuButtonFallbackBackgroundColor : _w_menuButtonFallbackBackgroundColor
property string menuButtonGradientStart: blackTheme ? _b_menuButtonGradientStart : _w_menuButtonGradientStart
property string menuButtonGradientStop: blackTheme ? _b_menuButtonGradientStop : _w_menuButtonGradientStop
property string menuButtonTextColor: blackTheme ? _b_menuButtonTextColor : _w_menuButtonTextColor
property string menuButtonImageRightColorActive: blackTheme ? _b_menuButtonImageRightColorActive : _w_menuButtonImageRightColorActive
property string menuButtonImageRightColor: blackTheme ? _b_menuButtonImageRightColor : _w_menuButtonImageRightColor
property string menuButtonImageRightSource: blackTheme ? _b_menuButtonImageRightSource : _w_menuButtonImageRightSource
property string menuButtonImageDotArrowSource: blackTheme ? _b_menuButtonImageDotArrowSource : _w_menuButtonImageDotArrowSource
property string inlineButtonTextColor: blackTheme ? _b_inlineButtonTextColor : _w_inlineButtonTextColor
property string inlineButtonBorderColor: blackTheme ? _b_inlineButtonBorderColor : _w_inlineButtonBorderColor
property string appWindowBackgroundColor: blackTheme ? _b_appWindowBackgroundColor : _w_appWindowBackgroundColor
property string appWindowBorderColor: blackTheme ? _b_appWindowBorderColor : _w_appWindowBorderColor
property bool progressBarProgressTextBold: blackTheme ? _b_progressBarProgressTextBold : _w_progressBarProgressTextBold
property string progressBarBackgroundColor: blackTheme ? _b_progressBarBackgroundColor : _w_progressBarBackgroundColor
property string leftPanelBackgroundGradientStart: blackTheme ? _b_leftPanelBackgroundGradientStart : _w_leftPanelBackgroundGradientStart
property string leftPanelBackgroundGradientStop: blackTheme ? _b_leftPanelBackgroundGradientStop : _w_leftPanelBackgroundGradientStop
property string historyHeaderTextColor: blackTheme ? _b_historyHeaderTextColor : _w_historyHeaderTextColor
property string _b_defaultFontColor: "white"
property string _b_dimmedFontColor: "#BBBBBB"
property string _b_lightGreyFontColor: "#DFDFDF"
property string _b_errorColor: "#FA6800"
property string _b_textSelectionColor: "#BBBBBB"
property string _b_textSelectedColor: "white"
property string _b_inputBoxBackground: "black"
property string _b_inputBoxBackgroundError: "#FFDDDD"
property string _b_inputBoxColor: "white"
property string _b_legacy_placeholderFontColor: "#BABABA"
property string _b_inputBorderColorActive: Qt.rgba(255, 255, 255, 0.38)
property string _b_inputBorderColorInActive: Qt.rgba(255, 255, 255, 0.32)
property string _b_inputBorderColorInvalid: Qt.rgba(255, 0, 0, 0.40)
property string _b_buttonBackgroundColor: "#FA6800"
property string _b_buttonBackgroundColorHover: "#E65E00"
property string _b_buttonBackgroundColorDisabled: "#707070"
property string _b_buttonBackgroundColorDisabledHover: "#808080"
property string _b_buttonInlineBackgroundColor: "#707070"
property string _b_buttonTextColor: "white"
property string _b_buttonTextColorDisabled: "black"
property string _b_dividerColor: "white"
property real _b_dividerOpacity: 0.20
property string _b_titleBarBackgroundGradientStart: "#262626";
property string _b_titleBarBackgroundGradientStop: "#191919"
property string _b_titleBarBackgroundBorderColor: "#2f2f2f"
property string _b_titleBarLogoSource: "qrc:///images/titlebarLogo.png"
property string _b_titleBarMinimizeSource: "qrc:///images/minimize.svg"
property string _b_titleBarFullscreenSource: "qrc:///images/fullscreen.svg"
property string _b_titleBarCloseSource: "qrc:///images/close.svg"
property string _b_titleBarButtonHoverColor: "#10FFFFFF"
property string _b_wizardBackgroundGradientStart: "#1e1e1e"
property string _b_middlePanelBackgroundGradientStart: "#232323"
property string _b_middlePanelBackgroundGradientStop: "#101010"
property string _b_middlePanelBackgroundColor: "#181818"
property string _b_menuButtonFallbackBackgroundColor: "#09FFFFFF"
property string _b_menuButtonGradientStart: "#11FFFFFF"
property string _b_menuButtonGradientStop: "#00000000"
property string _b_menuButtonTextColor: "white"
property string _b_menuButtonImageRightColorActive: "white"
property string _b_menuButtonImageRightColor: "white"
property string _b_menuButtonImageRightSource: "qrc:///images/right.svg"
property string _b_menuButtonImageDotArrowSource: "qrc:///images/arrow-right-medium-white.png"
property string _b_inlineButtonTextColor: "black"
property string _b_inlineButtonBorderColor: "black"
property string _b_appWindowBackgroundColor: "white"
property string _b_appWindowBorderColor: "#313131"
property bool _b_progressBarProgressTextBold: true
property string _b_progressBarBackgroundColor: "#24FFFFFF"
property string _b_leftPanelBackgroundGradientStart: "#222222"
property string _b_leftPanelBackgroundGradientStop: "#1a1a1a"
property string _b_historyHeaderTextColor: "#C0C0C0"
property string _w_defaultFontColor: "black"
property string _w_dimmedFontColor: "#3f3f3f"
property string _w_lightGreyFontColor: "#515151"
property string _w_errorColor: "#FA6800"
property string _w_textSelectionColor: "#BBBBBB"
property string _w_textSelectedColor: "black"
property string _w_inputBoxBackground: "white"
property string _w_inputBoxBackgroundError: "#FFDDDD"
property string _w_inputBoxColor: "black"
property string _w_legacy_placeholderFontColor: "#BABABA"
property string _w_inputBorderColorActive: Qt.rgba(0, 0, 0, 0.30)
property string _w_inputBorderColorInActive: Qt.rgba(0, 0, 0, 0.16)
property string _w_inputBorderColorInvalid: Qt.rgba(255, 0, 0, 0.50)
property string _w_buttonBackgroundColor: "#FA6800"
property string _w_buttonBackgroundColorHover: "#E65E00"
property string _w_buttonBackgroundColorDisabled: "#bbbbbb"
property string _w_buttonBackgroundColorDisabledHover: "#D1D1D1"
property string _w_buttonInlineBackgroundColor: "#bbbbbb"
property string _w_buttonTextColor: "white"
property string _w_buttonTextColorDisabled: "black"
property string _w_dividerColor: "black"
property real _w_dividerOpacity: 0.20
property string _w_titleBarBackgroundGradientStart: "#fcfcfc"
property string _w_titleBarBackgroundGradientStop: "#FBFBFB"
property string _w_titleBarBackgroundBorderColor: "#DEDEDE"
property string _w_titleBarLogoSource: "qrc:///images/themes/white/titlebarLogo.png"
property string _w_titleBarMinimizeSource: "qrc:///images/themes/white/minimize.svg"
property string _w_titleBarFullscreenSource: "qrc:///images/themes/white/fullscreen.svg"
property string _w_titleBarCloseSource: "qrc:///images/themes/white/close.svg"
property string _w_titleBarButtonHoverColor: "#11000000"
property string _w_wizardBackgroundGradientStart: "white"
property string _w_middlePanelBackgroundGradientStart: "white"
property string _w_middlePanelBackgroundGradientStop: "#ededed"
property string _w_middlePanelBackgroundColor: "#f5f5f5"
property string _w_menuButtonFallbackBackgroundColor: "#09000000"
property string _w_menuButtonGradientStart: "#08000000"
property string _w_menuButtonGradientStop: "#10FFFFFF"
property string _w_menuButtonTextColor: "#787878"
property string _w_menuButtonImageRightSource: "qrc:///images/right.svg"
property string _w_menuButtonImageRightColorActive: "#FA6800"
property string _w_menuButtonImageRightColor: "#808080"
property string _w_menuButtonImageDotArrowSource: "qrc:///images/arrow-right-medium-white.png"
property string _w_inlineButtonTextColor: "white"
property string _w_inlineButtonBorderColor: "transparent"
property string _w_appWindowBackgroundColor: "black"
property string _w_appWindowBorderColor: "#dedede"
property bool _w_progressBarProgressTextBold: false
property string _w_progressBarBackgroundColor: "#24000000"
property string _w_leftPanelBackgroundGradientStart: "white"
property string _w_leftPanelBackgroundGradientStop: "#f5f5f5"
property string _w_historyHeaderTextColor: "#515151"
}

View File

@@ -1,237 +0,0 @@
// 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
Item {
id: dropdown
property bool expanded: false
property alias dataModel: repeater.model
signal collapsed()
signal optionClicked(int option)
width: 72
height: 37
onExpandedChanged: if(expanded) appWindow.currentItem = dropdown
function hide() { dropdown.expanded = false }
function containsPoint(px, py) {
if(px < 0)
return false
if(px > width)
return false
if(py < 0)
return false
if(py > height + dropArea.height)
return false
return true
}
Item {
id: head
anchors.fill: parent
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
y: dropdown.expanded || dropArea.height > 0 ? 0 : 1
//radius: 3
color: dropdown.expanded || dropArea.height > 0 ? "#888888" : "#DBDBDB"
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height - 1
y: dropdown.expanded || dropArea.height > 0 ? 1 : 0
//radius: 3
color: dropdown.expanded || dropArea.height > 0 ? "#DBDBDB" : "#F0EEEE"
}
Rectangle {
anchors.left: parent.left
anchors.bottom: parent.bottom
height: 3
width: 3
color: "#DBDBDB"
visible: dropdown.expanded || dropArea.height > 0
}
Rectangle {
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 3
width: 3
color: "#DBDBDB"
visible: dropdown.expanded || dropArea.height > 0
}
Image {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 10
source: "../images/tableOptions.png"
}
Rectangle {
anchors.centerIn: parent
anchors.horizontalCenterOffset: 1
height: 23
width: 1
color: dropdown.expanded || dropArea.height > 0 ? "#FFFFFF" : "#DBDBDB"
}
Image {
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 10
source: "../images/dropIndicator.png"
}
}
Timer {
id: timer
interval: 50
repeat: true
running: false
onTriggered: {
if(((appWindow.toolTip.visible && !appWindow.toolTip.containsMouse) || !appWindow.toolTip.visible) && !mouseArea.containsMouse) {
appWindow.toolTip.visible = false
dropdown.expanded = false
currentIndex = -1
timer.stop()
}
}
}
MouseArea {
id: mouseArea
anchors.left: head.left
anchors.right: head.right
anchors.top: head.top
height: head.height + dropArea.height
hoverEnabled: true
onEntered: dropdown.expanded = true
property int currentIndex: -1
onMouseYChanged: {
if(mouseY > head.height) {
var posY = parseInt((mouseY - head.height) / 30)
currentIndex = posY
} else {
currentIndex = -1
}
}
onClicked: {
optionClicked(currentIndex)
}
onExited: timer.start()
preventStealing: true
z: 1
Item {
id: dropArea
anchors.left: parent.left
anchors.right: parent.right
y: head.height
height: dropdown.expanded ? column.height : 0
onHeightChanged: if(height === 0) dropdown.collapsed()
clip: true
Behavior on height {
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
}
Column {
id: column
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
Repeater {
id: repeater
// Workaround for translations in listElements. All translated strings needs to be listed in this file.
property string stringCopy: qsTr("<b>Copy address to clipboard</b>") + translationManager.emptyString
property string stringSend: qsTr("<b>Send to this address</b>") + translationManager.emptyString
property string stringFind: qsTr("<b>Find similar transactions</b>") + translationManager.emptyString
property string stringRemove: qsTr("<b>Remove from address book</b>") + translationManager.emptyString
delegate: Rectangle {
id: delegate
property bool containsMouse: index === mouseArea.currentIndex
anchors.left: parent.left
anchors.right: parent.right
height: 30
color: containsMouse ? "#F0EEEE" : "#DBDBDB"
//radius: index === repeater.count - 1 ? 5 : 0
Rectangle {
anchors.left: parent.left
anchors.top: parent.top
width: 5
height: 5
color: delegate.color
}
Rectangle {
anchors.right: parent.right
anchors.top: parent.top
width: 5
height: 5
color: delegate.color
}
Image {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 10
source: icon
}
onContainsMouseChanged: {
if(containsMouse) {
var pos = rootItem.mapFromItem(delegate, 30, -25)
appWindow.toolTip.text = qsTr(name) + translationManager.emptyString
appWindow.toolTip.x = pos.x - appWindow.toolTip.width
// if(appWindow.toolTip.height > 30)
// pos.y -= appWindow.toolTip.height - 30
appWindow.toolTip.y = pos.y
appWindow.toolTip.visible = true
appWindow.toolTip.z = 3
}
}
}
}
}
}
}
}

View File

@@ -1,202 +0,0 @@
// 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
Rectangle {
id: header
signal sortRequest(bool desc, int column)
property alias dataModel: columnsRepeater.model
property int activeSortColumn: -1
property int offset: 0
height: 31
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: "#808080"
}
Row {
id: row
anchors.horizontalCenter: parent.horizontalCenter
Rectangle {
height: 31
width: 1
color: "#808080"
}
Repeater {
id: columnsRepeater
// Workaround for translations in listElements. All translated strings needs to be listed in this file.
property string stringPaymentID: qsTr("Payment ID") + translationManager.emptyString
property string stringDate: qsTr("Date") + translationManager.emptyString
property string stringBlockHeight: qsTr("Block height") + translationManager.emptyString
property string stringAmount: qsTr("Amount") + translationManager.emptyString
delegate: Rectangle {
id: delegate
property bool desc: false
color: "transparent"
height: 31
width: columnWidth
Text {
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: -2
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 13
anchors.rightMargin: 13
elide: Text.ElideRight
font.family: "Arial"
font.pixelSize: 14
color: {
if(delegateArea.pressed)
return "#FF4304"
return index === header.activeSortColumn || delegateArea.containsMouse ? "white" : "#808080"
}
text: qsTr(columnName) + translationManager.emptyString
}
MouseArea {
id: delegateArea
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
delegate.desc = !delegate.desc
header.activeSortColumn = index
header.sortRequest(delegate.desc, index)
}
}
Row {
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.rightMargin: 9
Item {
width: 14
anchors.top: parent.top
anchors.bottom: parent.bottom
Image {
anchors.centerIn: parent
anchors.verticalCenterOffset: -2
source: {
if(descArea.pressed)
return "../images/descSortIndicatorPressed.png"
return index === header.activeSortColumn || descArea.containsMouse ? "../images/descSortIndicatorActived.png" :
"../images/descSortIndicator.png"
}
}
MouseArea {
id: descArea
hoverEnabled: true
anchors.fill: parent
onClicked: {
delegate.desc = true
header.activeSortColumn = index
header.sortRequest(delegate.desc, index)
}
}
}
Item {
width: 14
anchors.top: parent.top
anchors.bottom: parent.bottom
Image {
anchors.centerIn: parent
anchors.verticalCenterOffset: -3
source: {
if(ascArea.pressed)
return "../images/ascSortIndicatorPressed.png"
return index === header.activeSortColumn || ascArea.containsMouse ? "../images/ascSortIndicatorActived.png" :
"../images/ascSortIndicator.png"
}
}
MouseArea {
id: ascArea
hoverEnabled: true
anchors.fill: parent
onClicked: {
delegate.desc = false
header.activeSortColumn = index
header.sortRequest(delegate.desc, index)
}
}
}
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "transparent"
}
Rectangle {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
width: 1
color: "#808080"
}
}
}
}
}

View File

@@ -1,11 +1,11 @@
import QtQuick 2.0
import QtQuick 2.9
import "../components" as MoneroComponents
TextEdit {
color: MoneroComponents.Style.defaultFontColor
font.family: MoneroComponents.Style.fontRegular.name
selectionColor: MoneroComponents.Style.dimmedFontColor
selectionColor: MoneroComponents.Style.textSelectionColor
wrapMode: Text.Wrap
readOnly: true
selectByMouse: true

28
components/TextPlain.qml Normal file
View File

@@ -0,0 +1,28 @@
import QtQuick 2.9
import "." as MoneroComponents
import "effects/" as MoneroEffects
Text {
// When using this component, please note that if you use a color different
// than `defaultFontColor`, you are required to also define `themeTransitionXColor`.
// If you do not set these the component will receive the wrong color after a transition.
// If you do not want to set these, use `themeTransition: false`.
id: root
property bool themeTransition: true
property string themeTransitionBlackColor: ""
property string themeTransitionWhiteColor: ""
font.family: MoneroComponents.Style.fontMedium.name
font.bold: false
font.pixelSize: 14
textFormat: Text.PlainText
MoneroEffects.ColorTransition {
enabled: root.themeTransition
themeTransition: root.themeTransition
targetObj: root
duration: 750
blackColor: root.themeTransitionBlackColor !== "" ? root.themeTransitionBlackColor : MoneroComponents.Style._b_defaultFontColor
whiteColor: root.themeTransitionWhiteColor !== "" ? root.themeTransitionWhiteColor : MoneroComponents.Style._w_defaultFontColor
}
}

View File

@@ -0,0 +1,48 @@
import QtQuick 2.9
import QtQuick.Controls 2.0
import "." as MoneroComponents
TextArea {
id: textArea
property bool themeTransition: true
property string colorWhiteTheme: ""
property string colorBlackTheme: ""
color: MoneroComponents.Style.defaultFontColor
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
selectByMouse: false
wrapMode: Text.WordWrap;
textMargin: 0
leftPadding: 0
topPadding: 0
readOnly: true
textFormat: TextEdit.PlainText
states: [
State {
name: "black";
when: textArea.themeTransition && MoneroComponents.Style.blackTheme
PropertyChanges {
target: textArea
color: {
return textArea.colorBlackTheme ? textArea.colorBlackTheme : MoneroComponents.Style._b_defaultFontColor
}
}
}, State {
name: "white";
when: textArea.themeTransition && !MoneroComponents.Style.blackTheme
PropertyChanges {
target: textArea
color: {
return textArea.colorWhiteTheme ? textArea.colorWhiteTheme : MoneroComponents.Style._w_defaultFontColor
}
}
}
]
transitions: Transition {
enabled: appWindow.themeTransition
ColorAnimation { properties: "color"; easing.type: Easing.InOutQuad; duration: 750 }
}
}

View File

@@ -26,9 +26,11 @@
// 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.9
import QtQuick.Window 2.1
import "../components" as MoneroComponents
Window {
property alias text: content.text
property alias containsMouse: tipArea.containsMouse
@@ -55,10 +57,10 @@ Window {
anchors.top: parent.bottom
anchors.left: parent.left
anchors.leftMargin: 5
source: "../images/tip.png"
source: "qrc:///images/tip.png"
}
Text {
MoneroComponents.TextPlain {
id: content
anchors.horizontalCenter: parent.horizontalCenter
y: 6

View File

@@ -26,219 +26,337 @@
// 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.5
import QtQuick 2.9
import QtQuick.Window 2.0
import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0
import QtQuick.Layouts 1.2
import FontAwesome 1.0
import "." as MoneroComponents
import "effects/" as MoneroEffects
Rectangle {
id: titleBar
id: root
property int mouseX: 0
property bool customDecorations: persistentSettings.customDecorations
property bool showMinimizeButton: true
property bool showMaximizeButton: true
property bool showCloseButton: true
property string walletName: ""
height: {
if(!customDecorations || isMobile){
return 0;
}
if(small) return 38 * scaleRatio;
else return 50 * scaleRatio;
if(!persistentSettings.customDecorations) return 0;
return 50;
}
y: -height
z: 1
property string title
property int mouseX: 0
property bool containsMouse: false
property alias basicButtonVisible: goToBasicVersionButton.visible
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
z: 1
color: "transparent"
signal closeClicked
signal maximizeClicked
signal minimizeClicked
signal goToBasicVersion(bool yes)
signal languageClicked
signal closeWalletClicked
Item {
// Background gradient
width: parent.width
height: parent.height
z: parent.z + 1
Image {
anchors.fill: titleBar
height: titleBar.height
width: titleBar.width
source: "../images/titlebarGradient.jpg"
state: "default"
states: [
State {
name: "default";
PropertyChanges { target: btnCloseWallet; visible: true}
PropertyChanges { target: btnLanguageToggle; visible: true}
}, State {
// show only theme switcher and window controls
name: "essentials";
PropertyChanges { target: btnCloseWallet; visible: false}
PropertyChanges { target: btnLanguageToggle; visible: false}
}
]
MoneroEffects.GradientBackground {
anchors.fill: parent
duration: 300
fallBackColor: MoneroComponents.Style.middlePanelBackgroundColor
initialStartColor: MoneroComponents.Style.titleBarBackgroundGradientStart
initialStopColor: MoneroComponents.Style.titleBarBackgroundGradientStop
blackColorStart: MoneroComponents.Style._b_titleBarBackgroundGradientStart
blackColorStop: MoneroComponents.Style._b_titleBarBackgroundGradientStop
whiteColorStart: MoneroComponents.Style._w_titleBarBackgroundGradientStart
whiteColorStop: MoneroComponents.Style._w_titleBarBackgroundGradientStop
start: Qt.point(width, 0)
end: Qt.point(0, 0)
}
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: "transparent"
height: titleBar.height
width: height
visible: isMobile
z: parent.z + 2
Image {
width: 14
height: 14
anchors.centerIn: parent
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)
}
}
}
Row {
id: row
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
visible: parent.customDecorations
RowLayout {
z: parent.z + 2
spacing: 0
anchors.fill: parent
// collapse sidebar
Rectangle {
id: minimizeButton
visible: showMinimizeButton
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 42
id: btnCloseWallet
color: "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
Image {
anchors.centerIn: parent
source: "../images/minimize.png"
Text {
text: FontAwesome.signOutAlt
font.family: FontAwesome.fontFamilySolid
font.pixelSize: 16
color: MoneroComponents.Style.defaultFontColor
font.styleName: "Solid"
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
opacity: 0.75
}
MouseArea {
id: minimizeArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: minimizeButton.color = "#262626";
onExited: minimizeButton.color = "transparent";
onClicked: minimizeClicked();
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onClicked: root.closeWalletClicked(leftPanel.visible)
}
}
// language selection
Rectangle {
id: maximizeButton
visible: showMaximizeButton
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 42
color: "transparent";
id: btnLanguageToggle
color: "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
Image {
anchors.centerIn: parent
height: 16
width: 16
source: appWindow.visibility === Window.FullScreen ? "../images/backToWindowIcon.png" :
"../images/fullscreen.png"
Text {
text: FontAwesome.globe
font.family: FontAwesome.fontFamilySolid
font.pixelSize: 16
color: MoneroComponents.Style.defaultFontColor
font.styleName: "Solid"
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
opacity: 0.75
}
MouseArea {
id: maximizeArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: maximizeButton.color = "#262626";
onExited: maximizeButton.color = "transparent";
onClicked: maximizeClicked();
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onClicked: root.languageClicked()
}
}
// switch theme
Rectangle {
id: closeButton
visible: showCloseButton
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 42
color: containsMouse ? "#E04343" : "#00000000"
color: "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
Image {
anchors.centerIn: parent
width: 16
height: 16
source: "../images/close.png"
Text {
text: FontAwesome.moonO
font.family: MoneroComponents.Style.blackTheme ? FontAwesome.fontFamilySolid : FontAwesome.fontFamily
font.styleName: MoneroComponents.Style.blackTheme ? "Solid" : "Regular"
font.pixelSize: 15
color: MoneroComponents.Style.defaultFontColor
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
opacity: 0.75
}
MouseArea {
anchors.fill: parent
onClicked: closeClicked();
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: closeButton.color = "#262626";
onExited: closeButton.color = "transparent";
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onClicked: {
MoneroComponents.Style.blackTheme = !MoneroComponents.Style.blackTheme;
persistentSettings.blackTheme = MoneroComponents.Style.blackTheme;
}
}
}
Item {
// make dummy space when hiding buttons when titlebar
// state is 'essentials' in order for the
// monero logo to still be centered
Layout.preferredWidth: parent.height * 2 // amount of buttons we hide
Layout.preferredHeight: parent.height
visible: root.state == "essentials"
}
// monero logo
Item {
visible: walletName.length === 0
Layout.fillWidth: true
Layout.preferredHeight: parent.height
Image {
id: imgLogo
width: 125
height: 28
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
source: MoneroComponents.Style.titleBarLogoSource
visible: {
if(!isOpenGL) return true;
if(!MoneroComponents.Style.blackTheme) return true;
return false;
}
}
Colorize {
visible: isOpenGL && MoneroComponents.Style.blackTheme
anchors.fill: imgLogo
source: imgLogo
saturation: 0.0
}
}
Item {
visible: walletName.length > 0
Layout.fillWidth: true
Layout.preferredHeight: parent.height
MoneroComponents.TextPlain {
font.pixelSize: 20
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
width: parent.width
height: parent.height
elide: Text.ElideRight
text: walletName
}
}
// minimize
Rectangle {
color: "transparent"
visible: root.showMinimizeButton
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
MoneroEffects.ImageMask {
anchors.bottom: parent.bottom
anchors.bottomMargin: 18
anchors.horizontalCenter: parent.horizontalCenter
height: 3
width: 15
image: MoneroComponents.Style.titleBarMinimizeSource
color: MoneroComponents.Style.defaultFontColor
fontAwesomeFallbackIcon: FontAwesome.minus
fontAwesomeFallbackSize: 18
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
opacity: 0.75
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onClicked: root.minimizeClicked();
}
}
// maximize
Rectangle {
id: test
visible: root.showMaximizeButton
color: "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
Image {
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
source: MoneroComponents.Style.titleBarFullscreenSource
sourceSize.width: 16
sourceSize.height: 16
smooth: true
mipmap: true
opacity: 0.75
rotation: appWindow.visibility === Window.FullScreen ? 180 : 0
}
MouseArea {
id: buttonArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onClicked: root.maximizeClicked();
}
}
// close
Rectangle {
visible: root.showCloseButton
color: "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
MoneroEffects.ImageMask {
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
height: 16
width: 16
image: MoneroComponents.Style.titleBarCloseSource
color: MoneroComponents.Style.defaultFontColor
fontAwesomeFallbackIcon: FontAwesome.timesRectangle
fontAwesomeFallbackSize: 18
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
opacity: 0.75
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onClicked: root.closeClicked();
}
}
}
// window borders
Rectangle {
z: parent.z + 3
anchors.bottom: parent.bottom
anchors.right: parent.right
anchors.left: parent.left
height: 1
color: "#2F2F2F"
z: parent.z + 1
anchors.right: parent.right
height: MoneroComponents.Style.blackTheme ? 1 : 1
color: MoneroComponents.Style.titleBarBackgroundBorderColor
MoneroEffects.ColorTransition {
targetObj: parent
blackColor: MoneroComponents.Style._b_titleBarBackgroundBorderColor
whiteColor: MoneroComponents.Style._w_titleBarBackgroundBorderColor
}
}
Rectangle {
anchors.top: parent.top
anchors.right: parent.right
anchors.left: parent.left
visible: titleBar.small
height: 1
color: "#2F2F2F"
z: parent.z + 1
MouseArea {
enabled: persistentSettings.customDecorations
property var previousPosition
anchors.fill: parent
propagateComposedEvents: true
onPressed: previousPosition = globalCursor.getPosition()
onPositionChanged: {
if (pressedButtons == Qt.LeftButton) {
var pos = globalCursor.getPosition()
var dx = pos.x - previousPosition.x
var dy = pos.y - previousPosition.y
appWindow.x += dx
appWindow.y += dy
previousPosition = pos
}
}
}
}

62
components/WarningBox.qml Normal file
View File

@@ -0,0 +1,62 @@
import QtQuick 2.9
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.0
import "." as MoneroComponents
Rectangle {
id: root
property alias text: content.text
property alias textColor: content.color
property int fontSize: 15
Layout.fillWidth: true
Layout.preferredHeight: warningLayout.height
color: MoneroComponents.Style.titleBarButtonHoverColor
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: 12
Layout.leftMargin: 18
Layout.topMargin: 12
Layout.bottomMargin: 12
source: "qrc:///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: true
textFormat: Text.RichText
wrapMode: Text.WordWrap
textMargin: 0
leftPadding: 4
rightPadding: 18
topPadding: 10
bottomPadding: 10
readOnly: true
onLinkActivated: root.linkActivated();
selectionColor: MoneroComponents.Style.textSelectionColor
selectedTextColor: MoneroComponents.Style.textSelectedColor
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
@@ -26,43 +26,33 @@
// 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.Controls.Styles 1.4
import QtQuick.Layouts 1.1
import QtQuick 2.9
import QtGraphicalEffects 1.0
ColumnLayout {
property alias password: password.text
property alias placeholderText: password.placeholderText
signal changed(string password)
import "../" as MoneroComponents
Item {
id: root
property var targetObj
property string blackColor: ""
property string whiteColor: ""
property int duration: 300
property bool themeTransition: true
TextField {
Layout.fillWidth: true
id : password
focus:true
font.family: "Arial"
font.pixelSize: (isMobile) ? 25 * scaleRatio : 26 * scaleRatio
echoMode: TextInput.Password
style: TextFieldStyle {
renderType: Text.NativeRendering
textColor: "#35B05A"
passwordCharacter: "•"
background: Rectangle {
radius: 0
border.width: 0
}
states: [
State {
name: "black";
when: MoneroComponents.Style.blackTheme && root.themeTransition
PropertyChanges { target: root.targetObj; color: root.blackColor}
}, State {
name: "white";
when: !MoneroComponents.Style.blackTheme && root.themeTransition
PropertyChanges { target: root.targetObj; color: root.whiteColor}
}
onTextChanged: changed(text)
]
Keys.onReleased: {
changed(text)
}
}
Rectangle {
Layout.fillWidth:true
height: 1
color: "#DBDBDB"
transitions: Transition {
enabled: appWindow.themeTransition
ColorAnimation { properties: "color"; easing.type: Easing.InOutQuad; duration: root.duration }
}
}

View File

@@ -0,0 +1,107 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick 2.9
import QtGraphicalEffects 1.0
import "../" as MoneroComponents
Item {
id: root
property string fallBackColor: ""
property string blackColorStart: ""
property string blackColorStop: ""
property string whiteColorStart: ""
property string whiteColorStop: ""
property string initialStartColor: ""
property string initialStopColor: ""
property double posStart: 0.1
property double posStop: 1.0
property int duration: 300
property variant start
property variant end
anchors.fill: parent
// background software renderer
Rectangle {
visible: !isOpenGL
anchors.fill: parent
color: root.fallBackColor
}
// background opengl
LinearGradient {
visible: isOpenGL
anchors.fill: parent
start: root.start
end: root.end
gradient: Gradient {
GradientStop {
id: gradientStart
position: root.posStart
color: root.initialStartColor
}
GradientStop {
id: gradientStop
position: root.posStop
color: root.initialStopColor
}
}
states: [
State {
name: "black";
when: isOpenGL && MoneroComponents.Style.blackTheme
PropertyChanges {
target: gradientStart
color: root.blackColorStart
}
PropertyChanges {
target: gradientStop
color: root.blackColorStop
}
}, State {
name: "white";
when: isOpenGL && !MoneroComponents.Style.blackTheme
PropertyChanges {
target: gradientStart
color: root.whiteColorStart
}
PropertyChanges {
target: gradientStop
color: root.whiteColorStop
}
}
]
transitions: Transition {
enabled: appWindow.themeTransition
ColorAnimation { properties: "color"; easing.type: Easing.InOutQuad; duration: root.duration }
}
}
}

View File

@@ -0,0 +1,87 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick 2.9
import QtGraphicalEffects 1.0
import "../" as MoneroComponents
import FontAwesome 1.0
Item {
// Use this component to color+opacity change images with transparency (svg/png)
// Does not work in low graphics mode, use fontAwesome fallback option.
id: root
property string image: ""
property string color: ""
property bool fontAwesomeFallbackEnabled: true
property var fontAwesomeFallbackIcon: ""
property string fontAwesomeFallbackFont: FontAwesome.fontFamilySolid
property string fontAwesomeFallbackStyle: "Solid"
property int fontAwesomeFallbackSize: 16
property double fontAwesomeFallbackOpacity: 0.8
property string fontAwesomeFallbackColor: MoneroComponents.Style.defaultFontColor
property alias fontAwesomeFallback: fontAwesomeFallback
property alias svgMask: svgMask
property alias imgMockColor: imgMockColor
width: 0
height: 0
Image {
id: svgMask
source: root.image
sourceSize.width: root.width
sourceSize.height: root.height
smooth: true
mipmap: true
visible: false
}
ColorOverlay {
id: imgMockColor
anchors.fill: root
source: svgMask
color: root.color
visible: isOpenGL
}
Text {
id: fontAwesomeFallback
visible: !isOpenGL && root.fontAwesomeFallback
text: !isOpenGL ? root.fontAwesomeFallbackIcon : ""
font.family: root.fontAwesomeFallbackFont
font.pixelSize: root.fontAwesomeFallbackSize
font.styleName: root.fontAwesomeFallbackStyle
color: root.fontAwesomeFallbackColor
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
opacity: root.fontAwesomeFallbackOpacity
}
}

0
empty
View File

View File

@@ -27,9 +27,14 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "filter.h"
#include <QtGlobal>
#include <QKeyEvent>
#include <QDebug>
#ifdef QT_DEBUG
#include "private/qabstractanimation_p.h"
#endif
filter::filter(QObject *parent) :
QObject(parent)
{
@@ -38,6 +43,17 @@ filter::filter(QObject *parent) :
}
bool filter::eventFilter(QObject *obj, QEvent *ev) {
// macOS sends fileopen signal for incoming uri handlers
if (ev->type() == QEvent::FileOpen) {
QFileOpenEvent *openEvent = static_cast<QFileOpenEvent *>(ev);
QUrl scheme = openEvent->url();
emit uriHandler(scheme);
}
if(ev->type() == QEvent::KeyPress || ev->type() == QEvent::MouseButtonRelease){
emit userActivity();
}
switch(ev->type()) {
case QEvent::KeyPress: {
QKeyEvent *ke = static_cast<QKeyEvent*>(ev);
@@ -75,6 +91,21 @@ bool filter::eventFilter(QObject *obj, QEvent *ev) {
case QEvent::KeyRelease: {
QKeyEvent *ke = static_cast<QKeyEvent*>(ev);
#ifdef QT_DEBUG
if(ke->key() == Qt::Key_F9){
QUnifiedTimer::instance()->setSlowModeEnabled(true);
QUnifiedTimer::instance()->setSlowdownFactor(10);
qDebug() << "Slow animations enabled";
}
if(ke->key() == Qt::Key_F10){
QUnifiedTimer::instance()->setSlowModeEnabled(false);
QUnifiedTimer::instance()->setSlowdownFactor(1);
qDebug() << "Slow animations disabled";
}
#endif
if(ke->key() == Qt::Key_Backtab)
m_backtabPressed = false;

View File

@@ -1,21 +1,21 @@
// Copyright (c) 2014-2018, The Monero Project
//
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
@@ -48,6 +48,8 @@ signals:
void sequenceReleased(const QVariant &o, const QVariant &seq);
void mousePressed(const QVariant &o, const QVariant &x, const QVariant &y);
void mouseReleased(const QVariant &o, const QVariant &x, const QVariant &y);
void userActivity();
void uriHandler(const QUrl &url);
};
#endif // FILTER_H

View File

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

View File

@@ -0,0 +1,8 @@
import QtQuick 2.9
QtObject {
id: object
default property alias children: object.__children
property list<QtObject> __children: [QtObject {}]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

2
fonts/FontAwesome/qmldir Normal file
View File

@@ -0,0 +1,2 @@
module FontAwesome
singleton FontAwesome 1.0 FontAwesome.qml

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.

BIN
fonts/RobotoMono-Bold.ttf Executable file

Binary file not shown.

BIN
fonts/RobotoMono-Light.ttf Executable file

Binary file not shown.

BIN
fonts/RobotoMono-Medium.ttf Executable file

Binary file not shown.

BIN
fonts/RobotoMono-Regular.ttf Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -17,16 +17,15 @@ if [ ! -d $MONERO_DIR/src ]; then
fi
git submodule update --remote
git -C $MONERO_DIR fetch
git -C $MONERO_DIR checkout v0.12.2.0
git -C $MONERO_DIR checkout v0.15.0.1
# get monero core tag
pushd $MONERO_DIR
get_tag
popd
# 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
@@ -48,6 +47,9 @@ done
$(git -C $MONERO_DIR config user.name "$OLD_GIT_USER")
$(git -C $MONERO_DIR config user.email "$OLD_GIT_EMAIL")
git -C $MONERO_DIR submodule init
git -C $MONERO_DIR submodule update
# Build libwallet if it doesnt exist
if [ ! -f $MONERO_DIR/lib/libwallet_merged.a ]; then
echo "libwallet_merged.a not found - Building libwallet"
@@ -75,8 +77,7 @@ else
fi
if [ "$BUILD_LIBWALLET" != true ]; then
# exit this script
return
exit 0
fi
echo "GUI_MONERO_VERSION=\"$VERSIONTAG\"" > $MONERO_DIR/version.sh
@@ -89,6 +90,12 @@ if [ -z $BUILD_TYPE ]; then
BUILD_TYPE=release
fi
BUILD_TREZOR_FLAGS=" -DUSE_DEVICE_TREZOR=ON"
if [ "$BUILD_TREZOR" == false ]; then
BUILD_TREZOR_FLAGS=" -DUSE_DEVICE_TREZOR=OFF"
fi
BUILD_TREZOR_FLAGS=" -DUSE_DEVICE_TREZOR_UDP_RELEASE=ON ${BUILD_TREZOR_FLAGS}"
STATIC=false
ANDROID=false
if [ "$BUILD_TYPE" == "release" ]; then
@@ -137,9 +144,9 @@ make_exec="make"
if [ "$platform" == "darwin" ]; then
echo "Configuring build for MacOS.."
if [ "$STATIC" == true ]; then
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
else
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
fi
## LINUX 64
@@ -147,38 +154,38 @@ elif [ "$platform" == "linux64" ]; then
echo "Configuring build for Linux x64"
if [ "$ANDROID" == true ]; then
echo "Configuring build for Android on Linux host"
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D ARCH="armv7-a" -D ANDROID=true -D BUILD_GUI_DEPS=ON -D USE_LTO=OFF -D INSTALL_VENDORED_LIBUNBOUND=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D ARCH="armv7-a" -D ANDROID=true -D BUILD_GUI_DEPS=ON -D USE_LTO=OFF -D INSTALL_VENDORED_LIBUNBOUND=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
elif [ "$STATIC" == true ]; then
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
else
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
fi
## LINUX 32
elif [ "$platform" == "linux32" ]; then
echo "Configuring build for Linux i686"
if [ "$STATIC" == true ]; then
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D ARCH="i686" -D BUILD_64=OFF -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D ARCH="i686" -D BUILD_64=OFF -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
else
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
fi
## LINUX ARMv7
elif [ "$platform" == "linuxarmv7" ]; then
echo "Configuring build for Linux armv7"
if [ "$STATIC" == true ]; then
cmake -D BUILD_TESTS=OFF -D ARCH="armv7-a" -D STATIC=ON -D BUILD_64=OFF -D BUILD_GUI_DEPS=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D BUILD_TESTS=OFF -D ARCH="armv7-a" -D STATIC=ON -D BUILD_64=OFF -D BUILD_GUI_DEPS=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
else
cmake -D BUILD_TESTS=OFF -D ARCH="armv7-a" -D -D BUILD_64=OFF -D BUILD_GUI_DEPS=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D BUILD_TESTS=OFF -D ARCH="armv7-a" -D -D BUILD_64=OFF -D BUILD_GUI_DEPS=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
fi
## LINUX other
elif [ "$platform" == "linux" ]; then
echo "Configuring build for Linux general"
if [ "$STATIC" == true ]; then
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
else
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
fi
## Windows 64
@@ -187,21 +194,21 @@ elif [ "$platform" == "mingw64" ]; then
# Do something under Windows NT platform
echo "Configuring build for MINGW64.."
BOOST_ROOT=/mingw64/boost
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D BOOST_ROOT="$BOOST_ROOT" -D ARCH="x86-64" -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" -G "MSYS Makefiles" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D BOOST_ROOT="$BOOST_ROOT" -D ARCH="x86-64" -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" -G "MSYS Makefiles" -D CMAKE_TOOLCHAIN_FILE=../../cmake/64-bit-toolchain.cmake -D MSYS2_FOLDER=c:/msys64 ../..
## Windows 32
elif [ "$platform" == "mingw32" ]; then
# Do something under Windows NT platform
echo "Configuring build for MINGW32.."
BOOST_ROOT=/mingw32/boost
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D Boost_DEBUG=ON -D BOOST_ROOT="$BOOST_ROOT" -D ARCH="i686" -D BUILD_64=OFF -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" -G "MSYS Makefiles" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D Boost_DEBUG=ON -D BOOST_ROOT="$BOOST_ROOT" -D ARCH="i686" -D BUILD_64=OFF -D BUILD_GUI_DEPS=ON -D INSTALL_VENDORED_LIBUNBOUND=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" -G "MSYS Makefiles" -D CMAKE_TOOLCHAIN_FILE=../../cmake/32-bit-toolchain.cmake -D MSYS2_FOLDER=c:/msys32 ../..
make_exec="mingw32-make"
else
echo "Unknown platform, configuring general build"
if [ "$STATIC" == true ]; then
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D BUILD_GUI_DEPS=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D STATIC=ON -D BUILD_GUI_DEPS=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
else
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
cmake -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -D BUILD_GUI_DEPS=ON $BUILD_TREZOR_FLAGS -D CMAKE_INSTALL_PREFIX="$MONERO_DIR" ../..
fi
fi
@@ -237,12 +244,16 @@ eval make -C $MONERO_DIR/build/$BUILD_TYPE/external/easylogging++ all install
eval make -C $MONERO_DIR/build/$BUILD_TYPE/external/db_drivers/liblmdb all install
# Install libunbound
echo "Installing libunbound..."
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
popd
if [ -d $MONERO_DIR/build/$BUILD_TYPE/external/unbound ]; then
echo "Installing libunbound..."
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
popd
fi
# install randomx
eval make -C $MONERO_DIR/build/$BUILD_TYPE/external/randomx all install
popd

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 264 KiB

View File

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<g fill="none" fill-rule="evenodd" stroke="#FFF" stroke-width="1.5" opacity="1">
<path fill-rule="nonzero" d="M10 .75C4.9.75.75 4.9.75 10S4.9 19.25 10 19.25s9.25-4.15 9.25-9.25S15.1.75 10 .75z"/>
<g stroke-linecap="round">
<path d="M11.1 12.786L13.5 10l-2.4-2.786M5.7 10h7.627"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 425 B

BIN
images/arrow-right-in-circle.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 B

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