June 16, 2019

Week 75 in KDE’s Usability & Productivity initiative is here! It’s a little lighter than usual because we’re all feverishly preparing for the dual Plasma and Usability & Productivity sprints nest week in Valencia, Spain. I’ll be there, as well as the whole Plasma team, a bunch of VDG people, and a number of folks who have stepped up to work on apps for the U&P initiative. Sprints like these promise the kind of face-to-face contact needed for big projects, and should be a fantastically awesome and productive time! I’d like to offer a special thanks to Slimbook (makers of the KDE Slimbook II laptop) for hosting the sprint!

Anyway, here’s the week’s report:

New Features

Bugfixes & Performance Improvements

User Interface Improvements

Next week, your name could be in this list! Not sure how? Just ask! I’ve helped mentor a number of new contributors recently and I’d love to help you, too! You can also check out https://community.kde.org/Get_Involved, and find out how you can help be a part of something that really matters. You don’t have to already be a programmer. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

If you find KDE software useful, consider making a donation to the KDE e.V. foundation.

We are seeing a strange trend nowadays: The terminal is being more widely used in windows, after they fixed the broken cmd.exe and MS is actually actively promoting their terminal applications like Visual Studio Code and the new Windows Terminal, but on the other hand the Unix world was always terminal based, even if you tend to use the Desktop Environment for your daily needs you probably also had a Terminal open somewhere.

And because we had always been terminal users, there are a lot of terminals for Linux, But it’s not easy to keep a terminal up to date, it’s usually fragile code and hard to maintain, that means that a lot of projects, good projects, are abandoned.

Good terminals that unfortunately didn’t make it

  • Tilix: Is one of the best terminal emulators out there, it’s a shell written in D, on top of VTE, the author lacks the time to continue working on it.
  • Terminator: I don’t know if this one is abandoned as there’s no news on the web about it, the news that I know is that version 2 is scheduled for release in 2017, never happened though.

If you are sad that your favorite terminal is without a maintainer, try to maintain it, free software depends on developers.

The state of Konsole:

  • Konsole is receiving more reviews, more code and more contributors in the last year than it got in the past 10 years.
  • In the past, the project is kept alive by Kurt, and he did an awesome job. But a project as big as konsole needs more people.
  • Three new developers joined konsole and are activelly fixing things over the past year, no plans to stop.
  • Terminator / Tilix split mode is working
  • A few features to be completely equal to minix / terminator is missing, but not hard to implement

Now it has more developers and more code flowing, fixing bugs, improving the interface, increasing the number of lines of code flowing thru the codebase. We don’t plan to stop supporting konsole, and it will not depend on a single developer anymore.

We want konsole to be the swiss army knife of terminal emulators, you can already do with konsole a lot of things that are impossible in other terminals, but we want more. And we need more developers for that.

Konsole is, together with VTE, the most used terminal out there in numbers of applications that integrate the technology: Dolphin, Kate, KDevelop, Yakuake, and many other applications also use konsole, so fixing a bug in one place we are helping a lot of other applications too.

Consider joining a project, Consider sending code.

June 15, 2019

Estas últimas semanas están plagadas de noticias sobre eventos de la Comunidad KDE. Y es que hace unos días hablábamos del programa de Akademy-es 2019 de Vigo, hoy toca hablar de que se ha abierto el registro a Akademy 2019 de Milano, el evento internacional de KDE que se celebrará del 7 al 13 de septiembre.

Abierto el registro a Akademy 2019 de Milano

Como suele ser habitual, los eventos relacionados con el Software Libre, aunque son de entrada libre y gratuita requieren un registro previo para contabilizar participantes y poder prevenir problemas de espacio.

Akademy 2019 de Milano no es una excepción y el pasado 6 de junio abrió su plataforma de registro de asistentes, donde además de proporcionar una estimación de asistentes se suelen preguntar quienes participarán a algunos de los eventos lúdicos o gastronómicos que suelen acompañar a este tipo de eventos.

Si eres simpatizante del Proyecto KDE y puedes asistir, no te la puedes perder. Conocer cara a cara a los principales desarrolladores KDE no tiene precio y es una experiencia única.

Además, no olvidemos que después de los dos días de charlas, se celebran 5 días de intenso trabajo de hacking donde además de picar código se realizan talleres donde se enseña, se discute, se alinean posturas y se fijan las bases del desarrollo de partes de KDE, como Plasma, que se seguirán a lo largo de un año.

Así que si lo tienes claro, no lo dudes y regístrate. Estoy seguro que no te arrepentirás.

¿Qué es Akademy?

Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores. Allí se reunirán a lo largo de una semana para compartir charlas, cenas, ponencias, talleres y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos.

Akademy lleva realizándose anualmente bajo este nombre desde 2004, en la página web oficial o en la wikipedia podéis encontrar los nombres y fechas anteriores eventos.

Para que os hagáis una ligera idea de la magnitud del evento, os dejo una imagen de grupo de Akademy 2017 de Almería en la que tuve la suerte de participar.

Abierto el registro a Akademy 2019 de Milano

In the last week, there have been various small improvements to the kde.org website.

Search bar in kde.org/applications

KDE has a lot of applications and with the last update to kde.org/application made by Jonathan Riddell, all these applications are now displayed on the website.

The problem is that it’s now difficult to search for a specific application, so I added a search bar to this page. See Merge request 5 kde-org-applications

Search bar in kde.org/applications

Support multiple screenshots per application

According to the AppStream specification, an application can have multiple screenshots. If before only the first screenshot was displayed, now all screenshots are displayed in a carousel. See Merge request 3 kde-org-applications

Adding schema.org information

The application page now contains some additional metadata information. This can help search engines to better understand the content of the webpage. See Merge request 7 kde-org-applications

Improving the Plasma product page

With Plasma 5.16, we now have a new wallpaper, so I changed the wallpaper displayed at kde.org/plasma-desktop. Problem: the contrast between the text and the background wasn’t great. So I added a small breeze like window, created only with CSS and HTML.

Window breeze like with only CSS

Junior jobs

There still are a lot of things that can be improved, and we would appreciate some help to do it. If you always wanted to contribute to KDE, but don’t have any knowledge in Cpp and Qt, then you can also help with web development.

If you are interested, I listed some junior jobs.

  • The carousel used to display the application screenshots still has some problems. The next and previous buttons don’t use the same theme as the carousel shown on the homepage. Also, when screenshots have a different size, the transition is not perfect. For more information, see bug 408728.

  • We need to add a description for each page in kde.org. This will improve the SEO used for KDE. First we need to define the new variable in aether, use it, and then we can start adding descriptions. This task needs to be done in cooperation with kde-promo and this should help with Search Engine Optimization (SEO).

I wrote a small installation instruction on how to setup your local development environment. And if you need any help, you can as always contact me in Mastodon at @carl@linuxrocks.online or with matrix at @carl:kde.org.

June 14, 2019

During the next days, we’ll be having several sprints in València.

