Commit Graph

5227 Commits

Author SHA1 Message Date
Khushboo Mehta 5a00101169 fix(StatusChatListItem): This change fixes the issue of the chat list items getting a highlight even when they are not really hovered
The issue is caused by the fact that the MouseArea returns containsMouse as true even when the item is not hovered.
The issue is reproduced when the model changes dynamically in the StatusChatList, thus causing the StatusChatListItem to be recreated and
this is when the containsMouse remains true even though the item is not hovered.
I see a bunch of issues in the QT bug list with regards to the containsMouse property but are still open.
A solution to this is to use HoverHandler which is a more reliable way getting hovered events for an item.
2022-09-21 18:20:06 +02:00
Pascal Precht 337779f9a6 feat(StatusModal): introduce `hasCloseButton` property
This property can be used to hide the close button, as there are some
modals that shouldn't allow users to "x" modals away.
2022-09-21 18:20:06 +02:00
Pascal Precht 04ba89db97 chore: cut 0.18.0 release 2022-09-21 18:20:06 +02:00
Pascal Precht b2da194809 fix(StatusListItem): ensure title is elided 2022-09-21 18:20:06 +02:00
Khushboo Mehta e83ad058c8 fix(StatusImageWithTitle): Fix position of the edit title button 2022-09-21 18:20:06 +02:00
Khushboo Mehta 5f6f311d8d feat(StatusListItem): Expose the Aside text so that it can be modified from the outside 2022-09-21 18:20:06 +02:00
Khushboo Mehta 083d648b05 fix(StatusAppNavBar): Fixed position of profile button on the NavBar 2022-09-21 18:20:06 +02:00
Pascal Precht fb2a93b549 chore: cut 0.17.1 release 2022-09-21 18:20:06 +02:00
Anthony Laibe d18dfdec03 fix(StatusAccountSelector): Adapt ui to data model changed 2022-09-21 18:20:06 +02:00
Khushboo Mehta 375c76ca1d fix(StatusAssetSelector): Fixed error of crypto balance not updated correctly
Also added error handling in case in case that crypto symbol image is not available
Added a way to display the balance in currently selected currency on the widget
To do this the consumer of this widget needs to implement "getCurrencyBalanceString" based on the currently selected currency

fixes #4079
2022-09-21 18:20:06 +02:00
Pascal Precht 285641b434 chore: cut 0.17.0 release 2022-09-21 18:20:06 +02:00
Khushboo Mehta 7fd7c8a947 fix(StatusListItem): This solves the issue of channel list overlpaing when a category is collapsed.
The issue is not reproducible a 100% of time. In order to solve this bug, we have turned on the preventStealing flag for the mousseArea.
Checked for any sideimpacts but didnt find any.
Tried several times and this change seems to solve the bug. Feel free to repoen if you are still able to reproduce this behaviour.

fixes #4047
2022-09-21 18:20:06 +02:00
Jonathan Rainville 876c6e99f8 fix(StatusAccountSelector): adapt AccountSelector to new model (#482) 2022-09-21 18:20:06 +02:00
Pascal Precht 5fa646d2eb fix(StatusExpandibleItem): add missing hover indicator in `Secondary` type
Fixes #478
2022-09-21 18:20:06 +02:00
Anastasiya S 817a900fd6 fix(StatusSearchPopup): disable enter and return keys to avoid UI breakage 2022-09-21 18:20:06 +02:00
Alexandra Betouni 77e210fa87 fix(StatusSlider): slider background and handle should not depend on root's height
Made slider background and handle to not depend
to root's height so that it covers cases where a
legend is needed thus all should be clickable for
better user experience.

Relates to status-im/status-desktop#3984
2022-09-21 18:20:06 +02:00
Pascal Precht d1be7973c9 feat(StatusQ.Controls.Validators): introduce `StatusUrlValidator` 2022-09-21 18:20:06 +02:00
Pascal Precht 09e0d8a8b9 feat(StatusBaseButton): introduce `Tiny` size 2022-09-21 18:20:06 +02:00
Pascal Precht b4e2730f3d fix(StatusInput): ensure validator messages are rendered when validators return boolean values
There's two ways to signal that a validator emits invalidity on a control:

1. Its `validate()` method returns `false`
2. Its `validate()` method returns an object

Option 2) allows validators to supply the `errors` object with additional data.

Due to latest changes to `errorMessage` handling in validators, those messages
would not be rendered anymore if a validator returns simply `false` instead of an object.
The reason for that is because the code assumed that only option 2) is gonna happen.

This commit ensures that error messages a displayed in both options.
2022-09-21 18:20:06 +02:00
Pascal Precht 9859e33cc0 chore: cut 0.16.0 release 2022-09-21 18:20:06 +02:00
Pascal Precht 2ea3c76bf5 fix(StatusModal): render footer correctly based on `showFooter` flag 2022-09-21 18:20:06 +02:00
Pascal Precht 617ca649b3 feat(StatusQ.Platform): introduce StatusMacNotification component 2022-09-21 18:20:06 +02:00
Pascal Precht 61760e8e54 feat(StatusQ.Controls): introduce `StatusWalletColorSelect` control
Usage:

