Commit Graph

325 Commits

Author SHA1 Message Date
Jonathan Rainville 051eeea3df feat: add validation to seed modal 2020-06-23 07:09:18 -04:00
Jonathan Rainville 300caf22a2 feat: add validation to private key and watchonly modal 2020-06-23 07:09:18 -04:00
Michael Bradley, Jr ce7e6b8d51 chore: refactor Linux and macOS build/packaging steps
Replaces PR #105.

Implement a `pkg-macos` target that ultimately results in `Status.dmg` being
written to `pkg/`. Due to [limitations][limits] of the OpenSSL `.dylib`s in
`/usr/lib/` on macOS, `libssl.a` and `libcrypto.a` are statically linked into
`bin/nim_status_client` from a [Homebrew][brew] "bottle" that is compatible
with macOS 10.13 (the oldest macOS version compatible with Qt v5.14).

`pkg-macos` creates an `.app` bundle layout in `tmp/macos/dist` based partly on
information in a very helpful [StackOverflow answer][so-answer]. Note the part
of the answer (toward the end) that explains a problem with the working
directory and how to fix it. That's the reason for the `nim_status_client.sh`
script introduced in this commit (it gets copied into the bundle). It's also
the reason for having `Info.plist` copied into the bundle before `macdeployqt`
is run (see below) and then overwriting it with `Info.runner.plist` before
creating the `.dmg` file. The app icons file `status-icon.icns` was taken from
`deployment/macos/` in the [status-react][sr] repo.

The [`macdeployqt`][macdeployqt] tool is used to copy the needed portions of Qt
into the bundle; it automatically updates `rpath`, etc. so the
`nim_status_client` executable in the bundle can locate the libs within the
bundle.

`macdeployqt` is run twice, for the "outer" and "inner" `.app` bundles,
because of an apparent bug in `macdeployqt` that results in QtWebEngine related
resources not being processed correctly on the first pass. This results in some
bloat in the final bundle but it seems unavoidable at present.

The [create-dmg][cdmg] tool is used to package the bundle into a `.dmg`
file. There are two reasons for this:
1. It produces a nice looking icon for the `.dmg` that overlays the Status logo
on an external disk icon.
2. `Info.plist` needs to be overwritten after running `macdeployqt` (see
explanation above) but before creating the `.dmg` file. If we passed the `-dmg`
cli option to `macdeployqt` to have it generate the `.dmg` file then it
wouldn't be possible to overwrite `Info.plist`.

So there is a cosmetic reason and a practical reason for using another
tool. Probably the biggest downside is that `create-dmg` is implemented in
Node.js so it needs to be installed with `npm`; that's the reason this commit
introduces `package.json`, etc. Note that zero code from `node_modules` ends up
in the `.app` bundle or the `.dmg` file.

Code signing of the macOS `.app` bundle and `.dmg` is attempted if the
environment variable `MACOS_CODESIGN_IDENT` is defined. In that case, the
environment variable `MACOS_KEYCHAIN_OPT` may optionally be defined with the
path to a preferred keychain database file.

Refactor a number of sections in the Makefile for consistency's sake, e.g. the
`appimage` target becomes `pkg-linux` and ultimately results in
`NimStatusClient-x86_64.AppImage` being written to `pkg/`.

Make a number of changes to bring the Linux packaging steps up-to-date and use
the `-qmlimport` cli option of `linuxdeployqt` to simplify resolution of Qt
plugins.

Note that `make pkg` will correctly resolve to `make pkg-linux` or `make
pkg-macos` depending on the OS in use.

Consistently use lower-case "c" in the name of *components* directories and
imports.

[limits]: https://developer.apple.com/forums/thread/124782
[brew]: https://brew.sh/
[so-answer]: https://stackoverflow.com/a/3251285
[sr]: https://github.com/status-im/status-react/tree/develop/deployment/macos
[macdeployqt]: https://doc.qt.io/qt-5/macos-deployment.html
[cdmg]: https://github.com/sindresorhus/create-dmg
2020-06-22 10:53:57 -05:00
Jonathan Rainville 7e96a17f3b fix: add StyledTextEdit and TextField to use the font 2020-06-19 14:53:45 -04:00
Jonathan Rainville 8755c901de fix: fix font loading issue and create a text component to use that font 2020-06-19 14:53:45 -04:00
Jonathan Rainville 98d4c7ef1e feat: add id to the collectible 2020-06-18 16:47:24 -04:00
Jonathan Rainville 3e152e5d35 feat: show collectibles in the Collectibles tab 2020-06-18 16:47:24 -04:00
Jonathan Rainville 810831e41e fix: fix token list having a space when using the filter 2020-06-18 13:55:54 -04:00
Jonathan Rainville 5c63adb0ad refactor: change token settings to the ModalPopup component 2020-06-18 13:55:54 -04:00
Iuri Matias 0ad64cc5de update qml imports 2020-06-18 11:02:11 -04:00
Iuri Matias 365e5ab4c1 fix require for components folder 2020-06-17 18:58:39 -04:00
Pascal Precht b8ba44e982 feat: implement transaction detail modal
Closes #170
2020-06-17 13:14:38 -04:00
Pascal Precht 0f7e08075b feat(wallet): Introduce simple account transaction list
There's still some things that needs to be done (possibly in future commits):

