Commit Graph

1277 Commits

Author SHA1 Message Date
Igor Sirotin 70e8370aae
fix(Makefile): Bugfixes and minor improvements (#10423) 2023-04-25 18:01:19 +03:00
Lukáš Tinkl 0009ebd68f fix: device sync timestamp is wrong
- prevent QML `int` overflow
- use `LocaleUtils.formatRelativeTimestamp()` to perform the timestamp
formatting

Fixes #10412
2023-04-25 13:24:17 +02:00
Lukáš Tinkl e170af5115 chore: use the "next" icon consistently
instead of variations of "chevron-*" and rotation
2023-04-25 13:24:17 +02:00
Khushboo Mehta c94997ddec feat(@desktop/wallet): Wallet -> Send: polish Send/Bridge Modals
fixes #10344, #10321, #10320
2023-04-24 22:07:22 +02:00
Lukáš Tinkl 1fa8dffe3a fix(StatusChatListItem): fix mute icon overlapping badges 2023-04-21 17:36:52 +02:00
Michał Cieślak fb60d019b6 chore(StatusItemDelegate): api extended, internals improved
Id removed from StatusBaseText used in default contentItem, what was
causing that default contentItem was instantiated even when overridden
by user. Radius and cursorShape properties exposed.
2023-04-21 10:26:00 +02:00
Lukáš Tinkl 038ab08765 fix: do not display ENS name when not ENS verified
- expose "isEnsVerified" as model role
- fix returning "ensName" when the user is not ensVerified
- react to nickname updates correctly
- fix sorting in the user/member list view
2023-04-21 00:24:32 +02:00
Lukáš Tinkl c209e7c282 fix(ActivityNotificationMessage): use ProfileUtils.displayName()
to compose the primary/secondary user names, just like we do in the
message views, or the Profile dialog
2023-04-21 00:24:32 +02:00
Stefan 691de11211 fix(Wallet) network selection and unify network implementations
Major changes:

- Don't allow empty network selection. End up using the nim model
  directly instead because of individual row changes issues
  encountered with nim models
- Made the clone model a generic implementation to be used in other
places where we need to clone a model: ReceiveModal,
AddEditSavedAddressPopup
- Use cloned model as alternative to NetworksExtraStoreProxy in
  ReceiveModal
- Added tristate support to our generic checkbox control
- UX improvements as per design
- Fix save address tests naming and zero address issue
- Various fixes

Notes:
- Failed to make NetworkSelectPopup follow ground-truth: show partially
  checked as user intention until the network is selected in the
  source model. Got stuck on nim models not being stable models and
  report wrong entry change when reset. Tried sorting and only updating
  changes without reset but it didn't work.
- Moved grouped property SingleSelectionInfo to its own file from
  an inline component after finding out that it fails to load on Linux
  with error "Cannot assign to property of unknown type: "*".".
  It works on MacOS as expected

Closes: #10119
2023-04-20 19:34:24 +02:00
Jonathan Rainville 2aa759adcf refactor(section-model): change model to be sorted to fix reorder
Part of #3364

To make the drag and drop reorder work correctly on channels, we needed to change the model again so that it was sorted in the model itself.
That is because the drag and drop gives us the value of the position it is dropped to as a single list, so dragging the second item of the second category would mean from position 5 to position to position 4, but what the backend wants is moving the item 2 to position 1.
Sorting the model enables us to get the category that is the parent of that position and call the service with the right positions and id.
It also enables us to reorder the channel in and out of the category.
See the module code to see how the calculation is done with an explanatory comment.
The model needed some changes to support that. Some of the function where changed from dataChange calls to resetModel calls, since we need to re-sort the model.
I tried using beginMove, but it would crash. Maybe there is a bug in NimQML or I used it badly, I'm not sure.
2023-04-19 12:26:15 -04:00
Alexandra Betouni f507e33cba feat(StatusChatList): adding drag n drop functionality
Closes #3364
2023-04-19 12:26:15 -04:00
Dario Gabriel Lipicar da1839fbbb feat(@desktop/wallet) reduce number of digits shown for large currency amounts
Fixes #8917
2023-04-18 10:11:18 -03:00
Lukáš Tinkl 7a5dbbd952 chore(StatusStickerButton): refactor to use StatusButton
- make it possible for StatusBaseButton to be icon-only (ie just icon, no
text, rounded if needed)
2023-04-18 13:45:38 +02:00
Igor Sirotin 56633f6ce3
fix(StatusQ): Remove debug postfix (#10337) 2023-04-18 13:35:23 +03:00
Igor Sirotin aefa2b9f48
fix(StatusQ): StatusQ is QML module (#10207)
* StatusQ QML module
* qzxing is static lib again
* updated StatusQ resources
* fixed Emoji lookup
* added display to tests-imports ci
2023-04-14 11:18:56 +03:00
Sale Djenic 06ba89661b chore(@desktop/wallet): object names added to wallet account related qml components 2023-04-13 19:51:10 +02:00
Lukáš Tinkl a8eed304c0 feat: implement ProfileShowcase settings
Implement the UI part of Profile/Settings/Showcase:

- Communities/Accounts/Collectibles/Assets tabs
- drag and drop of items between "hidden" and "in showcase" sections
- ability to set individual items' visibility
- persistency (showcase saved across restarts), not exposed yet due to
  missing backend API

Closes #9936
2023-04-12 11:39:37 +02:00
Lukáš Tinkl d180001f84 feat(StatusMenuItem): add support for "checked" indicator
- it is displayed on the trailing edge, next to the main text, iff the
item/action is `checked`
- fix the text elide (must have a width set)
- fix for setting the icon name/source/color if we directly use a
(Status)MenuItem (as opposed to going via (Status)Action)
2023-04-12 11:39:37 +02:00
Dario Gabriel Lipicar ed6ea5d90c feat(@desktop/wallet): add support for more NFTs media types
Fixes #9836
2023-04-11 12:40:38 -03:00
Noelia 7882147eaf feat(SQ/StatusItemDelegate): Added property to customize text horizontal alignment
Added property `textHorizontalAligment` to customize text horizontal alignment
2023-04-11 16:19:30 +02:00
Patryk Osmaczko f9250e7dd4 feat(storybook): add ChatAnchorButtonsPanel
iterates: #9069
2023-04-11 13:35:04 +02:00
Lukáš Tinkl 19e7c42cc2 chore: extract input cursor delegate into StatusCursorDelegate
- unified UI/UX; no code changes, just reduces code duplication
- use the correct OS/platform blink interval with
  `Qt.styleHints.cursorFlashTime`
2023-04-07 20:40:56 +02:00
Alexandra Betouni e35086f448 [StatusChatList]: added marks indicating unread msg and mentions
Closes #8265
2023-04-07 17:21:11 +03:00
Boris Melnik cbdc3e61b5 fix(images): Display image placeholder when image from album not loaded
Fixes: #9990
2023-04-07 15:42:12 +03:00
Alex Jbanca 731846c54c fix(StatusPasswordInput): Fix background image and content colors 2023-04-05 22:14:03 +03:00
Dario Gabriel Lipicar 6d7fda53f6 fix(@desktop): only allow dot as decimal separator for user input
Fixes #10125
2023-04-05 11:11:36 -03:00
Alexandra Betouni 840b9986dc fix(MembersListSelectro): tag item should be removed only when x is clicked
Closes #8259
2023-04-05 15:30:04 +03:00
Michał Cieślak 8dafdfceb8 feat(CommunityPermissions): Switch to enable/disable 'Who holds' section
Closes: #8498
2023-04-05 11:46:20 +02:00
Michał Cieślak 43196d9e31 feat(StatusGroupBox): Use StatusIcon to gray out label when disabled 2023-04-05 11:46:20 +02:00
Lukáš Tinkl c964e99b0c chore: make it possible to customize/remove the back button 2023-04-04 13:54:39 +02:00
Lukáš Tinkl 3252eaf340 fix: Excessive vertical spacing between subtitle and standard colour selector in all colour selectors
- use spacing as designed in Figma
- re-use StatusColorSelectorGrid title label component (not leaving extra
space behind whern empty)
- always use white text for the color previews (our color palette/picker
are designed for this)
- give Channel color dialog a title (as designed)
- use BE spelling (as designed, and to be consistent with the rest of the app)

Fixes: #9841
2023-04-04 11:32:55 +02:00
Lukáš Tinkl 7523b1a62b fix: draw the inner radio indicator border
... as designed/intended in Figma

plus fix a TODO, use HoverHandler instead of a MouseArea to chaneg the
mouse cursor shape
2023-04-04 11:32:55 +02:00
Lukáš Tinkl 0ebc5e4194 fix(StatusPasswordInput): enable mouse interaction
enables selecting text with mouse

Fixes: #9837
2023-04-03 21:24:46 +02:00
Sale Djenic ea53fce030 feat(@desktop/wallet): edit account reusing new "Add Account" popup
Closes: #9847
2023-04-03 14:13:53 +02:00
Sale Djenic d8b1e47984 feat(@desktop/wallet): right click context menu added for wallet accounts
Handled options from the context menu for wallet accounts:
- Copy address
- Add new account
- Add watch-only account
2023-04-03 14:13:53 +02:00
Stefan 81c3463816 feat(wallet): implement DerivationPathInput control
The enforcing of the derivation path editing rules is done in a structured
way by handling all the changes on the array of `Element` stored in
d.elements and then recomposing the HTML string to be displayed after
every change.

Main limitation is the workaround in `onTextChanged` that regenerates
the text in order to dismiss foreign characters introduced by pasting
which I couldn't find a way to disable without disabling also the ability
to copy content to clipboard.

Highlights:
- Implement DerivationPathInput control that intercepts the modifiable
keyboard events in order to edit the visible TextEdit.text while
respecting the requirements of the derivation path editing
- Implement a JS Controller that handles the logic of the
  decomposing and recomposing the derivation path string
- Add anew StatusQ with the TextEdit basic look and feel to be used
  in DerivationPathInput control without duplicating the style
- Allow passing modifiable events that are not generating characters in
  order to allow copy to clipboard
- Disable add account when control is in error state
- Limit to maximum 5 elements in the derivation path

Testing:
- Integrate the control with StoryBook for a quick preview of the
  control
- Add unit tests for the Controller basic functionality and regression
  for the main control Item
- Removed forcing x64 architecture on apple arm64 hardware from the
  storybook build configuration

Note: initially the implementation was suppose to be simple parse the
derivation path string edit elements and format it. However, I could not
find a quick way fix the circular dependency issue between editing the
text and reformatting it. The solution was to use a one way from the
structured data to the formatted string which complicates the
implementation logic.

Closes: #9890
2023-03-31 18:14:50 +04:00
Boris Melnik 3566d64f39 fix(images): Wrap text in image message
Fixes: #10044
2023-03-31 13:36:51 +03:00
Jonathan Rainville 0424715810 fix(edit): fix edit message not sending mentions correctly
Fixes #10074
2023-03-30 15:51:23 -04:00
Igor Sirotin 14c264e350
feature(Syncing): Embed QR code scanner for syncing devices on onboarding (#9981)
* fix(StatusQrCodeScanner): Improve QR code scanner
- Almost async loading
- Added camera selector
- Added `captureRectangle` property
- Add component info to sandbox qr code scanner page
- Embed QrCodeScanner into desktop app
* Compile and link qzxing as shared library
* Hardcode settingCurrentNetwork. Propagate inputConnectionString errors.
* Added qzxing libdir to e2e tests ld_library_path
2023-03-30 20:57:18 +03:00
Lukáš Tinkl 40e4a3670f fix: StatusComboBox doesn't react on click outside indicator
Redirect the click event and let the CustomComboItem fill the whole
`contentItem` (otherwise a Button over another Button eats all the mouse
events)

Fixes: #9977
2023-03-29 17:18:07 +02:00
Michał Cieślak 27c891fc18 feat(communities): AirdropTokensSelector component added
Closes: #9798
2023-03-29 14:25:46 +02:00
Michał Cieślak 2dc9c950d9 fix(StatusFlowSelector): minor adjustments to the design 2023-03-29 14:25:46 +02:00
Anthony Laibe 063198fc1f feat(@wallet): do not change value of symbol
fixes #9201
2023-03-29 10:14:08 +02:00
Sale Djenic 223e4f1bc2 feat(@desktop/wallet): new "Add Account" modal added
Closes: #9733
2023-03-28 18:09:39 +02:00
Sale Djenic 388fab4a4a feat(StatusQ.Components): `StatusPageIndicator` component introduced
Added `StatusPageIndicator` component which displays buttons in a row,
representing pages from the set range.

Corresponding page in API Documentation added.
2023-03-28 18:09:39 +02:00
MishkaRogachev 1f54d96f5f feat(Chat): Disable chat actions for non-contacts 2023-03-28 11:05:07 -04:00
Alex Jbanca 75571c9f22 fix(StatusItemsSelector): Allow icons to be provided by the model
Fixing https://github.com/status-im/status-desktop/issues/9766
The main change is that the model will now provide the image type, on top of the image source. The image type can be either icon or image. Icons will be coloured with the same colour as the text.
2023-03-28 12:46:20 +03:00
Alex Jbanca 2142a6bf9c fix(ActivitiCenterTolltip): Position tooltip arrow in the middle of the button 2023-03-27 14:19:43 +03:00
Khushboo Mehta 5b3a115f55 fix(@desktop/wallet): Loading screen after adding account
1. Removing logic for loading to nim
2. Handling error state for asset view also on the nim side

fixes #9648
2023-03-24 17:09:09 +01:00
Boris Melnik 30b4d9eb5c fix(chat): Sent images with text correctly
Fixes: #9564 #6374
2023-03-24 14:33:17 +03:00
Noelia e751f8c658 feat(SQ/StatusDialogFooter): Added new property spacing
Added new property spacing, between buttons.
2023-03-24 12:08:00 +01:00
Khushboo Mehta 072537f61a feat(@desktop/wallet): Implement connection error screens
fixes #9835
2023-03-23 15:26:22 +01:00
Jakub Sokołowski f39dfa87f7 move qzxing and SortFilterProxyModel to vendor folder
Lets avoid creating chaos by having multiple vendor folders.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-23 12:09:19 +01:00
Alex Jbanca f18ceff600 fix(StatusInput): forward focus to the input component 2023-03-23 12:24:05 +02:00
Alex Jbanca ad8ce70e09 fix(StatusBaseInput): forward focus to the input component and send signals on Enter/Return pressed 2023-03-23 12:24:05 +02:00
Noelia c6517c00f3 feat(SQ/StatusEmojiAndColorComboBox): Created new component
Created new `StatusEmojiAndColorComboBox` component that behaves like a combobox but with specific content item and delegate look (emoji + color + text).
2023-03-23 08:24:45 +01:00
Noelia b4355f8003 feat(SQ/StatusComboBox): Added new variant
Added variants related to type and size.
2023-03-23 08:24:45 +01:00
Michał Cieślak 083bea0954 fix(CommunityNewPermissionView): proper color of icons in "Is allowed to" section
Closes: #9280
2023-03-22 14:57:58 +01:00
Lukáš Tinkl eecaa0c7b9 fix(StatusEmojiReactions): Text in own reactions has wrong color in dark mode
always use "white on blue"

Fixes #9944
2023-03-22 12:31:11 +01:00
Michał Cieślak bef14365aa chore(StatusItemSelector): Use StatusFlowSelector as a base component
Closes: #9851
2023-03-21 11:59:12 +01:00
Michał Cieślak 7df80bfa1c StatusQ: StatusFlowSelector added 2023-03-21 11:59:12 +01:00
Michał Cieślak 347da1e007 StatusGroupBox used as a base for StatusItemSelector 2023-03-21 11:59:12 +01:00
Michał Cieślak 840ebbe1eb feat(StatusQ): StatusGroupBox component added 2023-03-21 11:59:12 +01:00
Michał Cieślak 0db5790f76 chore(Storybook): StatusItemSelectorPage moved from Sandbox to Storybook 2023-03-21 11:59:12 +01:00
Igor Sirotin 0689a8f386
fix(Syncing): Fixed synced devices list UI bugs (#9929)
* Added online badge to device delegates
* Fixing device last timestamp processing
* Synced devices sorting - current device is always first
* Devices list scrolling fixes
* Fix device list duplication
* Hide online badge for "Synced device" subtitle
2023-03-21 16:10:06 +11:00
Lukáš Tinkl 8aa8b8b7ce fix(StatusTooltip): long text goes out of bounds
Fixes #9918
2023-03-17 12:23:40 +01:00
Lukáš Tinkl 411961aee7 fix: ‘Share community’ URL is unnecessarily ellipsed
- set the width on title/subtitle
- put the subtitle with its optional icon into a Row
- elide title/subtitle
- update Sandbox

Fixes #9701
2023-03-17 11:45:16 +01:00
Lukáš Tinkl 1998a6556a feat(Profile): New Social Links workflow
TLDR;
- all links visible in settings/popup
- persistent order of items
- drag'n'drop to reorder
- editing/deleting in a new popup
- several links of the same type

Needs changes in nimqml (to expose QAIM::begin/endMoveRows), in
DOtherSide (to expose those to NIM), in status-go (to preserve the links
order and fully save them to DB)

Fixes #9777
2023-03-16 16:08:23 +01:00
Igor Sirotin 33d38a4081 fix: Device syncing
- Added local pairing signals
- Remove slash ending from keystorePath
- Implemented localPairingState. Fixed sync new device workflow. 
- Error message view design update 
- Moved local pairing status to devices service
- ConnectionString automatic validation
- Async inputConnectionString
- Added all installation properties to model. Minor renaming.
- Removed emoji and color customization
- Show display name, colorhash and color in device being synced
- Add timeout to pairing server
- Add device type
Fix `DeviceSyncingView` sizing. Fix `inputConnectionString` async task slot.
2023-03-16 00:27:21 +13:00
Noelia 79a1a60c70 refactor(MintingToken): Navigations refactor
- It has been added a `StackView` in main mint tokens panel to easily switch back / forward between views.

- It has been created a SQ component `StackViewStatesManager` that allows a managing together a stackview and states.

- Updated `HoldingsDropdown` to use new stack states component
2023-03-14 16:06:27 +01:00
MishkaRogachev ab1393b7f0 fix(Chat): Show message's text for community invitation
Close #9812
2023-03-14 12:00:17 +05:30
Alexandra Betouni ef8860edbb fix(StatusChatList): fixed dnd uncategorized channels
Part of #3364
2023-03-10 19:40:04 +02:00
Dario Gabriel Lipicar 2fb158b810 fix(@desktop/wallet): fix send input for some locales
Fixes #9324
2023-03-09 10:59:51 -03:00
Lukáš Tinkl 5c0f1981ad feat: Profile Showcase: Proof of concept for own Profile Dialog
- the goal of this PR is to get some bsais UI building blocks done for
the followup PRs
- the order of showcase tabs now is:
Communities/Accounts/Collectibles/Assets
- there will be further changes to accomodate for different types of
backend models as those get developed (for other users' profiles)

Fixes #9664
2023-03-08 18:45:27 +01:00
Lukáš Tinkl 2204273a22 chore: don't let text overflow
set maximum line count + elide + visibility
2023-03-08 18:45:27 +01:00
Igor Sirotin 7c1c178d37
QR code scanner (QML component) (#9464)
Co-authored-by: Richard Ramos <info@richardramos.me>
2023-03-07 12:08:38 -04:00
Noelia 02cf07044d feat(MintToken): Created Preview collectible page
- Added navigation between pages.
- Added main layout and properties (some backend integration still pending).
- Added holders model with mocked data.
- Added mint tokens footer component.

Closes #8734 and #8737
2023-03-07 13:24:45 +01:00
Noelia 72da3cdf63 feat(SQ/StatusImageSelector): Added new properties
`preview` and  `file` properties added.
2023-03-07 13:24:45 +01:00
Noelia 736f315c49 feat(SQ/StatusDotsLoadingIndicator): Created new 3 dots loading animation
- Created new loading animation component.
- Added documentation and page in `stroybook`.
2023-03-07 13:24:45 +01:00
Lukáš Tinkl 1a96700bb8 fix(ProfileHeader): Settings/Profile/avatar design updates
- correct margins, spacing, position for the avatar image
- action button in the top right corner
- fixup the context menu

Fixes #9682
2023-03-07 11:27:03 +01:00
Michał Cieślak 0e60ac4933 fix(AmountInput): Skip non-digits for max input length limit validation
Closes: #9718
2023-03-06 19:44:26 +01:00
Michał Cieślak 405a8ee3ed fix(LocaleUtils): Improve handling small numbers by fractionalPartLength(num)
Closes: #9681
2023-03-06 19:43:47 +01:00
Michał Cieślak 480c249ee0 chore(CommunityPermissions): Refactor channels handling
Community permissions model refers to channels by id instead of
taking/serving all details. UI fetches necessary metadata form
appropriate channels model.

Closes: #9588
2023-03-06 17:36:36 +01:00
Jonathan Rainville 40a157a5af fix(test): fix create category test 2023-03-03 16:14:38 -05:00
Michał Cieślak bb2e03bd88 feat(StatusQ): Added ModelChangeGuard utility to prevent altering models 2023-03-03 16:51:45 +01:00
Boris Melnik 18e5fc915c fix(chat): Display text from image message
Fixes: #9564
2023-03-02 22:08:46 +03:00
Ivan Belyakov e6226ab564 fix(@desktop/statusq): Fix icons background square, but must be circle
regression.

Fixes: #9714
2023-03-02 19:17:51 +01:00
Lukáš Tinkl ef99e3d017 fix: Primary nav bar vertical alignment on Windows/Linux
- reduce top margin for non-macOS builds

Fixes #9684
2023-03-02 15:49:28 +01:00
Ivan Belyakov 1c7c0d7d81 fix(@desktop/statusq): Change id for StatusListItem to root.
Fix some equal signs to be === and !==.
Removed iconHoverEnabled property for StatusListItem.

Fixes #8599
2023-03-01 13:59:49 +03:00
Ivan Belyakov 19436c0e58 fix(@desktop/statusq): Reverted StatusSmartIdenticon to use icon
with mouse area instead of button.
Added a missing bgRadius assignment.

Fixes #8599
2023-03-01 13:59:49 +03:00
Ivan Belyakov b901f32dd8 fix(@desktop/statusq): Fix StatusBaseInput marked dirty in case of
rich text if visual input is empty

Fixes #8599
2023-03-01 13:59:49 +03:00
Ivan Belyakov bfdd9092e1 fix(@desktop/statusq): Fix StatusQ and shared components as part of
new saved addresses UI implementation
  - Fixed StatusInput and StatusBaseInput to respect rich text.
  - Fixed AddressInput's height that breaks the layout when inside
of QtQuick Layout.
  - Added support for icon clicks in StatusListItem.
  - Fixed broken right alignment in ContactsListAndSearch.

Fixes #8599
2023-03-01 13:59:49 +03:00
Lukáš Tinkl 2a1ea3b0ae fix(StatusChatList): Missing space between channels in StatusChatList
- add an extra space for the item height to fix spacing; can't do this
using regular `spacing` due to height of collapsed categories
- remove dead code

Fixes #9657
2023-03-01 11:42:39 +02:00
Jonathan Rainville 5352ba8c6f refactor(chat-model): simplify chat model and put category as an Item
Fixes #9494
2023-02-28 11:58:40 -05:00
Noelia 2398b8bd46 fix(SQ/StatusIntValidator): Validation function fixed
Validation function fixed
2023-02-28 14:17:47 +01:00
Noelia aecb4816e0 feat(SQ/StatusImageSelector): Created new statusq component `StatusImageSelector`
Created new `StatusQ` component `StatusImageSelector`.

Closes #9629
2023-02-28 14:17:47 +01:00
Dario Gabriel Lipicar fa1c3beb25 feat(@dekstop/wallet) use user input resolution for Send/Bridge modals
Fixes #9459
2023-02-27 08:22:41 -03:00
Khushboo Mehta 2dbf2d4635 fix(@desktop/wallet): Remove the 'Load More' button from the Activity view and replace with automatic loading when the user scrolls down using a skeleton loading state
fixes #8987
2023-02-23 18:04:08 +01:00
Michał Cieślak 34676d0ec7 fix(CommunityPermissions): clean warnings by preventing assigning when some roles doesn't exist
Closes: #9608
2023-02-22 14:43:40 +01:00
Michał Cieślak c85a8d3647 fix(StatusQ/Utils): Fix ModelChangeTracker and ModelUtils to handle properly 2023-02-22 14:43:40 +01:00