5589 Commits

Author SHA1 Message Date
Anthony Laibe
2b5b56b0fa feat(StatusChatInfoToolBar): make statusMenuButton public 2022-09-21 18:20:03 +02:00
Pascal Precht
5c74322a50 feat(StatusListItem): add identicon support
Closes #261
2022-09-21 18:20:03 +02:00
Pascal Precht
c17383ce9c feat(StatusChatListItem): introduce muted badge visuals
Also ensure title font weight stays `normal` when item is `muted`.

Closes #258, #259
2022-09-21 18:20:03 +02:00
Pascal Precht
bca231f8c7 chore: add missing version to changelog 2022-09-21 18:20:03 +02:00
Pascal Precht
cbf5950e81 chore: add initial CHANGELOG 2022-09-21 18:20:03 +02:00
Pascal Precht
17d5978fe4 feat(StatusFlatRoundButton): introduce highlighted color for secondary type
Closes #245
2022-09-21 18:20:03 +02:00
B.Melnik
4fcdbab22e feat(StatusBaseInput): Add focused state
Closes: #240
2022-09-21 18:20:03 +02:00
Pascal Precht
078c12e796 feat(StatusChatToolBar): add tooltips to action buttons
Closes #244
2022-09-21 18:20:03 +02:00
Pascal Precht
ebbc9f2739 feat(StatusChatToolBar): add members and search button
This commit adds the members and search button which are needed for certain
features in Status Desktop. In views where these aren't needed, each button
can be set `visible: false` individually:

```qml
StatusChatToolBar {
    ...
    membersButton.visible: false
    searchButton.visible: false
}
```

Closes #243
2022-09-21 18:20:03 +02:00
Pascal Precht
31023aa462 fix(StatusChatList): ensure badge is also shown for one to one messages 2022-09-21 18:20:03 +02:00
Pascal Precht
78ed4642d6 chore: ensure StatusChatList receives the proper value for mentions
This is due to a change in how mentions and unread messages are indicated.
See 7fbccec227 for more information.
2022-09-21 18:20:03 +02:00
B.Melnik
056704f68d fix(StatusBaseInput): Fix focus area
Closes: #241
2022-09-21 18:20:03 +02:00
Pascal Precht
15b8d1e896 feat(StatusListItem): add Danger type support
Usage:

```qml
StatusListItem {
    title: "Some title"
    icon.name: "delete"
    type: StatusListItem.Type.Danger
}
```

Closes #248
2022-09-21 18:20:03 +02:00
Pascal Precht
c85d626f1e feat(StatusRoundIcon): enable icon.color support 2022-09-21 18:20:03 +02:00
Pascal Precht
98783ee559 feat(StatusListItem): support letter identicons
This adds support for letter identicons by using the `icon.isLetterIdenticon`
flag:

```qml
StatusListItem {
    title: "Some name"
    icon.isLetterIdenticon: true
    icon.background.color: "orange"
}
```