[ ] Asset icons need to be determined so they can be displayed along the transaction
[ ] Transaction values need to be converted to decimal values
[ ] Date-time formatting
[ ] Grouping of transactions by days
2020-06-17 12:47:53 -04:00
Richard Ramos b0a8bc3368 fix: make text selectable, limit text input content width and execute actions onEnter 2020-06-16 12:05:22 -04:00
Iuri Matias b1ce63b64c remove hasIcon and image props 2020-06-12 08:08:11 -04:00
Iuri Matias 36b2ae5a66 support adding a custom token
support adding a custom token

cleanup
2020-06-11 18:03:49 -04:00
Iuri Matias eaad59f690 add divider to profile layout and add minimum widths for sidebars 2020-06-11 18:02:47 -04:00
Iuri Matias 0cb2bf09e2 make wallet layout handle same color as the one in the chat layout 2020-06-11 17:16:21 -04:00
Jonathan Rainville ddd1105ff0 feat: show a confirmation dialog before deleting an account 2020-06-11 12:22:21 -04:00
Jonathan Rainville 4d7eee1ebf feat: enable deleting a wallet account 2020-06-11 12:22:21 -04:00
Jonathan Rainville 7476cf3d16 fix: fix conflicts and bad types 2020-06-11 11:23:01 -04:00
Jonathan Rainville 65efdf4c71 feat: add error handling on account change 2020-06-11 11:23:01 -04:00
Jonathan Rainville be8188078b feat: enable changing account setting in the wallet 2020-06-11 11:23:01 -04:00
Jonathan Rainville 317c956718 feat: show the real account values in settings 2020-06-11 11:23:01 -04:00
Jonathan Rainville 193f1331d1 feat: add very placeholder account settings modal
fef
2020-06-11 11:23:01 -04:00
Iuri Matias 826c0ed46d get token balance
get token balance

fix token balance call

Fix assets on load

add token list

display images

cleanup

cleanup

cleanup

clean up
2020-06-10 17:28:40 -04:00
Jonathan Rainville 937dd89146 refactor: split Input into three files to simplify and reduce memory
Having all the different input types in one file made it simpler to design, but created an issue with memory, because all the aliases, properties and images were created for all types even if you only used a basic Input. I tried using Loaders, but making aliases within loaders is super painful/impossible in some cases.
2020-06-10 15:00:50 -04:00
Jonathan Rainville 7295fde809 feat: add watch only accounts to wallet 2020-06-09 18:10:57 -04:00
Jonathan Rainville c3f9d57e5d fix: fix Wallet asset list to not show on top of header 2020-06-09 18:10:57 -04:00
Jonathan Rainville 2ade9e938d feat: add modal to add an account with a private key 2020-06-09 18:10:57 -04:00
Pascal Precht 113ddc7ce3 feat(ui/shared): allow ModalPopup to receive header components
Similar to its `footer` content, ModalPopup can now receive header components
allowing consumers to design the header part of the modal to their likings.

Usage:

```
ModalPopup {
    id: popup

    header: Item {
			...
		}
	  ...
}
```

The header section will take the height of the root element of the substree
passed to `header`
2020-06-09 17:57:30 -04:00
Jonathan Rainville 61606a872e fix: fix conditions for button disabled 2020-06-08 17:01:29 -04:00
Jonathan Rainville 43df7d2f77 feat: add TextArea to Input and set correct Modal height 2020-06-08 17:01:29 -04:00
Jonathan Rainville 50c10d38dd feat: enable adding an account with a seed phrase 2020-06-08 17:01:29 -04:00
Iuri Matias 5371f22e70 add/remove & update configured tokens on the fly
add/remove & update configured tokens on the fly

add wallet methods

generate configured assets

correct show selected tokens

toggle assets

add/remove configured tokens on the fly

cleanup

fix shown wallet
2020-06-08 12:14:09 -04:00
Jonathan Rainville c609a00784 feat: generate new accounts and get wallet account correctly 2020-06-08 09:39:01 -04:00
Jonathan Rainville 9c668c79d1 fix generate button position 2020-06-04 16:31:17 -04:00
Jonathan Rainville 3bab66fde9 add the account like a boss 2020-06-04 16:31:17 -04:00
Jonathan Rainville adda897eb9 make color selector work 2020-06-04 16:31:17 -04:00
Jonathan Rainville 68689147d6 wip select input 2020-06-04 16:31:17 -04:00
Jonathan Rainville bf5f0b6dda feat: add basic generate account popup 2020-06-04 16:31:17 -04:00
Iuri Matias df9a6d0f07 refactor & update currency modal to look and work like designs
update gitignore