```qml
StatusWalletColorSelect {
    model: Theme.palette.accountColors
}

```

Closes #467
2022-09-21 18:20:06 +02:00
Pascal Precht 6959ec54aa fix(StatusRoundButton): ensure disabled state uses correct background color 2022-09-21 18:20:06 +02:00
Pascal Precht d8745049da feat(StatusQ.Controls): introduce `StatusWalletColorButton` component
Usage:

```qml
StatusWalletColorButton {
    icon.color: Theme.palette.miscColor1
    selected: true
}
```

Closes #466
2022-09-21 18:20:06 +02:00
Pascal Precht 1708f7aa58 chore: release 0.15.0 2022-09-21 18:20:06 +02:00
Pascal Precht bb3fb252d0 feat(StatusQ.Controls): introduce StatusChatCommandButton
Usage:

```qml
StatusChatCommandButton {
    icon.name: "send"
    icon.color: Theme.palette.miscColor2
    text: "Send transaction"
}
```

Closes #429
2022-09-21 18:20:06 +02:00
Pascal Precht b61a8c45da feat(StatusQ.Controls): introduce `StatusTabBarIconButton` component
Usage:

```qml
StatusTabBarIconButton {
    icon.name: "travel-and-places"
}
```

Closes #428
2022-09-21 18:20:06 +02:00
Pascal Precht d05eb44d4b chore: cut 0.14.0 release 2022-09-21 18:20:06 +02:00
B.Melnik 75d0382e97 fix(Spellchecking): Add check for hunspell existence 2022-09-21 18:20:06 +02:00
Alexandra Betouni 3c7b498e74 fix(Popups/StatusMenuItemDelegate) adding checks to avoid undefined errors 2022-09-21 18:20:06 +02:00
Khushboo Mehta 32e69e6a8e feat(StatusSmartIdenticon): Created a new StatusQ componnent to accomodate:
1. A StatusRoundedImage
2. StatusRoundIcon
3. LetterIdenticon

Fallback in case of an error in loading Image to the LetterIdenticon
2022-09-21 18:20:06 +02:00
Pascal Precht c1021977d6 fix(StatusModal): ensure `onEditButtonClicked` signal is emitted
Closes #454
2022-09-21 18:20:06 +02:00
Pascal Precht b85ccbfc23 fix(StatusModal): expose `header.editable` property
Fixes #452
2022-09-21 18:20:06 +02:00
Anastasiya S cec89ef605 chore(StatusChatInfoButton): add object name for pin counter for testing purposes 2022-09-21 18:20:06 +02:00
Anastasiya S ffc4598bc5 chore(StatusChatInfoButton): add object name for testing purposes 2022-09-21 18:20:06 +02:00
Pascal Precht 66a8b5c87e chore: cut 0.13.0 release 2022-09-21 18:20:06 +02:00
B.Melnik f6bbd95f13 chore(ForTests): Add ojectName's for modals 2022-09-21 18:20:06 +02:00
Khushboo Mehta 5ab7c91b44 feat(StatusFlatRoundButton): Update the StatusFlatRoundButton to take over button behaviour from StatusIconButton under ui/shared/status
1. Added icon disabledColor property under StatusIconSettings
2. Added Tertiary and Quaternary type to accomodate hovered behavior needed in many buttons
3. Added a missing gif icon.
2022-09-21 18:20:06 +02:00
Pascal Precht d27e067e1d fix: use proper double checkmark icon 2022-09-21 18:20:06 +02:00
Pascal Precht 312800ccb9 fix(StatusBaseButton): introduce missing `highlighted` property 2022-09-21 18:20:06 +02:00
Pascal Precht 10a7718011 chore: cut 0.12.0 release 2022-09-21 18:20:06 +02:00
Pascal Precht 19ada77172 chore: ignore cache files 2022-09-21 18:20:06 +02:00
B.Melnik 3f9f3d5b15 feat: Resolve StatusQ modules highlighting and add qml compiler for detecting coompile time errors 2022-09-21 18:20:06 +02:00
Pascal Precht e2c178ad43 feat(StatusQ.Controls): introduce StatusColorSelector component
This is a select component to pick from various supplied colors.

Usage:

```qml
import StatusQ.Controls 0.1

StatusColorSelector {
    model: ["red", "blue", "green"]
}

```

Closes #444
2022-09-21 18:20:06 +02:00
Pascal Precht b194a1d869 feat(StatusQ.Controls): introduce `StatusAssetSelector` component
This is used for a more complex amount and asset selector component.

Usage:

