Skip to content

Releases: quotient-im/Quaternion

Version 0.0.9.4

29 Apr 10:04
550c541
Compare
Choose a tag to compare

Here it comes - a brand new release of Quaternion, after a long half a year wait and more than 400 commits - best ever Quaternion! The new Quaternion requires the new version of libQMatrixClient - 0.5.1 or higher (0.5.1.2 is strongly recommended) that enables many of its features, including attachments uploading and room upgrades. Read on for details.

Thanks

Thanks-of-the-release go to:

  • @krkk for an array of PRs making Quaternion less glitchy and more functional as well as for the continued work on Polish translation;
  • @aaronraimist who packaged Quaternion for Macs;
  • translators for complete translations: @miocho and @krombel (German), @MurzNN (Russian).

The full list of contributors to the code can be found at GitHub, and translators are at Lokalise. Special thanks go to nepugia for the relentless testing.

Changes

The full lists of (closed issues and commits) are quite long but here are the key additions and changes:

  • Feature (#187): native scrollbars can be used instead of shuttle dials.
  • Feature (#32, #209): attachments support; an image or other file can be posted to a room, with automatic media type detection.
  • Feature (#507): basics of internal navigation (still limited, the work is ongoing):
    • rooms (only those in your room list for now) can be opened using "Open room" dialog (Ctrl-O) - by their id, alias or matrix.to URL;
    • direct chats can be opened by entering the user ID or the matrix.to URL into the same dialog;
    • moreover, middle-clicking on a user id/matrix.to link in the timeline also opens a direct chat;
    • navigating to event permalinks is not there yet, pending support in libQMatrixClient (give your votes in quotient-im/libQuotient#252).
  • Feature (#437): user list can be searched and filtered (thanks to @rushsteve1).
  • Feature: support for room versions: room version can be chosen when creating a room (not a direct chat though; will be fixed in 0.0.9.5) and is displayed and can be upgraded in the settings room.
  • Feature (#484): Quaternion can use Qt Keychain now to securely store access tokens (thanks to @ddanilov). Although this works on Windows as well, the Windows binaries available from here don't have it yet.
  • Feature (#123): Timeline can be scrolled using Ctrl-PageUp/PageDown and (if directly focused) Up and Down keys. This is a tentative implementation that may work in some edge cases; 0.0.9.5 may bring something more robust.
  • Feature (#277): horizontal scrolling for messages with wide preformatted parts.
  • Feature (#403 and #476): Quaternion can close to tray and also start minimised to tray (thanks to @ddanilov and @krkk).
  • Feature (#509/#535): Configurable message quoting (plain text only) is implemented. Replies and rich-text quoting are left for a later version.
  • Feature (#455): if the server supports it, room members are lazy-loaded; this should greatly improve initial sync times while otherwise being almost invisible for end users.
  • Enhancement (#445): local echo can be suppressed (UI/suppress_local_echo in config).
  • Enhancement (#451): more actions in right-click menus for the room list and the user list (thanks to @krkk).
  • Enhancement (#381): middle-click on a room name in the room list opens this room; middle-click on a user name in the user list opens a direct chat with the user (thanks to @krkk).
  • Enhancement (#448, #483): timeline scrolling is more responsive.
  • Enhancement (#246): when typing a very long message, the message input only increases its height up to a limit, and scrolls after that.
  • Enhancement (#338): similarly, longer multiline topics no more strut the room header to no limit.
  • Enhancement (#505): Quaternion now warns about attempts to login twice into the same account (thanks to @krkk).
  • Enhancement (#491, #471/#478): room creation events and withdrawn invitations (thanks to @krkk) are correctly displayed in the timeline; also unknown state events got a clearer timeline description (even if a bit techy as it uses the state event type and key verbatim).
  • Enhancement (#558): better validation of room/user ids in /commands.
  • Enhancement (#500): no more scary "unencrypted" word in the message placeholder text - the used protocol (HTTP or HTTPS) is mentioned instead.
  • Enhancement (#555): /shrug gained an optional text argument.
  • Enhancement: instead of an error message with no clear way out expired tokens now lead to a handy re-login dialog.
  • Enhancement: the room settings dialog now shows room id.
  • Enhancement: Ctrl-Q to quit also works on Windows.
  • Bugfix (#546): HTML in author display names is properly escaped.
  • Bugfix (#566): fixed crashing upon logout.
  • Bugfix (#524): fixed crashing after changing the tag order.
  • Bugfix (#532): the login dialog is now prefilled with the first not-logged-in account, rather than an arbitrary account.
  • Bugfix (#559): fixed not remembering the bottommost timeline position after clicking the "Scroll to bottom" button.
  • Bugfix (#564): In the "Add tags" dialog, the Tab key now switches focus instead of entering a Tab character.
  • Bugfix (#486/#488): more accurate logic for user name highlighting (thanks to @redsky17).
  • Bugfix (#511): ban reason is displayed in the timeline now.
  • Bugfix (#542): the to-be-created alias is displayed correctly in the room creation dialog (the actually created alias has always been correct).
  • Bugfix (#499): expanded/collapsed state of room groups is correctly remembered and restored.
  • Bugfix (#492): tab order in the login dialog is reasonable now.
  • Bugfix (#490): window title and room caption get updated when the room is renamed etc. now.
  • Bugfix: no more visual glitches when animation duration is configured to 0.
  • General bug fixing and performance tweaking.
  • Lots of work on i18n and l10n

Building and packaging

Quaternion 0.0.9.4 has gained first-class support of macOS; huge thanks to @aaronraimist for making it happen.

Somewhat similar to .dmg files on macOS, AppImage files are built and provided for those on Linux who want to test the bleeding edge of Quaternion without having to build it locally (#467, thanks to @probonopd). For now, these are not supplied with release versions, and are only provided by the continuous integration pipeline.

This Quaternion release is the last one to use Qt 5.7 (the next minimum required version is likely Qt 5.9). From this version on, Quaternion also depends on the Multimedia component of Qt (Linux packagers, update your build dependencies).

Starting from betas of this release, the naming convention for Git tags slightly changes. Tags no more start with v. Beta versions will end with -betaN and release candidates will use -rcN suffix.

To enable Qt Keychain support (#484), packagers are encouraged to install qtkeychain development files to their build environments.

From 0.0.9.4 beta 1 onwards, -DUSE_INTREE_LIBQMC is ON by default, so Quaternion will use the in-tree library if it's there. However (and that's a change compared to 0.0.9.3 behaviour - see #517), if CMake doesn't find in-tree library sources, it will try to look around for an installed library development files. This means that as long as Quaternion sources are taken from git without submodules, packagers don't need to do anything. Pass -DUSE_INTREE_LIBQMC=OFF to suppress the fallback and make sure only an installed library is considered.

thanks to @ddanilov

Version 0.0.9.4 RC3

17 Apr 23:15
Compare
Choose a tag to compare
Version 0.0.9.4 RC3 Pre-release
Pre-release

This is the last candidate before the release, with the following bugfixes on top of RC2:

  • (#573) Resend and Discard buttons work again (thanks to @krkk)
  • (#566) A crash upon logout has been fixed (thanks to @aaronraimist for very informative stackdumps)
  • (#577) A confirmation to continue use an unstable version is only displayed now to those who can upgrade rooms
  • Zeroing the animations duration no more leads to artifacts from incomplete animations
  • (#532) Expired access tokens are now processed gracefully, with a prompt to re-login
  • (#564) Hitting Tab in the "Add tags" dialog switches focus as proper instead of entering a tab character

libQMatrixClient 0.5.1.2 is recommended, 0.5.1 or later is compatible.

Version 0.0.9.4 RC2

06 Apr 12:58
Compare
Choose a tag to compare
Version 0.0.9.4 RC2 Pre-release
Pre-release

This Release Candidate fixes two bugs in RC1:

  • Renaming the user no more causes multiple incarnations of it in the user list (this one is also fixed in libQMatrixClient 0.5.1.1 but even if you run 0.5.1, it won't happen in Quaternion anymore).
  • The correct account is used to complete users/rooms in the "Open room" dialog.

Version 0.0.9.4 RC

05 Apr 06:05
Compare
Choose a tag to compare
Version 0.0.9.4 RC Pre-release
Pre-release

The release candidate for version 0.0.9.4 is out, with more fixes and a few enhancements on top of beta2:

  • Fix (#524): Quaternion no more crashes after changing the order of tags.
  • Fix (#546): HTML pieces in display names are correctly escaped now.
  • Fix: In "Add tags" dialog, empty lines are no more treated as empty tag names, just skipped.
  • Fix (#558): Regular expressions checking arguments of slash-commands have been fixed to match the Matrix identifiers grammar - thanks to nepugia.
  • Fix (#559): The bottommost scroll position is also remembered if the last thing before switching away from the room was clicking the "Scroll to bottom" button.
  • Fix (#500): Instead of scaring people away with the word "unencrypted", a used protocol is now clearly indicated in the message placeholder line (hopefully, most people using Quaternion do know what HTTP and HTTPS mean).
  • Fix (#542): If the domainpart used by your homeserver does not coincide with the actual domain for connections, Quaternion doesn't confuse you anymore with incorrectly constructed room aliases in the "Room settings" dialog (e.g., #alias:matrix.example.org instead of #alias:example.org). This was just a visual wart; no actual aliases have been hurt.
  • Fix (#568): uploaded images are displayed in the timeline again, after being broken for the most time of 0.0.9.4 development (0.0.9.3 didn't have uploading at all).
  • Enhancement: The room settings dialog now includes the room id.
    A few enhancements have arrived thanks to @krkk:
  • #555: /shrug now accepts optional text after it. ¯\_(ツ)_/¯
  • #557: The text in the users list filter is saved with rooms now; when you switch a room, it's flushed/switched as well.
  • #547: "Open room" dialog now suggests canonical room aliases (from the local room list) and user ids (from all known users), as you type. Non-canonical aliases need quotient-im/libQuotient#301 to be fixed (unfortunately, it will only come in libQMatrixClient 0.6 due to compatibility breakage).

Starting from this version updating the translation base of strings (aka quaternion_en.ts) no more happens at each build; it was disrupting the work of people casually patching Quaternion for their purposes. To update the strings you need to run cmake --build <your_build_dir> --target trbase - this should normally be only run by developers adding/changing/removing those strings in the code with intention to contribute these changes to the main source tree.

Version 0.0.9.4 beta2

14 Mar 07:24
c8cca85
Compare
Choose a tag to compare
Version 0.0.9.4 beta2 Pre-release
Pre-release

Here comes another 0.0.9.4 pre-release. The changes on top of beta are:

  • This version uses the freshly released libQMatrixClient 0.5.0.2, fixing issues with upgraded rooms (debug builds no more crash upon seeing some of them) and with v3 rooms (read receipts and redactions now work with v3 rooms too). In case you wonder - #gsoc:matrix.org has been recently upgraded to v3.
  • (#338) The room header no more streches too far on long multiline topics; and along the way, it gained swanky animations!
  • "Open room" dialog fixed when there's just one account.
  • (#530) Quaternion no more crashes upon attempts to search a user with no room opened. Actually, it even disables the search box for the avoidance of doubt.
  • (#534) Uploading files with no supplementary text works now.
  • Updated translations.
  • CI builds for all platforms including Windows can now be found in one place at bintray.

Version 0.0.9.4 beta

03 Mar 03:16
Compare
Choose a tag to compare
Version 0.0.9.4 beta Pre-release
Pre-release

This is a pre-release for early testers, translators and packagers, based on the freshly released libQMatrixClient 0.5. Testers can use the files attached below; translators are welcome to https://lokalise.co/project/730769035bbc328c31e863.62506391; and packagers, please, double-check that your builds still work on the latest Quaternion sources.

The following are major introduced features (closed issues, commits):

  • #484: Qt Keychain support to securely store access tokens (thanks to @ddanilov).
  • #507: Finally, some basics of internal navigation from the timeline:
    • rooms can be opened using "Open room" dialog (Ctrl-O) - by their id, alias or matrix.to URL;
    • moreover, direct chats can be opened by entering the user ID or matrix.to URL into the same dialog;
    • and even more, middle-clicking on a user id/matrix.to link in the timeline also opens a direct chat.
    • navigating to event permalinks is not there yet, pending support in libQMatrixClient (give your votes in quotient-im/libQuotient#252).
  • #187: Native scrollbars can be used instead of shuttle scrollbars.
  • #448, #483: there's been a bit of working on more responsive scrolling. If scrolling still feels unnatural, please leave a note in #483.
  • #123: Timeline can be scrolled using Ctrl-PageUp/PageDown and (if directly focused) Up and Down keys. This is a tentative implementation but is likely to be around at least until 0.0.9.5.
  • #32, #209: Attachments support; an image or other file can be posted to a room, with automatic media type detection. No support for thumbnailing yet (which causes #518).
  • #437: User list can be searched and filtered (thanks to @rushsteve1).
  • #455: If the server supports it, room members are lazy-loaded; the full list for the given is requested upon switching to it though. Normally this should a no change for end users.
  • #403 and #476: Quaternion can close to tray and also start minimised to tray (thanks to @ddanilov and @krkk).
  • #381: middle-click on a room name in the room list opens this room; middle-click on a user name in the user list opens a direct chat with the user (thanks to @krkk).
  • #517: for those who build from sources: -DUSE_INTREE_LIBQMC is ON by default; however, if CMake doesn't find in-tree library sources, it will try to look around for an installed library development files. Pass -DUSE_INTREE_LIBQMC=OFF to suppress the fallback.

Packaging news:

  • #449, #456, #457, #459, #463: building/packaging on macOS is brought to the same level as on Linux (thanks to @aaronraimist for driving it).
  • #467: Similarly, AppImage files are built and provided for those on Linux who want to test the bleeding edge of Quaternion without the hassle of building it locally (thanks to @probonopd).

Both .dmg files for macOS and AppImages for Linux for each pushed group of commits are available from the Quaternion's CI repo at bintray.

Version 0.0.9.3

21 Oct 11:15
Compare
Choose a tag to compare
Version 0.0.9.3 Pre-release
Pre-release

Quaternion 0.0.9.3 is out, reaching out to bigger audience with localisation and offering new features such as the room list ordered by tag, new slash-commands and, of course, bug fixes. This version is based on libQMatrixClient 0.4.0.

Thanks

Special thanks go to Karol Kosek (@krkk) for making Quaternion localisable and for the Polish translation; the full list of contributors can be found here.

Changes

The commit log has it all; the highlights are:

  • Feature (#323): rooms are grouped by tag now. This is not configurable for now but will be before version 0.1.
  • Feature (#76): Local echo, with buttons to discard and resend the message (#390).
  • Feature (#248): Optionally hiding join/leave events and redactions.
  • Feature (#324): Quaternion now has the About dialog box (thanks to @rushsteve1), with information about Git commits (selectable!) and links to contributors etc.
  • Feature (#372): /ignore and /unignore
  • Feature (#379): /html to send HTML instead of plain text
  • Enhancement (#371): non-members can be /banned too.
  • Enhancement (#370): change the way events are highlighted in the timeline (background is tinted instead of text color changed).
  • Change (#239): by default, Quaternion now compiles against externally installed libQMatrixClient, rather than a submodule. Read BUILDING.md to enable the previous way of building (with lib as a submodule).

thanks to @krombel

Version 0.0.9.2

17 Jun 01:09
Compare
Choose a tag to compare
Version 0.0.9.2 Pre-release
Pre-release

Another step towards 0.1, this version is based on libQMatrixClient 0.3.0.2 and includes the following changes:

  • Enhancement: the "Settings" menu now has most settings that are worth exposing to the user.
  • Fix (#312): Date label (and author, if you use the new-Default timeline layout) is now correctly hidden when older messages get loaded to the timeline.
  • Experimental: Introduced a new compilation flag, USE_QQUICKWIDGET, switching the way QML is embedded into Quaternion; try to use it if you have problems like #355/#356.
  • Unified reporting about failed network requests; show "Consent not given" errors in a user-friendly way.
  • Minor fixes in CI.

thanks to @rushsteve1

Version 0.0.9.1

10 May 22:57
Compare
Choose a tag to compare
Version 0.0.9.1 Pre-release
Pre-release

Mostly building/packaging fixes on top of 0.0.9; those who already use 0.0.9 need not upgrade.
Update: this version has room joining broken. Please use 0.0.9 or 0.0.9.2

Version 0.0.9

27 Apr 07:48
Compare
Choose a tag to compare
Version 0.0.9 Pre-release
Pre-release

This is a pre-release before Quaternion 0.1, based on the just released libqmatrixclient v0.2.1. Since this is not supposed to be a full-fledged release, there are no detailed release notes (please look at the list of closed issues for details). Among most prominent news in the release (and this will be reiterated in 0.1 release notes):

  • Redactions
  • Files downloading (no uploading yet)
  • Room creation and editing room settings (the settings are limited for now)
  • Support of editing room tags (see in Room settings) and direct chats (right-click on the user in the userlist); grouping rooms by tag will come in Quaternion 0.1
  • Support of authenticating proxy servers
  • Proper messages to the user about SSL errors including self-signed certificates (and ability to confirm or reject them on individual basis)
  • The scrollbar now visualises the current position among already cached events
  • Massive treatment of issues with timeline: fonts aligned, lost images no more lost, stick-to-bottom logic works better, smoother and less CPU-hungry scrolling etc.
  • Scroll state is remembered on a per-room basis (not across restarts yet)
  • No more splash screen, since Quaternion starts up faster now
  • As usual, plenty of work on stability, performance and memory footprint
    Thanks to all who helped! Quaternion 0.1 comes soon!