First we’ll be having the KDE e.V. Board on Monday and Tuesday then we’ll be having two big sprints:

  • Plasma, where we’ll be planning and working on the features for the next year (or more!)
  • Usability & Productivity goal’s that will look into different applications and components in KDE that need attention to work properly and improve them.

If you are around and you’d like to meet the different groups, we’ll be having open dinners so you can join and ask us anything.

  • The Board dinner will be next Monday 17th June at 20:30.
  • The Plasma & Usability dinner will be next Saturday 22nd June at 20:30.

Send me an e-mail to aleixpol@kde.org saying when you’d like to come.
The location will be decided depending on the amount of people who ends up coming.

Last but not least, big thanks to Slimbook for hosting us for this sprint! ��

This would start with a quote: Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing.

The KDE Applications website was a minimal possible change to move it from an unmaintained and incomplete site to a self-maintaining and complete site.  It’s been fun to see it get picked up in places like Ubuntu Weekly News, Late Night Linux and chatting to people in real life they have seen it get an update. So clearly it’s important to keep our websites maintained.  Alas the social and technical barriers are too high in KDE.  My current hope is that the Promo team will take over the kde-www stuff giving it communication channels and transparancy that doesn’t currently exist.  There is plenty more work to be done on kde.org/applications website to make it useful, do give me a ping if you want to help out.

In the mean time I’ve updated the kde.org front page text box where there is a brief description of KDE.  I remember a keynote from Aaron around 2010 at Akademy where he slagged off the description that was used on kde.org.  Since then we have had Visions and Missions and Goals and whatnot defined but nobody has thought to put them on the website.  So here’s the new way of presenting KDE to the world:

Thanks to Carl and others for review.

 

Una vez presentado el programa de charlas de Akademy-es 2019 de Vigo, llegamos a la actualización mensual de rigor que demuestra que los desarrolladores de KDE no dejan de trabajar. En este caso, se congratulan en anunciar la actualización de junio del 2019 de KDE Frameworks, es decir, la versión 5.59, la cual fue lanzada hace casi una semana pero que lamentablemente no he podido publicar antes.

Actualización de junio del 2019 de KDE Frameworks, el motor de Plasma

Actualización de junio del 2019 de KDE Frameworks, el motor de PlasmaA pesar de que para los usuarios corrientes esta noticia sea algo confusa ya que no se trata de realzar una nueva aplicación ni de una nueva gran funcionalidad del escritorio, el desarrollo de KDE Frameworks tiene repercusiones directas en él a medio y largo plazo.

No hay que olvidar que las mejoras de estas herramientas facilita el desarrollo del Software de la Comunidad KDE, proporcionándonos las herramientas y aplicaciones que utilizamos día a día.

El sábado 8 de junio de 2019, con precisión suiza, fue lanzado KDE Frameworks 5.59, la nueva revisión del entorno de programación sobre el que se asienta Plasma 5, el escritorio GNU/Linux de la Comunidad KDE, y las aplicaciones que se crean con para él. Este KDE Frameworks facilita muchísimo la creación de software para el moderno ecosistema actual de la Comunidad KDE.

Hay que recordar que los desarrolladores de KDE decidieron lanzar actualizaciones mensuales de este proyecto y lo están cumpliendo con puntualmente. La idea es ofrecer pocas pero consolidadas novedades, a la vez que se mantiene el proyecto evolucionando y siempre adaptándose al vertiginoso mundo del Software Libre.

Este lanzamiento nos ofrece una avalancha de muchas mejoras en Baloo, KTextEditor y Plasma Framework, y mejoras menores en casi todas las librerías que contiene KDE Frameworks.

Una gran noticia para la Comunidad KDE que demuestra la evolución continua del proyecto.

Más información: KDE

¿Qué es KDE Frameworks?

Para los que no lo sepan, KDE Frameworks añade más de 70 librerías a Qt que proporcionan una gran variedad de funcionalidades necesarias y comunes, precisadas por los desarrolladores, testeadas por aplicaciones especí­ficas y publicadas bajo licencias flexibles. Como he comentado, este entorno de programación es la base para el desarrollo tanto de las nuevas aplicaciones KDE y del escritorio Plasma 5.

Actualización de julio del 2018 de KDE Frameworks

Aquí podéis encontrar un listado con todos estos frameworks y la serie de artículos que dedico a KDE Frameworks en el blog,

Recuerda que puedes ver una introducción a Frameworks 5.0 en su anuncio de lanzamiento.

June 13, 2019

Time for another development update. The last one was in April. We skipped reporting on May, because doing a release takes a lot of time and effort and concentration! And then we had to do a bugfix release in the first week of June; the next release, Krita 4.2.2, will be out by the end of this month.

We’re still fixing bugs like crazy, helped by long-standing community member Ivan Yossi, who started fixing bugs full-time in May, too.

But then, we’re also getting a crazy number of bug reports. Honesty compels us to say that many of those reports are not so very valuable: there are many people with broken systems who report problems that we cannot solve in Krita, and many people report bugs without telling us anything at all. Hence we created a manual page on reporting bugs! But there are also many helpful bug reports that give us a chance to improve things.

So, how does Krita’s development work these days? Well, there are the many people who work on Krita as volunteers, which has always been the mainstay of Krita development. Then there are this year’s four Google Summer of Code students, who are all making good progress in their projects.  Krita has participated in every edition of Google Summer of Code since the beginning.

But these days, there are four people working on Krita full-time, thanks to donations, the development fund (which we’re working on to revamp a bit and make it more useful to supporters, too), the Windows Store and the Steam Store. None of us is exactly getting rich, but we’re getting by. And we’re doing stuff that would otherwise be hard to do: projects that take several weeks or months to complete, fixing lots of bugs all over the place, doing janitorial stuff like fixing warnings and so on.

Since this is a development update, we’ll just in passing mention all the great work that’s been done on this website, the manual, and all the work supporting our users on places like the forum or reddit.

We’re all hanging out on the Krita IRC channel, which is the main place where contributors to Krita come together to discuss whatever needs to be discussed. We have a weekly meeting every Monday from 14:00 to 15:00 CE(S)T — which means that if you’ve got a question about Krita, that’s probably not the right time to join the channel.

In August, we’ll have another Krita Sprint, a big one, with 25 people attending. Half of the people coming to the Sprint are contributors, half are artists and half are both.

So, that’s how our community in general works — but what did we do specifically, since the release? Since 4.2.0, we released 4.2.1 with a bunch of bug fixes already, and the fixing has not abated. Tiar has finished most of the work on making Krita report back any and all failures when saving an image. Dmitry has been fixing some severe issues in the layer stack, GPU canvas and tool handling, Boudewijn has been fixing bugs all over the place and Ivan has been busy with animated brush tips (that is, Gimp Image Hose files).

Color is random, left and right hands come one after the other, and hand direction  is dependent on drawing direction. Image by Ivan Yossi.

