Commit Graph

1730 Commits

Author SHA1 Message Date
Lukáš Tinkl 2d729668ba fix: Separate single/grouped sort position
- keep track of the grouped item kind (community vs. collection)
- when the "arrange by" mode is active, use it for sorting the tokens in
the main wallet view
- change the behavior to always sort by the number of tokens inside the
group when entering the grouped (arrange by...) mode + add tests
- expose the `backgroundColor` for token groups
- remove unused code dealing with handling of community IDs

Fixes #13276
2024-03-19 14:18:55 +01:00
Michał Iskierko 9ed38bddb7
13291 hide channels (#13876)
* feat(@desktop/communities): Hide channels if the user is not permitted to view and hideIfPermissionsNotMet is set

Extend chats model with channel permissions info and hideIfPermissionsNotMet.
Visibility of chat item is based on: member roles, channel permissions, hideIfPermissionsNotMet.
If all channels from category are hidden, category item is also hidden.
If all chats in community are hidden, infomration label is displayed.

Issue #13291

* chore(@desktop): Upgrade status-go

Issue #13291
2024-03-18 13:33:07 -04:00
Lukáš Tinkl 2487963323 fix(StatusMenuItem): use the correct checkmark icon
- has to be the tiny version
- cleanup `assetSettings` assignment, it was redefining (shadowing) the
original properties, therefore creating new ones

Fixes #13941
2024-03-14 18:00:27 +01:00
Lukáš Tinkl d25cefcc2e fix(StatusBaseButton): adapt to handle actions when it is disabled
- add an `interactive` property as a drop-in replacement for `enabled`;
the UI looks "disabled" but can still display e.g. a tooltip or some
loading animation
- add the ability to display a tooltip
- remove DisabledTooltipButton and replace it with a regular
`Status(Flat)Button`, using the above new features
- update storybook with the new `interactive` switch

Fixes #10185
2024-03-14 18:00:27 +01:00
Igor Sirotin ad7f39f91c
fix: category item style (#13975) 2024-03-14 15:46:28 +00:00
Alex Jbanca 3b17134451 fix(StatusTextMessage): Allow user to copy parts of a message containing URLs
The root cause of this issue is that the `TextEdit.text` was replaced on hover to add specific styling for the hovered state. As a result the selection was dropped.

To fix this I've moved the highlighted hyperlink style to the StatusSyntaxHighlighter.
2024-03-14 12:21:52 +02:00
Khushboo Mehta 2f0343f0e9 feat(@desktop/wallet): Main Collectible Detail View enhancements
fixes #13804
2024-03-13 11:46:49 +01:00
Alex Jbanca 4ef30a91a3 feat(ProfileShowcase): Create dirty state component for the web tab and integrate the UI 2024-03-13 10:02:30 +02:00
Lukáš Tinkl 666ba77051 fix[onboarding] Broken links to "Terms" and "Privacy"
- display the locally bundled privacy/terms of use texts in a popup
- add support for reading text files with both relative and absolute
files or URLs, useful for having the same file path in both storybook
and the app

Fixes #13877
2024-03-11 20:30:59 +01:00
Alex Jbanca e7a1f5e831 feat(ProfileShowcase): Sync dirty state with the source model
Whenever the source model becomes identical to the showcase dirty model, the dirty flag is removed
2024-03-11 20:58:55 +02:00
Alex Jbanca 204bfb30b6 feat(WritableProxyModel): Add syncedRemoval flag to allow source to remove edited rows 2024-03-11 20:58:55 +02:00
Dario Gabriel Lipicar af84d788ff feat(@desktop/wallet): display balance in collectibles view
Closes #12940
2024-03-11 09:10:01 -03:00
Andrey Bocharnikov 058b08d3c9
fix(ProfileShowcase): Fix blinking when hovering over an address (#13865)
#13681
2024-03-08 19:21:08 +04:00
Alex Jbanca 07ac4eb8a6 fix(StatusQ): Don't emit layoutChanged on source model reset in MovableModel
+ Update tests
2024-03-07 22:07:49 +02:00
Valentina1133 3e1a4f55cb
chore: object name added for status switch (#13871) 2024-03-07 15:05:39 +07:00
Alex Jbanca 4d6082e806 feat(ProfileShowcase): Updates based on comments 2024-03-06 14:49:54 +02:00
Alex Jbanca c916bfa84e feat(ProfileShowcase): Fixing MovableModel signal handling after the sync state changes
1. Fixing duplicate connections on source model
2. Update connections and indexes when the internal data gets reset
2024-03-06 14:49:54 +02:00
Alex Jbanca 07484cb15c feat(ProfileShowcase): Simplify ProfileShowcasePanel API and connect to the new models
1. Fix `EmptyShapeRectangleFooterListView` visibility and positioning after ListView items are animated out of view
2. Update `ShowcaseDelegate` to remove modelObject dependency. The UI properties needed will be received from parent
3. Update `ProfileShowcasePanel` to remove the previous logic involving rows move and visibility change. There is no need now for two specialised delegate components (one for in showcase and one for hidden). The delegate is still configured outside of this component because the model rolenames need to be mapped to the delegate properties. The common delegate logic is implemented in the `ProfileShowcasePanel` and only the model mapping is needed from parent component.
3. Update all `ProfileShowcase*Panel` to impement the new API
4. Remove all `*ShowcaseDelegate`. The delegate is simple enough to be configured at once in the Panel
2024-03-06 14:49:54 +02:00
Alex Jbanca 49aa747fdf feat(ChannelPermissions): Show confirmation dialog before closing the channel edit popup 2024-03-06 14:40:23 +02:00
Lukáš Tinkl b623c8fb2b fix(chat input): should be disabled if user is not able to post
- extend `isUserAllowedToSendMessage` to also cover
`Constants.chatType.communityChat`
- let `admin` always satisfy the permissions
- hide the add emoji/reaction button instead of disabling it when the
permissions are not met
- adjust the error msg to better reflect the reality (tokens vs.
permissions)

Fixes #13777
2024-03-05 18:13:29 +01:00
Noelia babedf4272 feat(ProfileShowcase) Web tab visual updates according to new design
- Updated `AddSocialLinkModal` according to new design.
- Modified main social links items according to new design.
- Updated edit modal according to new design.
- Some text validation updates.

Closes #13511
2024-03-04 10:54:12 +01:00
Valentina1133 919cd8a7a7
chore: object name for add item button added (#13824) 2024-03-04 16:48:21 +07:00
Michał Cieślak 00af1d0e90 StatusQ(WritableProxyModel): Handling of layoutChanged/rowsMoved from source models fixed
Closes: #13601
2024-03-01 15:47:41 +02:00
Mykhailo Prakhov 996199b910
feat(desktop@communities): change kicked/banned member behavior (#13706)
feat: change kicked/banned member behavior
2024-02-27 12:55:56 +01:00
Michał Cieślak 0497ecd82e StatusQ(LeftJoinModel): Handling of layoutChanged from source models fixed
Closes: #13683
2024-02-27 10:12:47 +02:00
Michał Cieślak 1639f1f9e7 feat(StatusQ/Testing): invert method added TestModel emiting valid layoutChanged 2024-02-27 10:12:47 +02:00
Lukáš Tinkl 4d3745d4b2 feat(Profile flow) Mark as ID verified / remove verification
- implement two new actions and popups to directly mark a contact as "ID
verified" and remove the verification thereof respectively
- do not hardcode the secondary button inside ProfileDialogView and make
it a Loader
- make the CommonContactDialog contents scrollable

Fixes #13711
2024-02-26 16:11:56 +01:00
Khushboo Mehta 085bf762a5 feat(@desktop/wallet): Update token details view
closes #12373
2024-02-23 13:03:28 +01:00
Noelia 1af5c166c5 SQ(StatusDraggableListItem): Added new property `changeColorOnDragActive `
This property holds if background color will be changed on drag active or not.
2024-02-23 10:13:13 +01:00
Michał Cieślak 0d4e7bd458 StatusQ(MovableModel): layoutChanged handling fixed
Closes: #13602
2024-02-22 14:39:31 +01:00
Michał Cieślak 1bcbb482a1 feat(StatusQ/Tests): Added isNotSame(...) method for comparing models
It works similarly as isSame(...) but doesn't print warnings when
mismatch is found. Thanks to that may be used conveniently whenever
we expect differing models in a test.
2024-02-22 14:39:31 +01:00
Michał Cieślak 6d502427e5 feat(StatusQ/Tests): Added utility for persistent indexes validation 2024-02-22 14:39:31 +01:00
Lukáš Tinkl 343cfa0982 feat(Profile flow): Block/unblock user
- implement block and unblock user popups with optional "Remove contact" and "Remove ID verification" check boxes
- emit (combined) toasts

Fixes #13522
2024-02-21 19:39:05 +01:00
Lukáš Tinkl b0e24b0396 fix(StatusWarningBox): expose `textSize` 2024-02-21 19:39:05 +01:00
Michał Cieślak 29c15a5bff feat(StatusQ): custom UndefinedFilter filter for filtering undefined role values
Generic filter for handling undefined values. This kind of filtering
cannot be done using ValueFilter. On the other hand using
FastExpressionFilter is much more costy in terms of performance
overhead.

Closes: #13638
2024-02-21 09:42:05 +01:00
Michał Cieślak 5b5b19fc7a StatusQ(Utils): Simple utility allowing to declare children in QtObject without property assignment 2024-02-21 09:42:05 +01:00
Michał Cieślak b949fb7b3b StatusQ(MovableModel): Methods naming refactor, Storybook pages updated/improved 2024-02-21 09:42:05 +01:00
Michał Cieślak f747791f50 StatusQ(MovableModel): Add ability to restore and bypass original order of source model 2024-02-21 09:42:05 +01:00
Lukáš Tinkl e773d8d358 feat[StatusButton] missing green/success state
- implemented the missing `StatusBaseButton.Type.Success` state and
colors for both `StatusButton` and `StatusFlatButton`
- use a `switch` instead of a waterfall of ternaries
- adjust storybook for the new case

Fixed #13622
2024-02-20 00:35:04 +01:00
Alex Jbanca 4b1b779bee fix: App crash while switching accounts
App is crashing when mapFromSourceRoles is called with 0 m_rolesMappingFromSource length
2024-02-16 10:55:12 +02:00
Alex Jbanca 8a69f3bc63
fix(SeedPhrase): Fixing seed phrase validation (#13496)
* fix(SeedPhrase): Fixing seed phrase validation

1. Validate each word after the editing is finished
2. Fixing the seed phrase suggestions where the suggestions box was hidden behind other ui elements
3. Propagate editingFinished signal in StatusBaseInput, StatusInput, StatusSeedPhraseInput
4. Fixing undefined `mnemonicIndex` errors

* fix: Refactoring of SeedPhraseInputView

Remove duplicated code and use EnterSeedPhrase component

+ Added storybook page

* fix(Onboarding): Fixing seed phrase validation on windows

The seed phrase validation fails on windows due to the dictionary line endings

* chore(squish): Update e2e tests to the new enter seed phrase panel construction

* fix: Load english dictionary from local file using StringUtils
2024-02-14 15:50:14 +02:00
Lukáš Tinkl f7781525ff fix: timestamp shows yesterday for a message received 3 days ago
- introduce one global update timer, to be used in various components
for date/time sensitive updates (StatusSharedUpdateTimer)
- this timer runs only when the app is/becomes active
- use the timer's `triggered()` signal to update the timestamp label
when needed; ie. if it's to display a relative timestamp and it's
currently visible

Fixes #11460
2024-02-12 15:30:52 +01:00
Lukáš Tinkl 4b24497899 fix(profile): add online status badge to profile picture
- adds the green/gray dot (aka online indicator) to Profile dialog and
context menu (via ProfileHeader and UserImage components)
- add the respective combobox to storybook too

Fixes #13480
2024-02-12 12:36:20 +01:00
Lukáš Tinkl cf847e14fa fix(profile key): use the same 3,6 elided key everywhere
according to latest designs, the elided compressed key should be
diplayed with 3 leading and 6 trailing characters, just like we already
do in `Utils.getElidedCompressedPk(pubkey)`
2024-02-12 12:36:20 +01:00
Michał Cieślak ee3e1febb6 fix(StatusModalFooter): Prevent footer's buttons overflow
Closes: #11449
2024-02-09 13:41:39 +01:00
Michał Cieślak 6aee04e33e fix(StatusDialogFooter): Prevent footer's buttons overflow 2024-02-09 13:41:39 +01:00
Alexandra Betouni 480985ca4e
[Settings]: Added change password view (#13284)
* [Settings]: Added change password view

Closes #10037

Adding configuration options to PasswordView

* feat(ChangePassword): Integrate ConfirmChangePasswordModal

1. Integrate with backend
2. Clean unused components

* feat: Add support to restart application

1. Adding restart app support in DOtherSide
2. Integrating nimqml
3. Expose in qml in Utils

* chore: Move changeDatabasePassword call to threadpool

* chore(squish): Fix failing tests due to settings index changes

---------

Co-authored-by: Alex Jbanca <alexjb@status.im>
2024-02-09 13:31:37 +02:00
Igor Sirotin d29e5406de
fix: display name width calculation (#13446) 2024-02-09 10:58:02 +00:00
Lukáš Tinkl 319b5dd23e feat(profile dialog): General UI updates
- create new `ShareProfileDialog` with QR code + links
- align the context menu items with latest Figma designs
- add `isBlocked` to contact icons
- adjust SB to show more options and showcase models

Fixes #13416
Fixes #13417
2024-02-09 11:41:55 +01:00
Alex Jbanca 74bcdbe2c3 fix(WritableProxyModel): Insert in a single step to avoid providing undefined roles to ListViews 2024-02-07 19:54:47 +02:00
Alex Jbanca fc81568fe9 fix(StatusQ): StatusMessageQuickActions width should be 0 when there is no button 2024-02-07 19:54:47 +02:00
Alex Jbanca ac569b8ba5 chore(StatusQ): Add new component StatusIconSwitch
Component holding a switch and a title/subtitle using the app style
2024-02-07 19:54:47 +02:00
Alex Jbanca 9d4bc9466e chore(WritableProxyModel): Adding possibility to get the model changes 2024-02-07 19:54:47 +02:00
Lukáš Tinkl 3eff96bfc8 feat(profile): Implement side-by-side preview
- restored dirty tracking for Identity; showcase is handled by the NIM
backend atm
- StatusSectionLayout: make the right panel width configurable and clean
the docu

Fixes #13331
2024-02-07 14:29:59 +01:00
Michał Cieślak 3859c5c76e chore(StatusQ/MovableModel): fix index creation in data() method 2024-02-07 10:33:45 +01:00
Lukáš Tinkl 9db48a986a fix(token mgmt): finish the controller refactoring
- reduce the duplication by moving the controllers (1 per type) to the
toplevel stores
- make sure the internal properties stay in sync between save/load now
that we have just 1 common controller
- fix navigating to the Hidden section from the toast
- finish impl of hiding the token from FirstTokenReceivedPopup
2024-02-02 23:48:10 +01:00
Ivan Belyakov c791173c81 fix(wallet): disable "Send" button at all places when no network
connection

Closes: #13326
2024-02-02 14:46:40 +01:00
Alex Jbanca a55dcf299e performance: Improve the wallet loading time
+ small bug fixes
2024-02-01 16:46:40 +02:00
Igor Sirotin c995ff20b0
fix: invalid message header size (#13372) 2024-01-31 20:22:27 +00:00
Khushboo Mehta 7dcc704d29 fix(@desktop/wallet): Prepare send modal to display community assets
fixes #12378
2024-01-31 15:48:35 +01:00
Michał Cieślak 2e29e847ac chore(WalletSettings): Use DoubleFlickable for assets/collectibles tabs in manage tokens
It provides visual alignments to the current design and also
significantly improves performance because ListView components
are not "unrolled" causing instantiation of too many delegates.

Closes: #12703
Closes: #13043
2024-01-31 13:51:00 +01:00
Michał Cieślak 8509dd9c67 chore(DoubleFlickableWithFolding): Inline component moved to separate file
Otherwise it would crash tests under Qt 5.15.2
Additionally Storybook page has been extended by adding footers.
2024-01-31 13:51:00 +01:00
Michał Cieślak 9fe60e650f chore(DoubleFlickableWithFolding): Component api and usage simplified
Now the header don't have to be reparented manually. Everything
is done internally in the component. Additionally the usage
in CollectiblesView is adjusted to the change.
2024-01-31 13:51:00 +01:00
Michal Iskierko 0a18dda176 feat(@desktop/chat): Displaying new type of chat message - bridge message
Show discord user as a message sender.
Show discord avatar next to user name.
Show "Bridged from Discord" label.
Open adjusted profile context menu.

Issue #13098
2024-01-30 13:06:17 +01:00
Lukáš Tinkl f2482ab003 fix: fake collections shouldn't be visible in a filtering combo
teach the model about the special cased self-collections containing just
one single collectible item; we need that for the "Arrange by
collection" token mgmt feature but in all other cases it shouldn't be
treated as a collection/group

Fixes #13281
2024-01-26 11:45:24 +01:00
Lukáš Tinkl d7e25ea0a7 feat(Manage Tokens): implement "Arrange by collection"
- simplify the delegates (no more nested inner models/ListViews)
- persist the "Arrange by" toggles state (when needed)
- adjust the tests

Fixes #13232
2024-01-26 11:45:24 +01:00
Lukáš Tinkl 57b3b254b8 feat: Create the hidden tab (to host both assets and collectibles)
- add new Hidden tab/section to Settings/Wallet/Manage tokens page and
storybook
- extract the controller(s) to ManageTokensView.qml to share them across
the tabs
- updated the grouped UI delegate
- adjust the tests

Fixes #13201
Fixes #13188
2024-01-26 11:45:24 +01:00
Khushboo Mehta fb4e9a1ed1 fix(@desktop/wallet): Updatebthe new assets models in Token mangement, Activity filters and SharedAddressPanel 2024-01-25 12:45:22 +00:00
Michał Cieślak 5740826025 fix(DoubleFlickableWithFolding): Adjustments regarding folding flags
Additionally Binding restore mode is set to proper value and the
case where header is not set is handled properly.
2024-01-25 10:05:09 +00:00
Noelia 09629985f7 feat(statusQ/StatusToastMessage): Added image component
- Added new image component and specific related config parameters.
- Fixed issue when there's no `linkUrl` but `actionRequired`.
2024-01-23 18:40:28 +01:00
Michał Cieślak 2c9015d2f4 chore(StatusQ): statusq.qrc sorted alphabetically 2024-01-23 17:07:02 +00:00
Michał Cieślak cbc15b368e feat(StatusQ): DoubleFlickableWithFolding component providing sticky and foldable headers
It's build on top DoubleFlickable, managing two Flickables in an
effective way. It adds specific behavior of foldable and always visible
section headers.

Closes: feat/issue-13193
2024-01-23 17:07:02 +00:00
Michał Cieślak 62857410e6 feat(StatusQ): DoubleFlickable utility making two Flickables operating line one
The wrapper doesn't "unroll" the managed Flickables. There is no
instantiation of delegats for all model entries up front.
2024-01-23 17:07:02 +00:00
Michał Cieślak e51667911d StatusQ: MovableModel proxy for setting custom order over source model
Proxy decorating source mode with additional method move(from, to, count)
similar to that available in ListModel. The custom order is stored within
a proxy, not altering the original model. May be useful whenever UI needs
to allow user to set custom order. Temporary state can be held in the
proxy, and send to the backend when changes are accepted.

Closes: #12686
2024-01-22 16:36:41 +01:00
Michał Cieślak 22dcf8269f StatusQ: SnapshotModel testing utility 2024-01-22 16:36:41 +01:00
Michał Cieślak 001e90a4c6 StatusQ: ModelSignalsSpy testing utility 2024-01-22 16:36:41 +01:00
Michał Cieślak 8ac6c21782 StatusQ: Add insert overload taking array as input 2024-01-22 16:36:41 +01:00
Alex Jbanca 9410de4286 fix(StatusQ): Fixing crash when the source model is a nim model
Nim models are crashing when calling `itemData`. A workaround for this is to re-implement the `itemData` calls in the writableModel.
2024-01-17 10:14:56 +02:00
Sale Djenic e115d5e7ce refactor(wallet): show qr popup updated to meet new ui requirements
Show Qr popup is partially refactored because of the two things:
- to meet new UI requirements (introduced in the new saved addresses design)
- to make usage of that popup more generic, that it can be easily used from different places
2024-01-16 18:36:30 +01:00
Lukáš Tinkl 6f3a180f41 feat: Emit notifications when an asset/collectible is hidden in the settings
- emit the signal from the backend
- trigger the toast notification in QML
- update the test(s)

Fixes #12704
2024-01-16 14:00:11 +01:00
Lukáš Tinkl 263ed2a822 feat: Add Advanced settings in new Advanced Tab
... under Settings/Wallet/Manage Tokens

- rename Tokens List tab to Advanced tab
- introduce a new `CurrencyAmountInput` component, backed by
`FormattedDoubleProperty` C++ class (plus the respective SB page)
- use `FastExpressionFoo` for the collectibles views as well

Fixes #12611
Fixes #13040
2024-01-11 14:52:52 +01:00
Michał Cieślak e053d267f0 fix(StatusQ): FastExpressionSorter's test fixed for mac
Threshold for acceptable accesses has been increased but also
additional check regarding roles has been introduced to ensure
expected behavior.

Closes: #13181
2024-01-11 13:35:05 +01:00
Jesse Guo 9f2443f5e6 Update StatusWindowsTitleBar.qml 2024-01-10 10:46:38 -05:00
Jesse Guo 4195935f77 Update StatusWindowsTitleBar.qml
signal should be closed
2024-01-10 10:46:38 -05:00
Alex Jbanca 56f194c96c fix: Updates based on comments 2024-01-09 20:20:04 +02:00
Alex Jbanca 6da897e733 StatusQ: Adding WritableProxyModel
WritableProxyModel is a QAbstractProxyModel that allows you to modify the data without modifying the source model.
It is useful for implementing a "dirty" state for a model, where you can modify the data and then commit the changes
to the source model.

Supported features (reimplemented):
- setData
- setItemData
- removeRows
- insertRows
- moveRows (TODO)
- toVariantMap
- to be continued...
2024-01-09 20:20:04 +02:00
Michał Cieślak 56493fa5e1 feat(StatusQ): Faster version of SFPM's ExpressionSorter
Provides FastExpressionSorter component compatible with
SortFilterProxyModel. In comparison to original ExpressionSorter it allows
to define which role values should be provided to the expression's
context and improves performance significantly.

Closes: #13062
2024-01-09 13:47:47 +01:00
Michał Cieślak a6cf37278c feat(StatusQ): Faster version of SFPM's ExpressionFilter
Provides FastExpressionFilter component compatible with
SortFilterProxyModel. In comparison to original ExpressionFilter it allows
to define which role values should be provided to the expression's
context and improves performance significantly.

Closes: #13063
2024-01-09 13:47:47 +01:00
Michał Cieślak a2aedb5c6a chore(StatusQ): Generic TestModel excluded to a separate file
Closes: #12843
2024-01-05 13:34:45 +01:00
Michał Cieślak 57ee01b239 chore(StatusQ): ListModelWrapper excluded to a separate file 2024-01-05 13:34:45 +01:00
Sale Djenic df8e74feec feat(savedaddresses): make save addresses list as per design (without search logic)
Closes #13090
2024-01-04 17:45:57 +01:00
Sale Djenic ff9062a1b0 feat(savedaddresses): update adding saved address popup to match new design
Implemented:
- adding selection color section
- all input field validations
- interactions within the popup
- an ephemeral notification when adding an address

Closes #13089
2024-01-04 17:45:57 +01:00
Sale Djenic bc2642c5e8 fix(@desktop/wallet): display short address form in the wallet settings account order page 2024-01-04 13:57:13 +01:00
Lukáš Tinkl e2fa5b756a feat(CollectiblesView): Add combobox/popup with custom filtering options
.. to filter by community or collection name

- make the HistoryView own filter button look like the other combos
- fix some cosmetic issues for StatusCombo in small/secondary mode
- fix StatusBaseInput bg color in dark mode (was invisible)
- update CollectiblesViewPage with options to include regular and/or
community collectibles

Fixes #12969
Fixes #12948
2024-01-04 12:32:41 +01:00
Boris Melnik c89032d0ea fix(images-formats): Remove .heif and .tif(f) from supported formats
Fixes: #13077
2023-12-22 14:04:47 +03:00
Michał Cieślak fbe6cc95d1 feat(StatusQ): Ability to change sources in LeftJoinModel
- ability to change left/right models
- improved handling of model deletion
- base class changed to QAbstractListModel, dataChanged signal
  emision improved

Closes: #12912
2023-12-21 14:19:10 +01:00
Michał Cieślak 6fe2067c22 fix(ConcatModel): Changed behavior on submodel destruction to not emit signals
The general rule should be to avoid any actions on destruction different
than setting relevant pointers to null. Other actions like emiting
signals are potentially dangerous when the whole objects hierarchy is
under destruction.

Closes: #13065
2023-12-21 14:11:14 +01:00
Michał Cieślak 1c4a936833 feat(StatusQ): Faster version of SFPM's ExpressionRole
Provides FastExpressionRole component compatible with
SortFilterProxyModel. In comparison to original ExpressionRole it allows
to define which role values should be provided to the expression's
context. This approach improves performance significantly in most cases.

Closes: #13047
2023-12-20 23:16:09 +01:00
Michał Cieślak 480673d8be feat(StatusQ): Test utility for tracking qt model access 2023-12-20 23:16:09 +01:00
Michał Cieślak 6ab6e4a26e feat(Storybook): Test library for common testing utils
StatusQ's test/CMakeLists.txt refactored:
- created library target for common test utils
- removed outdated cmake commands like add_definitions
- qml tests renamed from TestStatusQ to QmlTests
- qml test files made visible in QtCreator
- linking simplified
- unneeded cmake files removed from src dir

Closes: #13031
2023-12-19 10:41:42 +01:00
Michał Cieślak e8b1df696c chore(StatusQ): Qml unit tests file names unified/simplified 2023-12-19 10:41:42 +01:00
Lukáš Tinkl fe3b442155 (wallet) implement sorting for assets/collectibles views
- add the sort combobox to assets/collectibles main wallet view pages
- preserve the current view settings
- add the possibility to navigate/drill down into wallet settings
(sub)subsection
- some other minor changes/fixes

Note: currently assets can't be sorted by "1W change" and collectibles
by "Date added" due to missing backend for these

Fixes #12517
Fixes #12518
2023-12-18 10:52:48 +01:00
Lukáš Tinkl abe23c7f92 fix(StatusImage) blurry rendering due to wrong sourceSize
Fixes #12991
2023-12-12 13:00:53 +01:00
Michał Cieślak fd638de880 fix(StatusQ/ConcatModel): Handle source submodel reset properly, tests amended
Closes: #12974
2023-12-11 17:28:27 +01:00
Alexandra Betouni 7ee3b0bb57 fix(ActivityCenter): Notification title is cut when long
* Added wrapMode in Text

Closes #12870
2023-12-06 17:07:35 +02:00
Mikhail Rogachev d77d049203
Hotfix: add include in ConactModel for Apple clang (#12954) 2023-12-06 21:06:08 +07:00
Lukáš Tinkl d7614beb99 feat(token mgmt): update main wallet view layout with community assets
- update the CollectiblesView.qml view and delegates according to the
latest design
- add CollectiblesView to Storybook
- add new section for Community Collectibles
- (re)use the community badge with tooltip and link action to take the
user to the respective community
- add Community Collectibles info icon + popup
- create context menu for token delegates with actions
(Send/Receive/Manage tokens/Hide)
- add confirmation popups when hiding a single or all community tokens
- emit a toast bubble after hiding the token(s)
- fix eliding the community name inside ManageTokensCommunityTag
- some smaller fixes/cleanups

Fixes #12519
2023-12-06 11:18:36 +01:00
Michał Cieślak e2fa702ec4 feat(StatusQ): QML-oriented proxy model concatenating source models vertically
Closes: #12682
2023-12-05 22:45:08 +01:00
Michał Cieślak a915f48fd9 fix(StatusQ): check if role exists in ModelUtils::contains
Without the check, asking for not existing role led to segfault.
2023-12-05 22:45:08 +01:00
Mykhailo Prakhov 02589421bb
feat(desktop/communities): show community users which will be automatically joined after the ownership change in the All Members tab (#12928) 2023-12-04 20:14:13 +01:00
Noelia c2bfc6b8f4 feat(SQ/Aggregator): Created utility `Aggregator`
- Abstract class created: `Aggregator`
- Derived abstract class created: `SingleRoleAggregator`
- Derived class created:  `SumAggregator`
- `Storybook` page created.
- Added unit tests.

Closes #12685
2023-12-01 18:57:01 +01:00
Lukáš Tinkl 3b60506460 feat(token mgmt): update main wallet view layout with community assets
- update the AssetsView.qml view and delegates according to the latest
design
- add AssetsView to Storybook
- add new section for Community Assets
- (re)use the community badge with tooltip and link action to take the
user to the respective community
- add Community Assets info icon + popup
- create context menu for token delegates with actions
(Send/Receive/Manage tokens/Hide)
- add confirmation popups when hiding a single or all community tokens
- emit a toast bubble after hiding the token(s)
- plus related controller/backend methods for handling the
settings-related actions
- some smaller fixes/cleanups

Fixes #12369
Fixes #12372
2023-11-29 16:13:08 +01:00
Stefan 5b9e4faa8a feat(wallet) run WebEngineView as a service in background
This is required to control the resource consumption in case of no
usage of wallet connect
Hence we load the WebEngineView only if we have active pairings and
such that SDK events are expected from the paired dapps.

Also:

- Moved the generic WebEngineView communication bridge to StatusQ
- Added basic tests for WebEngineLoader
- Add a way to know when wallet is loaded (`walletReady`)
- Add storybook support for mock of nim sections as context properties

Updates: #12639
2023-11-27 22:54:11 +01:00
Alex Jbanca f96460ead7 fix: Fix LeftJoinModel tests on Qt 5.15.8 2023-11-27 15:52:39 +02:00
Lukáš Tinkl 0dbbea383d fix(chat): Emoji is html-encoded in message reply
revert to previous behavior, we want RichText even though we really
don't :)

Fixes #12786
2023-11-27 12:46:18 +01:00
Lukáš Tinkl 88d0c2493e fix: supported image formats are case sensitive
check for the (supported) extension in case insensitive manner

Fixes #12835
2023-11-25 15:51:06 +01:00
Lukáš Tinkl db8cb6c74c fix: Misaligned profile image in chat header
align the left padding with the chat contents; reapply the needed extra
margin for the back button

Fixes #12859
2023-11-25 14:52:54 +01:00
Michał Cieślak 4d1806a656 fix(StatusQ): run all unittests via make and on CI
Closes: #12841
2023-11-24 23:32:08 +01:00
Jonathan Rainville d66540d74f feat(messages): add deleted system message that tells who deleted
Fixes #11712
2023-11-23 16:14:54 -05:00
Lukáš Tinkl fdc36b72e6 fix(Windows): unbreak Windows build
a feeble attempt to make M$ compiler grok otherwise valid C++17 code
2023-11-23 14:32:27 +01:00
Lukáš Tinkl 8791d028e6 feat: Integrate the new manage assets/collectibles panels into Settings
- display a customized floating bubble to save/apply the settings
- display a toast message on Apply with an action to jump to Wallet main
page
- add home/end/pgup/pgdown keyboard shortcuts to StatusScrollView to be
able to navigate more easily in long list views
- some smaller fixes and cleanups in wallet and settings related views

Fixes https://github.com/status-im/status-desktop/issues/12762
2023-11-22 18:29:31 +01:00
Alexandra Betouni 77197040a4 fix(StatusImage): Improved sourcesize width/height
Closes #10139
2023-11-22 17:33:13 +02:00
Stefan a87a11f92f fix(tests) fix UI tests when run from scratch
The STATUSQ_SHADOW_BUILD will allow loading the qml files from sources

The StatusQ dependency helps building StatusQ which is used for C++
helpers

Updates #12639

ghstack-source-id: cbe0a994e7
Pull Request resolved: https://github.com/status-im/status-desktop/pull/12787
2023-11-20 20:38:19 +01:00
Lukáš Tinkl ba30afd202 feat: Manage Collectibles panel UI component & model
- implements a QML panel to organize collectibles
- factors out the delegates to separate files to be reusable with the
Assets tab
- adds QML tests to assess the UI functionality (move, show/hide, save/load)
- does not cover the problematic "Arrange by collection" switch (TBD
later)

Fixes: https://github.com/status-im/status-desktop/issues/12379
2023-11-17 14:12:48 +01:00
Anthony Laibe 98207381da fix(@wallet): toast ui url add extra space 2023-11-17 12:18:57 +01:00
Jonathan Rainville d66c1f7b0d feat(sharding): add shard info args to requestCommunityInfo calls
Fixes #12015
2023-11-16 13:32:48 -05:00
Lukáš Tinkl 81d99c44e9 fix: workaround to crash on startup with Qt 5.15.11
the most recent Qt upstream version introduced a regression that causes
our app to crash right on startup when a grouped property is assigned to
inside a `PropertyChanges` handler

upstream issue: https://bugreports.qt.io/browse/QTBUG-107795

Upstream fix will be released with Qt 5.15.12, code being at
https://codereview.qt-project.org/c/qt/qtdeclarative/+/424702
2023-11-14 18:11:42 +01:00
Godfrain Jacques a42fa6d8dc
Fix incorrect suggestion input when entering seed phrase (#12662)
Co-authored-by: kounkou <jacques@status.im>
2023-11-14 02:00:54 -08:00
Noelia 8bede5e569 feat(TransferOwnershipToasts): Created new `ToastsManager.qml` class and new nim backend for special toasts visualization
This is a first step to globalize how toasts are treated in the qml layer:
- Created `ToastsManager.qml` class to deal with all app toasts generation.
- Started moving community transfer ownership related toasts to the new manager class.
- Some small cleanup in `AppMain.qml`

Nim backend:
- Created new api method to deal with extended / action toasts.
- Updated needed model / item with new needed roles.

Closes of #12175
2023-11-10 23:38:27 +01:00
Alex Jbanca 97da863d70 fix: Use StatusSynthaxHighlighter to format the hyperlinks in the chat input
1. Move the hyperlinks formatting from qml to c++ (StatusSynthaxHighlighter)
2. Update StatusChatInputPage
3. Update tests
2023-11-10 15:55:48 +02:00
Lukáš Tinkl 7183621369 feat: Manage tokens panel UI component & model
- implements the UI component to manage regular & community tokens
(drag'n'drop or context menu to reorder, show/hide, group by community)
- implements a custom C++ QAIM model which acts as a fake proxy model
for the above QML panel (internally it does all the
sorting/grouping/hiding and preserves the custom sort order)
- adds and corrects support for cascading submenus in StatusAction, and
StatusMenu[Item]
- adds support for mirrored (horizontally flipped) StatusSwitch
- adds a new SortOrderComboBox.qml (this was being used in the first
Figma version, can be ignored now, will be used by the main wallet view
later)
- some minor fixes and cleanups in the used components

Iterates #12377
Closes #12587
2023-11-09 11:45:32 +01:00
Noelia e8c0275137 feat(ActivityCenter): Transfer ownership messages
- It created all possible AC notification types and notification component for transfer ownership flow.
- It adds `storybook` support for the new component.
- It adds call from activity center to finalise ownership popup.

Part of #12175

a
2023-11-08 14:35:51 +01:00
Noelia 1600b5fc11 feat(SQ/Theme): Extended `getColor` allowing random colors
- It extends `getColor` method to be used also to get random colors with alpha param.
2023-11-08 14:35:51 +01:00
Igor Sirotin 52dd0abbce
feature: live status link previews (#12613)
* feat: live received status link previews
* link preview cards: active members count
* update `requestCommunityInfo` to new backend. Add `requiredTimeSinceLastRequest` arg
2023-11-06 19:26:44 +00:00
Michał Cieślak 7fe6e10b81 chore(StatusQ): Tests for SubmodelProxyModel added 2023-11-06 12:26:04 +01:00
Michał Cieślak d4d72038bd feat(StatusQ): Generic proxy model allowing setting proxies like SFPM or LeftJoinModel for submodels
It allows transforming model, including submodels outside of the view
component consuming the model. Thanks to that now there is no need
to create proxies for submodels in view's delegate. It can be done
earlies, on the level of the main view.

Closes: #12630
2023-11-06 12:26:04 +01:00
Sale Djenic ad7774799a feat(@desktop/keycard): joining communities using addresses migrated to a keycard
Closes: #12170
2023-11-03 16:14:18 +01:00
Alex Jbanca 0f07ea09da fix(LinkPreviews): Left align the message link preview tight corner 2023-11-02 14:32:22 +02:00
Noelia b1064644e8 feat(SQ/StatusBaseButton): Added `textHoverColor` property
Added `textHoverColor` property allowing more customization.
2023-11-01 10:58:21 +01:00
Michał Cieślak 04b6fb54c3 feat(LeftJoinModel): Use QAbstractItemModel::match for searching key idx in right model
It creates a possibility to transparently improve performance of id lookup
in right model by implementing fast search on given role in the righ model
itself by reimplementing QAbstractItemModel::match.

Closes: #12574
2023-10-31 09:46:37 +01:00
Michał Cieślak 7847cb3b11 chore(LeftJoinModel): add detection of duplicated roles 2023-10-31 09:46:37 +01:00
Michał Cieślak cc964508f1 chore(LeftJoinModel): QAbstractItemModelTester added to tests 2023-10-31 09:46:37 +01:00
Stefan ccd8c5b65f feat(wallet) Wallet Connect integration prototype
Implement a prototype of integrating [WalletConnect Web SDK]()

- integrate WalletConnect Web SDK using Node.js and packing it using
  [webpack](https://webpack.js.org/guides/getting-started/)
  - this way, we achieve the same versioning strategy for the SDK
- add WalletConnectSDK view
  - it is used to load the web SDK via a WebView (validated working on
  Mac and Windows)
- add new app dependency of WebView QT
  - also update vendor packages `Dotherside` and `nimqml` to add
    required WebView::initialize API used to initialize the WebView
    integration at the app start
- add WalletConnectPage to Storybook for quick prototyping
  - Also add dependency for WebView Qt lib
- index.js is the wrapper used to provide a simple stateful interface
  with the WC SDK
- Entry in ui/generate-rcc.go ensures the node_modules cache is excluded
  from the resource file

Notes:

- Added `com.apple.security.cs.allow-jit` entitlement when signing the
app package. This allows Execution of JIT-compiled Code Entitlement
required by the fast-path of the JavaScriptCore framework on MacOS
platforms.
- Keep some debugging entries expected to help debugging Linux package
- Removed outdated `DerivationPathInputRegressionTests` qml test

Closes #12301
2023-10-30 09:29:33 +01:00
Michał Cieślak 2fae6d808d Storybook: Add example combining RolesRenamingModel, LeftJoinModel and SFPM 2023-10-27 13:27:30 +02:00
Michał Cieślak ffadd7522c StatusQ: Add generic LeftJoinModel model mimicking SQL Left Join
Closes: #12502
2023-10-27 13:27:30 +02:00
Michał Cieślak 628d9cdd31 StatusQ: Add generic proxy model for roles renaming 2023-10-27 13:27:30 +02:00
Alex Jbanca 4a30d13bdc
feat(LinkPreviews): Integrate Link previews with the backend (#12523)
* feat(StatusQ): Adding numberToLocaleStringInCompactForm function to LocaleUtils

This function will format the number in a compact form
E.g: 1000 -> 1K; 1000000 -> 1M; 1100000 -> 1.1M

+ adding tests

fix(statusQ): Update numberToLocaleStringInCompactForm to return the locale number when greter than 999T

fix(StatusQ): extend the test_numberToLocaleStringInCompactForm with new data

* feat(LinkPreviews): Update the link preview area in StatusChatInput to use the new model

Changes:
1. Create a new component `LinkPreviewMiniCardDelegate.qml` that filters the model data to properly fill the link preview card with the needed data based on the preview type
2. Update storybook pages
3. Small updates to LinkPreviewMiniCard

* feat(LinkPreviews): Update the link previews in message history to use the new backend

Changes:
1. Create delegate items for LinkPreviewCard and gif link preview to clean the LinksMessageView component and filter the model data based on the preview type
2. Remove UserProfileCard and reuse the LinkPreviewCard to display contacts link previews
3. Update LinkPreviewCard so that it can accommodate status link previews (communities, channels, contacts). The generic properties (title, description, footer) have been dropped and replaced with specialised properties for each preview type.
4. Fix LinkPreviewCard layout to better accommodate different content variants (missing properties, long/short title, missing description, missing icon)
5. Fixing the link preview context menu and click actions

fix: Move inline components to separate files

Fixing the linux builds using Qt 5.15.2 affected by this bug:
https://bugreports.qt.io/browse/QTBUG-89180

* fix: Align LinkPreviewMiniCard implementation with LinkPreviewCard and remove state based model filtering
2023-10-25 18:20:02 +03:00
Alex Jbanca d7707a14a8 feat: Show toast notifications when the link preview setting changes from chat input 2023-10-23 16:33:17 +03:00
Alex Jbanca 1cd00b77a0 fix(StatusQ): Extend StatusToastNotification to support RichText and allow larger content
Changes:
1. StatusToastMessage now supports dynamic content height
2. Add new StatusToastMessage type: Danger
3. Update StatusToastMessage to support RichText content
4. Fix StatusQ sanboxapp compilation
5. Add the new StatusToastMessage content to sandbox
2023-10-23 16:33:17 +03:00
Igor Sirotin e5b68e8823
fix: messaging settings and url unfurling fixes (#12457)
* remove browser selection setting
* remove main whitelist settings. replace tenorGif setting with gifUnfurlingEnabled
* remove old unfurling
* move history nodes section
* disable outdated e2e tests step
* remove isGifWidgetEnabled setting
* fix: StatusMessage height when gif unfurling disabled

---------

Co-authored-by: Anastasiya Semenkevich <anastasija.ig@gmail.com>
2023-10-18 10:03:32 +01:00
Michał Cieślak 0caec2ab1c fix(QClipboardProxy): check if mimedata is not null
Pointer returned by QClipboard::mimeData may be null, e.g. during
tests in headless mode, causing segfault.
2023-10-16 13:37:08 +02:00
Lukáš Tinkl d6648c4a5d chore: add a deprecation warning and some forward compatibility
... for `title` and `subtitle`
2023-10-12 16:27:30 +02:00
Alex Jbanca 331f27b52a feat: highlight the hovered hyperlink and link preview 2023-10-12 15:46:20 +03:00
Lukáš Tinkl 2abe0358fc feat: Add URL trust options when the user clicks on a link
- add a popup asking the user before clicking on an unfurled link
preview
- add a checkbox for the above popup to remember the trust for such
domain
- use local Settings to persist the "trust domain" locally; for
global persistence across devices, see
https://github.com/status-im/status-go/issues/4132

Closes #12388
2023-10-12 10:57:15 +02:00
Ivan Belyakov 338e6f5fa9 Fixed locale issues for balance chart tooltip and x-axis labels 2023-10-06 15:53:30 +02:00
Lukáš Tinkl 541c880378 fix(StatusDialogHeader): fix icon size
should be 24, not 20 according to Figma
2023-10-05 10:12:48 +02:00
Lukáš Tinkl 6162c3f63a fix(StatusTextArea): readOnly mode fixes
- use the correct background and outline colors when we are in read-only
mode
- detect active focus using `cursorVisible`; we can have focus even when
being readOnly
- do not hardcode impicit size, TextArea/TextEdit already has its own;
this way we can also properly display a one line text
2023-10-02 15:04:17 +02:00
Lukáš Tinkl e1941fdedb fix(StatusCheckBox): set the correct font size
since we are taking over the `font` properties from the toplevel control
for the text, need to setup the correct `pixelSize` as well
2023-10-02 15:04:17 +02:00
Lukáš Tinkl b80c742b33 fix(StatusBaseInput): fix outline border color
set the "active" outline color only when the cursor is visible;
rationale: we can have focus even if we are read only!
2023-10-02 15:04:17 +02:00
Lukáš Tinkl b8eccc67a2 feat: expose `animating` property
to find out whether the pages in the stack are currently being animated
2023-10-02 15:04:17 +02:00
Anastasiya Semenkevich 5d17a6ba7c chore(@StatusListItem.qml): object name for mouse area 2023-10-02 12:12:38 +03:00
Khushboo Mehta 29629a3d6d fix(@desktop/wallet): Send Modal Improvements & missing features
fixes #12243
2023-09-26 12:58:28 +02:00
Lukáš Tinkl e6408724c9 feat(settings): add Privacy Statement and Terms of Use
- bundle those 2 documents as Markdown
- some UI fixes according to latest Figma

Fixes #12192
2023-09-25 14:09:45 +02:00
Lukáš Tinkl 9e13e5f1cf feat: implement a C++ helper to read contents of a text file
uses `QQmlFileSelector` to choose the correct variant and `QFile` for
the actual reading
2023-09-25 14:09:45 +02:00
Lukáš Tinkl b4958689bd fix: fixup left margin in settings to be 64px
as intended in Figma; also fix the icon size to be 24px
2023-09-25 14:09:45 +02:00
Michał Cieślak ec5bed6261 fix(TokenMasterActionPopup): display elided wallet address when contact name not available 2023-09-22 11:46:51 +02:00
Michał Cieślak 4b6e9fd70b StatusQ(LocaleUitls): Unit test added for currencyAmountToLocaleString 2023-09-20 15:15:29 +02:00
Lukáš Tinkl c97e9c4ffc fix: Gradient mask of replied message doesn't work
- improve the respective storybook page
- some minor cleanups/fixes

Fixes #11385
2023-09-20 10:46:25 +02:00
Lukáš Tinkl 848d3b14f5 feat(community ownership) Move community control node flow UI
Implement the UI part of the new flow for moving community control nodes
w/o involving private keys

Closes #12088
2023-09-18 11:00:46 +02:00
Lukáš Tinkl a75890d7be fix(Communities): fixed channel color picker dialog
Closes #9696
2023-09-15 10:27:56 +02:00
Vladimir Druzhinin c422adc15e
Test(Community) Object names for invite people menu item added (#12151) 2023-09-13 15:22:33 +02:00
Valentina1133 181c785aa9
test(Settings) Object names were added for keycard and wallet settings elements (#12134) 2023-09-13 12:54:44 +07:00
Cuteivist 33a8ed9b9c
bug(@desktop/wallet): Unkown symbol and Gwei decimals (#12083) 2023-09-11 12:08:21 +02:00
Alex Jbanca 624b758c85 fix(Update fees periodically): Implementing periodic fee update for airdrops, minting, self destruct and burning transactions 2023-09-08 23:25:04 +03:00
Lukáš Tinkl 440e61d7a8 fix(StatusButton): user correct text color for primary/dark 2023-09-07 14:52:53 +02:00
Michał Cieślak 8ddf480479 StatusQ: skip failing unit test
The test has been disabled before adding unit tests as a required
step in the CI

Closes: ##12081
2023-09-06 10:00:17 +02:00
Michał Cieślak abcc408b70 fix(StatusRadioButton): enable word wrapping 2023-08-31 00:37:23 +02:00
Khushboo Mehta 330ccb58a6 chore(@desktop/wallet): Move send modal logic over to nim side
fixes #11881
2023-08-30 14:45:40 +02:00
Lukáš Tinkl a210189137 fix(i18n): timestamp stripping year part
Use locale-neutral `getDayMonth()` plus the time part as there's no way
to programatically check for date parts separator.

Fixes #10615
2023-08-29 15:19:24 +02:00
Igor Sirotin 7e34260aef
feat: Unfurl GIFs locally (#11977) 2023-08-22 11:46:26 -04:00
Michał Cieślak 0cba5eccbd feat(StatusQ/Utils): Add StringUtils to expose string-related C++ routines
So far methods like escapeHtml were available via backend, creating
unnecessary dependency on backing in UI components.
2023-08-18 17:07:20 +02:00
Michał Cieślak 81cc2070e9 fix(Communities): Remotely destruct popup for regular collectibles integrated
Closes: #11924
2023-08-17 17:26:30 +02:00
Michał Cieślak 1c50ec17a8 chore(Communities): Refactor amounts handling for displaying, minting, airdropping and burning
Closes: #11491
2023-08-17 11:26:25 +02:00
Cuteivist beaca31664
fix(@desktop/activity): Fix filter layout and added recipient search (#11883) 2023-08-16 16:06:56 +02:00
Lukáš Tinkl 22258cc363 token-permissions: implement the UI "edit" flow for shared addresses
Fixes #11599
2023-08-11 15:38:42 +02:00
Igor Sirotin 34dba08b7a
fix: Only `scrollToMessage` when it's available in the database (#11784)
* rename `fetchMessageByMessageId` to `getMessageByMessageId`
* move reply clicking logic to `StatusMessageReply`
* make message found animation faster
* `asyncGetMessageById`
2023-08-07 23:52:04 +03:00
Alexandra Betouni a36f0d8ce8 feat(Communities): changes in import popup for private keys
Closes #11245
2023-08-07 15:26:35 +03:00
Alex Jbanca 9be2a8d799 feat(Community Overview): Trigger chart data updates on specific actions + optimise the backend calls
This commit includes the following changes:
1. Request from backend the messages count in a specific interval as opposed to all messages timestamps in that interval.
2. Update the chart end date before refreshing the data
3. Fix metrics type parsing in community service
4. Fix a bug where the new incoming data was not processed by ChartJs without a hover event on the chart. The fix here is to manually request paint() on model changes.d

Issues found and not handled here:
1. On large communities the backend request can take 3 minutes to complete
2. CPU usage can easily go to 100% when switching chart tabs on large communities. All the requests are processed by the backend.
2023-08-07 11:12:21 +03:00
Sale Djenic 6e5469f5aa chore(@desktop/wallet): sorting out keypair/account menu 2023-08-04 15:43:03 +02:00
Michał Cieślak f85986bfb0 fix(StatusDropdown, StatusDialog): height calculation improved
It improves workaround for QTBUG-87804 in StatusDropdown, to work
nicely whenever content is set via contentItem or not. The same
solution is added to StatusDialog.

Closes: #11768
2023-08-03 14:52:19 +02:00
Lukáš Tinkl cdc5a90940 fix(SendContactRequestModal): Display name / image problems with CR dialog
- fix missing profile image
- fix displaying wrong name when a nickname or ENS name is present
- fix ID verification flow ignoring nickname
- fix empty results when a contact has only an alias name
- fix needlessly requesting contact details several times (and
overwriting it); we get this info already from Popups.qml
- switch the popup to `StatusDialog` and fix hardcoded height

Fixes #11726
2023-08-02 09:52:32 +02:00
Noelia d832a306a4 fix(Minting): After minting completed 1 airdrop button is enabled and the other disabled
- Added `buttonEnabled` property to `StatusInfoBoxPanel` so it can be set from outside.
- Fixed airdrop button enable condition in minting flow. It is enabled when minting state is completed and if the token properties are infinite supply or there are still remaining tokens to be airdropped.
- Updated storybook accordingly.

Fixes #11496
2023-08-01 13:20:31 +02:00
Jonathan Rainville 6e346d2c0d feat(Communities): changes in import popup for public keys
Also: refactor(communities), moved request to join funcs to communities module
This is needed because we can now request to join from the Import popup

Closes #11242
2023-07-28 18:53:59 +03:00
Lukáš Tinkl bb2bbfb5b6 fix: Review scrolling behavior for holdings dropdown
- remove padding and use margins so that the listview can span the whole
width while having the scrollbar neatly next to it
- make the section header both inline and floatable (which makes it
always visible, even when scrolled away)
- fix the special search results "section" to behave the same way
- sort the results by category and name
- expose the `allTokensMode` for easy testing with storybook

Closes #10201
2023-07-28 17:46:29 +02:00
Igor Sirotin f9685a0a46
StatusScrollView usage docs (#11422) 2023-07-28 13:51:41 +03:00
Michał Cieślak f4d66a244e feat(Communities): Add fee box and updated sign popup to owner/token master tokens minting 2023-07-28 12:49:14 +02:00
Michał Cieślak 720971c9db fix(StatusEmojiAndColorComboBox): proper setting initial selection 2023-07-28 12:49:14 +02:00
Michał Cieślak f1d2646fec feat(ModelUtils): modelToArray: roles param made optional, support for nested models 2023-07-28 12:49:14 +02:00
Alex Jbanca c7aa1cf9e8 fix(StatusQ): Allow two lines text content in StatusToastMessage 2023-07-28 10:03:10 +03:00
Michał Cieślak 3c65d2e69e chore(Communities): Fees box - use danger outline for account selector when error 2023-07-26 17:59:45 +02:00
Igor Sirotin 4a4e3c5663
fix: Propagate `root.linkPreviewModel` (#11673) 2023-07-26 17:09:36 +03:00
Lukáš Tinkl 94c29d1e60 fix: Mint tokens screen uses different border colors for boxes
plus a couple of other dark mode fixes

Fixes #11633
2023-07-26 14:38:27 +02:00
Lukáš Tinkl a2e6227117 feat: disable community settings while in Testnet mode
- display an info box when in wallet testnet mode with a CTA to disable
it (functionality enabled for production builds only)
- the CTA can be tested/seen via OverviewSettingsPanelPage storybook page

Closes #11468
2023-07-24 19:29:13 +02:00
Lukáš Tinkl 1332fdc0d9 feat(StatusInfoBox): add support for icons
with predefined Info, Danger, Success and Warning colors
2023-07-24 19:29:13 +02:00
Lukáš Tinkl ed855e5fad fix(StatusBanner): use consistent `warning` color 2023-07-24 19:29:13 +02:00
Lukáš Tinkl d42892eec8 fix(StatusListItem): fix icon color when disabled 2023-07-24 19:29:13 +02:00
Michał Cieślak 715ed2a918 feat(Communities): Redesigned fees box and sign tx popup components added
Closes: #11600
2023-07-24 17:14:00 +02:00
Michał Cieślak 6d7a018aaf fix(general): added check if role passed to ModelUtils.get exists 2023-07-24 17:14:00 +02:00
Cuteivist 9b8340b695
feat(@desktop/wallet): Handle contract deployment (#11570)
closes #9047
2023-07-24 13:18:42 +02:00
Igor Sirotin cc5f057b3a
Replace link previews with new unfurled data from the message (#11603) 2023-07-22 02:08:44 +03:00
Lukáš Tinkl e744c847ad feat(token-permissions): display channel names in SharedAddressesPanel
Modify the PermissionUtils a bit to return an array of `[key, channelName]`
instead of just the keys and use it to display the channel names in the
permissions overview panel

(I could have used `QVariantMap` or `QJSonObject` here but those are
always sorted by `key`, so had to resort to using a plain vector/array)

Fixes #11584
2023-07-21 13:47:07 +02:00
Sale Djenic c47a432bae fix(@desktop/wallet): `Wallet -> Settings -> Account order` - watch-only accounts and keycard accounts should have appropriate icon
Fixes: #11513
2023-07-20 18:01:14 +02:00
Cuteivist db363b3782
feat(@desktop/wallet): Use separate filter for each wallet account (#11528)
closes #11412
2023-07-19 16:16:45 +02:00
Lukáš Tinkl 02e40adfca feat: New design flows to integrate Revealing addresses...
... when joining Community functionality

Closes #11138
2023-07-19 12:44:16 +02:00
Sale Djenic 6d25a888d3 feat(@desktop/wallet): keypair rename (a profile keypair name should follow display name)
Fixes: #10769
2023-07-18 09:20:09 +02:00
Alex Jbanca bed7db5528 feat(communityChart): Add messages over time chart - mocked data
Implementing community messages over time chart
Adding `OverviewSettingsChart.qml` to storybook
2023-07-18 08:43:59 +03:00
Lukáš Tinkl 875e17b061 fix: Channels stay highlighted when they are not selected
disable the highlight also when not exiting the DropArea

Fixes #11459
2023-07-17 10:39:24 +02:00
Noelia c973605831 feat(OwnerToken): Admin view of Tokens home - pre-Owner token minting
- New `Get started` panel for admins in `Tokens` section added.
- Added support in `storybook`.

Part of #11472
2023-07-14 12:57:18 +02:00
Khushboo Mehta a468635ddc feat(@desktop/wallet): Networks - New List UX with link mainnet/testnet + testnet mode enable/disable
fixes #11252
2023-07-14 08:57:36 +02:00
Lukáš Tinkl 5b118f43f8 fix(Chat): Confirmation button UI is broken when deleting 1-1 chat
fixes a `StatusModal` porting error that broke `title` in a couple of
popups/modals

Closes #11503
2023-07-13 16:44:30 +02:00
Mikhail Rogachev 1a7532d92c
fix: Fix behaviour issues with CRs and mutual update messages (#11178)
Close #11121
2023-07-13 01:39:56 +04:00
Michał Cieślak 4a3e8ca1b2 feat: Adds AmountsArithmetic utility exposing basic functionality for handling arbitrary precision decimals
Closes: #11484
2023-07-12 11:59:40 +02:00
Michał Cieślak e1177617b9 feat: Add big.js library for arbitrary precision decimal arithmetic
big.js v6.2.1 (minified using terser)
2023-07-12 11:59:40 +02:00
Noelia c59758b377 feat(SQ/StatusInfoBoxPanel): Created SQ panel
- Created general `StatusInfoBoxPanel` component. It includes a box with a title, text and button.
- Added storybook page support.
2023-07-11 11:07:01 +02:00
Cuteivist 9b293f9c34
feat(@desktop/wallet): Loading animation for input data decoding (#11378)
closes #11333
2023-07-10 15:36:29 +02:00
Alex Jbanca 3b57915155 feat: Implement Community Overview footer with mocked data
1. Adding OverviewSettingsFooter.qml according to design
2. Adding the footer to storybook
3. Add the footer in the overview page
4. Remove the squish tests for the old footer
2023-07-07 21:07:35 +03:00
Stefan 7a9c76966d feat(wallet) reload on new transaction downloaded quick win
Show a reload hint button for user to refresh the filter

Updates #11233
2023-07-05 23:45:34 +02:00
Noelia 0e730b38e7 feat(SQ/StatusTagItem): Extend text properties customization
Binding added for `font`  property to allow more component customization.
2023-07-05 11:14:38 +02:00
Cuteivist d0f3b6d652
feat(@desktop/wallet): Update activity feed sections date markers (#11332)
closes #11306
2023-06-30 14:55:59 +02:00
Lukáš Tinkl 9107f15a77 [Mint Token] Update validation rule for name property
Fixes checking for duplicate token name in a case insensitive manner

Redo the `ModelUtils.contains(model, roleName, value, mode =
Qt.CaseSensitive)` in C++; more speed and add ability to search case in/
sensitive

Some more smaller fixes/speedups

Fixes #11204
2023-06-28 11:55:11 +02:00
Cuteivist 91e0d3f0cd
fix(@desktop/wallet): Hide disabled copy address action (#11269)
fixes #10507
2023-06-28 08:27:18 +02:00
Michał Cieślak 8cd6de5013 chore(StatusQ/Utils): return StackView's push/pop return values from push/pop methods in StackViewStates
It allows to access pushed/popped items when using StackViewStates for
managing StackView.
2023-06-26 10:01:14 +02:00
Lukáš Tinkl 620c7a746d feat(Settings/Communities): implement new communities list
Closes #11145
2023-06-23 16:48:26 +02:00
Alex Jbanca ef837a9c9c fix(StatusQ): Dynamic width calculation for StatusMenu 2023-06-21 14:42:00 +03:00
Pascal Precht b3329d790e feat: channel permissions
Closes: #10996, #10995, #10993, #10997, #9537
2023-06-20 21:57:37 +02:00
Lukáš Tinkl fe9bb7d398 chore: Update StatusBaseButton content item layout
- introduce StatusButton storybook page with controls to play around
with the its options and variants
- StatusBaseButton: make the content item horizontally centered by
default
- StatusBaseButton: remove `textAlignment` and fix `textFillWidth` for
the intended usage
- fixup usage of the 2 above options which were introduced merely as a
workaround, mostly in wallet + corresponding storybook pages

Fixes #10903
2023-06-20 14:10:35 +02:00
Jonathan Rainville fe8a58c5db fix(badges): fix muted chat not being marked as read
Fixes #11041

Fixes the bug where going to a muted channel with a mention doesn't mark it as read. This was because the QML doesn't call mark as read when a channel doesn't have unviewed messages. That was because our Nim code put 0 as unviewedMessageCount when a channel is muted.

I changed it so that channels always have the value from status-go. No more conditions on the Nim side. Now the condition is on the QML side. So we hide the badge in QML instead. That also means that showing the number of unviewed message, even in a muted channel works.

I also fixed a bug where we counted muted messages on app restart for the normal badge. Usually it didn't cause issues, because it's rare that you had messages in a muted channel and nothing else. You'd also have unread messages in an unmuted channel. so you'd go there, read it, and it would then update the parent badge. 
While testing this issue, I discovered that we in fact count muted channels for the parent badge.
So i fixed it in this one too.
So while chats don't have any Nim code for muted chats, sections do, because status-go doesn't really give us that information.
2023-06-16 15:12:12 -04:00
Lukáš Tinkl 045dfe60a0 fix: Channel picker doesn't render 1-1 chats correctly
- expose `colorId` and `colorHash`, the latter only for non-ENS verified
users
- use them in the results :)

Fixes #11086
2023-06-15 11:13:36 +02:00
Igor Sirotin 11bd51fc27
fix(SyncingView): only suggest to sync non-synced devices (#11083) 2023-06-15 11:53:35 +03:00
Michał Cieślak 8b44e686f4 feat(CommunityAirdrops): Fees popup with multiple entries for airdrops
Closes: #10484
2023-06-14 12:59:05 +02:00
Jonathan Rainville 125593369f fix(CodeScanner): fix QrCode Scanner not working on Linux
Fixes #10101

The problem was quite weird. The camera worked, but only when not **directly** in a Loader.

So I fixed by moving the Loader outside of StatusQrCodeScanner and into its parent SyncDeviceFromMobile.

The bahaviour is the same. We get a button asking to enable the camera, then we load the Scanner component. Before the Loader contained only the Camera component.
2023-06-13 12:49:55 -04:00
Lukáš Tinkl 2cb2f8354d fix: invalid width for items chat list
- simplify StatusChatListAndCategories, and propagate the width
- set the correct width in StatusChatList's actions (using
`Layout.fillWidth: true`)
- add a width slider to the storybook page to be able experiment with
the whole component width

Fixes #11047
2023-06-13 16:12:26 +02:00
Michał Cieślak d479077e60 feat(StatusQ): StatusSortableColumnHeader component added 2023-06-13 12:37:10 +02:00
Cuteivist a4731517d6
feat(@desktop/wallet): Add copy details and repeat transaction buttons (#10904)
closes #10776
2023-06-13 10:18:53 +02:00
Lukáš Tinkl c21c7cf705 feat: Add support for "locked" icons in chat list items
- introduce 2 new bool properties: `requiresPermissions` and `locked`
- import the new icons
- add a respective storybook to play around with the StatusChatListItem
properties

Fixes #11012
2023-06-12 16:57:39 +02:00
Jonathan Rainville be958d5a1e chore: remove dictionary 2023-06-09 14:50:08 -04:00
Lukáš Tinkl 0b94c2b541 fix: revert to not destroy popups on close by default
- causing too many regressions along the way
- most of our popups are already destroyed properly inside Popups.qml
- in general, a Popup (Dialog, Menu, etc.) can be manually destroyed iff
it had been created using `Component.createObject()`, otherwise it's gone
for good until restart
- manually enabled the destroy-on-close in verified cases

Fixes #10948 (maybe some other dupes)
2023-06-09 00:44:27 +02:00
Lukáš Tinkl 0cf01871b4 fix(Chat): Quoted message in a reply is not clickable
wrap the reply contents area (excluding the profile header) in a
ColumnLayout and move the MouseArea that handles the `messageClicked()`
signal there, thus avoiding the collisions between the two

Fixes #10950
2023-06-08 17:20:03 +02:00
Lukáš Tinkl b5a7df685a fix(QClipboardProxy): use more reliable clipboard/DND checks
- getFileSize: NIM version would crash on non-existing or remote files
- isValidImageUrl: properly detect file extensions when the URL contains
a query (eg "file.jpeg?width=1000&height=600")
2023-06-08 15:33:46 +02:00
Mikhail Rogachev 010640acd0
feat(Chat): display MutualStateUpdate system messages in 1-to-1 chats (#10847)
* feat(Chat): Display MutualStateUpdate system messages in 1-to-1 chats

* feat(ActivityCenter): Add AC notification when a user get removed by another contact

* fix: crutch fixing segfault on contact removal
2023-06-08 16:52:03 +04:00