Closes #239
2022-09-21 18:20:03 +02:00
Alexandra Betouni
dd23ef2990 [#202] Added Picker button
Adding picker button
* As an example it opens Qt's ColorDialog, as soon as
  a color is selected there, the button is colored
  with that. Final color picker to be implemented in
  a seperate task.

Also minor improvements in main.qml and sandbox.pro

Closes #202
2022-09-21 18:20:03 +02:00
Pascal Precht
12b35ba88c feat(StatusModal): expose loaded content
As discussed in #237, this is needed for consumers to access content
children from outside `content`.

Usage:

```qml
StatusModal {
  id: modal
  content: StatusBaseText {
      text: "Foo"
  }

  rightButtons: [
      StatusButton {
          text: "Change text"
          onClicked: {
              modal.contentComponent.text = "Bar"
          }
      }
  ]
}
```

Fixes #237
2022-09-21 18:20:03 +02:00
B.Melnik
1a81ab0924 feat(Controls): introduce StatusBaseInput
Usage: The same interface like TextField

Closes: #106
2022-09-21 18:20:02 +02:00
Pascal Precht
00e2a7406a chore: add safety to satisfy QML 2022-09-21 18:20:02 +02:00
Pascal Precht
82960a912b fix(StatusChatInfoButton): make component identicon aware
Closes #228
2022-09-21 18:20:02 +02:00
Pascal Precht
c0c46b6dff fix(StatusChatInfoButton): prefix chat name with "#" if needed
Closes #229
2022-09-21 18:20:02 +02:00
Pascal Precht
c08cf4b851 fix(StatusChatInfoButton): vertically center title if no subtitle is provided
Closes #230
2022-09-21 18:20:02 +02:00
Pascal Precht
5aaa5590c7 fix(StatusChatInfoButton): disable hover effects when sensor is disabled
Closes #231
2022-09-21 18:20:02 +02:00
Pascal Precht
a3db546dc5 fix(StatusChatListCategory): only try open popup when supplied
Closes #220
2022-09-21 18:20:02 +02:00
Pascal Precht
087adef8df fix(StatusChatListAndCategories): make chat list visibily flag work
Closes #217
2022-09-21 18:20:02 +02:00
Pascal Precht
867be4194d fix(StatusChatList): ensure popupMenu closeHandler don't break
These broke because we were referring to a `highlighted` property that
was wrongly scoped.

Fixes #216
2022-09-21 18:20:02 +02:00
Pascal Precht
2fc884244e fix(StatusChatListAndCategories): ensure chatItemUnmuted event is propagated
Closes #219
2022-09-21 18:20:02 +02:00
Pascal Precht
b8e55a946c fix(StatusChatListAndCategories): ensure chat list receives popup menu
Closes #218
2022-09-21 18:20:02 +02:00
Pascal Precht
98ebedc63c feat(StatusChatList): expose hook to lazily calculate chat item names 2022-09-21 18:20:02 +02:00
Pascal Precht
5faebe7002 fix(StatusMenuSeparator): ensure height is 0 when invisible or disabled
Closes #212
2022-09-21 18:20:02 +02:00
Pascal Precht
c62e459deb fix(StatusChatList): use fallback property to determine unread message count 2022-09-21 18:20:02 +02:00
Pascal Precht
11bac6ecfd chore(README): re-add sandbox app instructions
Those have been accidentally removed in previous commits.
2022-09-21 18:20:02 +02:00
Iuri Matias
9735c7cd4b Update README.md 2022-09-21 18:20:02 +02:00
Pascal Precht
b7448486c4 chore(README): add table of components 2022-09-21 18:20:02 +02:00
B.Melnik
301aabe594 fix: Add missing .qml to resources, add qmlcache to gitignore 2022-09-21 18:20:02 +02:00
B.Melnik
1f875743eb bug(StatusLoadingIndicator): Change Animator to Animation
Closes: #188
2022-09-21 18:20:02 +02:00
Pascal Precht
46876b79b9 fix(StatusChatListItem): ensure chat name elides when it's too long
Closes #151
2022-09-21 18:20:02 +02:00
Pascal Precht
29782dca80 fix(StatusChatListItem): ensure public chat names are prefixed with '#'
Closes #191
2022-09-21 18:20:02 +02:00
Pascal Precht
d46130b9a5 refactor(StatusPopupMenu): expose category and chat id via open handler
Closes #192
2022-09-21 18:20:02 +02:00
Pascal Precht
dbb8d941a5 feat(StatusRoundedImage): introduce identicon support
This just introduces a new `StatusImageSettings` property `isIdenticon`
which can be used to determine whether a `StatusRoundedImage` should
render with a background + border (which is the case for identicons).

It also updates the `StatusChatList` delegate to consider that property
and have it properly decide how to render the UI.

Closes #173
2022-09-21 18:20:02 +02:00
Pascal Precht
8a2af7e264 feat(StatusChatList): introduce profileImageFn property
This property enables users to pass as factory function to `StatusChatList`
component that determines the profile image of a given chat id.

Usage:

```qml
import StatusQ.Components 0.1

StatusChatList {
    ...
    profileImageFn: function (id) {
        // `id` is the model id of the current chat item iterator
        return ... // has to return a profile image url
    }
}
```

In addition to this property, this commit also makes the component
expect an optional `model.identityImage` in case it's already provided.
That way, `profileImageFn` can be omitted.

Closes #174
2022-09-21 18:20:02 +02:00
Pascal Precht
48146b2fcf feat(Components): introduce StatusContactRequestsIndicatorListItem
Usage:

```qml
import StatusQ.Components 0.1

StatusContactRequestsIndicatorListItem {
    title: "Contact requests"
    requestsCount: 3
    sensor.onClicked: ...
}
```

Closes #175
2022-09-21 18:20:02 +02:00
Pascal Precht
bad322e146 refactor: make chat component enum variants match protocol values
Closes #183
2022-09-21 18:20:02 +02:00
Pascal Precht
c2f418205f feat(StatusChatList): introduce popupMenu property
Chat list items can open a context on right click as well, so `StatusChatList`
needs to provide an API for users to pass down a `StatusPopupMenu` accordingly.

This is now possible with a dedicated `popupMenu` proporty that can be
used as follows:

```qml
StatusChatList {
    ...
    popupMenu: StatusPopupMenu {

        property string chatId

        openHandler: function () {
            ...
        }

        StatusMenuItem {
            ...
        }
        ...
    }
}
```

As will all `popupMenu` properties in StatusQ component, having this explicit API
option enables us to have control over how triggering components (in this case chat
list items) behave when they open a context menu (e.g. keeping them highlighted as long
as the menu is active).

When defining a `chatId` property, `StatusChatList` will hydrate it with the id of
the chat list item that has triggered the menu.

If there's more logic to be executed upon opening the menu, `openHandler` serves
as a hook similar to other popup menus. Inside the hook, users have access to the
specific `chatId`.

Closes #171
2022-09-21 18:20:02 +02:00
Pascal Precht
4d595221eb fix(StatusModalHeader): ensure header has enough height for children
Closes #185
2022-09-21 18:20:02 +02:00
Pascal Precht
5e127c7194 fix(StatusRoundedImage): ensure images are scaled and positioned properly
Closes #172
2022-09-21 18:20:02 +02:00
Pascal Precht
1a14f9ebe2 fix(StatusChatList): expect model.color instead of iconColor prop 2022-09-21 18:20:02 +02:00
Pascal Precht
c56c0b684d fix(StatusChatList): ensure component provide default width
Closes #176
2022-09-21 18:20:02 +02:00
Pascal Precht
7d39fee193 feat(StatusChatListItem): add highlighted property
Similar to other controls and components, chat list items can be in a
`highlighted` state, for example when popup menus are active.

Closes #178
2022-09-21 18:20:02 +02:00
Pascal Precht
d389196f9e fix(StatusListItem): ensure icon background in secondary type works correctly 2022-09-21 18:20:02 +02:00