Commit Graph

130 Commits

Author SHA1 Message Date
Jonathan Rainville bffe888b0d feat: improve compact mode to fix all alignements 2021-02-08 16:48:14 -05:00
Pascal Precht ea2238f998
uiux(StatusTimeline): fix send button look & feel
Due to how `StatusButton` has evolved, the send button in the Status
timeline no longer looked and behaved the way it was supposed to.

This commit patches that by introducing new properties to `StatusButton`
and making use of them in the Status timline, so that existing buttons
don't break.

It also fixes a bug in the StatusButton where the hovered background
color was wrongly calculated.
2021-02-02 11:51:02 +01:00
Pascal Precht 59b1a70f7e
fix(StatusWalletColorSelect): fix reference error 2021-02-02 11:51:02 +01:00
Pascal Precht 62183fb414 refactor: replace StyledButton with StatusButton
There are some inconcistencies in the application when it comes to
button UI elements because we're using `StatusButton` in some places,
in other we use `StyledButton`. The latter is the original
component we've created when we started out building Status
Desktop, but is planned to be removed entirely in favour of
`StatusButton`.

This commit replaces the usages of `StyledButton` with `StatusButton`
2021-02-02 10:57:42 +01:00
Pascal Precht 52eb8dd852 fix(StatusButton): fix UI issues with component
StatusButton has a lot of issues when it comes to consistent behaviour
and look & feel. This includes things like calculating incorrect
hover colors as well as not being flexible enough to be used in various
scenarios

This commit changes StatusButton so that it's able to handle outlined
versions of warn buttons, calculates proper colors and more.

Many of these changes introduce heuristics to make things work.
In the long run, we should revisit the different variants that exists
(primary, secondary, outlined, warn etc) to encode them properly
in the API.
2021-02-02 10:57:42 +01:00
Pascal Precht 543340fd88 fix(StatusRoundButton): enable and correct hover on component
The `StatusRoundButton` was missing the `hoverEnabled` flag, causing it
to not turn the cursor into a pointer when the component is hovered.
It's also not rendering the proper hover color.

This commit fixes that to improve usability and look & feel.
2021-02-01 11:57:33 -05:00
Jonathan Rainville b245d858aa feat: redisgn compact mode part 1
redesigns the compact mode to have a nice hover, easier replying and adding reactions and more

Missing parts are aligning chat command, images and unfurlings, redesigning mentions and the channel list and also trying to find a way to re-enable link hovers in the text
2021-02-01 11:54:26 -05:00
staked-smart-ace 2b3bbb0b1e Updated selection color of the chat input box as the design. Fixes #1750 2021-02-01 11:49:04 -05:00
staked-smart-ace 262856d69e
Updated gen key button style. Fixes #1749 2021-01-28 13:19:29 +01:00
Jonathan Rainville 92332e9c2d fix: fix slider sliding when using the mouse scroll
Fixes #1726
2021-01-22 13:47:40 -05:00
Pascal Precht f9699b7ca0 uiux(StatusIconTabButton): change cursor on component hover 2021-01-22 13:40:29 -05:00
Jonathan Rainville 94f1267ea9 feat: enables inserting emojis and mentions using Tab as well 2021-01-21 12:04:50 -05:00
Pascal Precht 64f895e17a fix(StatusChatInfo): ensure component width is calculated properly
With the recent addition of the `muted` property in this component,
the `width` is no longer reliably calculated. Sometimes it can happen
that the muted bell icon jumps out of the component. This is very apparent
inside of a `StatusChatInfoButton`.

This commit ensure that the width of this component always includes all
of its children, fixing the ui bug mentioned above.
2021-01-21 12:02:28 -05:00
Pascal Precht 3a538acb1e feat: introduce StatusWalletColorSelect component
This is a new form control component to select colors for wallet
accounts. It will replace the currently used `ColorSelect` in the
Status Desktop application so it aligns with the new designs.

