Language Selection

English French German Italian Portuguese Spanish

Kde Planet

Syndicate content Planet KDE
Planet KDE
Updated: 1 hour 39 min ago

GSoC ’ 20 Progress: Week 5 and 6

Monday 20th of July 2020 04:30:59 AM

Greetings!

The Second Phase began with Week 5 of the coding period. The next two weeks involved debugging the previously written code and including necessary connections for it to work. For this, I made use of the signal – slot mechanism of the splendid framework that is Qt.

For those of you who are unfamiliar with this mechanism: a signal is emitted when a particular event occurs. For example, if a new subtitle line is added, i.e., the rows in the list model have changed, the rowMoved signal will be emitted. Similarly, if the model is reset upon startup, the modelReset signal will be emitted.

I added a setup function that would be executed upon model construction, which would connect all these default signals, related to changes made in distinct parts of the Subtitle model, to emit a single modelChanged signal. If a signal, for an event pertaining to the model, is emitted, it will mean that the model has changed.

Next, the modelChanged signal was connected to respective slots in other classes. A slot is a function that is called in response to a specific signal. These slots will execute a particular function every time the subtitle list model is changed.

Once all the necessary connections were made, the parsed subtitles, including the text and its duration; were easily added to the model upon application startup with no errors.

KStars v3.4.3 is Released

Sunday 19th of July 2020 03:27:00 PM
After 3 months of development, we're glad to announce the availability of KStars 3.4.3 for Windows, MacOS and Linux.

Let's check out the highlight of this release!

New Bahtinov Mask Focus Assistant Patrick Molenaar added a long requested feature: The Bahtinov Mask focus assistant tool. Users can activate the new algorithm in the Focus module.
Focus Bahtinov Assistant Tool
It is useful for users who do not have a motorized focuser and prefer to focus manually with the aid of the mask. After capturing an image in the focus module with the Bahtinov mask algorithm selected, Ekos would analyze the images and stars within it.  if Ekos recognizes the Bahtinov star pattern, it will draw lines over the star pattern en circles on the center and on an offset to indicate the focus.

Autofocus on Temperature Change
Florian Signoret added support for triggering autofocus procedure when the temperature exceeds a certain delta threshold in the capture module. The temperature is sourced primarily from the focuser itself, and in unavailable, then it falls back to the weather station, if any.

Focus Logs Doug Summers added a dedicated focus logger to help users analyze their autofocus runs to better understand their behavior and improve them in the future. Camera Driver Restart An experimental camera driver restart feature was added to the capture module. It should be used as a last resort option in case the camera driver is unresponsive. This feature commands the INDI server to only restart the camera driver without affecting any other drivers, so you don't have to shutdown the whole INDI server if one driver misbehaves. 

Restarting a camera driver might lead to quite a few complicated since it interacts with many subsystems in Ekos. Therefore, it is flagged as experimental in this release pending user feedback. Mount Hour Angle Limits
Previously Ekos Mount module supported enforcing Altitude limit for the mount motion. The mount is active stopped if its slew or track past there limits. Chris Rowland added the Hour Angle (HA) limits to prevent limit the mount from slewing and/or tracking past there limits. This can protect the equipment in case of a runaway motion that might lead a pier collision.

Filter Names Editor
A simple, but convenient editor was added in Capture module to edit filter names. Previously, you had to change filter names directly in INDI Control Panel which was not intuitive for quite a few users. Internal Guider Features
Hy Murveint contributed significant new features and improvement to the Ekos Internal Guider.

New Detection Algorithm: SEP MultiStar This is a new guide-star detection, tracking & drift computation algorithm.

You can select this in the Guide options menu (click Options... in the lower right corner of the Guide tab), and then click on "Guide", and then choose from the "algorithm" menu. There choose the guide-star detector. (e.g. there choices include Smart, SEP, Fast, ...). Try SEP MultiStar. It is more stable in all three respects (guide star selection, detection and drift calculation). You may not notice much difference in a normal guiding session when things are going well, except, perhaps, better choice of a guide star.

GPG RA Guiding: New control algorithm for RA guiding.Hy added a new guiding algorithm. This is for RA only--that is, guiding for DEC still happens, but using the existing guiding algorithms. This guider is based on the work in this PhD thesis and is the same as the well-regarded PHD2 guide algorithm known as Predictive PEC. You will see Copyright 2014-2017 Max Planck Society, now in the KStars credits for this system. It estimates the periodic error in the guiding system, and tries to fix it before it happens. This system should perform about the same as the standard guider for the first period or two of your mount's periodic error, then improve. When using this system, it's best to set in advance what your mount's worm-gear period is. For example, the Orion Atlas pro is about 480s. You enable this in the Guide options menu, in the GPG RA tab, and then checking "Enable GPG". There are other parameters you can change, but as indicated earlier, the main one to think about is "Major Period".

Graphics Improvements
  1. Added a guide-star SNR plot. This can be useful, e.g. when the SNR starts taking a dive, you know things aren't going well, perhaps a cloud is passing by.
  2. Added a plot of the RMS error (i.e. RA and/or DEC arc-second error RMS-averaged over the past 50 guiding samples).
  3. Separated the zooming for x and y axes. You can use '+' and '-' buttons below the x-axis to change the time scale of the plot (number of minutes plotted), and you can use the mouse scroll (same as before) to zoom in/out of the Y-axis. When you mouse-over the plot, you can see all the values for the different graphs.BTW, in case you didn't know (this isn't something I changed), you can change the amount of space allocated to the drift plot (the circle) and the drift graph by placing your mouse over the short dotted line between them and dragging left of right.