Not for 4.2.2, but 4.3 (which should be out in September) are two new features already: the palettize filter by Carl Olsson, still work in progress, but that’s fine, 4.3 isn’t done yet, and the High Pass filter by Miguel Lopez:

Allows interactively painting in truecolour while viewing matched to palette, with optional pattern-based dithering. Image by Carl Schwan

At the Libre Graphics Meeting, which was attended by Boudewijn, Wolthera and Tiar, several projects presented the history of their project with cool graphs. Well, since Krita officially turned twenty on June 8th (which we completely forgot to celebrate, because of all the release work), we thought it might be interesting to analyze the history of Krita’s codebase a bit as well.

Interestingly, this commit isn’t even in Krita’s git repository anymore: a lot of history was lost over the years. Krita started out as KImageShop in KDE’s CVS repository. Then, after KImageShop had been renamed to Krayon and Krita, the CVS repository was converted to Subversion. Then the subversion repository was converted to git, and the git repository split into a KOffice, a Calligra and a Calligra-History repository.  And then the Krita repository was extracted from the Calligra repository. Still, let’s take a look at what we found out.

We used theseus-of-git to analyze the repository. Here’s the number of lines of code written by the top twenty-five developers.

Another interesting graphic shows how long code survives over the years. Just as in the previous graph, there’s a huge peak of code that quickly disappears, and that’s when KOffice/Calligra was being developed together with Nokia for the Maemo document viewer application. When Krita was separated from Calligra, all that code was no longer necessary.

The type of files in the repository is pretty constant: it’s .cpp and .h files, meaning, that Krita is and always has beem mostly C++. The funniest thing is maybe the enormous number of lines of code in .xmi files. That’s Umbrello‘s file format, and it represents UML diagrams of Krita’s codebase. Those had to be updated manually, and at one point, we just deleted them because they had gotten useless.

La unión Software y Hardware es algo básico si queremos que el Software Libre triunfe en el escritorio., así que deberíamos apoyar a aquellas empresas de Hardware que incluyen por defecto sistemas GNU/Linux en sus dispositivos. Es el caso de Slimbook, compañía que acaba de lanzar la linea Slimbook Pro Base, la cual intenta acercar todavía más los portátiles Linux al público.

Slimbook Pro Base, renovando y abaratando la línea de Ultrabooks

Esta semana de lanzamiento de Plasma 5.16 se complementa con la noticia de que los chicos de Slimbook, los cuales son patrocinadores de Akademy-es 2019 de Vigo,  han decidido sacar adelante una «nueva» línea de ultrabooks a la que han bautizado con el nombre de Slimbook Pro Base.

Esta línea constituye la evolución o renovación de los modelos Slimbook Pro 2 y Excalibur, dos ultrabooks de 14 y 15.6 pulgadas respectivamente. Estos dispositivos llevan procesadores Intel i5 e i7 de octava generación, lo cual no es nada nuevo así que la novedad es que los lanzan con una buena bajada de precio.

Evidentemente, algún sacrificio menor se ha tenido que hacer:  perdida del puerto Thunderbolt, limitaciones en las configuraciones altas e incorporación  de algunos elementos plásticos en la carcasa de 15 pulgadas.

Así que, en modo resumen, el modelo PRO BASE 14, que continua siendo montado en aluminio gris, tiene un un precio de salida de 599 €, mientras que el modelo PRO BASE 15, inicialmente montado en aluminio gris y próximamente también en aluminio rojo, tiene un precio de salida de 629 €.

Slimbook Pro Base, renovando y abaratando la línea de Ultrabooks

Una buena oportunidad para aquellos usuarios que no requieren un ultrabook extremadamente potente, aunque para ellos los chicos de Slimbook nos están preparando otra línea, la familia Slimbook Pro X, de la cual apenas tenemos solo algunas pinceladas de información como que será muy ligero, con mucha autonomía, con una gran potencia y con un sistemas de reconocimiento facial. Estaremos muy atentos.

June 12, 2019

This month of June I have started a new adventure. I have joined MBition, GmbH, a 100% owned subsidiary of Daimler AG focused on …

“MBition focuses on Infotainment-Software, Navigation-Software, Cloud-Software and UI-Software. ” (extracted from the MBition website).

Automotive is one of those industries that is going through disruptive changes. I think it is a very interesting place to be right now if you are looking for some excitement.mbition_black

Back in 2018, I did a talk at the Autonomous Vehicle Software Symposium, in Stuttgart, Germany, where I said something like this, when referring to software platforms for automotive in the autonomous driving era:

  • What the industry is doing today will not work then.
  • What the industry knows today in this field will not be enough.
  • Learning fast becomes the only suitable strategy to succeed.

Then I asked if OEMs and Tier 1s were learning fast enough. I still believe today that in general no they are not.

Will we at MBition be able to make a positive impact in the way Daimler is learning about how to design, develop, deliver and maintain a software stack that meets the current and future industry requirements, providing at the same time a premium experience to customers, developers and partners?

I will work to answer YES to that question. It will be an outstanding challenge to face during the coming months. I am very excited about it.

Thanks Gregor, Johan and the rest of the MBition crew for giving me this opportunity. A new journey begins.

I will remain in Málaga working remotely for now but visiting Berlin frequently since MBition’s office is located there.

Hello again!

In the last week, I gained progress with the QML rendering library (see the code here)

It is doing what it is supposed to do – it renders an input QML file to output frames of a specified format and renders it as quick as possible (with QQuickRenderControl). If you want to test it out – there is CLI access to it through an executable (which is one of the things I’ve been working in the last week) for the library in the test directory here (make sure you read the READMEs along the way!)

So let’s try to understand what really happens at the core of the library i.e. the rendering part.

To render QML, the obvious approach is to take ‘screenshots’ of each frame using a grab() method which would grab all the pixels at each instant of time and then render it – not only is this darned slow and expensive, it is also not possible to render at a custom frame rate that way.

Here’s where QQuickRenderControl comes into the picture. QQuickRenderControl is used for rendering Qt Quick content (read QML) onto something in a very controlled manner. If you read the official documentation, that ‘something’ is an ‘offscreen render target’ – emphasis on ‘offscreen’ – which means we can tell our dummy window or surface to render our QML onto something else (a QOpenGLFramebufferObject to be specific) and that too, in a very quick process as well!

That was in words, now let’s see some code – I do not want to confuse you (further) but this is essential because at the core of this library is this rendering.

Before we start rendering, we need to setup QQuickRenderControl :

1) Set up the the format of the surface on which we will be doing the rendering on.

QSurfaceFormat format;
format.setDepthBufferSize(16);
format.setStencilBufferSize(8);

2) Set up the OpenGL context

m_context = std::make_unique<QOpenGLContext>();
m_context->setFormat(format);
m_context->create();

3) Set up the surface (dummy)

m_offscreenSurface = std::make_unique<QOffscreenSurface>();
m_offscreenSurface->setFormat(m_context->format());
m_offscreenSurface->create();

4) Set up RenderControl and target window (dummy)

