Commit Graph

1594 Commits

Author SHA1 Message Date
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
Patryk Osmaczko dfbac49302 chore(qml): adapt assets to support mediaserver images 2023-06-08 13:09:59 +02:00
Igor Sirotin bc4492b53a
fix: Create only one instance of `StatusChatInput` (#10928)
* Chat input area preserved properties
* Fix emoji/gif/stickers popups open/close logic
2023-06-07 16:18:29 +03:00
Lukáš Tinkl 274fc98839 fix(StatusDateRangePicker): use StatusDatePicker for the range selection
- exchange the direct input with a calendar popup
- extend the validation of the range (so that from < to === true, etc)
- remove direct input components (Status[Base]DateInput.qml)

Fixes #10900
2023-06-07 10:54:44 +02:00
Khushboo Mehta 28654e0187 \chore(@desktop/wallet): Change customisation colours on desktop to match those used on mobile
fixes #10637
2023-06-02 19:48:19 +02:00
Patryk Osmaczko 35a2dd5244 [Popups]: added destroy() function in all popups by default
Also switched StatusModal to derive from StatusDialog instead
of Popup type

Closes #10149
2023-06-02 14:28:39 +03:00
Igor Sirotin 278654f694
fix: Use `StatusCursorDelegate` for password inputs (#10890) 2023-06-01 21:23:22 +03:00
Jonathan Rainville 500ee972ac go back to old model with SortProxyModel 2023-06-01 09:45:18 -04:00
Lukáš Tinkl c3b1a5f2ab feat: New date picker for Status desktop
- aligns the StatusDatePicker component with the latest UI/UX
- adds a storybook page to explore the options

Closes #10862
2023-06-01 09:43:38 -04:00
Igor Sirotin 7eed470829
fix(StatusScrollView): Change implementation to inherit ScrollView (#10789) 2023-05-31 23:58:23 +03:00
Jonathan Rainville 7d0a77ef0d chore(links): update to use the new external link format
Fixes #10777
2023-05-31 10:36:08 -04:00
Jonathan Rainville d04e121ab5 chore: update deep link to status-app on Windows 2023-05-31 10:36:08 -04:00
Khushboo Mehta 5678d86a54 fix(@desktop/wallet): Simple Custom Date range date picker
fixes #10796
2023-05-31 14:28:22 +02:00
Cuteivist 7caa89b050
feat(@desktop/wallet): Transaction activity summary (#10809)
closes #10751
2023-05-31 11:25:16 +02:00
Cuteivist fb85c46727
fix(@desktop/wallet): Small navigation fixes (#10839) 2023-05-31 09:47:52 +02:00
Boris Melnik 91bdb5824b feat(mute): Adds intervals for muting channels and chats
Part of: #9369
2023-05-30 16:43:48 +03:00
Lukáš Tinkl 130976957f fix: blurry icons in Network Filter combobox
- detect SVG images and apply the same fix as we do in StatusIcon
- do not load a lowres (tiny) variant

Fixes #9853
2023-05-30 11:39:00 +02:00
Lukáš Tinkl 8ae48d9181 feat(StatusRoundIcon): allow loading a rounded icon from "source"
the same way it's already implemented in the underlying StatusIcon
2023-05-30 11:39:00 +02:00
Lukáš Tinkl a0020761eb fix(NavBar) right clicking on Wallet, Community Portal and Settings highlight them
check if there indeed is a popup menu

Fixes #10824
2023-05-30 11:25:45 +02:00
Sale Djenic 0b9d7e1962 fix(@desktop/keycard): updated information for listed keypairs for migration to a keycard
Fixes: #10808
2023-05-26 10:54:12 +02:00
Lukáš Tinkl bf6758b68e fix(ShowcaseDelegate): community icon is not rounded
- this needs proper bg color (transparent) and a `border.width: 0` to
work properly with the

Fixes #10754
2023-05-25 16:30:10 +02:00
Jonathan Rainville 4dd383ffb5 refactor(DnD): improve chat reorder by passing destination directly 2023-05-25 09:27:14 -04:00
Jonathan Rainville a69b8de3c3 feat(category): hook category Drag and Drop to backend correctly
Fixes #10733
2023-05-25 09:27:14 -04:00
Noelia 0862273baf feat(SQ/StatusInput): Added new property to override char limit label
Added `charLimitLabel`. If it is set, the default char limit label will be overriden.
2023-05-25 11:11:44 +02:00
Igor Sirotin 5ff4b5a435
fix(MessageContextMenu): Cleanup. Separate menu for profile. (#10729) 2023-05-19 19:07:50 +03:00
Cuteivist f7e75208a5
feat(@desktop/wallet): Added transaction address component (#10665)
closes #10583
2023-05-19 11:51:47 +02:00
Noelia 7aaf8fcec2 feat(MintToken/RemoteDestruct): Review and update remote self destruct flow
Updated strings and renamed files.

Part of #10603
2023-05-18 15:28:44 +02:00
Khushboo Mehta 3ac9edbe96 feat(@desktop/wallet): Activity Details Progress bar
fixes #10639
2023-05-18 09:26:37 -04:00
Igor Sirotin 63bbc72b54
fix(StatusMessageReply): Fix clicking on sender (#10717) 2023-05-16 18:06:38 +03:00
Michał Cieślak f3a50ebf65 fix(StatusDropdown): added to Binding to avoid warning (QTBUG-81787) 2023-05-15 12:52:17 +02:00
Michał Cieślak 79789e50d2 feat(StatusQ/Utils): ClippingWrapper component for convenient clipping with margins 2023-05-12 20:14:02 +02:00
Michał Cieślak 3b2a5995aa fix(StatusDropdown): Add workaround for QTBUG-87804
The workaround has no known side-effects and it doesn't break
any bindings.
2023-05-12 16:38:15 +02:00
Khushboo Mehta 43bd5631de feat(@desktop/wallet): Header Gradient
fixes #10333
2023-05-12 11:39:03 +02:00
Khushboo Mehta 47d971a3dd feat(@desktop/wallet): Handle large numbers in the desktop as per new design
1. Support upto numbers 999B
2. No decimal points after 1M

fixes #10590
2023-05-11 17:54:13 +02:00
Khushboo Mehta a57c0b414b feat(@desktop/wallet): New Account header
fixes #10330
2023-05-10 16:02:37 +02:00
Cuteivist ec04b8668f
Feat/10473 Updated activity list delegate and activity details header (#10580)
closes #10473
closes #10542
fixes #10408
2023-05-10 13:54:06 +02:00
Michał Cieślak 27aac8d83a feat(CommunityNewAirdropView): design-compliant token airdrop flow for collectibles 2023-05-08 11:44:10 +02:00