Commit Graph

41 Commits

Author SHA1 Message Date
Lukáš Tinkl 9d9fb69e3b feat(StatusEmojiPopup): reimplement around C++ EmojiModel
- the new C++ EmojiModel provides a simple wrapper around the existing
JSON to facilitate a faster access and to be able to search/filter in
QML using SFPM
- no more nested GridViews inside Repeaters
- get rid of emoji manipulation and search/filter using JavaScript
- included the C++ script to generate the emojiList.js
2024-09-03 10:19:54 +02:00
Michał Cieślak 9c4e1a8fe9 SubmodelProxyModel removed
Closes: #15825
2024-09-02 20:20:10 +02:00
Michał Cieślak 781133238a ClipboardUtils: isValidImageUrl and isValidImageUrl excluded to UrlUtils 2024-08-29 15:46:17 +02:00
Michał Cieślak 9311ebe7fe QClipboardProxy renamed to ClipboardUtils 2024-08-29 15:46:17 +02:00
Lukáš Tinkl 3c18ac0f7a feat(AboutViewPage): display the runtime Qt version in Settings/About
- it's easier to make sure and detect what users are using, esp. when
they report bugs
- with a clickable link to the release notes
2024-08-12 23:52:51 +02:00
Stefan 98c18901e0 fix(dapps) Wallet Connect internet connection reestablishing issue
Add a new NetworkChecker QObject to StatusQ to be used in checking
internet connection status. This is used by the WebEngineLoader
to only allow loading of web pages when there is an active internet
to cover for a corner case on MacOS where the internet connection is
not reestablished if the WebEngineView was loaded without an active
internet connection.

Closes: #15598, #15806
2024-07-31 14:08:16 +02:00
Michał Cieślak 44808424a4 StatusQ: QValidator fully exposed to QML
Closes: #15581
2024-07-17 01:32:04 +02:00
Michał Cieślak d3d0080b2d feat(StatusQ): Generic attachd type for providing model count
Closes: #15374
2024-07-01 13:59:20 +02:00
Michał Cieślak a2b8eb333d feat(StatusQ): GroupingModel for grouping rows with the same key into
submodels

Closes: #12683
2024-06-28 17:35:41 +02:00
Michał Cieślak 958dc7c5ba chore(ObjectProxyModel): Generalized version of SubmodelProxyModel
Closes: #14893
2024-06-05 14:18:43 +02:00
Alex Jbanca 4e81f8f220
feat(StatusQ.Models): Adding SingleModelItemData helper component (#14891)
SingleModelItemData is a generic component that can provide a live object extract from an arbitrary QAbstractItemModel*
2024-06-04 13:08:52 +03:00
Michał Cieślak d9707091d3 feat(StatusQ): ModelSyncedContainer utility 2024-05-27 12:03:17 +02:00
Michał Cieślak 587594f3b9 feat(StatusQ): General purpose js function-based aggregator
Closes: #14617
2024-05-13 15:54:03 +02:00
Stefan 26542970ee feat(wallet) save/load collectibles user handled state in DB
Add a separation layer for save/load/clear to ManageTokensModel
so that we can save/load from external sources.
The separate layer is composed of JSON as protocol, a set of signals
and slots for interface. The implementation forwards data to current
QSettings for storybook and nim controllers for the app.

Updates #13313, #13312
2024-03-27 20:26:15 +01:00
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ł 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 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
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
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 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 e2fa702ec4 feat(StatusQ): QML-oriented proxy model concatenating source models vertically
Closes: #12682
2023-12-05 22:45:08 +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
Michał Cieślak 4d1806a656 fix(StatusQ): run all unittests via make and on CI
Closes: #12841
2023-11-24 23:32:08 +01: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
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
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
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
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
Igor Sirotin 70e8370aae
fix(Makefile): Bugfixes and minor improvements (#10423) 2023-04-25 18:01:19 +03:00
Igor Sirotin 56633f6ce3
fix(StatusQ): Remove debug postfix (#10337) 2023-04-18 13:35:23 +03:00
Igor Sirotin aefa2b9f48
fix(StatusQ): StatusQ is QML module (#10207)
* StatusQ QML module
* qzxing is static lib again
* updated StatusQ resources
* fixed Emoji lookup
* added display to tests-imports ci
2023-04-14 11:18:56 +03:00
Jakub Sokołowski f39dfa87f7 move qzxing and SortFilterProxyModel to vendor folder
Lets avoid creating chaos by having multiple vendor folders.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-23 12:09:19 +01:00
Igor Sirotin 7c1c178d37
QR code scanner (QML component) (#9464)
Co-authored-by: Richard Ramos <info@richardramos.me>
2023-03-07 12:08:38 -04:00
Michał Cieślak 5f659da9f8 feat(StatusQ): SanityChecker app for imports validation
Closes: #8071
2022-11-04 12:01:59 +01:00
MishkaRogachev 3941afe4f5 Fix building x86_64 solution on Mac M1 2022-09-21 18:20:12 +02:00
Patryk Osmaczko a50296046d feat: add filtering&sorting example
closes: status-im/status-desktop#6510
closes: status-im/status-desktop#6512
2022-09-21 18:20:12 +02:00
Patryk Osmaczko 6dd8c5fa46 feat: use cmake instead of qmake
- cmake is superior to qmake (e.g. linking custom libraries)
- maintaining two build system generators is costly

iterates: status-im/status-desktop#6510
2022-09-21 18:20:12 +02:00
Stefan e293f80554 tests(general): refactor tests
Enhance the CMake strucuture of thests
Update documentation
2022-09-21 18:20:09 +02:00