m_renderControl = std::make_unique<QQuickRenderControl>(this);
m_quickWindow = std::make_unique<QQuickWindow>(m_renderControl.get());
m_context->makeCurrent(m_offscreenSurface.get());
m_renderControl->initialize(m_context.get());

5) Create frame buffer object, and tell QuickWindow to render to this object

m_fbo = std::make_unique<QOpenGLFramebufferObject>(m_size * m_dpr, QOpenGLFramebufferObject::CombinedDepthStencil);
m_quickWindow->setRenderTarget(m_fbo.get());

And with that, we can begin rendering but there’s a catch – we cannot render at a custom frame rate yet, as I said before (and that is exactly what the blog that I had earlier mentioned was trying to primarily address). To achieve this, we need to tweak the animation driver – we create our own animation driver and advance frames at our own pace:

void advance() override
{
m_elapsed += m_step;
advanceAnimation();
}

With that, and the next 4 lines (in an event driven loop, of course)

m_renderControl->polishItems();
m_renderControl->sync();
m_renderControl->render();
m_context->functions()->glFlush();

You’re rendering frames! (if you want to see this code in practice, please have a look at root/QmlRenderer/src/)

That’s how it works – in my work so far here, I have made the above mentioned code, almost production ready.

For the next week, I’ve already started writing unit tests to make sure the library works fine at all points in the future. And after that, I’ll start tinkering with MLT and writing a MLT producer.

And here’s a question you might be having by now, why develop this as an independent library? Why not just directly integrate it with MLT?

Because
a) Modularity : Easier to test an independent piece of code and make sure it works.
b) Easy integration : It’s easier to integrate a module with a framework – as there are discussions regarding MLT’s future in Kdenlive.

That’s it for this week, let’s hope for the best!

June 11, 2019

KDE neon 5.16 is out featuring Plasma 5.16. Download the ISO now or upgrade your installs.

With Diversity in mind this edition features an Ice Cold themed wallpaper to make those in the southern hemisphere feel included.

We are pleased to announce that Plasma 5.16, is now available in our backports PPA for Disco 19.04.

The release announcement detailing the new features and improvements in Plasma 5.16 can be found here

Released along with this new version of Plasma is an update to KDE Frameworks 5.58. (5.59 will soon be in testing for Eoan 19.10 and may follow in the next few weeks.)

To upgrade:

Add the following repository to your software sources list:

ppa:kubuntu-ppa/backports

or if it is already added, the updates should become available via your preferred update method.

The PPA can be added manually in the Konsole terminal with the command:

sudo add-apt-repository ppa:kubuntu-ppa/backports

and packages then updated with

sudo apt update
sudo apt full-upgrade

IMPORTANT

Please note that more bugfix releases are scheduled by KDE for Plasma 5.16, so while we feel these backports will be beneficial to enthusiastic adopters, users wanting to use a Plasma release with more stabilisation/bugfixes ‘baked in’ may find it advisable to stay with Plasma 5.15 as included in the original 19.04 Disco release.

Issues with Plasma itself can be reported on the KDE bugtracker [1]. In the case of packaging or other issues, please provide feedback on our mailing list [2], IRC [3], and/or file a bug against our PPA packages [4].

1. KDE bugtracker: https://bugs.kde.org
2. Kubuntu-devel mailing list: https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel
3. Kubuntu IRC channels: #kubuntu & #kubuntu-devel on irc.freenode.net
4. Kubuntu ppa bugs: https://bugs.launchpad.net/kubuntu-ppa

The first two weeks of the GSoC coding period are now over.

Firstly, a mapping between KIO errors and FUSE errors has now been established. Previously all KIO Job errors were simply sent back to FUSE as EIO, which isn’t entirely accurate. The mapping now provides more accurate error replies.

A major new addition is 32-bit support. KIOFuse did not compile on 32-bit but these compilation errors have now been alleviated. They mostly stemmed from the fact that size_t has a different size on different architectures, and that file sizes should always be represented as off_t anyway.

Another big question was whether files larger than 4GiB could be sent without data corruption. A switch from the C standard I/O functions to UNIX I/O functions was necessary to avoid data corruption. However, this alone was not sufficient. On 32-bit files larger than 4GiB I noticed that no write call was occurring, although it occurred on 64-bit and on 32-bit with smaller files. I couldn’t point this down to anything in KIOFuse (seeming as KIOFuse simply responds to requests passed by FUSE, what can we do if we don’t receive the necessary request?). Luckily one of my mentors, fvogt, spotted a kernel bug report, which fortunately was fixed about a month ago. This bug was the cause of the problem I was seeing. This means that transferring of files larger than 4GiB via KIOFuse is now supported on distros running kernels 5.1.5+ only. Because of this, we do not recommend packaging or using KIOFuse on kernels less than the mentioned version, due to likely data corruption when transferring large files. This patch is still not in master and is under active review. It is being looked into whether adding a unit test is feasible.

I’d like to thank my mentors, fvogt and chinmoy for their help and guidance so far and look forward to improving KIOFuse further. Over the next week, signal handling and password change/unmount (if necessary) support are the features that will be worked on.

With the completion of my first milestone for my GSoC project: Nextcloud Integration on Plasma Mobile, plasma mobile accounts settings now enables the users to add their nextcloud accounts via webview.

Well! didn’t accounts setting already provide the method to add nextcloud/owncloud accounts? Yes, this functionality was already implemented by the owncloud plugin in kaccounts-providers project. Then, why did I re-implement the same thing?
As I mentioned, now accounts can be added via webview.

Why using WebView approach for login is better?
This approach is not only more convenient to implement but, it also makes sure that the application never stores the user’s password. The users can be ensured that their credentials can’t be misused.

Work Flow
Clicking on Add new Account button shows all the accounts plugin options declared by .provider.in files in providers folder of kaccounts-providers.


On choosing nextcloud option, Nextcloud Wizard shows up. On clicking the login option, the server address entered by user is checked and then the WebView is initiated.


On the final login the server redirects to a url of the following format:
nc://login/server:<server>&user:<loginname>&password:<password>
From this URL login name and password that the application must use to login and store securely is fetched. The control is passed back to the wizard. The user is given option to choose whether or not (s)he wants to synchronize the contacts from the server. This is further facilitated and managed by kaccounts-mobile. Once the login is complete, the username, the password and the other data stored in json object is passed to kaccounts-integration. It manages storing all the accounts and displaying saved accounts on plasma-settings Accounts.

Say hello to Plasma 5.16, a the newest iteration of KDE's desktop environment, chock-a-block with new features and improvements.

For starters, check out the new notification system! Not only can you mute notifications altogether with the Do Not Disturb mode, but the system also groups notifications by app. Like this, when you run through the history of past notifications, you can see all the messages from KDE Connect in one category, the download information in another, email alerts in a third, and so on.

Discover, Plasma's software manager, is also cleaner and clearer as it now has two distinct areas for downloading and installing software on the Update page. Besides, when updating, the completion bar now works correctly and the packages disappear from the list as the software manager completes their installation.

