1
FalkonTutorials/qml/articles/1.Introduction.md
Juraj Oravec 6af4295558
QML: Remove system theme/style Limitation
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2022-06-20 23:29:24 +02:00

2.1 KiB

Falkon QML Tutorial - 1. Introduction

Hello, in this series I would like to introduce and describe how to write extensions for Falkon web browser with QML.

Starting with Falkon 3.2 there is support for installing extensions from store which can be found at store.falkon.org

Falkon supports extensions written in C++, Python and QML.
This series will go over the QML implementation.

Requirements

  1. Knowledge of C++ (Beneficial, Optional)
    There is no way around this, while there are times when just looking at documentation is enough I prefer the code.
  2. The Falkon source code
  3. Knowledge of QML, QtQuick and Qt
    It is good to have Qt documentation and Qt development tools like Qt Designer at hand.

Limitations

NOTE: First I have to mention that I do not know much about QML development, only bits here and there.

  • The instance of FalkonAction (toolbar button) is shared between all Falkon windows in the same instance. This makes it unsuitable for showing live status of website since it will be totaly broken the moment another window is opened and I do not want to see that happening to my extensions.
  • The button created with FalkonAction always requires to have popup property present or it will not work properly (e.g. icon will be missing from the button, maybe more).
  • The extension settings window cannot be closed from within QML code (e.g. by pressing a "Cancel" button).
  • At the moment Enums in QML are a bit unintuitive and even partialy broken (not present at all while they should). I will try to revise and redesign this in the future.

Falkon module

To access Falkon specific features and functions inside the QML script you need to use Falkon module.

import org.kde.falkon 1.0 as Falkon