Major changes:
- Don't allow empty network selection. End up using the nim model
directly instead because of individual row changes issues
encountered with nim models
- Made the clone model a generic implementation to be used in other
places where we need to clone a model: ReceiveModal,
AddEditSavedAddressPopup
- Use cloned model as alternative to NetworksExtraStoreProxy in
ReceiveModal
- Added tristate support to our generic checkbox control
- UX improvements as per design
- Fix save address tests naming and zero address issue
- Various fixes
Notes:
- Failed to make NetworkSelectPopup follow ground-truth: show partially
checked as user intention until the network is selected in the
source model. Got stuck on nim models not being stable models and
report wrong entry change when reset. Tried sorting and only updating
changes without reset but it didn't work.
- Moved grouped property SingleSelectionInfo to its own file from
an inline component after finding out that it fails to load on Linux
with error "Cannot assign to property of unknown type: "*".".
It works on MacOS as expected
Closes: #10119
This way we prevent situation in which a developer or QA engineer runs a
custom job with adjusted parameters, and then all following jobs use
those modified parameters implicitly. The more sane behavior is to
always revert to defaults for PR builds, but remember last used
parameters for non-PR builds.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
It enables navigation from mint token page to airdrop page selecting a specific collectible to be airdropped.
It is now used `symbol` property as the identifier for a collectible but will be needed to update it to `key` once this key property is build in backend by hash(chainId + contractAddress).
Closes#10047
Part of #3364
To make the drag and drop reorder work correctly on channels, we needed to change the model again so that it was sorted in the model itself.
That is because the drag and drop gives us the value of the position it is dropped to as a single list, so dragging the second item of the second category would mean from position 5 to position to position 4, but what the backend wants is moving the item 2 to position 1.
Sorting the model enables us to get the category that is the parent of that position and call the service with the right positions and id.
It also enables us to reorder the channel in and out of the category.
See the module code to see how the calculation is done with an explanatory comment.
The model needed some changes to support that. Some of the function where changed from dataChange calls to resetModel calls, since we need to re-sort the model.
I tried using beginMove, but it would crash. Maybe there is a bug in NimQML or I used it badly, I'm not sure.
Lazily load chat and community sections but do not unload them,
otherwise all temporary data such as scroll position, text input,
cursor position, etc., would vanish
iterates: #10286
Fixes#10313
There were a couple of small issues.
First, we didn't call the function to calculate the highlight on new messages.
Secondly, the calculation was bugged because the category wasn't saved correctly in the channelGroup update.
- hide the market and other stuff that can't be used while offline
- recent stickers and already installed packs can still be used; they
will be sent when we return online
- when we return online, reload the views instead of closing the popup
- fix an evil NIM typo that prevented reloading the already installed
sticker packs
- remove the NIM parts that haven't been ported to the async nature; just
`loadStickers()` on the QMl side does the trick
the button to (un)install would be either greyed out or result in a crash:
- we were passing the popup a wrong store (w/o networkConnectionStore)
- the condition to `greyedOut` was inverted
fixes the currently selected sticker pack not being highlighted in the
popup footer
The strict equality operator would no longer yield true here:
```
property int selectedPackId
...
selected: stickerPackListView.selectedPackId === packId
```
the AC popup was being recreated on every click and never destroyed,
leading to:
- memory leaks
- slow operation on opening (it's not trivial to create)
Now we keep a reference the the created popup object, thus making it
faster to appear on every (second) click. It gets destroyed via its
parent at the application shutdown
the Popup has to be modal and the overlay should catch/eat all the mouse
events to prevent them from propagating to the contents behind the popup
Fixes#9838