Albert
Loading...
Searching...
No Matches
plugininstance.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2025 Manuel Schneider
2// SPDX-License-Identifier: MIT
3
4#pragma once
5#include <QObject>
6#include <QString>
7#include <albert/export.h>
8#include <albert/plugin.h>
9#include <filesystem>
10#include <memory>
11#include <vector>
12class QSettings;
13class QWidget;
14
15namespace albert
16{
17class Extension;
18class PluginLoader;
19
30class ALBERT_EXPORT PluginInstance : public QObject
31{
32 Q_OBJECT
33
34public:
35
42 virtual void initialize();
43
49 virtual QWidget *buildConfigWidget();
50
56 virtual std::vector<albert::Extension *> extensions();
57
58public:
60 [[nodiscard]] const PluginLoader &loader() const;
61
63 [[nodiscard]] std::filesystem::path cacheLocation() const;
64
66 [[nodiscard]] std::filesystem::path configLocation() const;
67
69 [[nodiscard]] std::filesystem::path dataLocation() const;
70
76 [[nodiscard]] std::vector<std::filesystem::path> dataLocations() const;
77
83 [[nodiscard]] std::unique_ptr<QSettings> settings() const;
84
90 [[nodiscard]] std::unique_ptr<QSettings> state() const;
91
92signals:
93
96
97protected:
100
103
104private:
105 class Private;
106 std::unique_ptr<Private> d;
107};
108
109} // namespace albert
Abstract plugin instance class.
Definition plugininstance.h:31
const PluginLoader & loader() const
Returns the loader of this plugin.
std::vector< std::filesystem::path > dataLocations() const
Returns the existing data locations for this plugin.
void initialized()
Emitted when the plugin has completed initialization.
virtual void initialize()
Triggers the asynchronous initialization.
std::unique_ptr< QSettings > state() const
Creates a preconfigured QSettings object for plugin state data.
virtual ~PluginInstance()
Destructs the plugin instance.
std::filesystem::path dataLocation() const
Returns the writable data location for this plugin.
std::unique_ptr< QSettings > settings() const
Creates a preconfigured QSettings object for plugin config data.
PluginInstance()
Constructs a plugin instance.
std::filesystem::path cacheLocation() const
Returns the writable cache location for this plugin.
virtual QWidget * buildConfigWidget()
Creates a widget that can be used to configure the plugin properties.
std::filesystem::path configLocation() const
Returns the writable config location for this plugin.
virtual std::vector< albert::Extension * > extensions()
Returns the extensions provided by this plugin.
Asynchronous plugin loader.
Definition pluginloader.h:34
Definition app.h:56