Joshua Goins a0499e5140 Set sourceSize in for images, improving memory usage and smoothing
In some cases (where we don't get a thumbnail) we load the entire image,
which might be large. Even when we get a thumbnail, the smoothing we
apply doesn't get the best results and the only other option is
mipmapping which is more memory intensive - it stores progressively
smaller images but keeps all of them in memory.

Now the ImageDelegate sets the sourceSize, which helps reduce the memory
footprint (since Qt will throw away whatever parts of the image we don't
need) and makes the images look smoother when scaled. However,
AnimatedImages do not support this so this change introduces a new
property to tell if the image could possibly be animated. It will
erroneously pick up formats that could support animation (e.g. WebP) but
other image formats will still benefit so it's a net positive. The
ImageDelegate will load the correct image component depending on this
property.
2023-08-19 18:20:49 +00:00
2021-04-02 23:55:13 +00:00
2023-02-27 19:13:48 +01:00
2023-07-20 07:14:23 +00:00
2023-08-01 15:57:58 +00:00
2022-09-21 12:07:44 +00:00
2022-11-13 15:16:08 +00:00
2023-08-18 01:44:42 +00:00
2023-02-27 19:13:48 +01:00
2023-07-13 07:13:47 +02:00
2023-07-15 00:53:19 +02:00
2021-01-27 14:51:10 +01:00
2021-01-27 18:54:13 +01:00
2021-05-22 19:12:29 +00:00
2023-05-08 14:16:43 +00:00

NeoChat

A Qt/QML based Matrix client.

Made for Matrix Download on Flathub

Introduction

NeoChat is a client for Matrix, the decentralized communication protocol for instant messaging. It is a fork of Spectral, using KDE frameworks, most notably Kirigami to provide a convergent experience across multiple platforms.

NeoChat also make use of other KDE Frameworks as well as libQuotient, a Qt-based SDK for the Matrix Protocol.

Timeline

Features

NeoChat aims to be a fully featured application for the Matrix specification. As such everything in the current stable specification with the notable exceptions of VoIP, threads and some aspects of End-to-End Encryption are supported. There are a few other smaller omissions due to the fact that the Matrix spec is constantly evolving but the aim remains to provide eventual support for the entire spec.

Due to the nature of the Matrix specification development NeoChat also supports numerous unstable features. Currently these are:

  • Polls - MSC3381
  • Sticker Packs - MSC2545
  • Location Events - MSC3488

Get it

Details where to find stable releases for NeoChat can be found on its homepage.

In addition to the stable builds, unstable nightly builds are available for all platforms. These can be downloaded from the binary factory. There are unstable versions for the following platforms in addition to stable ones:

  • Android
  • MacOS
  • Windows

Additionally the nightly Flatpak version can be obtained from the nightly Flatpak repo using the following commands in your terminal:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --if-not-exists kdeapps --from https://distribute.kde.org/kdeapps.flatpakrepo
flatpak install kdeapps org.kde.neochat

The unstable Android version can also be obtained from the KDE nightly F-Droid repo.

Running

Just start the executable in your preferred way - either from the build directory or from the installed location.

Building NeoChat

The best way to build KDE apps during development is to use kdesrc-build. The full instructions for this can be found on the KDE community website's get involved section under development. This is primarily aimed at Linux development.

For Windows and Android Craft is the primary choice. There are guides for setting up development environments for Windows and Android.

Tests

Tests are in the repository under autotests and should all pass for any contribution.

The project has CI setup to test new commits to the repository. All tests are expected to pass for a merge request to be complete.

Current build status

coverage

Currently the number of tests is limited, but growing. If anyone wants to help improve this, those contributions would be especially welcome.

Contributing

As is the case throughout the KDE ecosystem contributions are welcome from all. The code base is managed in the NeoChat repository of the KDE Gitlab instance.

Contact

The best place to reach the maintainers is on the KDE Matrix instance in the NeoChat channel, #neochat:kde.org.

Acknowledgement

This program utilizes libQuotient as its Matrix SDK.

This program is a fork of Spectral.

License

GPLv3

This program is licensed under GNU General Public License, Version 3.

Description
A client for matrix, the decentralized communication protocol
Readme 74 MiB
Languages
C++ 51.4%
QML 31.5%
C 15.1%
CMake 1.5%
Python 0.5%