3845 Commits

Author SHA1 Message Date
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
f2a573bf53 add translation files to the pro file 2020-06-19 14:36:14 -04:00
Jonathan Rainville
a31fde5e5a feat: add one translation 2020-06-19 14:36:14 -04:00
Jonathan Rainville
5dacb89822 feat: add base for translations 2020-06-19 14:36:14 -04:00
Jonathan Rainville
bae8e44f37 fix: fix long texts to wrap correctly in chat bubble 2020-06-18 17:09:56 -04:00
Jonathan Rainville
21afaf4ea4 fix: fix channel text with break lines and add default props 2020-06-18 17:09:56 -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
Pascal Precht
7d5ea12095 feat(chat): implement clearing chat history
Closes #148
2020-06-18 13:46:05 -04:00
Iuri Matias
719d66b332 update qml imports 2020-06-18 11:02:11 -04:00
Iuri Matias
0ad64cc5de update qml imports 2020-06-18 11:02:11 -04:00
Iuri Matias
1cacc8cf88 support enabling/disabling tabs in the advanced settings
support enabling/disabling tabs in the advanced settings

use qstr
2020-06-18 10:28:43 -04:00
Pascal Precht
a538584835 ui: fine-tune rounded icon border
The border color of `RoundedColor` is way darker than channel and chat icons in
other places of the application.

This commit aligns it so it's the same everywhere
2020-06-18 10:21:31 -04:00
Richard Ramos
b70a29f059 fix: code review 2020-06-18 10:16:32 -04:00
Richard Ramos
4fef70fc4a feat: Create group chats 2020-06-18 10:16:32 -04:00
Iuri Matias
73520d1796 add send message button to profile popup; auto switch to chat tab if necessary
add send message button to profile popup; auto switch to chat tab if necessary

use theme colors

use i18n
2020-06-18 08:27:24 -04:00
Iuri Matias
93361921b7 support opening profile modal in contacts section 2020-06-18 08:13:45 -04:00
Iuri Matias
e7e77f58dc make profile popup reusable 2020-06-18 08:13:45 -04:00
Iuri Matias
c79fa1e4cc disable unused methods 2020-06-18 08:13:45 -04:00
Iuri Matias
965e71e45d display more info in the about section 2020-06-18 08:13:45 -04:00
Iuri Matias
22721f3c47 display selected side menu 2020-06-18 08:13:45 -04:00
Iuri Matias
090ba1a063 display pubkey in the profile 2020-06-18 08:13:45 -04:00
Iuri Matias
bddfe99621 use properties for profile section qml 2020-06-18 08:13:45 -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
Richard Ramos
0971b5928d feat: Support ENS usernames in messages 2020-06-17 13:09:31 -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
Iuri Matias
116b04a9ef fix installationId usage; disable in-app logout for now
fix installationId usage; disable in-app logout for now

fix
2020-06-17 12:26:41 -04:00
Iuri Matias
fe82f762bb display list of contacts in the open chat modal 2020-06-17 07:41:32 -04:00
Iuri Matias
e802159a6a display real contacts on profile
display real contacts on profile

query contacts

add contact in form

fixes

fixes

display contacts

cleanup

cleanup

remove echo

refactor to use profile instead of contact model
2020-06-16 12:48:25 -04:00
Richard Ramos
88bf4fca66 feat: add id to profile object and verify membership on groups 2020-06-16 12:46:40 -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
Richard Ramos
b842925ba4 feat: edit group name 2020-06-16 12:05:22 -04:00
Jonathan Rainville
de5d542b8e fix: change text strings to qsTr
Co-authored-by: RichΛrd <info@richardramos.me>
2020-06-16 11:57:11 -04:00
Jonathan Rainville
34810e0587 chore: remove AccountSelection component that is no longer needed 2020-06-16 11:57:11 -04:00
Jonathan Rainville
026d1d1c4d feat: design onboarding 2020-06-16 11:57:11 -04:00
Jonathan Rainville
03305c548f fix: make gen key modal not flickable 2020-06-16 11:54:52 -04:00
Richard Ramos
d7f9120840 Adding messageId to messages 2020-06-15 08:23:03 -04:00
Richard Ramos
9ef575dc30 Add members list menu and support colors in icons on the menu 2020-06-15 08:19:37 -04:00
Richard Ramos
95de3b4267 feat: group information 2020-06-15 08:19:37 -04:00
Jonathan Rainville
7873a0ff58 feat: design gen new key modal 2020-06-15 08:07:15 -04:00
Richard Ramos
f52ae4f994 fix: qml warnings 2020-06-13 10:01:05 -04:00
Richard Ramos
e38f1b0268 fix: code review 2020-06-13 09:56:58 -04:00
Richard Ramos
78e8e6be93 feat: group information 2020-06-13 09:56:58 -04:00
Jonathan Rainville
846dc646e1 feat: add design to enter a seed key 2020-06-13 09:51:38 -04:00
Pascal Precht
73eb4fe8b1 feat: introduce button to block users
Closes #158
2020-06-12 08:30:10 -04:00