Closes #1497
2021-01-21 11:59:34 -05:00
Pascal Precht 7d8d69f746 feat: introduce StatusWalletColorButton
This is a new button component that can be used to implement account
wallet color pickers.
2021-01-21 11:58:48 -05:00
Pascal Precht f055286124 feat(StatusIconButton): introduce property to configure background opacity 2021-01-21 11:44:45 -05:00
Richard Ramos ea89ebd960 fix: use destroy instead of close 2021-01-20 15:47:01 -05:00
Richard Ramos ed7ba12d4d fix: use a component instead of a loader to show sticker modal 2021-01-20 15:47:01 -05:00
Pascal Precht 0daf355f54 uiux(StatusTooltip): change color according to theme
It was requested to change the tooltip to black an white and white on
black in dark and light themes respectively.
This commit changes the colors accordingly.
2021-01-19 16:50:47 -05:00
Pascal Precht 787354b0dc feat: introduce StatusExpandableAddress component
This introduces a new component to render Addresses that can be
expanded as well as copied using `CopyToClipBoardButton`.
While there's already an `Address` component that allows for expansion,
it doesn't give us control over it's look and feel and, should rather
be a `Button` anyways.

There's also cases in the application where we render a collapsed address
and don't allow for expanding it. In such cases, we might not want/need
a button at all.

Might make sense to introduce a separate address component that just shows
a collapsed address without any behaviour, which can then be used inside
`StatusExapandableAddress`.

Closes #1633
2021-01-19 16:48:26 -05:00
Jonathan Rainville 7fef440a97 fix: fix design of appearance in settings 2021-01-19 16:45:57 -05:00
Jonathan Rainville acac683dc2 feat: fix Notification page and lists of contacts 2021-01-19 16:45:57 -05:00
staked-smart-ace 086c868bdc
uiux(StatusButton): introduce warn type
Fixes #1603
2021-01-19 12:45:03 +01:00
staked-smart-ace c84806aa4e Adjusted badge positions as designs. Fixes #1619 2021-01-18 15:27:56 -05:00
Jonathan Rainville 76688733f5 feat: add muted states for channel
Fixes #1615
2021-01-15 13:52:50 -05:00
staked-smart-ace c6c8ed0858 Fixed radius issue of the chat input box. Fixes #1612 2021-01-15 10:54:40 -05:00
Pascal Precht 51083e2005 feat: introduce StatusSectionDescItem
This is a component that is similar to the `StatusSectionMenuItem` component, just
with the difference that it's not a clickable element, rather "description" element,
inspired by HTML `<dl>`, `<dt>` and `<dd>` elements ("description list", "description term",
"description" respectively).

The component comes with a `CopyToClipBoardButton` by default. We might want to decide
to make it configurable later on, as there could be places where we just want to
render the description item, without a copyble description.
2021-01-14 16:03:43 -05:00
Pascal Precht e82b0b194d uiux: remove active checked state from StatusIconTabButton
Closes #1618
2021-01-14 16:00:48 -05:00
staked-smart-ace 96b09fd025 Fixes #1611 2021-01-14 15:59:45 -05:00
Jonathan Rainville e459d4dbd4 fix: fix PopupModal to not show a footer at all if there is no children 2021-01-13 14:32:35 -05:00
Jonathan Rainville 6705e3f8c7 fix: fix profile popup buttons to fit the design 2021-01-12 16:33:32 -05:00
Jonathan Rainville 6b76996bf0 fix: clear channel picker search input on open 2021-01-11 13:57:54 -05:00
Jonathan Rainville ce3252fb8f wip community 2021-01-11 13:57:35 -05:00
Jonathan Rainville 36b6e76a2e feat: add browserHomepage setting that can be changed 2021-01-05 11:24:31 -05:00
Jonathan Rainville 89da5dd923 feat: open links in user request browser with modal 2021-01-04 15:29:23 -05:00
Jonathan Rainville 37edfed446 fix: fix QML warnings 2021-01-04 15:23:23 -05:00
Jonathan Rainville 1ead1c3db5 feat: show favorites bar when setting is enabled 2020-12-30 16:52:44 -05:00
Jonathan Rainville 16f5c2fb1a feat: add showFavoritesBar setting (placeholder for now) 2020-12-30 16:52:44 -05:00
Jonathan Rainville 825097f007 feat: add channel switcher when hitting CTRL+K 2020-12-30 15:01:51 -05:00
emizzle 7e1d7be314 feat: load installed stickers while offline
When the network connection is changed, the sticker packs are cleared and then re-loaded (either loading the offline (installed) sticker packs, or all the sticker packs from the network).