Calibration Backlash Removal A backlash removal section was added to the "calibration dance". Before it starts calibrating DEC, the Ekos guider will now take 5 DEC steps, without measurement, to make sure there's no backlash in the DEC gears. This should improve the quality of the calibration, however, if you don't like this, you can remove it by unchecking "Remove DEC backlash in guide calibration" in the Guide options menu, in the "Calibration" tab there.

Calibration PlotA Calibration Plot subtab was added to the right right of the Drift Plot.  It shows the mount positions recorded during internal-guider calibration.

Basically, if things are going well, it should display dots in two lines which are at right angles to each other--one when the calibration pushes the mount back and forth along the RA direction, and then when it does the same for the DEC direction. Not a ton of info, but can be useful to see. If the two lines are at a 30-degree angle, something's not going well with your calibration! Here's a picture of it in action using the simulator


The colored dots (same color scheme as the internal guider) shows the RA and DEC samples on their way out, and the small white and yellow circles show their return paths.

PHDLogView compatibility
phdlogview is a program written by Andy Galasso to analyze PHD2 logs. It's very nice. I've tried to have the internal guider output a mostly compatible log file so that if you installed phdlogview, you could use it to also browse your logs from the Ekos internal guider. A few things to note:
The logs are placed in a directory parallel to the standard KStars logs directory. Instead of logs, it is guidelogs. So, for example, on Linux you'd find them in this directory ~/.local/share/kstars/guidelogs/
You can turn on/off this logging by going into the Options menu on the internal guider tab, clicking on the Guide tab on the left and checking/un-checking the box labeled "Save Internal Guider User Log".
There are many features in phdlogview. Explore and look at Galasso's documentation for how to use it.
PHD2 Integration Fixes Eric Dejouhanet significantly improved fault tolerance during PHD2 interactions. This includes the following situations.
  • Star does not move enough for calibration to complete. PHD2 may:
    • be looping instead of calibrating, while still notifying calibration.
    • abort but continue to send guide steps and frames.
    • => Fixed: calibration failures are now properly handled in that situation, and forwarded to Guide module.
  • Star disappears because of a mount glitch. PHD2 may:
    • declare star lost and stop without further notice.
    • => Fixed: star-lost notification is now properly handled, and will time out properly (and not restart).
  • Device disconnects briefly. PHD2 may:
    • declare device unusable, eventually after some time (camera timeout is 15s by default), requiring reconnect.
    • => Fixed: equipment dis/connection is now properly handled from both sides, aborts operations and is robust.
  • KStars/Ekos crashes while guiding and is restarted using the existing indiserver.
    • The currentCCD may be null when restoring connection, upon call to executeOneOperation.
    • AppState has to be taken into consideration to restore state as it was before the crash.
    • => Fixed: app-state polling improves robustness, requires up-to-date INDI build.
  • If Ekos is told the equipment is disconnected, it will consider an external cause and will not attempt to reconnect.
    • Ekos will not reconnect, to allow manual intervention is required on PHD2 side.
    • Ekos will detect reconnection and change state automatically.
  • However PHD2 v2.6.8 crashes when INDI drivers are killed, so no solution except restarting PHD2 in a loop (use systemd).
  • One issue remains in Guide, where the stop button remains enabled sometimes (regression?).
    • May not fix in the context of this MR.
  • One issue remains upon server loss, which triggers perpetual reconnect unless the end-user disconnects manually.
    • Issue related to state kept at disconnected.

New LED indicators were added for each stage as a visual feedback for the user.
Other Fixes
Check out the complete changelog for more details.

Skrooge 2.23.0 released

Sunday 19th of July 2020 10:27:04 AM

The Skrooge Team announces the release 2.23.0 version of its popular Personal Finances Manager based on KDE Frameworks

Changelog
  • Correction bug 420557: Broken transaction group after CSV import
  • Correction bug 412262: documentation references obsolete "Merge operations" menu item
  • Correction bug 422154: Jumpy tab order in Accounts entry form
  • Correction bug 422155: Skrooge doesn't use per-locale bank icons
  • Correction bug 422311: Tooltip in Operations view is misleading, it only works in Status column
  • Correction bug 423311: Skrooge doesn't show key error message, only summary error
  • Correction: Drag and drop file works only for operations. Not for all other objects.
  • Correction: cryptocompare fails if too many values are requested (>2000)
  • Correction: Change icon for trackers by a "crosshairs"
  • Correction: Source ratesapi doesn't work in appimage 
  • Correction: Add "Settings" description in documentation 
  • Correction: Units list doesn't save font size (see https://forum.kde.org/viewtopic.php?f=210&t=166692)
  • Correction: Update comment of operation when suboperation of a single operation is modified 
  • Correction: Adapt download-po.py for new svn structure
  • Feature: Add new source "exchangeratesapi.io"
  • Feature: In "Search & Process", possibility to search operations by number of spit (ideal to seach simple operations are push suboperation comment on operation comment)
  • Feature: New advice to aligne comment of operation with the comment of suboperation of single operations 