With each new version, we make Plasma safer, and protect your data better. In 5.16 we have made using Vaults easier and more convenient. Vaults are a built-in utility to encrypt folders, installed by default on Plasma, and you can now open them directly from Dolphin.

Protecting your privacy requires that we focus on the small details, too. When any application accesses the microphone, an icon will pop up in your system tray, showing that something is listening. It doesn't matter whether it is graphical application, a web app or a process started on the command line - the icon will show up alerting you to the fact. You can deactivate your mic by clicking the icon with the middle button on your mouse.

Plasma 5.16 is also spectacular to look at, with our new wallpaper called Ice Cold. Designed by Santiago Cézar, it is the winner of a contest with more than 150 entries. Ice Cold will keep you cool and feeling fresh for the upcoming summer months. Again, giving you options is what Plasma is all about, so we have included a few other contest submissions for you to choose from.

Talking of options, many of the pages in the System Settings have been redesigned, with clearer icons and friendlier layouts. Getting back to wallpapers: the Wallpaper Slideshow settings window displays the images in the folders you selected, and lets you select only the graphics you want to display in the slideshow. To improve visibility, window and menu shadow colors are pure black - something that works especially well when using dark themes.

And if creating themes is your thing, many of the hard-coded look and feel options are gone know, allowing you full freedom to design widgets to your liking. You'll notice it in the small things, like the analog clock handles: Plasma themes now let you tweak their look by adjusting the offset and toggling the blur behind panels.

For a more comprehensive overview of what to expect in Plasma 5.16, check out the official announcement or the changelog for the complete list of changes.

Functional, feature-rich, privacy-protecting and beautiful... What else could you ask for? Look out for Plasma 5.16 in a distribution near you!

June 10, 2019

While browsing the ISO C++ homepage I stumbled over the results PDF of the Second Annual C++ Foundation Developer Survey “Lite”.

I was astonished that Kate made it into the “Which development environments (IDEs) or editors do you use for C++ development?” results.

;=) Seems not only I use it as my normal editor for working on C++ code.

And heads up, KDevelop is there, too!

This is actually the second survey, I missed to notice the first one last year. The results PDF from last year shows Kate did show up already there.

We shouldn’t be that proud of only having less than three percent usage, but still, we are there at all. I hope we can rise here a bit in the future.

At least we work on supporting modern C++ standards in the highlighting, e.g. see the recent C++20 improvements (Phabricator + Commit). Thanks to Jonathan Poelen for the patch!

Language Server Protocol (LSP) would help, too, but my initial work is far from usable, help appreciated. Beside a hacked “goto definition” nothing works at the moment (and it is hardcoded to just start clangd, no other LSP server).

Hi! Last week was start of the GSOC coding period. So I started my project. Also I opened my code on the KDE git. https://cgit.kde.org/scratch/songeon/kmarkdownparser.git/

If you are interested in my project feel free to look and give me some advices.

Parser using Spirit::x3

First, I started to make the markdown parser using the Boost Spirit X3.

Spirit makes easy to express grammar using the PEG. But it’s templet based library so it was hard to find out which part is wrong. Also documentation of spirit was limited.

So I had a lots of trial and error to get compilable source code.

http://becpp.org/blog/wp-content/uploads/2019/02/Ruben-Van-Boxem-Parsing-CSS-in-C-with-Boost-Spirit-X3.pdf

https://ciere.com/cppnow15/using_x3.pdf

this two slides was really helpful for me.

Markdown AST Structure

if we type markdown document like this

# hello
> > 1. - **sadf** - 
> > 
> > sadf
> 
> asdf

we will get result like this.

Markdown document’s can be splited in each lines. line is the smallest unit of the markdown document. Also line can be expressed attributes, string, emphasizes.

  • attributes : Line’s attribute that change the block style. There are two types of attribute.
  • Single Attribute : # header. Style applied only once.
  • Multiple Attributes : > BlockQuote, Lists. Sytle applied recursively.
  • String : Content of the document. It contains only string.
  • Emphasize : Bold, Cancleline, Underline… It contains index of string to be emphasized

All line can be parsed in parallel on multiple threads. Because each line is independent from other lines. After parsing seperatly it can be reassembled after parsing phase.

So we can express this grammar with the Spirit grammar like this

    auto const Line_def= 
        Header[pushFunc] >> String[setContent]
        | (MultipleAttribute)* >> EmphasizeString[getEmphStr];

Piece Table

I had a hard time to implementing the Emphasize String.

All String Emphasize token should be paired. If tokens not paired it should be inserted in original points

    **this is paired example**
    
    **This token -> -- is not paired**

Like this exampled -- should be inserted in middle of the string as the normal character.

We can simply using insert method but it has performance issue.

If there is a original string length N and another string length M to be inserted in position P.

First split the original string at position P and shift the splited string as mush as M.

Then put the string length M in position P. It takes almost O(N).

If there are alot of non-paired tokens, It will consume more time.


So I found the VSCode team’s article about reimplementing text buffer using the Piece Table.

https://code.visualstudio.com/blogs/2018/03/23/text-buffer-reimplementation

The main idea of the Piece Table is seperate the original buffer and added buffer.

And split the strings in a small pieces containing position to insert and the string length.

Make a table about how to make new string using each pieces.

So I applied this structure in appending non-paired emphasize tokens.

    const auto EmphasizeString_def = 
      +(omit[Emphasize[setEmp]] | Content[setEmpText]); 

In my grammar definition, it do not check the pairness of Emphasize token.

Basically Emphasize token are temporary stored in Emphasize Stack to check pairness.

First If there is token can be paired, add token in Emphasize vector and clean the non-paired tokens.

Or there are not tokens can be paired just push the token in the Emphasize Stack and push token’s string value in the buffer vector.


Strings are also added in the buffer vector and inserted in the Piece Map.

Piece Map works same as Piece table but effective on find the piece on some position.

Piece Map is multimap that use Piece’s index and Piece as key value.

So we can iterate whole pieces and make new string with non-paired tokens.

    namespace AST {
      struct Piece {
        int start = 0, len = 0;
        int bufIdx = 0;
      };
    
      struct Emphasize {
        int start = 0, end = 0, bufIdx = 0;
        EmphasizeType empType = EmphasizeType::DEFAULT;
      };
    
      using PieceMap = std::multimap<int, Piece>;
      using PieceMapIter = PieceMap::iterator;
    
      class EmphasizeString {
        private:
          int currPos = 0, addedTokenLen = 0;
          std::vector<std::string> buffer;
          std::vector<Emphasize>  empSt, emps;
          PieceMap pieceMap;
    
        private:
          int clearNonComplete(std::vector<Emphasize>::iterator );
        public:
          EmphasizeString();
          void addEmphToken(EmphasizeType empt);
          void appendText(const std::string& text);
          std::string getString();
          const std::vector<Emphasize> &getEmphasizes() const;
      };
    };

