Plasma

appletinterface.h
1 /*
2  SPDX-FileCopyrightText: 2008 Chani Armitage <[email protected]>
3  SPDX-FileCopyrightText: 2008, 2009 Aaron Seigo <[email protected]>
4  SPDX-FileCopyrightText: 2010 Marco Martin <[email protected]>
5 
6  SPDX-License-Identifier: LGPL-2.0-or-later
7 */
8 
9 #ifndef APPLETINTERFACE_H
10 #define APPLETINTERFACE_H
11 
12 #include <QAction>
13 #include <QQuickItem>
14 #include <QQuickView>
15 
16 #include <KPluginMetaData>
17 #include <kdeclarative/kdeclarative_export.h>
18 
19 #include <Plasma/Applet>
20 #include <Plasma/Containment>
21 #include <Plasma/Theme>
22 
23 #include "declarativeappletscript.h"
24 #include <appletquickitem.h>
25 
26 class QActionGroup;
27 class QmlAppletScript;
28 class QSizeF;
29 class KConfigPropertyMap;
30 
31 namespace KDeclarative
32 {
33 #if KDECLARATIVE_BUILD_DEPRECATED_SINCE(5, 89)
34 class ConfigPropertyMap;
35 #endif
36 class QmlObject;
37 }
38 
39 namespace Plasma
40 {
41 class ConfigLoader;
42 } // namespace Plasma
43 
44 /**
45  * @class AppletInterface
46  *
47  * @short This class is exposed to applets in QML as the attached property Plasmoid
48  *
49  * \@import org.kde.plasma.plasmoid
50  */
51 class AppletInterface : public PlasmaQuick::AppletQuickItem
52 {
53  Q_OBJECT
54 
55  /**
56  * The QML root object defined in the applet main.qml will be direct child of an AppletInterface instance
57  */
58 
59  /**
60  * Version of the QML2 script engine
61  */
62  Q_PROPERTY(int apiVersion READ apiVersion CONSTANT)
63 
64  /**
65  * Plugin name of the plasmoid
66  */
68 
69  /**
70  * User friendly title for the plasmoid: it's the localized applet name by default
71  */
72  Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
73 
74  /**
75  * Main title for the plasmoid tooltip or other means of quick information:
76  * it's the same as the title property by default, but it can be personalized
77  */
78  Q_PROPERTY(QString toolTipMainText READ toolTipMainText WRITE setToolTipMainText NOTIFY toolTipMainTextChanged)
79 
80  /**
81  * Description for the plasmoid tooltip or other means of quick information:
82  * it comes from the pluginifo comment by default, but it can be personalized
83  */
84  Q_PROPERTY(QString toolTipSubText READ toolTipSubText WRITE setToolTipSubText NOTIFY toolTipSubTextChanged)
85 
86  /**
87  * how to handle the text format of the tooltip subtext:
88  * * Text.AutoText (default)
89  * * Text.PlainText
90  * * Text.StyledText
91  * * Text.RichText
92  * Note: in the default implementation the main text is always plain text
93  */
94  Q_PROPERTY(int toolTipTextFormat READ toolTipTextFormat WRITE setToolTipTextFormat NOTIFY toolTipTextFormatChanged)
95 
96  /**
97  * This allows to set fully custom QML item as the tooltip.
98  * It will ignore all texts set by setToolTipMainText or setToolTipSubText
99  *
100  * @since 5.19
101  */
102  Q_PROPERTY(QQuickItem *toolTipItem READ toolTipItem WRITE setToolTipItem NOTIFY toolTipItemChanged)
103 
104  /**
105  * Icon to represent the plasmoid
106  */
107  Q_PROPERTY(QString icon READ icon WRITE setIcon NOTIFY iconChanged)
108 
109  /**
110  * Applet id: is unique in the whole Plasma session and will never change across restarts
111  */
112  Q_PROPERTY(uint id READ id CONSTANT)
113 
114  /**
115  * FormFactor for the plasmoid
116  */
117  Q_PROPERTY(Plasma::Types::FormFactor formFactor READ formFactor NOTIFY formFactorChanged)
118 
119  /**
120  * Type of the containment we're in
121  * @since 5.77
122  */
123  Q_PROPERTY(Plasma::Types::ContainmentDisplayHints containmentDisplayHints READ containmentDisplayHints NOTIFY containmentDisplayHintsChanged)
124 
125  /**
126  * Location for the plasmoid
127  */
128  Q_PROPERTY(Plasma::Types::Location location READ location NOTIFY locationChanged)
129 
130  /**
131  * Current activity name the plasmoid is in
132  */
133  Q_PROPERTY(QString currentActivity READ currentActivity NOTIFY contextChanged)
134 
135  /**
136  * Configuration object: each config key will be a writable property of this object. property bindings work.
137  */
139 
140  /**
141  * When true the plasmoid is busy. The containment may graphically indicate that drawing for instance a spinner busy widget over it
142  */
143  Q_PROPERTY(bool busy WRITE setBusy READ isBusy NOTIFY busyChanged)
144 
145  /**
146  * How the applet wants its background to be drawn. The containment may chose to ignore this hint.
147  */
148  Q_PROPERTY(Plasma::Types::BackgroundHints backgroundHints WRITE setBackgroundHints READ backgroundHints NOTIFY backgroundHintsChanged)
149 
150  /**
151  * The containment (and/or the user) may decide to use another kind of background instead (if supported by the applet)
152  */
153  Q_PROPERTY(Plasma::Types::BackgroundHints userBackgroundHints WRITE setUserBackgroundHints READ userBackgroundHints NOTIFY userBackgroundHintsChanged)
154 
155  /**
156  * The effective background hints the applet has, internally decided how to mix with userBackgroundHints
157  */
158  Q_PROPERTY(Plasma::Types::BackgroundHints effectiveBackgroundHints READ effectiveBackgroundHints NOTIFY effectiveBackgroundHintsChanged)
159 
160  /**
161  * Whether the Corona is immutable. The plasmoid implementation should avoid allowing "dangerous" modifications from the user when in an immutable mode
162  *
163  * This is true when immutability is not Mutable
164  */
165  Q_PROPERTY(bool immutable READ immutable NOTIFY immutabilityChanged)
166 
167  /**
168  * The immutability of the Corona.
169  *
170  * Use this if you need more granular control than just using the immutable property
171  *
172  * @see immutable
173  * @since 5.23
174  */
175  Q_PROPERTY(Plasma::Types::ImmutabilityType immutability READ immutability NOTIFY immutabilityChanged)
176 
177  /**
178  * True when the user is configuring, for instance when the configuration dialog is open.
179  */
180  Q_PROPERTY(bool userConfiguring READ userConfiguring NOTIFY userConfiguringChanged)
181 
182  /**
183  * Status of the plasmoid: useful to instruct the shell if this plasmoid is requesting attention, if is accepting input, or if is in an idle, inactive state
184  */
185  Q_PROPERTY(Plasma::Types::ItemStatus status READ status WRITE setStatus NOTIFY statusChanged)
186 
187  /**
188  * Sets the associated application of this plasmoid, if the plasmoid is representing the "compact" view for some application or for some document type.
189  */
190  Q_PROPERTY(QString associatedApplication WRITE setAssociatedApplication READ associatedApplication NOTIFY associatedApplicationChanged)
191 
192  /**
193  * Sets the associated application of this plasmoid, if the plasmoid is representing the "compact" view for some application or for some document type.
194  */
195  Q_PROPERTY(QList<QUrl> associatedApplicationUrls WRITE setAssociatedApplicationUrls READ associatedApplicationUrls NOTIFY associatedApplicationUrlsChanged)
196 
197  // TODO: This was moved up from ContainmentInterface because it is required by the
198  // Task Manager applet (for "Show only tasks from this screen") and no Qt API exposes
199  // screen numbering. An alternate solution that doesn't extend the applet interface
200  // would be preferable if found.
201  Q_PROPERTY(int screen READ screen NOTIFY screenChanged)
202 
203  /**
204  * Provides access to the geometry of the applet is in.
205  * Can be useful to figure out what's the absolute position of the applet.
206  */
207  Q_PROPERTY(QRect screenGeometry READ screenGeometry NOTIFY screenGeometryChanged)
208 
209  /**
210  * Whether the dialog should be hidden when the dialog loses focus.
211  *
212  * The default value is @c false.
213  **/
214  Q_PROPERTY(bool hideOnWindowDeactivate READ hideOnWindowDeactivate WRITE setHideOnWindowDeactivate NOTIFY hideOnWindowDeactivateChanged)
215 
216  /**
217  * The global shortcut to activate the plasmoid
218  *
219  * This is typically only used by the default configuration module
220  *
221  */
222  Q_PROPERTY(QKeySequence globalShortcut READ globalShortcut WRITE setGlobalShortcut RESET setGlobalShortcut NOTIFY globalShortcutChanged)
223 
224  /**
225  * An interface to the native C++ plasmoid, if implemented
226  */
228 
229  /**
230  * If true the applet requires manual configuration from the user
231  */
232  Q_PROPERTY(bool configurationRequired READ configurationRequired WRITE setConfigurationRequiredProperty NOTIFY configurationRequiredChanged)
233 
234  /**
235  * Reason why the manual user configuration is required
236  */
237  Q_PROPERTY(
238  QString configurationRequiredReason READ configurationRequiredReason WRITE setConfigurationRequiredReason NOTIFY configurationRequiredReasonChanged)
239 
240  /**
241  * screen area free of panels: the coordinates are relative to the containment,
242  * it's independent from the screen position
243  * For more precise available geometry use availableScreenRegion()
244  */
245  Q_PROPERTY(QRect availableScreenRect READ availableScreenRect NOTIFY availableScreenRectChanged)
246 
247  /**
248  * The available region of this screen, panels excluded. It's a list of rectangles
249  */
250  Q_PROPERTY(QVariantList availableScreenRegion READ availableScreenRegion NOTIFY availableScreenRegionChanged)
251 
252  Q_PROPERTY(bool loading MEMBER m_loading NOTIFY isLoadingChanged)
253 
254  /**
255  * The hints that the applet gives to its constraint,
256  * such as asking to fill all the available space ignoring margins.
257  */
258  Q_PROPERTY(Plasma::Types::ConstraintHints constraintHints READ constraintHints WRITE setConstraintHints NOTIFY constraintHintsChanged)
259 
260  /**
261  * The metadata of the applet.
262  * @since 5.73
263  */
265 
266  Q_PROPERTY(QList<QObject *> contextualActions READ contextualActionsObjects NOTIFY contextualActionsChanged)
267 
268  // TODO: Remove in KF6, it is fixed in Qt 6 via QTBUG-97427. Not an #ifdef, because that would break QML code.
269  /**
270  * Returns the Plasmoid object itself.
271  * Workaround QML limitation/bug that does not allow to use attached properties themselves as the value of an expression.
272  */
274 
275  /**
276  * True when the Corona is in an edit mode that allows to move
277  * things around.
278  * This is global to the Corona, all containments will have the same value for editMode
279  * @since 5.96
280  */
281  Q_PROPERTY(bool editMode READ isEditMode NOTIFY editModeChanged)
282 
283 public:
284  /**
285  * Expose the QAction::Priority values which cannot be directly accessed from plasmoids
286  * @since 5.101
287  */
289  LowPriorityAction = QAction::LowPriority,
290  NormalPriorityAction = QAction::NormalPriority,
291  HighPriorityAction = QAction::HighPriority,
292  };
293  Q_ENUM(ActionPriority);
294 
295 public:
296  AppletInterface(DeclarativeAppletScript *script, const QVariantList &args = QVariantList(), QQuickItem *parent = nullptr);
297  ~AppletInterface() override;
298 
299  // API not intended for the QML part
300 
301  DeclarativeAppletScript *appletScript() const;
302 
303  // This is for QML which only supports QList<QObject *>
304  QList<QObject *> contextualActionsObjects() const;
305 
306  QList<QAction *> contextualActions() const;
307 
308  void executeAction(const QString &name);
309 
310  // QML API-------------------------------------------------------------------
311 
312  /**
313  * Set this to true if the plasmoid needs to be configured in order to work. The containment will display reason as a message to ask the user to configure.
314  * @param needsConfiguring If the plasmoid needs configuration
315  * @param reason The user readable (and localized) reason the plasmoid needs
316  */
317  Q_INVOKABLE void setConfigurationRequired(bool needsConfiguring, const QString &reason = QString());
318 
319  Q_INVOKABLE void setActionSeparator(const QString &name);
320 
321  Q_INVOKABLE void setActionGroup(const QString &action, const QString &group);
322  /**
323  * Add an action to the Plasmoid contextual menu.
324  * When the action is triggered a function called action_<name> will be called, if there is no function with that name actionTriggered(name) will be called
325  * instead.
326  * @param: action name
327  * @text: user visible displayed text
328  * @icon: user visible optional displayed icon
329  * @shortcut: shortcut to trigger this action
330  */
331  Q_INVOKABLE void setAction(const QString &name, const QString &text, const QString &icon = QString(), const QString &shortcut = QString());
332 
333  Q_INVOKABLE void removeAction(const QString &name);
334 
335  Q_INVOKABLE void clearActions();
336 
337  Q_INVOKABLE QAction *action(QString name) const;
338 
339  /**
340  * Should be called before retrieving any action
341  * to ensure contents are up to date
342  * @see contextualActionsAboutToShow
343  * @since 5.58
344  */
346 
347  /**
348  * FIXME: remove?
349  * Retrieve the path of a file from the Plasmoid package
350  * @param fileName the package-recognized name, such as "mainscript"
351  * @returns the full absolute path of the file, if found, an empty string if not
352  */
353  Q_INVOKABLE QString file(const QString &fileName);
354 
355  /**
356  * FIXME: remove?
357  * Retrieve the path of a file from the Plasmoid package
358  * @param fileType the type supported from the package, such as "ui", "config" or "image"
359  * @param filePath the name of the file, such as "foo.qml" or "bar.png"
360  * @returns the full absolute path of the file, if found, an empty string if not
361  */
362  Q_INVOKABLE QString file(const QString &fileType, const QString &filePath);
363 
364  /**
365  * @returns A path where it is safe to write on disk downloaded files.
366  * @since 5.23
367  */
369 
370  /**
371  * @returns A path where it is safe to write on disk downloaded files.
372  * @param file that name of the file to download (unused).
373  * @deprecated Since 5,23, use downloadPath() instead.
374  */
375  Q_INVOKABLE PLASMA_DEPRECATED QString downloadPath(const QString &file);
376 
377  /**
378  * @returns The list of files that have been downloaded
379  */
381 
382  QVariantList availableScreenRegion() const;
383 
384  QRect availableScreenRect() const;
385 
386  static AppletInterface *qmlAttachedProperties(QObject *object)
387  {
388  return qobject_cast<AppletInterface *>(AppletQuickItem::qmlAttachedProperties(object));
389  }
390 
391  // PROPERTY ACCESSORS-------------------------------------------------------------------
392  QString pluginName() const;
393 
394  QString icon() const;
395  void setIcon(const QString &icon);
396 
397  QString title() const;
398  void setTitle(const QString &title);
399 
400  QString toolTipMainText() const;
401  void setToolTipMainText(const QString &text);
402 
403  QString toolTipSubText() const;
404  void setToolTipSubText(const QString &text);
405 
406  int toolTipTextFormat() const;
407  void setToolTipTextFormat(int format);
408 
409  QQuickItem *toolTipItem() const;
410  void setToolTipItem(QQuickItem *toolTipItem);
411 
412  uint id() const;
413 
415 
417 
419 
420  QString currentActivity() const;
421 
422  QObject *configuration() const;
423 
424  bool isBusy() const;
425  void setBusy(bool busy);
426 
428  void setBackgroundHints(Plasma::Types::BackgroundHints hint);
429 
431  void setUserBackgroundHints(Plasma::Types::BackgroundHints hint);
432 
434 
435  void setAssociatedApplication(const QString &string);
437 
438  void setAssociatedApplicationUrls(const QList<QUrl> &urls);
440 
441  void setStatus(const Plasma::Types::ItemStatus &status);
443 
444  int screen() const;
445  QRect screenGeometry() const;
446 
447  bool immutable() const;
449  bool userConfiguring() const;
450  int apiVersion() const;
451 
452  bool hideOnWindowDeactivate() const;
453  void setHideOnWindowDeactivate(bool hide);
454 
456  void setGlobalShortcut(const QKeySequence &keySequence = QKeySequence());
457 
459 
460  // NOTE: setConfigurationRequiredProperty because ambiguous with the
461  // setConfigurationRequired invokable
462  bool configurationRequired() const;
463  void setConfigurationRequiredProperty(bool required);
464 
466  void setConfigurationRequiredReason(const QString &reason);
468  void setConstraintHints(Plasma::Types::ConstraintHints constraintHints);
469 
470  KPluginMetaData metaData() const;
471 
472  AppletInterface *self();
473 
474  bool isEditMode() const;
475 
476 Q_SIGNALS:
477  /**
478  * somebody else, usually the containment sent some data to the applet
479  * @param mimetype the mime type of the data such as text/plain
480  * @param data either the actual data or an URL representing it
481  */
482  void externalData(const QString &mimetype, const QVariant &data);
483 
484  void configNeedsSaving();
485 
486  /**
487  * Emitted when the applet's activation action is triggered
488  */
489  void activated();
490 
491  /**
492  * Emitted just before the contextual actions are about to show
493  * For instance just before the context menu containing the actions
494  * added with setAction() is shown
495  */
497 
498  // PROPERTY change notifiers--------------
499  void iconChanged();
500  void titleChanged();
501  void toolTipMainTextChanged();
502  void toolTipSubTextChanged();
503  void toolTipTextFormatChanged();
504  void toolTipItemChanged();
505  void formFactorChanged();
506  void locationChanged();
507  void containmentDisplayHintsChanged();
508  void contextChanged();
509  void immutabilityChanged();
510  void statusChanged();
511  void backgroundHintsChanged();
512  void userBackgroundHintsChanged();
513  void effectiveBackgroundHintsChanged();
514  void busyChanged();
515  void screenChanged();
516  void screenGeometryChanged();
517  void hideOnWindowDeactivateChanged();
518  void associatedApplicationChanged();
519  void associatedApplicationUrlsChanged();
520  void availableScreenRegionChanged();
521  void availableScreenRectChanged();
522  void constraintHintsChanged();
523  void contextualActionsChanged();
524  void editModeChanged();
525 
526  void userConfiguringChanged();
527  void globalShortcutChanged();
528  void configurationRequiredChanged();
529  void configurationRequiredReasonChanged();
530 
531  void isLoadingChanged();
532 
533 protected Q_SLOTS:
534  void init() override;
535 
536 protected:
537  bool event(QEvent *event) override;
538  bool eventFilter(QObject *watched, QEvent *event) override;
539 
540  /*
541  * Returns true if this plasmoid or a dependent feature (i.e wallpaper) is loading
542  */
543  virtual bool isLoading() const;
544  /*
545  * Set UIReadyConstraint if we're not currently loading
546  */
547  void updateUiReadyConstraint();
548 
549 private Q_SLOTS:
550  void destroyedChanged(bool destroyed);
551 
552 private:
553  QStringList m_actions;
554  QHash<QString, QActionGroup *> m_actionGroups;
555 
556 #if KDECLARATIVE_BUILD_DEPRECATED_SINCE(5, 89)
557  KDeclarative::ConfigPropertyMap *m_configuration;
558 #else
559  KConfigPropertyMap *m_configuration;
560 #endif
561  DeclarativeAppletScript *m_appletScriptEngine;
562 
563  // UI-specific members ------------------
564 
565  QString m_toolTipMainText;
566  QString m_toolTipSubText;
567  int m_toolTipTextFormat;
568  QPointer<QQuickItem> m_toolTipItem;
569  QVariantList m_args;
570  bool m_hideOnDeactivate : 1;
571  bool m_loading = false;
572  // this is used to build an emacs style shortcut
573  int m_oldKeyboardShortcut;
574  QObject *m_dummyNativeInterface;
575 
576  friend class ContainmentInterface;
577  // This is used by ContainmentInterface
578  QPointF m_positionBeforeRemoval;
579  Plasma::Types::ConstraintHints m_constraintHints = Plasma::Types::ConstraintHints::NoHint;
580 };
581 
582 QML_DECLARE_TYPEINFO(AppletInterface, QML_HAS_ATTACHED_PROPERTIES)
583 
584 #endif
Q_OBJECTQ_OBJECT
QRect availableScreenRect
screen area free of panels: the coordinates are relative to the containment, it's independent from th...
Plasma::Types::FormFactor formFactor
FormFactor for the plasmoid.
Q_PROPERTY(...)
QVariantList availableScreenRegion
The available region of this screen, panels excluded.
ItemStatus
Status of an applet.
Definition: plasma.h:270
ConstraintHints
This enumeration lists the various hints that an applet can pass to its constraint regarding the way ...
Definition: plasma.h:58
Namespace for everything in libplasma.
Definition: datamodel.cpp:14
BackgroundHints
Description on how draw a background for the applet.
Definition: plasma.h:298
Plasma::Types::BackgroundHints userBackgroundHints
The containment (and/or the user) may decide to use another kind of background instead (if supported ...
Q_SLOTSQ_SLOTS
QObject configuration
Configuration object: each config key will be a writable property of this object.
QQuickItem toolTipItem
This allows to set fully custom QML item as the tooltip.
QList< QUrl > associatedApplicationUrls
Sets the associated application of this plasmoid, if the plasmoid is representing the "compact" view ...
QString pluginName
Plugin name of the plasmoid.
Q_INVOKABLE QString file(const QString &fileName)
FIXME: remove? Retrieve the path of a file from the Plasmoid package.
bool editMode
True when the Corona is in an edit mode that allows to move things around.
Plasma::Types::BackgroundHints backgroundHints
How the applet wants its background to be drawn.
void contextualActionsAboutToShow()
Emitted just before the contextual actions are about to show For instance just before the context men...
Q_INVOKABLE QString downloadPath() const
FormFactor
The FormFactor enumeration describes how a Plasma::Applet should arrange itself.
Definition: plasma.h:72
QString title
User friendly title for the plasmoid: it's the localized applet name by default.
QString currentActivity
Current activity name the plasmoid is in.
void activated()
Emitted when the applet's activation action is triggered.
QRect screenGeometry
Provides access to the geometry of the applet is in.
void destroyed(QObject *obj)
QString toolTipSubText
Description for the plasmoid tooltip or other means of quick information: it comes from the pluginifo...
Plasma::Types::ItemStatus status
Status of the plasmoid: useful to instruct the shell if this plasmoid is requesting attention,...
This class is exposed to containments QML as the attached property Plasmoid.
int toolTipTextFormat
how to handle the text format of the tooltip subtext:
Q_INVOKABLE void prepareContextualActions()
Should be called before retrieving any action to ensure contents are up to date.
Plasma::Types::ConstraintHints constraintHints
The hints that the applet gives to its constraint, such as asking to fill all the available space ign...
bool hideOnWindowDeactivate
Whether the dialog should be hidden when the dialog loses focus.
AppletInterface self
Returns the Plasmoid object itself.
QString icon
Icon to represent the plasmoid.
bool busy
When true the plasmoid is busy.
Q_INVOKABLEQ_INVOKABLE
KPluginMetaData metaData
The metadata of the applet.
bool configurationRequired
If true the applet requires manual configuration from the user.
Plasma::Types::ImmutabilityType immutability
The immutability of the Corona.
ActionPriority
Expose the QAction::Priority values which cannot be directly accessed from plasmoids.
Q_SIGNALSQ_SIGNALS
Q_INVOKABLE void setAction(const QString &name, const QString &text, const QString &icon=QString(), const QString &shortcut=QString())
Add an action to the Plasmoid contextual menu.
Plasma::Types::BackgroundHints effectiveBackgroundHints
The effective background hints the applet has, internally decided how to mix with userBackgroundHints...
Q_INVOKABLE void setConfigurationRequired(bool needsConfiguring, const QString &reason=QString())
Set this to true if the plasmoid needs to be configured in order to work.
bool userConfiguring
True when the user is configuring, for instance when the configuration dialog is open.
uint id
Applet id: is unique in the whole Plasma session and will never change across restarts.
This class is exposed to applets in QML as the attached property Plasmoid.
QString associatedApplication
Sets the associated application of this plasmoid, if the plasmoid is representing the "compact" view ...
Location
The Location enumeration describes where on screen an element, such as an Applet or its managing cont...
Definition: plasma.h:158
QString toolTipMainText
Main title for the plasmoid tooltip or other means of quick information: it's the same as the title p...
ImmutabilityType
Defines the immutability of items like applets, corona and containments they can be free to modify,...
Definition: plasma.h:235
void externalData(const QString &mimetype, const QVariant &data)
somebody else, usually the containment sent some data to the applet
Plasma::Types::Location location
Location for the plasmoid.
bool immutable
Whether the Corona is immutable.
int apiVersion
The QML root object defined in the applet main.qml will be direct child of an AppletInterface instanc...
QString configurationRequiredReason
Reason why the manual user configuration is required.
Plasma::Types::ContainmentDisplayHints containmentDisplayHints
Type of the containment we're in.
QObject nativeInterface
An interface to the native C++ plasmoid, if implemented.
QKeySequence globalShortcut
The global shortcut to activate the plasmoid.
Q_INVOKABLE QStringList downloadedFiles() const
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Sep 26 2023 04:05:56 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.