Get it, Try it, Love it...

Grab Skrooge from your distro's packaging system. If it is not yet included in repositories, go get it from our website, and bug your favorite distro for inclusion.

Now, you can try the appimage or the flatpak too !

Get Involved

To enhance Skrooge, we need you ! There are many ways you can help us:

  • Submit bug reports
  • Discuss on the KDE forum
  • Contact us, give us your ideas, explain us where we can improve...
  • Can you design good interfaces ? Can you code ? Have webmaster skills ? Are you a billionaire looking for a worthy investment ? We will be very pleased in welcoming you in the skrooge team, contact us !

It finally arrived

Sunday 19th of July 2020 09:19:40 AM

After waiting a bit over a month, followed by an agonizing week when the new gizmo was at my DHL pickup point and I was some 2h by car away in our summer house.

What gizmo? A Pinebook Pro!

The Pinebook comes in many layers. Like, properly many. I guess this means that it is safe during transport. At least mine arrived without any bruising despite a long journey from Hongkong to Alingsås.

After powering the system on it took quite a long time for the system to reach the Manjaro logo, but once up and running, things move along at a decent pace.

Initial impressions are positive. I had to crank up the backlight a bit, but I’m sitting outdoors (it is overcast). Right now I’m installing the initial set of software updates (some 400+MB to download) while I type this. I also set the keyboard layout to Swedish. I have an ISO keyboard model, so all the keys are there and I don’t mind that the keycaps say something else than what they type.

On the topic of the keyboard. I was warned about the keyboard feel. I was also told that the Pro-model is better than the original Pinebook (which I’ve only used for ~5s at fosdem). To be honest, the keyboard is decent, but not on par with my Dell XPS13, nor my Sculpt Egonomic keyboard.

I still have the night time hacking test to perform – will my wife accept this keyboard clicking in the early morning hours? She preferred the MacBook Pro over the XPS13, so let’s see how this fares ;-).

I also have to see if I can adopt to Manjaro Linux, or if I’ll go to Debian, which I run on all my other machines. It has been years since I tried any alternative distro, so I’ll give it a few days at least to see how much I will miss apt-get – at least it runs KDE Plasma ;-)

Book your BoF for Akademy 2020 now!

Saturday 18th of July 2020 11:32:00 PM
BoF sessions are an integral part of Akademy, it's the "let's discuss and plan how to make things happen" oriented part after the more "this is what we've done" oriented part of the talks.
So go to https://community.kde.org/Akademy/2020/AllBoF and book a session to discuss with the rest of the community about something you're passionate! :)

Summer 2020 (real short)

Saturday 18th of July 2020 10:00:00 PM

Most summers I go on a bicycle vacation with my family, and we do a couple hundred kilometers and get back and it puts a reasonable-sized dent in Calamares development in the summer months. Like in 2019 2018 2017.

This year, for personal reasons (and limitations on travel, and on campgrounds, and not wanting to put ourselves or others at risk), the bike trip was limited to 200km and a week in a “trekkershut”.

What this means for the rest of the summer is that I’ll occasionally be “on vacation” which will mean “in the front yard, building an awning” or “in the back yard, building a chicken coop”, but no long absences from the Free Software world. In general, the plan is:

  • release Calamares every two to three weeks,
  • track KDE software releases (Frameworks, Plasma, and the release service) on FreeBSD within a few days of release,
  • keep up with KDE-FreeBSD CI failures and bug reports as and when Nate pokes me about it (thanks, Nate, for watching all the things so I don’t have to).

Contributing via GitLab Merge Requests

Saturday 18th of July 2020 05:53:00 PM

KDE switched over to a self-hosted GitLab instance this year: invent.kde.org. Many thanks again to our system administrators and all other contributors to this large effort!

This means, e.g. Kate, KTextEditor and KSyntaxHighlighting are now using the GitLab workflow for all contributions. Whereas there are still some old review requests and tasks on phabricator.kde.org, all new contributions should arrive as merge requests on invent.kde.org.

For the three projects I take care of, you can see what already arrived and is now under discussion or already merged here:

Even this website is located there, regenerated via HUGO every few minutes on the web server hosting it. If you want to write some post about Kate or update some of our pages, please just submit a request here:

I think the current setup is really superior to what we had before. For example, Kate already has now 79 merge requested accepted. It was never easier to contribute than now.

I apologize that sometimes the review speed for merge requests is still lacking, I hope this improves with more people taking care in the development process. But I reelly encourage people that can code to help us out by contributing fixes + features!

We have a rather long backlog of bugs and wishes that are not really taken care of as it should, see the below lists:

We really would appreciate help with this, give it some try.

You want to contribute a new LSP server config? Easy, see this accepted merge request as template.

You want to improve the UI by e.g. having a more “normal” tab bar instead of our LRU variant? Submit a request like this.

It might look in the bug tracker like we are not eager to improve or accept changes, that is not true, we are just not that free to work a lot on our own on larger things, as the team is small and we don’t have that much spare time left to handle it. But if somebody steps up to do it, we will help out to get it in, as can be seen by the already merged stuff.

Still, there might be discussions about what shall go in or not. Please be open to accept the feedback we give and better start early to ask for some, as that might avoid wasted effort on your side.

