Whenever source model emits layoutAboutToBeChanged/layoutChanged,
persisten model are updated appropriately, also scenario when items are
removed is covered.
Closes: #14244Closes: #14245
Linux builds on desktop are stuck with:
```
/usr/bin/ld: .../libstatus.so: undefined reference to `pthread_mutexattr_init@GLIBC_2.34'
/usr/bin/ld: .../libstatus.so: undefined reference to `dlclose@GLIBC_2.34'
/usr/bin/ld: .../libstatus.so: undefined reference to `pthread_detach@GLIBC_2.34'
```
Due to using old Glibc 2.34 from Ubuntu 22.04 while Nix uses 2.38.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Otherwise it fails with:
```
performing a single-user installation of Nix...
directory /nix does not exist; creating it by running 'mkdir -m 0755 /nix && chown jenkins /nix' using sudo
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
/tmp/nix-binary-tarball-unpack.roliyEDk9X/unpack/nix-2.19.3-x86_64-linux/install: please manually run 'mkdir -m 0755 /nix && chown jenkins /nix' as root to create /nix
```
Related to:
https://github.com/status-im/status-go/pull/4388
Signed-off-by: Alexis Pentori <alexis@status.im>
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This is not an issue actually, instead a request was if the Keycard is present to display an
appropriate state based on the Keycard content, which requires the following steps when a user
clicks any flow to run:
- run appropriate keycard flow
- wait for a response from the keycard
- resolving state that needs to be displayed based on the response
- display appropriate state
This commit changes that to the following:
- display keycard reading state immediately after the user clicks any flow to run and then the rest as it was
- run appropriate keycard flow
- wait for a response from the keycard
- resolving state that needs to be displayed based on the response
- display appropriate state
With this change on OS' where communication between the app and keycard is slow it wouldn't look
like a delay in running flow, but instead, a user will be aware immediately that something is ongoing.
Closes#13242
- removed multiple filtering separately for each category
- no instantiation of all delegates up front (regular ListView approach
used)
- fixed category selection when filtering - selecting/deselecting only
items fulfilling search criteria
- significant simplification of the code
Closes: #14275
Earier attempts to initialize proxy may fail bc left/right models
may be not ready when they are set. It may lead to a situation where
the model remains uninitialized and reporint 0 row count.
* fix(permissions): fix hang when all channel perm check return
Fixes#14234
The problem was that we updated **all** the models from **all** the channels of a community each time the channel requirement checks returned.
The fix is to first of all, make sure we don't call that check too often. It sometimes got called twice in a row by accident.
The other better fix is to check if anything actually changed before updating. This solves the issue almost entirely. Since the permissions almost never change, the updates now take only a second.
* fix(permisisons): never run permission checks for privileged users
Also fixes#14234 but for admins, TMs and Owners.
Admins+ were still getting the hang, because the permission checks always returned something different than the models, because the models knew that admins have access to everything, but the permission check was running as if it were a normal user (I think, un-tested).
Anyway, the solution is more simple, we never need to run the permission checks on admins+, because they always have access to everything!
* fix(Communities): prevent channels model from emitting unnecessary signals
Closes: #14274
* chore(Communities): improve channels metadata lookup performance
ChannelsSelectionModel is removed, replaced with plain LeftJoinModel.
Transformations of left-side model are done in a single place, not in
every delegate making the join.
* only call update functions when there is something to update + move permission model creation when needed
---------
Co-authored-by: Michał Cieślak <michalcieslak@status.im>
The previous attempt to control the order of delegate intantiation
and avoid qml warnings didn't work for this case (Loader with injected
properties). Therefore, I reverted to the last working version.
- don't use the expensive `ExpressionFoo` in SFPM, just use
`AnyOf/AllOf` combinations where possible
- in HoldingsSelectionModel, don't call the `getTokenByKey` twice to
construct the `text`, once is enough
- lastly, rewrite the JS helper `PermissionsHelpers.getTokenByKey` to
C++; this method gets called recursively way too often from many places
In the longterm, we should provide a specific C++ transformation model
for SharedAddressesPermissionsPanel to follow the UI requirements more
closely; that way we'd be able to fix the issues here for good
Fixes#14276