```qml
import StatusQ.Controls 0.1

StatusAssetSelector {
    assets: ListModel {
        ListElement {
            address: "0x1234"
            name: "Status Network Token"
            value: "20"
            symbol: "SNT"
            fiatBalance: "9992.01"
            fiatBalanceDisplay: "9992.01"
        }
        ListElement {
            address: "0x1234"
            name: "DAI Token"
            value: "20"
            symbol: "DAI"
            fiatBalance: "20"
            fiatBalanceDisplay: "20"
        }
    }
}
```

Closes #442
2022-09-21 18:20:06 +02:00
Pascal Precht 368ede5645 feat(StatusQ.Components): introduce `StatusAddress` component
This introduces a `StatusAddress` component which renders an address
and can be made `expandable` by applying a `width`:

```qml
import StatusQ.Components 0.1

// Simple case
StatusAddress {
    text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9"
}

// Expandable case
Item {
    width: 200
    height: childrenRect.height
    StatusAddress {
        text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9"
        expandable: true
        width: parent.width
    }
}

```

Closes #430
2022-09-21 18:20:06 +02:00
Pascal Precht 9389ee256e feat(StatusQ.Controls): introduce `StatusAccountSelector` component
This commit moves the original `AccountSelector` into StatusQ and makes it
a `StatusAccountSelector`. The API has been preserved. The only difference is
that it's internally relying completely on `StatusQ.Core.Theme` and `StatusQ.Controls`
components instead.

Usage:

```qml
import StatusQ.Controls 0.1

StatusAccountSelector {
    accounts: ListModel {
        ListElement {
            name: "Pascal"
            address: "0x1234567891011"
            iconColor: "red"
            balance: "0"
            walletType: "generated"
            assets: []
            fiatBalance: "1199.02"
        }
        ListElement {
            name: "Boris"
            address: "0x123"
            iconColor: "red"
            balance: "0"
            walletType: "generated"
            assets: []
            fiatBalance: "0"
        }
        ListElement {
            name: "Alexandra"
            address: "0x123"
            iconColor: "yellow"
            balance: "0"
            walletType: "generated"
            assets: []
            fiatBalance: "0"
        }
        ListElement {
            name: "Khushboo"
            address: "0x123"
            iconColor: "blue"
            balance: "0"
            walletType: "generated"
            assets: []
            fiatBalance: "0"
        }
    }
}
```

Closes #435
2022-09-21 18:20:06 +02:00
Pascal Precht 03c6da6e9f feat(StatusQ.Controls): introduce `StatusSelect`
This introduces a new `StatusSelect` component which is a select form control.
The `model` property can be used to apply a `ListModel` for dynamic data.
To give users full control over what the menu items look like, `StatusSelect`
exposes a `selectMenu.delegate` property.

Most of the time this should be a `StatusMenuItemDelegate` to get access to the
comple `MenuItem` component (remember that `StatusMenuItem` is merely an `Action`
type).

`StatusMenuItemDelegate` derives most of its behaviour by its applied `action`,
so the easiest way to construct a dynamic select with StatusQ menu item look and feel
is a combination of `StatusMenuItemDelegate` and `StatusMenuItem` as shown below.

Further more, because `StatusSelect` can't know what the `delegate` is going to look like
it also can't decide what data goes into a `selectedItem`. Therefore, it offers another API,
the `selectedItemComponent` which can be any component. This component can then be accessed
by menu item actions to set corresponding properties.

Usage:

```qml
import StatusQ.Controls 0.1

StatusSelect {
    label: "Some label"
    model: ListModel {
        ListElement {
            name: "Pascal"
        }
        ListElement {
            name: "Khushboo"
        }
        ListElement {
            name: "Alexandra"
        }
        ListElement {
            name: "Eric"
        }
    }

    selectMenu.delegate: StatusMenuItemDelegate {
        statusPopupMenu: select
        action: StatusMenuItem {
            iconSettings.name: "filled-account"
            text: name
            onTriggered: {
                selectedItem.text = name
            }
        }
    }

    selectedItemComponent: Item {
        id: selectedItem
        anchors.fill: parent
        property string text: ""

        StatusBaseText {
            text: selectedItem.text
            anchors.centerIn: parent
            color: Theme.palette.directColor1
        }
    }
}
```

Closes #436
2022-09-21 18:20:06 +02:00
Pascal Precht ec2aeffc55 feat(StatusQ.Popups): introduce `StatusMenuItemDelegate`
This extracts the `MenuItem` delegate used in `StatusPopupMenu` into its
own component so it can be easily reused for cases where simply supplying the
popup menu with `StatusMenuItem` (which is of type `Action`) isn't enough.

Ideally, the `StatusMenuItemDelegate` would be called `StatusMenuItem` but that
would be a breaking change.

Usage:

```qml

StatusPopupMenu {
    delegate: StatusMenuItemDelegate {
        ...
    }
}
2022-09-21 18:20:06 +02:00