I think the new infrastructure makes it easier for people to step up and do some work, I really like that. I hope a nice stream of merge requests keep coming in ;=) At least for the projects mentioned above I think scratching your own itch was never easier.

This week in KDE: Get New Stuff fixes and more

Saturday 18th of July 2020 05:09:36 AM

Do you like more features, fewer bugs, and a better UI? I do. So as I look over this week’s update, I smile. In particular, some much-needed fixes for the Get New [thing] system have landed, and more are on the way. We realize this is a pain point and we’re working on it.

In Plasma, we’ve been actually using Bugzilla’s priority feature to prioritize bugfixes, beginning with recent regressions. Every day I triage all new bugs and mark any recent regressions accordingly, then try to try to track down people who can fix things, or do it myself if I’m able to. Hopefully over time we’ll have fewer regressions, and the ones that do slip through will get fixed faster.

New Features

When drawing annotations in Okular, holding down the Shift key now constrains the new annotation to increments of 15 degrees or perfect squares, as in many drawing apps (Luca Citi, Okular 1.11.0)

Okular now has a new hidden action you can put on its toolbar that will toggle right-to-left reading direction for the current document (David Hurka, Okular 1.11.0)

KRunner can now display bookmarks from Falkon too (Alexander Lohnau, Plasma 5.20)

The Properties Dialog can now also display SHA512 checksums for files (Nazar Kalinowski, Frameworks 5.73)

Bugfixes and performance & security Improvements

Dolphin’s selection highlight in Compact and Details modes is no longer too short (Ismael Asensio, Dolphin 20.08.0)

Fixed a recent regression that caused wallpapers downloaded using the Get New [Thing] dialog to not be apply-able (David Edmundson, Plasma 5.19.4)

Fixed a recent regression that caused Plasma to overwrite the system locale settings even if nothing had been changed (Plasma 5.19.4)

When decrypting a Plasma Vault, if the password has been made visible, it now becomes hidden again the moment you submit it so that it doesn’t sit around visible yet un-erasable on the screen for a few seconds (Ivan Čukić, Plasma 5.19.4)

The Plasma Networks System Tray applet no longer crashes when clicked if there is an OpenVPN VPN configured (Lamarque Souza, Plasma 5.20.0)

KRunner’s single runner mode now works (Alexander Lohnau, Plasma 5.20)

The KRunner Plasma widget now respects the list of enabled and disabled runners set in System Settings (Alexander Lohnau, Plasma 5.20)

KRunner no longer crashes when you type anything while the PIM Contact Search plugin is active (Friedrich Kossebau, Frameworks 5.73)

When using the Get New [thing] dialog to download new wallpapers, the “Use” button will now actually apply the wallpaper as it should (Dan Leinir Turthra Jensen, Frameworks 5.73)

When installing something using the Get New [thing] dialog fails, it is no longer incorrectly marked as installed (Alexander Lohnau, Frameworks 5.73)

Get New [thing] dialogs now display the same sort order that the sort order combobox indicates (Dan Leinir Turthra Jensen, Frameworks 5.73)

The URL Navigator in Dolphin and the file dialogs and various other KDE apps now has a saner auto-complete behavior (Noah Davis, Frameworks 5.73)

Plasma widget pop-ups no longer appear in the Task Switcher (me: Nate Graham, Frameworks 5.73)

User Interface Improvements

FUSE mounts are now automatically excluded from the list of disks visible in the Disk Usage widget (Arjen Hiemstra, Plasma 5.20)

The cursor no longer changes in size when hovering over GTK/GNOME app windows (Mikhail Zolotukhin, Plasma 5.20)

After taking into consideration feedback from users and designers, the System Tray icon arrangement options now include a way to return to the old style: one or two rows/columns of small-ish icons that do not scale with panel thickness (me: Nate Graham, Plasma 5.20)

System Tray popups have been made a little bit taller–just a little bit (me: Nate Graham, Plasma 5.20):

The System Tray Battery applet now tells you when the power source you’re plugged into isn’t supplying enough power to charge the battery (me: Nate Graham, Plasma 5.20)

Scrollable pages in Kirigami-based apps can now be scrolled with the arrow keys (Carl Schwan, Frameworks 5.73)

The “Overwrite” action/button used in various places throughout KDE software now has a nice icon (David Hurka, Frameworks 5.73)

When the file type list in open/save dialogs would show multiple entries with the same name, they are now disambiguated by appending the filename extension (Albert Astals Cid, Frameworks 5.73):

The icons-only view buttons in the Get New [thing] dialogs now show tooltips so you can tell what they are (Alexander Lohnau, Frameworks 5.73):

How You Can Help

If you are an experienced developer who would like to make a gigantic impact very quickly, fix some recent Plasma regressions or longstanding bugs. Everyone will love you forever!

Beyond that, have a look at https://community.kde.org/Get_Involved to discover ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Kubuntu 19.10 Eoan Ermine reaches end of life

Friday 17th of July 2020 05:19:16 PM

Kubuntu 19.10 Eoan Ermine was released on October 17th, 2019 with 9 months support.

As of July 17th, 2020, 19.10 reaches ‘end of life’.

No more package updates will be accepted to 19.10, and it will be archived to old-releases.ubuntu.com in the coming weeks.

The official end of life announcement for Ubuntu as a whole can be found here [1].

Kubuntu 20.04 Focal Fossa continues to be supported.

