Plasma/libplasma2/API Review/Containment

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.

Q_PROPERTIES

All qproperties and invokables must go

Enums

Type probably goes in plasma.h

       enum Type {
           NoContainmentType = -1,  /**< @internal */
           DesktopContainment = 0,  /**< A desktop containment */ New name -> suggestions [ Canvas ]
           PanelContainment,        /**< A desktop panel */
           CustomContainment = 127, /**< A containment that is neither a desktop nor a panel
                                       but something application specific */
          CustomPanelContainment = 128 /**< A customized desktop panel */
       };

ToolType goes in plasma.h it becomes ActionType (not related to toolbox anymore)

       enum ToolType {
           AddTool = 0,
           ConfigureTool = 100,
           ControlTool = 200,
           MiscTool = 300,
           DestructiveTool = 400,
           UserToolType = DestructiveTool + 1000
       };
       Q_ENUMS(ToolType)
Status Action Enum
DONE Move Type -> move to Plasma::ContainmenType
DONE Move ToolType -> move to Plasma::ActionType


Constructors

as
Status Action Method
DONE Keep explicit Containment(QObject *parent , const QString &serviceId , uint containmentId );
DONE Keep Containment(QObject *parent, const QVariantList &args);
DONE Keep ~Containment();


Bookkeeping

as
Status Action Method
DONE Rename Applet *addApplet(const QString &name, const QVariantList args, const QRectF geometry ; -> becomes createApplet, args and geometry arguments go away
DONE Paramenters void addApplet(Applet *applet, const QPointF pos); -> pos parameter goes
DONE Keep QList<Applet *> applets() const;
DONE Remove void clearApplets();
DONE Paramenters void setScreen(int screen, int desktop); -> remove desktop
DONE Keep int screen() const;
DONE Remove int lastScreen() const;
DONE Remove int desktop() const;
DONE Remove int lastDesktop() const;
DONE Remove void addAssociatedWidget(QWidget *widget);
DONE Remove  void removeAssociatedWidget(QWidget *widget);
TO DO Remove  bool drawWallpaper(); (to be decided) <{{{3}}}>
TO DO Remove  slot void setDrawWallpaper(bool drawWallpaper); (to be decided) <{{{3}}}>
DONE Keep  signal void wallpaperChanged();
DONE Keep  void setWallpaper(const QString &pluginName);
DONE Keep  QString wallpaper() const;
DONE Keep  void setActivity(const QString &activityId);
DONE Keep  QString activity() const;
DONE Paramenters signal void appletAdded(Plasma::Applet *applet, const QPointF &pos); Remove pos
DONE Keep  signal void appletRemoved(Plasma::Applet *applet);
DONE Paramenters void screenChanged(int wasScreen, int isScreen, Plasma::Containment *containment); -> remove containment parameter. From the usage in Corona seems that the containment parameter may make sense (can be converted to use sender() but seems uglier)
DONE Keep  void configureRequested(Plasma::Containment *containment); -> not completely sure
DONE Keep  slot void setLocation(Plasma::Location location);
DONE Keep  slot void setFormFactor(Plasma::FormFactor formFactor);
DONE Remove  slot void destroy();
DONE Remove  slot void destroy(bool confirm);
DONE Keep slot void setContainmentType(Containment::Type type);

Actions

as
Status Action Method
DONE Keep void enableAction(const QString &name, bool enable);
DONE Remove void addToolBoxAction(QAction *action);
DONE Remove void removeToolBoxAction(QAction *action);


Containment Actions

as
Status Action Method
DONE Rename void setContainmentActions(const QString &trigger, const QString &pluginName); -> Rename to addContainmentActions
DONE Remove QString containmentActions(const QString &trigger);
DONE Remove QStringList containmentActionsTriggers();
DONE Add QHash<QString, ContainmentsActions *> containmentActions() const;
DONE Remove KConfigGroup containmentActionsConfig(); Remove after adding ContainmentActions::config() -> problem is that this config group has to exist before ContainmentActions * itself


Plugin loading

as
Status Action Method
DONE PluginLoader static KPluginInfo::List listContainments(const QString &category, const QString &parentApp);
DONE PluginLoader static KPluginInfo::List listContainmentsOfType(const QString &type, const QString &category , const QString &parentApp );
DONE PluginLoader static QStringList listContainmentTypes();
DONE PluginLoader static KPluginInfo::List listContainmentsForMimeType(const QString &mimeType);


Configuration

Status Action Method
DONE Keep void save(KConfigGroup &group) const;
DONE Keep void restore(KConfigGroup &group);
DONE Keep protected virtual void saveContents(KConfigGroup &group) const;
DONE Keep protected virtual void restoreContents(KConfigGroup &group);
DONE Move slot void showConfigurationInterface(); -> into scriptengine

UI specific stuff

UI specific things don't belong to this library

as
Status Action Method
DONE Remove void showContextMenu(const QPointF &containmentPos, const QPoint &screenPos);
DONE Remove virtual void showDropZone(const QPoint pos);
DONE Remove void contextMenuEvent(QContextMenuEvent *event);
DONE Remove void wheelEvent(QWheelEvent *event);
DONE Remove signal void toolBoxToggled();
DONE Remove signal void toolBoxVisibilityChanged(bool);