Two new props exposed so we can sed an extra spacing for every N-th item.
- `additionalSpacingOnEveryNItems` - determines for which item to add an extra space
- `additionalSpacing` - determines the value of extra space which will be added
Prior to this commit, a `StatusMessage` can hold only a single
`messageImage`.
There will be scenarios where messages can have multiple attachments.
This is the case when importing messages from discord.
Hence, this commit introduces a new `messageAttachments` property which
is a whitespace separated list of attachment URLs (very analogous to the
already existing `linkUrls` property).
For now, we can safely assume these URLs will resolve to image content.
In future versions however, we might want to support additional content
types to handle any byte stream.
We will then change `messageAttachments` from `string` to a list model
that holds `attachment`s where we also have access to its `contentType`.
This will allow us to decide at runtime which component should be used
to view/play the attachment.
- fix evaluating "Today" and "Yesterday"; can't just compare the two Date
objects, the timestamp will always differ so need to compare
year/month/day only
- best attempt to have the month translated, and year added if they
differ (until Qt6 at least, left a TODO)
Closes#843
`StatusBaseButton` comes with a `MouseArea` that is disabled when the
button is set to being disabled. Prior to this commit it's *also* disabled
when the button is in `loading` state.
This makes sense because a button that is in `loading` state shouldn't
not emit any click signals or trigger hover indications.
There's a scenario though in which we want render a tooltip on top of
the button which is in `loading` state. For the tooltip to show, the
`MouseArea` of the button needs to be enabled.
Hence, this commit adjust `StatusBaseButton`'s behaviour to *not*
disable the `MouseArea` when it's `loading`. Mouse events are already
prevented via the `loading` flag. So the only thing left to do is to
ensure the button doesn't trigger any hover indication when in `loading`
state.
This is analogue to `profileClickable` available on `StatusMessage`,
preventing users to activate a reply-to-message's profile avatar.
At the time of this commit, this is only the case for imported messages.
So we can derive that, if `StatusMessage.profileClickable` is false, then
`StatusMessageReply.profileClickable` is also false.
Hence, we don't need to expose this property to higher level APIs.
- fix the control's width (don't have to be explicit, the QQC2 Control
takes care of calculating the implicitWidth/Height automatically based on
contents)
- while at it, fix the metrics to be able to support RTL
languages too (it was off for Arabic)
- some smaller cleanups too
- Created StatusMainLayout to be used as the apps' main
layout
- Created StatusSectionLayout to be used for all sections as
their base
- Created StatusToolBar as part of StatusAppLayout with
standard component the ActivityButton and posibility to
add custom implementation components
Needed for https://github.com/status-im/status-desktop/issues/6635
This property allows for enabling/disabling whether or not the profile
picture and display name of a message is clickable and also dictates the
cursor type accordingly.
The reason this is being introduced is that, with imported messages from
other systems (e.g. discord, telegram etc), we don't want the user to
trigger the popup menu for more profile information because we don't
know any profile information of messages coming from such systems.
Such messages are signed by the community.
Closes https://github.com/status-im/status-desktop/issues/6680
This is a property that allows for adding information about the origin
of a message (e.g. "Imported from discord").
This will most likely be only useful for messages that have been
imported from any other platform.
Because importing from other platforms requires those message to be
signed by a Status Account, it's undesirable to render the public key of
the account that signed imported messages.
Hence, when there's a `messageOriginInfo`, we don't render the elided
public key.
The culprit here is at the very bottom, in StatusListItem: the toplevel
item was a MouseArea handling the clicks and this causes problems as any
extra buttons placed on top of it get their mouseClick events delivered
in wrong order (after StatusListItem). Fix this by having a MouseArea
handling click events behind the actual toplevel item as a last resort,
catch all handler plus the actual "sensor" being just a MouseArea that
handles merely the hover events
- drop unneeded onPressed/onReleased handlers in StatusChatListCategoryItem
- fix some warnings (typos, unreachable code, shadowed variables)
Fixes: #6733
Scope was to validate why StatusChatListCategoryItem miss behaves when
used in StatusChatListCategory.
On its own all the events works fine, as it can be seen by monitoring
the click events for each item (title, item and buttons).
However, inside StatusChatListCategory the mouse events are overlapped and
button events trigger also for the item. Tried obvious fiexes like
disabling steal of mouse events from buttons but this break the hovering
effect.
Updates: #6733
Fix by disabling layering, leftover from the previous approach of not
using Canvas.
Also investigate TODO regarding artefacts workaround and implement
a proper approach
Fixes: #6640
* fix(StatusAccountSelector): Refactored and reimplemented using `StatusComboBox`
* fix(StatusAssetSelector): Refactored and reimplemented using `StatusComboBox`
* fix(StatusColorSelector): Reimplemented using `StatusComboBox`
* fix(StatusCardPage): Replaced `StatusSelect` with `StatusComboBox`
* fix(StatusSelect): Expose a property to make arrow in the select item visible/invisible
* chore: Remove StatusAssetSelector from StatusQ as its base component StatusSelect is enough to build this further on desktop side.
This component also has dependecy on BE and hence should be moved out.
BREAKING CHANGE:
New `resetSearchLocationClicked` signal introduced.
Click on `X` button is emitting `resetSearchLocationClicked` signal and
lets a component which is using this one to decide what to do instead just
reseting search selection locally to this component.
Needed for https://github.com/status-im/status-desktop/issues/6551
* chore: Remove StatusAssetSelector from StatusQ as its base component StatusSelect is enough to build this further on desktop side.
This component also has dependecy on BE and hence should be moved out.
BREAKING CHANGE:
* fix(StatusSelect): Expose a property to make arrow in the select item visible/invisible
- Resolved binding loops in StatusInput
- Replaced all instances of StatusBaseinput
with StatusInput
- Cleaned up min/max height properties
- Fixed total height calculation
Needed for https://github.com/status-im/status-desktop/issues/6358
- cmake is superior to qmake (e.g. linking custom libraries)
- maintaining two build system generators is costly
iterates: status-im/status-desktop#6510
Component refactor to have a clean and easy-to-read code.
Unnecessary stuff removed.
BREAKING CHANGES: Removed unnecessary properties since the parent already has them.
Needed for status-im/status-desktop#6428
- set the default icon background color to "transparent"; otherwise it
would be black when unset
- set the popup default size to 560x122 (as designed)
- add placeholder for the search field
- correct the font and icon sizes, spacing and margins according to
design
- fix some warnings
add a possibility to override the font size for the contentItem's
StatusBaseText
otherwise it's impossible to do stuff like:
```
StatusCheckBox {
font.pixelSize: 15
}
```¨
1. Fix the issue of floating buttons having incorrect color in Dark theme
2. Added balances param in StatusAssetSelector. ideally should be removed in another task as it is not the correct place for business logic
* Include auto generated object names for all Icons.
This will help Squish tests easily identify Icons. Which is used in test case https://github.com/status-im/status-desktop/issues/6274
* Include auto generated object names for all Icons.
This will help Squish tests easily identify Icons. Which is used in test case https://github.com/status-im/status-desktop/issues/6274
* Include auto generated object names for all Icons.
This will help Squish tests easily identify Icons. Which is used in test case https://github.com/status-im/status-desktop/issues/6274
* refactor(isContact): rename isMutualContact to isContact
BREAKING CHANGE: isMutualContact is replaced by isContact anywhere it was used
* fix(StatusStackModal): init the next/finish buttons
call `updateRightButtons()` also on creation to correctly initialize the
Next and Finish buttons in derived classes, when one overrrides these
can be seen in the Backup Seed dialog where the Next button is not
enabled even though all 3 boxes are checked
* feat(StatusFontSettings): Add StatusFontSettings component to change StatusMenuItems font attributes (#749)
Required by #6090
* fix(StatusPinInput): `forceFocus` function exposed
* fix(StatusTagSelector): corrected font size in to label
Needed for https://github.com/status-im/status-desktop/issues/6349
* fix(StatusActivityCenterButton): fixed actvity icon position (#763)
Closes https://github.com/status-im/status-desktop/issues/6350
* Include auto generated object names for all Icons.
This will help Squish tests easily identify Icons. Which is used in test case https://github.com/status-im/status-desktop/issues/6274
* Include auto generated object names for all Icons.
This will help Squish tests easily identify Icons. Which is used in test case https://github.com/status-im/status-desktop/issues/6274
* Include auto generated object names for all Icons.
This will help Squish tests easily identify Icons. Which is used in test case https://github.com/status-im/status-desktop/issues/6274
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
Co-authored-by: Lukáš Tinkl <lukast@status.im>
Co-authored-by: Michał Iskierko <61889657+endulab@users.noreply.github.com>
Co-authored-by: Sale Djenic <aleksandardjenic@status.im>
Co-authored-by: Alexandra Betouni <31625338+alexandraB99@users.noreply.github.com>
call `updateRightButtons()` also on creation to correctly initialize the
Next and Finish buttons in derived classes, when one overrrides these
can be seen in the Backup Seed dialog where the Next button is not
enabled even though all 3 boxes are checked
both StatusChatList and StatusChatListItem have the same hardcoded width
of 288, so if we want to make the former smaller, StatusChatListItem has
to obey that, otherwise it's cut on its right side in status-desktop
Status Desktop's new designs have a smaller width (272), this fix is
needed for status-im/status-desktop#6343
- set the Image's sourceSize only if it's an SVG, otherwise it is
rendered blurry
- remove antialiasing/mipmap; it's not the correct fix, doesn't really
improve the visual quality for smallish items like icons and just causes
memory/GPU overhead
Similar to what we did in status desktop under
d0a26a326e
- since Qt 5.xy, hover is not enabled by default for QQC2, so enable it
unconditionally as we are a desktop app anyway
- this fixes several hover effects being broken, mostly for builtin
components like MenuItem and some buttons (eg. the leftmost NavBar)
where we haven't enabled those with `hoverEnabled: true` explicitely
since most of the compilation time is spent on creating the QRC bundle
and the resulting binary is quite huge, advice the `rcc` compiler to add
support for "big resources"
(cf https://doc.qt.io/qt-6/resources.html#embedding-large-files)
Also pass the env $LDFLAGS to qmake (to be able to link e.g. with mold,
which again greatly reduces the time to link the binary)
this leads to 6-10x faster time when recompiling
(Linux, gcc 12.1.1, mold 1.3.0)
BEFORE:
Clean build:
real 0m57,256s
user 1m25,869s
sys 0m40,963s
Incremental build, one file touched:
real 0m54,323s
user 0m54,012s
sys 0m2,934s
AFTER:
Clean build:
real 0m7,276s
user 0m21,001s
sys 0m37,256s
Incremental build, one file touched:
real 0m5,569s
user 0m4,850s
sys 0m0,840s
- Added community banner.
- Added community restrictions / private.
- Modified card background shape.
- Modified logo shape and position.
- Modified text position and size.
- Modified `loading state` card.
- Added `DropShadow` effect.
- Added new icons.
- Added new community images and updated model.
- Added numbers format function.
- Added following new properties: `banner`,`activeUsers` `communityColor`, `isPrivate` and `tokenLogo`.
Closes#692
- Different tag color depending if the entry `isReadonly` or not.
- Tag disabled if the entry `isReadonly`.
- Possibility to show icon if entry contains the proper info.
- Added property `orderByReadonly` to position `isReadonly` entries in the left.
Updated sandbox project examples according to new tag updates.
Closes#694
- Added loader in right component position and removed `StatusChatInfoButton` specific.
- Updated sandbox and added new example in Layouts with another different component than the `StatusChatInfoButton`.
BREAKING CHANGES:
The toolbar now expects a component to be loaded. The previous `StatusChatInfoButton` component has been removed and needs to be passed as a component from outside whenever needed.
Breaking changes in `desktop` will be addressed in: https://github.com/status-im/status-desktop/pull/5823
It includes logo, title, community members, description, loaded, community id, popularity, tags row (that must be replaced to a new StatusQ component `StatusListItemTagRow`.
It also contains `locale` property used to decide the member's number format.
Added loading card.
Added Community Card page (components test) and view (demo app) in sandbox.
Added component documentation.
Part of task: https://github.com/status-im/status-desktop/issues/4936
In case you're dynamically change source image and image width and height
are way bigger than the rounded image component width and height, resizing
was not done correctly.
update
update
The click handler used inside the component broke in one of the latest
changes done in `StatusListItem` where it expects two arguments being
passed to its click handler.
This commit fixes it by supplying all needed arguments (where `itemId`
is always `''` unless set differently)