Users of 19.10 can follow the Kubuntu 19.10 to 20.04 Upgrade [2] instructions.

Should for some reason your upgrade be delayed, and you find that the 19.10 repositories have been archived to old-releases.ubuntu.com, instructions to perform a EOL Upgrade can be found on the Ubuntu wiki [3].

Thank you for using Kubuntu 19.10 Eoan Ermine.

The Kubuntu team.

[1] – https://lists.ubuntu.com/archives/ubuntu-announce/2020-July/000258.htmll
[2] – https://help.ubuntu.com/community/FocalUpgrades/Kubuntu
[3] – https://help.ubuntu.com/community/EOLUpgrades

Krita, OpenGL and Qt

Friday 17th of July 2020 08:15:42 AM
The Beginning

Adrian Page first coded an OpenGL-based canvas implementation for Krita in 2005. That was back in the Qt3 days. OpenGL was fairly simple back then, but we had to duplicate all our canvas handling code, once implemented in OpenGL, once implemented with QPainter.

Krita’s canvas code executes in three phases. There’s the image projection, that is, the result of combining all the layers, which is drawn first. Then we draw the canvas decorations: that’s the selection outline, the guides, the assistants, the reference images and so on. Then we draw the tool decorations: that’s the outline cursor, the line for the straight line or ruler tool and so on.

Obviously, implementing all of that twice, once in  OpenGL, once with QPainter isn’t ideal.

The Good Days

So we were elated when Qt4 appeared. Qt4 came with an OpenGL based QPainter engine. This was ideal; we could split up our canvas code. The image would be drawn with pure OpenGL on a QGLWidget or with QPainter on a QWidget, and the canvas decorations and tool decorations would be drawn with QPainter on either canvas.

The Qt documentation even came with a nice example showing how this was to be done.

The First Fly in the Ointment

However, the Qt developers apparently saw the OpenGL QPainter engine more as a way to speed up the drawing of QWidgets than something that application developers would use. And the OpenGL QPainter engine never was able to render a complex application completely correctly.

So at some point, the engine stopped working on macOS. Mostly because Apple doesn’t want people to use OpenGL, so they’re starving their drivers from development, but also because the Qt developers thought that the OpenGL QPainter engine was a failed experiment because it didn’t improve performance when painting their widgets: they had forgotten that applications developers are using QPainter in their OpenGL applications. Or even told them not to do that. Though the documentation never reflected that opinion.

That sucked, since we needed it, and in 2016 we had to spend a Summer of Code slot on fixing the OpenGL QPainter engine so it worked on macOS with OpenGL 3.2 Core Profile. That landed in Qt.

R.I.P Touch UI for Krita

With the migration from Qt4 to Qt5 something else happened: Qt4 QML was based on QGraphicsView. I’ve always suspected that QGraphicsView was created for companies that needed mapping software, but in the Nokia days there were several attempts to use QGraphicsView as a basis for a mobile ui framework, DUI (best link I could find; there’s serious loss of history here).

Those attempts failed, until someone came up with QML, which initially was also rendered with QGraphicsView.

We used QML to create Krita Sketch and Krita Gemini. Because it was based on QGraphicsView, the touch ui we created worked seamlessly with our OpenGL-based canvas.

When Qt5 came out, QML was based on OpenGL and a scenegraph. We spent several months and quite a bit of money trying to integrate our OpenGL canvas in in the new scenegraph, but it just did not work. At all. It couldn’t be made to work, and Krita Sketch and Krita Gemini died.

(As an aside: it was much harder than we had expected to port our OpenGL code from Qt4 to Qt5. It was a huge hassle, in fact.)

The Next Episode

And then Google Chrome happened.

The quality of OpenGL drivers on Windows was always variable, sometimes even really bad. We had already encountered that when developing Krita Sketch, when we suddenly had a lot of Windows users.

Google encountered the same problems with Chrome, and they implemented a solution: Angle.

Angle seamlessly translates OpenGL into Direct3D. And once Chrome used that, all their crashes were gone.

And the GPU manufacturers had no reason all anymore to fix their drivers, so they didn’t. Games would use Direct3D, Chrome used Angle, and pretty soon Qt added an option to use Angle, too, because otherwise QML-based applications on Windows would keep crashing.

This was excellent news for us. We started using Angle, and the number of bug reports dropped a serious amount. And when we wanted to support HDR screens on Windows, the fact that we were using Angle already was great, because that enabled us to make HDR work, because on Windows, HDR can only be made to work when the window is rendered using Direct3D.

The HDR patches still haven’t landed in Qt, so we are carrying them, along with a lot of other patches that are needed to make Krita work well.

We regularly port those patches to newer versions of Qt5, but we make all our Krita binary builds with Qt 5.12, because every version of Qt since 5.12 has been too buggy to use. For example: with 5.15, using a QMdiArea in subwindow mode will hang on Windows.

Except for the fact that Krita Sketch was still dead, and we were porting to Android, and a mobile UI would have been nice, everything was fine.

Qt6 Drops Angle

Because, obviously, Qt’s Angle build option only  existed to make sure that QML apps would work on Windows, not for anything, Qt6 has dropped the Angle option…

Because there’s going to be a new framework which will use the various GPU API’s (Metal, Vulkan, Direct3D, OpenGL) directly with a abstraction layer (Rendering Hardware Interface ) above them that will be used to render the QML scenegraph. It looks like that’s all internal to Qt, though.

