Commit Graph

281 Commits

Author SHA1 Message Date
Maze
180c02daed Disable seen indicator link
The seen indicator is a link to #state-text.
This link should not be clickable.
Fixes #247
2021-08-30 03:01:53 +02:00
miruka
94bf41dc3e Fix presence loop with unavailable/offline
Yes, again.
Also removes echo presence states to simplify things.
2021-07-26 04:39:58 -04:00
Maze
d32370fc3a Made some animations unaffected by theme
People modify animationDuration because they want a snappy client.
But it also affects a few things that do not contribute to that
and should remain constant speed:
- Busy indicator
- Progress bar animation
- Ping indicator in AddAccount ServerBrowser
- Image rotation button cooldown
2021-07-26 04:39:58 -04:00
miruka
67edd63c5a HComboBox: allow popup and indicator to be null 2021-07-26 04:39:58 -04:00
miruka
18f742966e Presence fixes and improvements
- Allow using invisible mode on servers not supporting presence, to
  make use of the prevention of sending typing notifications and read
  marker updates

- For servers not supporting presence, display the account's presence
  orb in the left pane with half opacity

- Indicate in the presence orb tooltip when the presence we set hasn't
  yet been noticed by the server/the server doesn't support presence

- When reconnecting after being offline, if the server doesn't indicate
  we have a status message [set from another client], restore any
  previous message we had set in the current client

- Show our status message striked out when we're invisible or offline to
  indicate that it isn't being broadcasted

- Some code style cleanups

- Try to handle cases where we set a presence, but receive a new
  presence event for our account before the server takes notice of that
  new presence we want, which probably resulted in the "account keeps
  switching between online and unavailable every few sec" glitch
2021-07-26 04:39:58 -04:00
miruka
30919eca7a FieldHelpButton: always show tooltip on click
Rather than toggling display of the tooltip.
Since the tooltip will show up on hover too, the user might quickly
hover then click on the button only to see the tooltip immediatly
disappear.

Closing the tooltip can still be done by moving the cursor away from the
button, or tapping on it/anywhere else.
2021-07-26 04:39:57 -04:00
miruka
01e7a1ac13 Add back button to all pages in thin window mode
In "mobile mode" where main pane is hidden due to application's width:

- Show a back button in the tab bar of the AccountSettings and
  AddChat pages