display list of currencies
2020-06-04 14:29:04 -04:00
Iuri Matias b412a56577 use Theme properties 2020-06-04 10:43:39 -04:00
Iuri Matias 9b58111cab support filtering tokens 2020-06-04 10:43:39 -04:00
Iuri Matias ca82c9d5b2 fix icons; add slot for checking if an asset is currently added 2020-06-04 10:43:39 -04:00
Iuri Matias a9844099bb fix styling of token list 2020-06-04 10:43:39 -04:00
Iuri Matias 94bc4f02d7 add list of tokens and icons 2020-06-04 10:43:39 -04:00
Jonathan Rainville 15dc98b44a feat: show the real value of the current account in the wallet 2020-06-03 17:09:51 -04:00
Iuri Matias 24d0306869 use dropdown for wallet settings 2020-06-03 15:30:27 -04:00
Iuri Matias f62d3aaca7 wallet settings modal; save default currency
wallet settings modal; save default currency

wallet settings modal; save default currency

save/load currency preference

fix default currency call

use chronicle instead of echo

fix issues
2020-06-03 10:38:50 -04:00
Jonathan Rainville cc85a42b5c feat: show accounts in wallet and put assetList in Account 2020-06-02 16:41:08 -04:00
Jonathan Rainville 9e25ba1d95 fix: fix wallet missing file message and color warning 2020-06-01 13:54:49 -04:00
Iuri Matias 470687c2a6 show dropdown for add account button 2020-06-01 12:31:14 -04:00
Jonathan Rainville b6cf47f467 feat: fix StyledButton and use it in Send modal 2020-05-29 14:44:45 -04:00
Jonathan Rainville 65332804b9 feat: use Input component for the send modal 2020-05-29 14:44:45 -04:00
Jonathan Rainville 77966c8f6c feat: add very basic sendModal content 2020-05-29 14:44:45 -04:00
Jonathan Rainville 9760008625 feat: add design for the Asset Tab 2020-05-28 13:59:56 -04:00
Jonathan Rainville 3ce1883c0b feat: add files for the wallet tabs 2020-05-28 13:59:56 -04:00
Jonathan Rainville d1b786811f feat: add TabButton and TabBar for the Wallet 2020-05-28 13:59:56 -04:00
Jonathan Rainville 2da4bd376f fix: fix receive icon rotation 2020-05-28 13:59:56 -04:00
Jonathan Rainville 47cc169c4f chore: split WalletHeader to another file 2020-05-28 13:59:56 -04:00
Jonathan Rainville 056e640a29 feat: add wallet header 2020-05-27 17:43:36 -04:00
Jonathan Rainville 398e3387cf feat: add placeholder wallets in leftTab 2020-05-27 17:31:27 -04:00
Jonathan Rainville cccc7f599f chore: fix last anchor warnings 2020-05-27 14:56:33 -04:00
Jonathan Rainville b8a5d25d8b chore: remove no longer necessary anchors on layouts
Not sure why, but these are no longer necessary
2020-05-27 14:56:33 -04:00
Jonathan Rainville d8511490ca chore: fix anchor warnings for CHatColumn and KenKey 2020-05-27 14:56:33 -04:00
Jonathan Rainville 084c96afff base of changes to wallet 2020-05-27 14:56:33 -04:00
Iuri Matias 6e14749904 simplify controllers and views, make everything more consistent
simplify controllers and views, make everything more consistent

refactor wallet to use asset model

move some of wallet logic away from the controller

move ChatMessage to model

move chatItem model

organize models folder

simplify chat message and chat item

rename messageList to message_list

simply addresses in the controller

rename mailservers list

refactor how profile is set

refactor/simplify profile view

refactor/simplify adding mailservers

rename wallet view

simplify wallet assets

rename nodeView to view

extract channel list view

extract channel list view

refactor channel list / chats view

move signals out of app folder

address code reviews
2020-05-25 09:22:11 -04:00
Pascal Precht 985b5d93d0 fix(ui/wallet): don't require password to be entered as hashed hex 2020-05-21 19:50:58 -04:00
Iuri Matias 755fd6056b move block notification to node management tab 2020-05-19 17:00:29 -04:00
Pascal Precht 76a0b55d47 feat(ui/wallet): add basic form to send transaction
Closes #49
2020-05-19 11:48:41 -04:00
Richard Ramos 9411aa61e7 feat: display message in wallet 2020-05-18 11:42:50 -04:00
Jonathan Rainville 491718a0bd feat: add wallet asset icon 2020-05-15 06:46:21 -04:00
Jonathan Rainville a962069b73 feat: hook wallet assets to nim model 2020-05-15 06:46:21 -04:00
Jonathan Rainville cd522ba803 feat: split left tab to its own file and move them to Wallet dir 2020-05-14 12:24:15 -04:00