It’s really hard to find documentation, but it looks like QPainter will render using those modules; but what isn’t clear is what will happen when we’re going to use QPainter on a QOpenGLWidget. Or would we have to implement a Metal canvas, a Direct3 canvas, and an OpenGL canvas? And will we be able to access the HDR functionality on Windows?

Or should we just patch Qt6 so it can be built with Angle again?

Konsole in 2020

Thursday 16th of July 2020 12:00:00 AM

Konsole is having a resurge in the moment, it’s the terminal emulator of choice for the power user that wants to break the 4th wall in *nix systems. Right now it can do almost all the things I want it to do, and a few more.

Since last year you can use splits in Konsole, with full drag & drop support between tabs and windows.

You can also use Konsole to quickly check for thumbnails of anything that dolphin can show you, just by hovering with the mouse (and depending of your configuration) pressing shift/control/alt. To my knowledge Konsole is the only terminal emulator that supports this.

Probably you already used ls to list a file that you need to get the full url, to open in an unrelated program that does not accept the common way to open files via the shell, and you need to paste into a dialog, or you just need to send the full path of a file for a project colleague. I had problems with this untill I snapped and implemented a way for konsole to Copy Location, it copies the full file path of the selected file, and adds this data to your clipboard.

Konsole supported for quite a while a way for you to click in a file and open it in a the default editor (you need to have this configured in the profile) - but sometimes we don’t want to open it in the default file, we wan’t to visualize a image in gwenview or edit it in gimp, so now konsole supports a Open With menu quite helpful when you don’t remember the name of the app you want to use but remember the icon. :)

Now a few features I’m working that I expect that will be ready for the next version of konsole, those are still in review and I don’t know when they will be ready, it’s just a sneak peek:

Configurable dimm stength for inactive terminals - when you are working with split views and many terminals, there’s a option in the profile that makes the terminals without focus darker, so it’s easier to know which terminal you are, but it was not possible to configure the amount of darkening - and different people have different needs, so now you can do this: (not merged yet)

Improved broadcast support - Konsole already supported this, but it did not play well with splits, and it was not really easy to integrate multiple windows. How you can now select what kind of broadcast group a terminal belongs to, any terminal that belongs to the same group will send data to it, there’s also a None group - for terminals that should not send data anywhere, and a Broadcast to All groups, that will push data everywhere - despite being in the group or not. (not merged yet)

Support for URL Escape Codes. There’s a spec that specifies how a terminal application can embbed a URL inside of a block of text, by using the special notation: \e]8;;http://www.kde.org\e\\click here\e]8;;\e\\\n this is equivalent to the html code <a href="http://www.kde.org> click here </a> and there’s a work in progress implementation for that in the works (featuring a VIP list of accepted schemas, currently only file, http and https are allowed, but the user can overrite)

Those are all of the features that I worked (minus tons of bugfixes, security improvements and general rewrites that are unrelated to new features). I hope you all enjoy the new konsole, that is still one of the fastest terminal emulators around, even tough it’s packed with features for the experienced and novice user.

foss-north kdenlive workflow

Wednesday 15th of July 2020 08:21:47 PM

As some of you might already have noticed, we’ve complemented foss-north with a new pod / vod / vlog – I’m not sure what to call it. Basically, it is a video based pod cast (making it available as a audio only pod-cast is high on the todo). Our main focus right now is a series on licenses and copyright, but there is more to come.

As a part of this, I’ve started editing videos in kdenlive on a weekly basis, and I’m very happy with it so far.

In this blog, I want to share my workflow. It is probably far from ideal, but it does the work for me.

I usually start with a set of presentation slides that we’ve used to direct the discussions. These are exported as pdf, which is then converted to 1920×1080 pngs for consumtion in kdenlive.

I do this in two steps using ImageMagick, as the results seems nicer by first rendering too large images and scaling them down.

convert -verbose -density 300 ../open\ projects-1.pdf -quality 100 -sharpen 0x1.0 11.png mogrify -resize 1920x1080 *.png

The session is recorded using OBS from our Jitsi instance, but we also encourage each participant to record their audio separately, as it makes it easier to fix things afterwards. (foss-north now self-hosts a Jitsi instance – check out https://github.com/e8johan/virtual-conf-resources to learn about how to setup virtual conferences).

You would be surprised over how many times we’ve run into issues with one or more sound recordings. We’ve had:

  • Too low volume (inaudible)
  • Too high gain (noisy)
  • Local echo of the rest of the participants in one recording (no use of headphones)
  • No recording (forgot to press record)

I’m sure the list will grow longer as we record more episodes :-)

Before I start cutting the recording, I use one of my favorite features in kdenlive. First I set the Jitsi recording as the audio reference as shown below.

Then for each audio track, I tell kdenlive to align it to the reference. This will position it correctly in relation to the Jitsi recording, meaning that I can fade in and out of individual recordings without having to worry about any time shifts.

Finally, I select all the audio recordings and group them. This means that all editing I do (cuts, movements, etc) is applied to all channels.

Now it is just a matter of listening for trouble (you can spot awkward silence in the visualization of the audio tracks), press i to mark the beginning of a section, press o to mark the end, and then shift+X to cut it out.