Stickers can be sent while offline, though the sticker images do not load once offline (this is likely a side effect of the bug described below).

There is a known bug in QNetworkAccessManager (https://bugreports.qt.io/browse/QTBUG-55180) that was re-introduced in 5.14.1 that does not allow us to download resources if we go offline then come back online. The workaround employed in this PR manually sets the NetworkAccessible property of QNetworkAccessManager once we have been connected back online. The NetworkAccessible property is marked as obsolete and will be removed in Qt6, so it is something that we need to be aware of when we upgrade. However the hope is that the bug has been fixed.

Close StickersPopup when disconnected from network (so that re-loading of sticker packs doesn't look out of place).

fix: set network status correctly at load

feat: stickers gas estimate async

feat: When network re-connected, any http images that were not properly loaded in an ImageLoader component will automatically be reloaded.

fix: Sticker button loading icon

chore: Bump nimqml and dotherside

NOTE: This PR uses an updated nimqml and dotherside. The respective changes should be merged first, and the commit hash should be bumped in this PR prior to merging. Relevant PRs:

[https://github.com/status-im/dotherside/pull/20](https://github.com/status-im/dotherside/pull/20)

[https://github.com/status-im/nimqml/pull/17](https://github.com/status-im/nimqml/pull/17)
2020-12-28 14:29:38 -05:00
Pascal Precht 90dfa94805 refactor: move getProfileImage API to appMain
Prior to this commit, the function was expected on a `chatView` QML object.
This has worked out so far because the places where the API is used were always
living inside `ChatLayout`.

With the new timeline however, this is no longer the case so we have to make sure
that the API is available to other views as well.
2020-12-21 14:15:08 -05:00
Pascal Precht 400b020118 fix(StatusChatInput): ensure send button is disabled when message limit is exceeded
This was missing in the previous work we've done to make the `StatusChatInput` work
as a status timeline update component.

This commit also adds an event handler which was missing to trigger the `onMessage`
event when the send button is clicked.
2020-12-21 14:14:48 -05:00
emizzle ba48b266a9 chore: re-add sticker loading UI
The sticker loading UI was removed when the StatusChatInput and friends were added in. This PR re-adds the sticker loading UI introduced in PR# 955 (https://github.com/status-im/nim-status-client/pull/955).
2020-12-18 15:34:31 -05:00
Jonathan Rainville d01c9fef79 feat: add profile pic support 2020-12-17 16:44:25 -05:00
Richard Ramos 43d9d5184d feat: close image popup on click 2020-12-16 09:17:04 -05:00
Pascal Precht f512d5063c feat: introduce StatusUpdateChatInput variation
This commit changes the `StatusChatInput` component to also be a `StatusUpdateInput`.
The latter isn't an actual new type or component, it's just a visual variation of the already
existing status chat input. That's my most of the changes are `isStatusUpdateInput` conditions
sprinkled here and there.

In addition, this commit introduces a new `chatType` which is passed to `StatusChatInput` later
in the timeline view, so it knows it has to render like a status update input.
2020-12-14 12:36:49 +01:00
Richard Ramos 02867d8627 fix: newlines on chat input 2020-12-11 14:04:06 -05:00
Pascal Precht 04bf8e7a03 fix(StatusButton): make icon color same as button label color 2020-12-10 14:40:35 -05:00
Pascal Precht 2baf56f505 refactor(Chat): move suggestions ListModel into StatusChatInput
StatusChatInput was relying on the suggestions ListModel, even though there was
no guarantee that it would exist. This is more apparent when using the component
in different context (e.g. Timeline/Status Updates). QML will throw a reference
error in this case.
2020-12-10 12:30:31 +01:00
Pascal Precht 9745205302 refactor(Chat): move send message logic out of status chat input
`StatusChatInput` ideally shouldn't rely on chatsModel and other global
objects at all. Also, when using the component in different places, it can cause
accidental sending of message when testing the component (because all the logic is already
wired up)
2020-12-10 12:30:31 +01:00