Jump to content

Kexi/Plugins

From KDE Community Wiki
Revision as of 21:59, 11 October 2024 by Jstaniek (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

KEXI is not only heavily reliant on libraries but is also highly modular, utilizing a robust plugin system.

Advantages of the Plugin-Based Approach

Making KEXI highly modular and plugin-based provides several advantages:

  • The application is less monolithic, allowing multiple developers to work concurrently on different aspects without conflicts.
  • It is no longer necessary to update the entire application to modify specific functionality, such as adding support for a new database type.

Plugin System Implementation

KEXI utilizes Qt's dynamic modules API such as QPluginLoader to query and load the required code dynamically. Each plugin type is defined as a service.

Plugin Types

Plugin Type is a group of plugins that share the same API and are designed for similar tasks. For example, database drivers share a common API and purpose—handling database connections and managing database content.

A number of plugin types are provided internally within KEXI; others are provided by external frameworks.

KEXI Parts

KEXI Parts implement the KexiPart interface and one or more views via the KexiViewBase interface. Parts are used for displaying specialized editors, such as the Query Designer, Form Designer or Table Designer. KEXI provides to Parts common behaviors such as view mode switching, renaming, and removing objects.

Maintained:

Experimental:

TODO:

KEXI Table View Cell Editors

KEXI Table View Cell Editors allow non-standard content to be displayed in table cells, such as graphics. TODO: document

KEXI Form Widgets

KEXI Form Widgets: Widgets in the form editor are all implemented by plugin-based factories. This technique, similar to that used in Qt Designer, offers better integration with the KDE framework and is more user-friendly (e.g., class names are translatable and less developer-oriented).

TODO: document

KEXI Import/Export Plugins

KEXI Import/Export Plugins plugins handle data and/or schema import and sometimes export to various formats, such as text, CSV or .mdb.

TODO: document

KDb Plugins

KDb Plugins (also called drivers), provide lower and higher-level database handlers, typically for reading and writing data through a well-defined SQL database interface. Implementation is delivered by a general purpose KDb framework, and contains interfaces such as KDbDriver, KDbConnection, and KDbCursor.

See KDb/Drivers.

Property Editor Items

Property Editor Items are used to display non-standard items within the property editor. Implemented by a general purpose KProperty framework.

TODO: document