You can check my whole code on KDE git.


After first week

I think it was good starting for me. But this week and next week is my final exam in the school.

So me and my mentors Eike and SungJae planned to refactor the code and make view of markdown.

They also mentioned adding the licensing policy and following the KDE’s codding convention.

Thank you for reading my article and I’ll write next article after my final finish.

As part of GSoC 2019, I am working on KDE ISO Image Writer which is a tool to write ISO images to USB flash drives.

The main goals that I set for this GSoC are:

  • Rework the user interface (following this design).
  • Improve and extend the ISO verification mechanism.
  • Thoroughly test the software to identify bugs.
  • Package the application for Linux, Windows and macOS.

First Attempt at Revamping the UI

When I first looked at the design, I thought I would rewrite the UI in the shape of a wizard using QWizard.

The application would have three main screens that would guide the user through the process of writing an ISO image into a USB flash drive:

  • Select an ISO image
  • Select a USB flash drive
  • Write to USB flash drive

I made the following sketches to illustrate my idea for the user interface:

Select ISO image
Select USB flash drive
Write to USB flash drive

I started implementing this idea using Qt’s QWizard with the idea of having a QWizardPage for each of the above screens:

KDE ISO Image Writer using QWizard

The Way Forward

I had a discussion with my mentor Jonathan Riddell and Nate Graham who is part of the KDE VDG about my plans on the user interface. They provided valuable comments about my approach. It was then clear to me that a wizard is not suitable for this use case and we agreed on the way forward, which is to implement the initial design.

Could you tell us something about yourself?

My name is Asja Flaim and I am 13 years old. I am from Italy. I love to draw and to put my thoughts to paper. Especially when I am sad, drawing helps me feel much better.

How did you find out about Krita?

When I got my PC and my Huion 191 tablet as a Christmas gift, Krita was installed on the PC.

Do you draw on paper too, and which is more fun, paper or computer?

Yes I draw on paper, too. Often it’s much easier to draw on paper, because digital art is still quite complicated for me. Drawing is fun anyways, doesn’t matter where ��

What kinds of pictures do you draw?

I love to draw persons in manga style, but recently I like to draw realistic things, like eyes and faces.

What is easy to do with Krita? What is difficult to do?

It’s easy to find all the brushes and things you need to draw. I find it quite difficult to use my drawing tablet properly, I don’t have the precision like when I am drawing on paper. But this isn’t Krita’s fault.

I even used Krita to make an animation for my Youtube channel. That was quite hard, but I think the result was good and I had much fun.

What is the best thing about Krita?

It is easy to use, everything you need is easy to find and I can adapt my work space like I need it, with all my tools in place.

Is there anything in Krita that you’d like to be different?

That’s a hard question. I only use Krita and I think it is great as it is. All the stuff about animation and how fast the frames are displayed, when you export the animation could be easier to set up. Or maybe I just don’t understand how it works properly.

What is your favourite picture that you made with Krita?

The cupcake �� It is a picture that I make for the birthday of my little sister and I love it.

How did you make it?

Of course with Krita and on my drawing tablet.

Is there somewhere we can see more of your work?

I am a little embarrassed, but yes, on Instagram.

Is there anything else you’d like to tell us?

My dad told me, that other drawing programs cost very much. The possibility to use a program that doesn’t cost anything and that you can use to draw almost anything is incredible.

Thank you for letting me make this interview.

June 09, 2019

In 2017 we discussed what goals the KDE community should focus on in order to get closer to our vision of a world in which everyone has control over their digital life and enjoys freedom and privacy. We went through a process of submitting and discussing proposals and then voting on them. The result were 3 clear goals that KDE focused on over the past 1.5 years: top-notch usability and productivity for basic software, streamlined onboarding of new contributors and privacy. The focus the goals gave us have led to significant progress in all 3 areas. Check out Nate’s and Neofytos’ summary! But not only that. We got fantastic new people on board and our larger community and users understood that we care about and make progress in areas that matter to them. Thank you to everyone who has and continues to put work into these. Your contributions make KDE better every single day.

The goals we had set were ambitious and in some sense they can never be completed. However after 1.5 years the large initiatives behind them are well underway and the ideas behind them have become part of our daily routine. This means it is time to think about the next goals (or decide to double down on any of the current goals) to focus our collective attention on. So today we are starting the next round of KDE community goals.

The timeline:
  • June: Anyone can submit draft proposals
  • Beginning of July to middle of August: We discuss and improve proposals together
  • Second half of August: We vote on the finalized proposals
  • At Akademy in September: We announce the new goals

Do you have an idea for a goal for KDE? Get a small group of people together and propose it today by adding it to this board on Phabricator. Do you need some inspiration? Have a look at last round’s proposals. If you have any questions please send an email to the kde-community mailinglist.

<prelude> In the previous post, I discussed boost::astar_search and ignored the most important part of the whole setup, the graph itself. This I would say is a little harder to comprehend than boost::astar_search.

Week 74 in Usability & Productivity initiative is here!

Now that Plasma 5.16 is frozen and almost out the door, we’ve started turning our attentions to Plasma 5.17. One of the big features I’m pushing on is a visual evolution of the Breeze theme. The first component just landed: KWin-generated window borders are now off by default for the Breeze theme! Don’t worry, this doesn’t mean you have to aim for a single pixel to to resize windows; there are virtual resize areas just the same size as the old window borders so the behavior is unchanged. It also has no effect on other themes, many of which have big, beautiful borders that stand out as part of the theme’s design. But Breeze is a minimalistic theme, and this is the first step towards modernizing the look and feel of KDE apps. We think you’re really going to love the final result!

In the meantime, take a look at all the other cool stuff that got done this week by KDE’s awesome contributors:

New Features

Bugfixes & Performance Improvements

User Interface Improvements

Next week, your name could be in this list! Not sure how? Just ask! I’ve helped mentor a number of new contributors recently and I’d love to help you, too! You can also check out https://community.kde.org/Get_Involved, and find out how you can help be a part of something that really matters. You don’t have to already be a programmer. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

If you find KDE software useful, consider making a donation to the KDE e.V. foundation.

The KDE Community welcomes our Google Summer of Code students for 2019!

These students will be working with our development teams throughout the summer, and many of them will join us this September at Akademy, our annual community meeting.

Krita will have four students this year: Alberto Flores will work with the SVG pipe/animated brush, Kuntal M. is porting the magnetic lasso, Sharaf Zaman will port Krita to Android, and Tusooa Windy will bring a better undo/redo for Krita.

digiKam will mentor three students this year. Thanh Trung Dinh will bring AI Face Recognition with the OpenCV DNN module to digiKam, Igor Antropov will improve the Faces Management workflow, and Ahmed Fathy will make a zoomable and resizable brush for Healing Clone Tool.

Labplot gets attention from two students in 2019. While Devanshu Agarwal will provide statistical analysis for Labplot, Ferencz Kovács will work on the support for importing educational data sets available on the Internet.