- Show a back button in the address field (opposite to the "next
  button") of the ServerBrowser, unless there are no accounts added yet
  (application first run) and the main pane would be empty
2021-07-26 04:39:57 -04:00
miruka
46e058f2de Add conveniance HDrawer.normalOrForceCollapse prop 2021-07-26 04:39:57 -04:00
miruka
bcb9ffcf9d Room settings: add room ID text area + copy button
The only way to see a room's ID previously was to right click a room in
the left pane, copy option, and paste it somewhere.
2021-07-26 04:39:57 -04:00
miruka
bbe6415336 Have radius only on text fields/areas with borders
Fixes the appearance of the filter room/members fields
2021-03-03 17:14:57 -04:00
miruka
d828312a24 Fix focus problems for submenues in context menues 2021-03-03 17:14:57 -04:00
miruka
e9af47e1c7 Fix popups not being flickable by keyboard 2021-03-03 17:14:56 -04:00
miruka
e45055f48c Indicate when combo box accepts custom input 2021-03-03 17:14:56 -04:00
miruka
768a343412 Fix spinbox glitch on min/max numbers 2021-03-03 17:14:56 -04:00
miruka
0f2023b924 Customize check mark for checkable menu items 2021-03-03 17:14:56 -04:00
miruka
7604b0f96a Customize submenu arrow for HMenuItem 2021-03-03 17:14:56 -04:00
miruka
765ce46aeb Add popup to edit push rules 2021-03-03 17:14:56 -04:00
miruka
71cd509a9d Fix text wrapping for HRadioButton 2021-03-03 17:14:56 -04:00
miruka
44051f706d Prevent horizontal flick in HFlickableColumnPage
These pages and popups using them were always horizontally scrollable,
even though their inner content didn't exceed the page width. Qt bug?
2021-03-03 17:14:56 -04:00
miruka
c7d4f719b6 Security.qml: fix first DeviceSection padding 2021-03-03 17:14:56 -04:00
miruka
755d954948 Merge account settings Encryption & Sessions page 2021-03-03 17:14:55 -04:00
miruka
bb74221e3e Add HRadioButton base component 2021-03-03 17:14:55 -04:00
miruka
e0cb040fd1 Add HComboBox base control 2021-03-03 17:14:55 -04:00
miruka
9967638694 Apply theme radius on context menus 2021-03-03 17:14:55 -04:00
miruka
7af1456c1d Add visible indicator when downloading files
Downloading file messages will now show a transfer control above the
composer, similar to uploads. Measuring the progress or pausing the
operation is not possible yet.
2021-03-03 17:14:55 -04:00
miruka
e4959f503c Reimplement swipe to exit sidepane via DragHandler 2021-03-03 17:14:55 -04:00
miruka
7029148c87 Fix some chat right pane issues
- Remove the default Qt dragMargin: when the right pane was
  hidden/collapsed in the interface, accidentally clicking on this
  invisible 10 pixel-wide zone to the right edge of the window
  would interfere with any button under it, e.g. the button to
  expand the pane

- Fix expand pane button failing to bring back pane (due to dragMargin)
  and turning the chat page header invisible

- Disable swiping to exit panes, interferes with buttons and tiles
2021-03-03 17:14:55 -04:00
miruka
8175bbde0e Fix keyboard scrolling when kinetic is disabled 2021-03-03 17:14:55 -04:00
miruka
1a101d9888 Disable new theme test code for now 2021-03-03 17:14:55 -04:00
miruka
8d4e67d6a4 Fix EventList stuff depending on scroll position
Add visibleStart/End properties to HListView that take into account the
ListView's originX/Y, and not just contentX/Y which can be largely
offset.

Use those new properties in EventList for message focusing (fix
ctrl+up/down sometimes incorrectly focusing the message at the middle of
the screen even when we're scrolled at the bottom), and detection of
when we can update the read marker (fix cases when we're scrolled at the
bottom but the read marker never updates).
2021-03-03 17:14:55 -04:00
miruka
42f04b013e Add PCN theme system
Coexist with the old theme system for now. QML components have to be
updated to use the new system.
2021-03-03 17:14:55 -04:00
miruka
eed2cc4818 Remove double blank lines from QML files 2021-03-03 17:14:55 -04:00
miruka
db12036372 Use new PCN format for settings config file 2021-03-03 17:12:09 -04:00
miruka
ed74592769 Add HToolTip.instantToggle(), use for some buttons
Used for buttons that trigger a tooltip instantly: if the tooltip is
currently visible, hide it.
2021-03-03 17:12:09 -04:00
miruka
0eb57c5986 Move composer alias "?" icon to be inside field
Be more consistent with the user ID field and its copy button.
2021-03-03 17:12:09 -04:00
miruka
6af4cca315 Add FieldCopyButton.qml, split from SignInSso.qml 2021-03-03 17:12:09 -04:00
miruka
32484c3ae5 Prevent focusing readOnly field/areas on click 2021-03-03 17:12:09 -04:00
miruka
3d8914cb39 HTextContextMenu: less entries for readOnly fields
If the context menu is for a readOnly field or area, hide pointless
options like undo/redo and cut/paste.
2021-03-03 17:12:09 -04:00
miruka
dba41c30c2 Put HAvatar's tooltip image inside a Loader
Make sure to not load tooltip images unless the user is
currently trying to see one by hovering on an avatar.
This also seems to reduce idle CPU usage.
2021-03-03 17:12:09 -04:00
miruka
7564b40c3e Fix copying multi-line selected rich text
For rich text (rendered HTML) fields and areas, the selectedText
property for some reason contains "\u2028" or "\u2029"
characters that look like newlines in Qt programs but are just
invisible anywhere else. Translate them to normal "\n".
2021-03-03 17:12:09 -04:00
miruka
8acc7299e9 Add workaround for delegate stuck transition bug
Sometimes and randomly, a HListView/HGridView delegate's
add/populate transition will stop before completion.

This especially happens on startup when loading a large room list,
one room might get stuck and left tiny or invisible, despite its
normal space still being taken.
2021-03-03 17:12:08 -04:00
miruka
2664bf1e93 HTile: prevent opening multiple context menus
If a context menu is already opened for that HTile when right clicking
or using a keybind like Alt+P (openPresenceMenu), close it instead of
just creating a duplicate one.
2021-03-03 17:12:08 -04:00
miruka
ee1091b4dc Don't pass Python Future objects to QML
Returning a Future doesn't work on Windows for some reason
(https://github.com/thp/pyotherside/issues/116).

Instead of using these objects from QML to cancel running coroutines,
call a Python QMLBridge function that takes a coroutine UUID and will
take care of the cancelling.
2021-03-03 17:12:08 -04:00
miruka
53d2ab17af Fix display of right-to-left text in timeline
Set an explicit default left alignment for label components, to prevent
other people's right-to-left names or text from messing up the UI
in a left-to-right environment.
2021-03-03 17:12:08 -04:00
miruka
d9118ef24e Clear HList/GridView checked on model change
Clear the checked items and prevent potential segfaults
2021-03-03 17:12:08 -04:00
miruka
c861c29b73 Add nonKineticScrollingSpeed multiplicator setting 2021-03-03 17:12:08 -04:00
miruka
1df7cb8014 Add copyright header to source code files
Copyright notice as per
https://reuse.software/spec/#format-of-copyright-notices

Fixes #134
2021-03-03 17:12:08 -04:00
miruka
60a57db33e Fix QML Connections-using code for Qt 5.12 2020-09-16 08:29:07 -04:00
miruka
e65202cfbe Fix checkbox update when default state changes
Make sure to update checkboxes when their default value changes
and the user hasn't already changed the value themselves.

This fixes a dangerous issue with new room switching and
room settings checkboxes keeping their value from the previous room.
2020-09-16 07:46:27 -04:00
miruka
9b1608b696 Delay members loading for faster room switching 2020-09-13 16:05:23 -04:00