Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.Sign up
Yet another 0.0.9.4 rebuild with AppStream file fixed. For non-Linux platforms there are no differences from the previous rebuild; on Linux, a problem that led to
appstream-util validate failure preventing correct construction of Flatpaks has been fixed.
This is a rebuild of Quaternion 0.0.9.4 with libQMatrixClient 0.5.2. If you're using/building dynamically linked Quaternion, you don't need to upgrade from 0.0.9.4(a).
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-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).
- 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 (
- 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):
/shruggained 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
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,
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.
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.
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.
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: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:
/shrugnow 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.
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.
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.
- #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_LIBQMCis 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=OFFto suppress the fallback.
- #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.