Another two students - Piyush Aggarwal and Weixuan Xiazo - will work on KDE Connect. Their projects are quite exciting: Piyush will be porting KDE Connect to Windows, while Weixuan brings KDEconnect to MacOS.

Akshay Kumar will bring Gcompris one step closer to version 1.0, and Akhil K Gangadharan will revamp the Titler tool for Kdenlive. Prasenjit Kumar Shaw will make data sync for Falkon a thing, and Rituka Patwal will bring Nextcloud integration to Plasma Mobile.

João Netto will improve JavaScript support on Okular, and Karina Pereira Passos will improve Khipu and Analitza. Nikita Sirgienko will implement the import/export of Jupyter notebooks in Cantor.

Atul Bisht will create a barcode scanning plugin in Purpose. Filip Fila will work on ensuring consistency between the SDDM login manager and the Plasma desktop, and SonGeon will focus on integrating kmarkdown-qtview with WYSIWYG markdown editor for KDE as a whole.

KDE neon will get a KDE ISO image writer courtesy of Farid Boudedja, while Caio Tonetti will make an improved graph theory IDE for Rocs. Alexander Saoutkin will be polishing KIOFuse, and Shubham will port authentication to Polkit-qt for KDE Partition Manager.

We look forward to our students' contributions, and we're excited to share their progress with the rest of the world. As Google Summer of Code moves forward, you'll be able to read detailed reports from our students, and find out how their work will impact your favorite KDE software. Stay tuned, and wish them luck!

June 07, 2019

And you should too!

Akademy is free to attend however you need to register to reserve your space, so head to https://akademy.kde.org/2019/register and press the buttons.

Akademy is very important to meet people, discuss future plans, learn about new stuff and make friends for life!

Note this year the recommended accomodations are a bit on the expensive side, so you may want to hurry and apply for Travel support. The last round is open until July 1st.


I'm going to Akademy 2019

KNotifications ❤ Windows 10


After a couple weeks of discussions, bug reporting, fixing and coding with lots of people from the KDE Community, KNotifications can now be used for applications targeted towards the Windows 10 OS. Yes! KNotifications could well be supporting Windows 10 native notifications within the next couple releases.

Any and all KDE applications using KNotifications need not change their code base to enjoy this new feature! More details follow:-

The SnoreToast Backend

The in-development branch brute4s99/snore-withactions in the KNotifications code base implements a new SnoreToast backend that kicks in when KNotifications is compiled for Windows 10 using the MSVC compiler. The changes done, in a simplified manner, are:-
1. Adding a back-end- SnoreToast
2. Creating a plugin for the new back-end – notifybysnore

This new feature comes with a caveat though 
the SnoreToast back-end needs to install a shortcut
to the application's .exe file in the Windows Start Menu folder
with the Application ID of the application that wishes to use
KNotifications. This is, once again, handled by 
the SnoreToast back-end itself! �� 


The apps just need to install the shortcut with the right parameters and they should be ready to rock!
P.S: We have an example for you to build upon; no need to reinvent the wheel! ��

What the Application Developers Gotta Do

KDE Connect uses Craft as its dev – build system on Windows.

Craft is an open source meta build system and package manager. It manages dependencies and builds libraries and applications from source, on WindowsMacLinux and FreeBSD.

The shortcut installation step is fairly easy, and a straightforward example has been demonstrated by KDE Connect at this diff. Most Important -> Line 35 and 39 .
The diff demonstrates how the Craft blueprint of any application can be modified accordingly to use the SnoreToast back-end.

KNotifications picks up the application ID from here. Use whatever it contains for your own application, and replace org.kde.kdeconnect.daemon with that on Line 39 here.

A small demonstration for the SnoreToast backend with KNotifications:-

Happy KDEing ��

Overview

For Google Summer of Code 2019, I am working on KDE community's project Gcompris. GCompris is a high quality educational software suite, including a large number of activities for children aged 2 to 10. Currently GCompris offers more than 100 activities, and more are being developed. For me the journey from making my first contribution to Gcompris, to my Google Summer of Code Project has been very interesting, and in this post I'll be discussing about my GSoC project i.e Adding multiple datasets to Gcompris

What are multiple datasets ?

Most of the activities are provided a dataset in json(mostly) format, which contains data about the various parameters of an activity separated in various levels that determine the functioning of the activity.
Adding multiple datasets to an activity means adding multiple data files each containing different sets of levels, and providing user the functionality to switch to any datasets that he wishes to use.

Why multiple datasets ?

For an activity in Gcompris the the difficulty of an activity even in the first level might be too much for children of certain age groups. On the other hand some activities might prove to be too easy for children of other age groups. So multiple datasets help in adding granularity in the levels of an activity, so that the user can choose a dataset as per his need or he might even want to begin with an easier dataset and then make his way to the top.

Example

For example, The first activity that I added multiple datasets to is money activity in Gcompris. https://gcompris.net/screenshots-en.html#money . The aim of the activity is to teach students how to calculate the exact amount to be paid in the form of the currency provided to them. Initially the activity had only one set of levels(i.e a single data set) in the form.

  1. Level 1:
    • min Price of object to be sold: 4 units
    • max Price of object to be sold: 10 units
  2. Level 10:
    • min Price of object to be sold: 50 units
    • max Price of object to be sold: 100 units

The plan was to add granularity to this dataset so that it could be used by children of several age groups. So, We decided to create 3 datasets of the form

  1. Dataset 1

    • Maximum price of object 10 units
  2. Dataset 2

    • Maximum price of object 100 units
  3. Dataset 3

    • Maximum price of object 1000 units

    and the user can select the required dataset from the following dialog.

So this was all about my GSoC 2019 project overview. Soon I'll be posting a full tutorial for adding multiple datasets to an activity in Gcompris

Every year, many people working on free or open source graphics applications and projects, as well as people using those applications, come together for the Libre Graphics Meeting. Originally started with the GIMP team getting together, these meetings have grown into an institution. This year’s edition was in sunny Saarbrücken.

This year, 2019, three people from the Krita team attended: Boudewijn, Wolthera and Agata. As with most of these conferences, what’s happening outside the presentation track is the most interesting thing, though this year many of the presentations were uncommonly interesting as well.

Krita project maintainer Boudewijn gave the first presentation, State of the Libre Graphics. It was recorded, but the videos have not been announced yet. The link goes to the slides. This presentation is a sort of a mix between a keynote and an update on what all of the libre graphics projects have been doing since the last LGM. There were were about thirty projects who had sent in slides, which is about double from last year. Libre graphics is healthy!

Other things that were going on were discussions about spot colors with Jan Peter Homann from Freie Farbe. Spot colors aren’t much used by creative painters, but people who design magazine covers, packaging or similar things often need them. Freie Farbe’s spot colors are defined in Lab, which theoretically makes adding support to Krita for their system very easy.

There were other discussions about how projects could give users support, an introduction into hacking on Blender, a presentation of Krita’s new HDR capabilities and much, much more.