In general, I try to edit as little as possible, but tightening some parts by removing silence, and sometimes remove failed parts when we’ve decided to start over a section.

Finally I add the pngs as a video stream, our pre-recorded intro sequence, and a YouTube friendly end-screen and click render and go to bed :-)

Compiling Krita for ARM: an AppImage tale

Wednesday 15th of July 2020 02:15:00 PM
The AppImage running on a Raspberry Pi 3B+. It's slow, but it works

Week 6: GSoC Project Report

Wednesday 15th of July 2020 04:27:29 AM

This week I worked on writing tests for interactions between different parts of Krita and investigated how to update all affected items in the storyboard.

I added two test classes, one for interactions between keyframe channels and animation interface and one for the interaction between keyframe channel and the storyboard docker. This was essential because the interaction is broken up into two stages. First the keyframe channel emits signals to the animation interface of the current image when any changes, such as add, remove, move are made. These signals result in emission of similar signals from the animation interface. These final signals can be connected to any part of Krita if it has a pointer to the current image, which dockers have. The first class of tests passes after some changes. I have completed parts of the second test. Some tests are yet to be implemented.

Updating all affected items in the storyboard would cause the canvas to update slowly if we update all items in the same thread. So we would have to use multi-threading for this purpose. There are some classes that already do that, I will use those classes. As this is a non-trivial task I postponed this to the next week.

I faced some problems due to my laptop having some hardware problems, and I had to give it away for repair

Weekly Report 5

Tuesday 14th of July 2020 12:00:00 AM
GSoC Week 6 - Qt3D based backend for KStars

In the sixth week of GSoC, I worked on adding mouseevents and integrate the custom qt3d window with existing skymap

What’s done this week
  • Shaders for panning and zooming.

  • camera controller in custom window.

The Challenges
  • Integration issues with the original SkyPainter API written to support multiple backends.

  • Use of new custom camera controller and view matrix.

  • Zooming and focus for deep star objects.

What remains

My priorities for the next week include.

  • Adding remaining skymap events.

  • Writing 3d calls for skymapcomposite.

  • Debug deep star objects and get started with other sky objects.

The Code

CMake-Based Qt Creator Snapshots

Monday 13th of July 2020 01:28:32 PM

About a year ago we started porting the build system that we use for building Qt Creator itself from qmake to CMake. Nowadays we are in the state that many Qt Creator developers use CMake for building Qt Creator for their daily work, but the official packages are still based on the qmake build.

Week #6 Progress [MyPaint Engine]

Monday 13th of July 2020 11:40:00 AM
Last week my prime focus was to add more and more settings in the preset editor and so as to make mypaint brushes a bit more customizable. I used KisCurveOptionWidget class which Krita already has and modified it so that it can accomodate the settings and dynamic mypaint brush options. This went on to become a lot more complicated than I anticipated. Although, it works fine there are still a lot of bugs and finishing required to mark this as complete.

Preset Editor  This is the layout of how the preset editor looks like and it is still far from complete. I need to categorise all the settings in the form of a tree view. I am also quite sceptical about the way of handling mypaint settings internally. I will check if that is right or some alternative approach would be a better fit and make the required changes. I will look at all those things this week. If everything goes fine this would be complete by this week's end.
Till then, Good Bye :)

Qt Creator 4.13 Beta released

Monday 13th of July 2020 09:41:49 AM

We are happy to announce the release of Qt Creator 4.13 Beta!

KF6 Progress Report: Almost Bastille Day (July) Edition

Sunday 12th of July 2020 01:30:00 PM

So the world has been hectic lately, dunno if you’ve seen the news, but that means that I didn’t publish an update since my previous KF6 progress report back in February! Now that the lock down has been (temporarily?) lifted where I live and that things are a bit less crazy, it’s time for an update.

An actual Qt 6 is not published yet and we didn’t branch for KF6 yet either. Still as can be seen on the KF6 Workboard there are plenty of tasks in our backlog which can be acted upon now. No need to wait to participate, all the work done now will make the transition to KF6 easier later on anyway.

What has been done since the last post?

On the workboard, we currently have 22 tasks in progress and 4 tasks done. Clearly that’s not a huge activity in more than four months but the state of the world might explain it in part. Obviously with so little tasks done, they mostly revolve around our usual suspects.

If you fancy becoming one of the unsung heroes of KDE, come and help working tasks from the KF6 Workboard! More hands are needed and right now is a good time to discover it and get into it than when Qt6 will be released. Indeed, when Qt6 will be around it will be much less quiet around here. :-)

Let’s see the tasks done during the past couple of months (in no particular order):

Thanks for everyone involved!

KDE Frameworks Community Analytics

Per usual, I will use the opportunity to look at the community analytics for KDE Frameworks itself. That’s why I ran my scripts against the repositories in the frameworks section of the KDE repositories tree. Of course, this means we’ll capture some activity unrelated to the KF6 transition. Still I think it’s interesting to see how KDE Frameworks itself is doing.

Let’s start with the commit activity since the previous KF6 Progress Report.

[KDE Frameworks Activity since the February update, full page version]

During that time frame, we got 126 different committers. That’s quite a lot indeed the biggest amount of committers since I started writing those reports! Admittedly, the longer time spans skews this quite a bit, so I thought I’d add the team size trend for the past ten years to see.

[KDE Frameworks Team Size since January 2010, full page version]

