gitlab luspi/photoqt v5.4

4 hours ago

Another few weeks have passed and a wide range of changes and improvement have found their way into PhotoQt. This release focuses almost entirely on improving the performance and reliability of existing code, with most of the code revisited, some of it restructured for easier maintenance, and all of it touched up for improvements all around.

The main highlights of this release include:

  • new image plugin system: The previous image plugins worked quite well but had some quirks that are due to it having grown quite a bit over time. This new plugin provides now a much more flexible setup that performs better than before, and it is now also possible to enable any format for specific plugins (instead of only an all-or-nothing approach). Along with this new plugin system, the code of all image plugins was revisited with some performance bottlenecks and reliability issues identified and fixed.

  • simplified extensions handling: Starting with this release, extensions that are installed as system packages will no longer have to pass verification. They are already installed into privileged locations and thus it is reasonable to grant them implicit trust. Thus, for distributing the extensions, it will no longer be necessary to worry about private/public keys, hashes, or any of this kind. Local (manually installed) extensions are still required to pass verification as before (unless disabled at compile time). In addition, the Qca dependency has been replaced with direct calls to OpenSSL.

  • revisited most C++ code: a lot of the code in PhotoQt has been written a long time ago, some of it going back almost a decade. Thus, there have been some inefficiencies that crept in over time, and some code was not written as performant or reliable as I would write it today. Thus I went back to revisit most of the code, worked my way through all of the functions and improved a lot of things left and right. Most of them are smaller in nature though some also are a little larger. These changes will mostly not be directly visible, besides overall everything being much more performant and reliable and generally a more "snappy" feel all around.

Besides these larger changes, most of the changes and improvements are of smaller nature. Some of them include:

  • more efficient filtering of key/mouse events
  • better handling of screenshots for fake transparency
  • don't perform import of a backup until next startup
  • hide footer completely in integrated interface when status info is disabled
  • hide footer and menu bar in integrated interface when window is put into fullscreen
  • attempt to fix crashes in Jasper when loading JPEG-2000 formats
  • the language of PhotoQt changes everywhere again when changed at runtime
  • it is now possible to zoom to cursor position with the sidebar shown on the left edge
  • fixed smoothing of images when scaled down
  • fixed caching of images with the applied color profile information
  • fixed handling of the address text editing in the file dialog

You can find a much longer list of all changes in the Changelog listing a bunch of the smaller changes and improvements that are not mentioned here.

Get involved

I love to hear from people using PhotoQt. In order to get in touch with me for feedback/support/etc., the best way to do so is by opening an issue over in the GitLab repository: https://gitlab.com/lspies/photoqt

If this is not an option for you, then you can also always send me an email: Lukas@photoqt.org

Another way to help PhotoQt is to join the translation team over on Crowdin. If your language is missing you can simply request it directly on Crowdin or send me an email and I can add it to the project.

If you are considering supporting PhotoQt by donation, please consider donating to the humanitarian relief in Ukraine instead, for example to the Ukrainian Red Cross. Otherwise, you can donate directly to PhotoQt either through Wise or PayPal

Enjoy PhotoQt,

Lukas

Don't miss a new photoqt release

NewReleases is sending notifications on new releases.