Boudewijn attended the Inkscape hackfest, and invited an Inkscape developer to the 2020 Krita Sprint, which will likely be in Rennes. Inter-project communication is important!

One important discussion that ran through the whole conference, both in the form of presentations and hallway chats, was professionalism. There were professional artists and illustrators present who expressed concern that some projects simply do not take themselves seriously enough, which makes it hard to recommend those projects to other users.

And apart from all the meetings with other developers, artists, documentation writers, we had an interview with Keywan Tonekaboni from Heise and C’t: he already published an article on Krita 4.2.0 in Heise.de, a video interview with Alexandre Prokoudine, from Libre Graphics World (not published yet).

The second minor release of the 19.04 series is out with 77 bug fixes and minor usability improvements. Among the highlights for this release are fixes for compositing issues, misbehaving guides/markers and grouping inconsistencies. The Windows version also comes with improvements such as slideshow import and dark themes have now white icons (enable “Force Breeze Icon Theme” under settings). See the full list of commits down below.  

As previously stated this cycle is focused on polishing the rough edges post the code refactoring and a whopping 118 fixes have been submitted in the last two months alone. We ask the community to keep testing and reporting issues on our gitlab instance or join us on IRC (#kdenlive) or Telegram

Update: the 19.04.2 AppImage is available on KDE servers, with an added fix for group operation slowdown.

In other news

After this months Café we started to define the upcoming milestones for 19.08 which include Nested timelines and improvements in Speed Effect controls and advanced editing tools (insert/lift/overwrite). Also work started on the Titler revamping as part of the GSOC program. You can share your thoughts and ideas with Akhil over at the phabricator task.

Bug fixes

  • Fix copy effect or split does not keep disabled state. Commit. Fixes bug #408242
  • Fix various keyframe related issues. Commit.
  • Fix error in composition index for 1st track. Commit. Fixes bug #408081
  • Fix audio recording not added to timeline. Commit.
  • Fix guides in render widget. Commit.
  • Fix timeline selection/focus broken by recent commit. Commit.
  • Fix fade in broken on cut clips. Commit.
  • Revert audio capture to wav (should fix Windows issue #214). Commit.
  • Fix automask bugs (initial zone incorrect and not displayed on monitor). Commit.
  • Fix timeline unresponsive after deleting all clips. Commit.
  • Properly load colors & icons (Fix #112). Commit.
  • Fix clip grab state not updated on deselection. Commit.
  • Add speed info to clip tooltip. Commit.
  • Allow shortcut for change speed action. Commit.
  • Fix copy / paste track issue. Commit.
  • Fix slideshow clips on Windows. Commit.
  • Fix windows icons. Commit.
  • Add properly scaled Windows icon. Commit.
  • Fix crash opening old project file. Commit.
  • Remove old speed effect from categorization. Commit.
  • Automatically convert old custom effects to new type (and make a backup copy in the legacy folder). Commit.
  • Fix clip transcode incorrect label. Commit. Fixes bug #407808
  • Fix various transcoding issues. Commit. See bug #407808
  • Prevent saving corrupted file (with no tracks). Commit. See bug #407798
  • Detect corrupted project files on opening, propose to open backup. Commit. See bug #407798
  • Fix timewarp test after rounding change in timewarp clip duration. Commit.
  • Use default composition duration instead of full clip length on composition creation. Commit.
  • Fix invalid clip on project opening. Commit. See bug #407778
  • Fix 1 frame offset in clip duration after speed change. Commit.
  • Fix incorrect minimum speed. Commit.
  • Fix remaining marker issues. Commit.
  • Don’t create producers with non integer length (fixes invalid clip issue). Commit.
  • Do not use MLT producer’s get_length_time methd as it changes the way the length property is stored, causing inconsistencies (clock vs smpte_df). Commit. See bug #407778
  • Fix crash when marker was at clip start. Commit.
  • Fix marker position on clip cuts with speed effect. Commit.
  • Fix custom effect appearing with wrong name after save. Commit.
  • Use rounder rect icon instead of placeholder folder icon for custom effects. Commit.
  • Correctly hide/show asset settings when deselected/reselected. Commit.
  • Fix markers and snapping for clips with speed effect. Commit.
  • Disable filter clip job on tracks. Commit.
  • Fix crash in audio thumbs with reverse speed clip. Commit.
  • Fix mistake in previous commit. Commit.
  • Fix removeAllKeyframes. Commit.
  • Make lock track undoable and other fixes for locking + tests. Commit.
  • Re-add “go to guide” menu in timeline. Commit. Fixes bug #407528
  • Fix timeline doesn’t scroll with cursor. Commit. Fixes bug #407433
  • When importing a project file as clip, deduce the empty seek space. Commit.
  • Fix opening project containing invalid clips (when a source file somehow went missing). Commit.
  • Fix ungrouping when we have a selection of groups and single clips. Commit.
  • Don’t invalidate timeline/refresh monitor on audio effects. Commit.
  • Fix wrong stream imported by default on multistream clips. Commit.
  • Improve snap behavior on group resizing. Commit.
  • Fix dynamic text broken because of missing font & keyword params. Commit.
  • Fix snapping issues (disable snapping on high zoom levels). Commit.
  • Better abstraction for locking mechanism. Commit.
  • Fix endless clip test. Commit.
  • Fix resetView test. Commit.
  • Fix edit duration from timeline menu not connected. Commit.
  • Fix crash on resize after recent group resize fix. Commit.
  • Restore go to marker/guide context menu in monitor. Commit.
  • Fix regrouping items loses AVSplit property. Commit.
  • Fix: interpolation in rotoscoping filter. Commit. Fixes bug #407418
  • Fix list parameter default value broken (rotoscoping), ensure we always have a keyframe at in point. Commit.
  • Allow building on Ubuntu LTS & derivatives. Commit.
  • Fix context menu “edit guide” leaving empty space in menu. Commit.
  • Fix fuzzer compilation. Commit.
  • Fix timeline preview crash. Since a QCoreApp was created by kdenlive_render, MLT did not create its own QApplication, leading to linking crashes. Commit.
  • Enforce progressive and fps on dnxhd timeline preview profiles. Commit.
  • Add AppImage specific code to ensure we always set the correct path for MLT, FFmpeg, etc. Commit.
  • Don’t delete timeline preview files on project close. Commit.
  • Fix crash trying to delete first keyframe. Fixes #180. Commit.
  • Revert composition sorting to match previous stable behavior. Commit.
  • Fix title clip length 1 frame shorter than expected on creation. Commit.
  • Fix grouping after copy / paster. Commit.
  • Fix gap on clip move when trying to move clips. Commit.
  • Fix composition tracks listed in reverse order. Commit.
  • Fix copy/paste composition is one frame shorter. Commit.

Older blog entries


Planet KDE is made from the blogs of KDE's contributors. The opinions it contains are those of the contributor. This site is powered by Rawdog and Rawdog RSS. Feed readers can read Planet KDE with RSS, FOAF or OPML.