Unsurprisingly we didn’t have a super growth, so the 126 above is really due to the longer time window. That being said it looks like the trend has been going slightly up since the past couple of years, always a good thing.

Now, how does the code contributor network looks like?

[KDE Frameworks Contributor Network since the February update, full page version]

Unsurprisingly, we find our usual suspects again as very central to the network. Like the last couple of times we find a couple of lesser known names in that set of central people… Although at that point I can stop saying this, it’s been a few times clearly they’re part of the team now. Well done!

How You Can Help

Next time, your name could be in visualizations like the ones above!

Check out the KF6 Workboard and pick a task to help us toward this great transition. If you need help to get started, feel free to contact us on the #kde-devel IRC channel on Freenode.

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

20.08 releases branches created

Saturday 11th of July 2020 10:16:00 AM
Make sure you commit anything you want to end up in the 20.08 releases to them

We're already past the dependency freeze.

The Feature Freeze and Beta is this Thursday 16 of July.

More interesting dates
    July 30, 2020: 20.08 RC (20.07.90) Tagging and Release
  August  6, 2020: 20.08 Tagging
  August 13, 2020: 20.08 Release

https://community.kde.org/Schedules/release_service/20.08_Release_Schedule

Cheers,
  Albert

More in Tux Machines

libinput 1.16.0

libinput 1.16.0 is now available.

No significant changes since the second RC, so here's slightly polished RC1
announcement text.

This has been a long cycle, mostly because there weren't any huge changes on
the main development branch and a lot of the minor annoyances have found
their way into the 1.15.x releases anyway.

libinput now monitors timestamps of the events vs the current time when
libinput_dispatch() is called by the compositor. Where the difference
*may* result in issues, a (rate-limited) warning is printed to the log.
So you may see messages popping up in the form of
  "event processing lagging behind by XYZms, your system is too slow"
This is a warning only and has no immediate effect. Previously we would only
notice (and warn about) this when it affected an internal timer. Note that
these warnings do not show an issue with libinput, it shows that the the
compositor is not calling libinput_dispatch() quick enough.

The wheel tilt axis source was deprecated. No device ever had the required
udev properties set so we should stop pretending we support this.

Touchpads now support the "flat" acceleration profile. The default remains
unchanged and this needs to be selected in the configuration interface. The
"flat" profile applies a constant factor to movement deltas (1.0 for the
default speed setting).

Events from lid or tablet-mode switches that are known to libinput as being
unreliable are now filtered and no longer passed to the caller.
This prevents callers from receiving those known-bogus events and having to
replicate the same heuristics to identify unreliable devices that libinput
employs internally.

A new "libinput analyze" debugging tool is the entry tool for analysing
various aspects of devices. Right now the only tool is
"libinput analyze per-slot-delta" which can be used to detect pointer jumps
in a libiput record output. This tool used to live elsewhere, it was moved
to libinput so that reporters can easier run this tool, reducing the load on
the maintainers.

The tools have seen a few minor improvements, e.g.
- "libinput record touchpad.yml" does the right thing, no explicit --output
  argument required
- libinput measure touchpad-pressure has been revamped to be a bit more
  obvious
- libinput measure touchpad-size has been added (as replacement for the
  touchpad-edge-detector tool)
- libinput measure fuzz has been fixed to work (again and) slightly more
  reliable

The libinput test suite has been fixed to avoid interference with the
currently running session. Previously it was virtually impossible to work
while the test suite is running - multiple windows would pop up, the screen
would blank regularly, etc.

And of course a collection of fixes, quirks and new bugs.

As usual, see the git shortlog for details.

Diego Abad A (1):
      FIX: typo on building documentation

Peter Hutterer (2):
      test: semi-fix the switch_suspend_with_touchpad test
      libinput 1.16.0

git tag: 1.16.0
Read more Also: >Libinput 1.16 Released - Ready To Warn You If Your System Is Too Slow

18 Frameworks, Libraries, and Projects for Building Medical Applications

Open-source is not just a license or a code-based that left free on an online repository, It's a complete concept which comes with several advantages. Moreover, the most advantage you can get from Open-source is beyond the open-code it's FREEDOM; freedom to use or re-shape it as you see fit within your project commercial or otherwise, and that depends on the license of course. You are free from the headache of license conflict legal problems but also from the dilemma of dealing with restrections and limitations which come with property licenses. You are free from the system lock-in schemes, furthermore, you own your data, and freedom to customize the software as your structure requires and workflow demands. The Community: The Open-source project gains a powerful community as they gain users, the community users vary between advanced users, end-users, developers and end-users on decision-making level. Many of the community users are providing quality inputs from their usage and customized use-case and workflow or test-runs, Furthermore, they always have something to add as new features, UI modification, different usability setup, and overall introducing new workflows and tools, and That's what makes the progress of the open-source different than non-free solutions. While, Good community means good support, The community is a good resource to hire advanced users, developers, and system experts. It also provides alternative options when hiring developers. Unlike non-free software which are not blessed with such communities and where the options there are limited, The rich open-source community provides rich questions and answers sets that contributed by users from all around the world. Higher education value for the in-house team The open-source concept itself provides educational value, I owe most of what I know to open-source communities.The access to the source code and open-channels communication with the core developers is the best educational value any developer can get. Read more

Android Leftovers

Python Programming