SoK/2018/StatusReport/Ashwin Samudre

From KDE Community Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Improve on monitor controls for image transformations in Kdenlive

Project Name: Improve on monitor controls for image transformations in Kdenlive

A Brief Description: For this SoK, I had to accomplish the following task : In addition to resizing and moving the image on the monitor, adding the functionality to –

  • Adjust rotation directly on monitor screen
  • Adjust opacity directly on monitor screen

Status of the project: Complete.

Mentor: Jean-Baptiste Mardelle

Implementation:

The work involved creating qml files for sliders on screen which when moved, the effect should persist in the video frame selected. For this I created OpacitySlider.qml and RotationSlider.qml files. The orientation of these sliders on screen is managed in another qml file - kdenlivemonitoreffectscene.qml.

The use of signal and slots from Qt C++ is the fundamental unit in this work. When the sliders are operated, signals are emitted from the root of the sliders. These signals are connected from the qml files with qmlmanager.cpp file. The functions to emit the signals are written in qmlmanager.cpp.

After this, the connect call occurs between qmlmanager.cpp and monitor.cpp to provide the effect on screen. Further the use of widgets to handle the above call is done separately for rotation and opacity slider in keyframewidget.cpp and geometrywidget.cpp files respectively.

Here is the diagram I have created to explain the connect calls between the files :



  • Screenshot before I started working on it:


  • Screenshots of the activity on completion:


Work report

Phabricator link: https://phabricator.kde.org/p/ashwins/

Phabricator work: https://phabricator.kde.org/D10176

What I learnt during SoK

  • Qml
  • Advanced functions in C++ (signal and slot in Qt)
  • Work with CMake tool
  • Neon OS usage
  • Git
  • Work on Arcanist and Phabricator tools.