Plasma/PortingTolibplasma2
Appearance
< Plasma
AbstractRunner
- init() is now virtual; does not need to be a slot
- mimeDataForMatch is now virtual; does not need to be a slot
- mimeDataForMatch is now passed the QueryMatch by reference rather than as a pointer
AbstractToolBox
- protected Q_SLOTS that were used as virtual methods (restore, save, reposition) are now proper virtuals
Applet
- listAppletInfoForMimetype becomes listAppletInfoForMimeType
- The BackgroundHints enumeration is now part of the Plasma namespace and no longer a flag but a plain enumeration.
- config(const QString &name) has been removed as redundant to KConfigGroup(&config(), name)
- removed screenGeometry()
- removed all geometry functions: size(), geometry(), transform(), zValue(), raise(), lower()
- addAction and action were removed, use actions() to get to the KActionCollection directly
- addAssociatedWidget and removeAssociated widget were removed as they are no longer necessary for shortcuts
- Removed Plasma::AspectRatioMode aspectRatioMode() const;
- Removed void setAspectRatioMode(Plasma::AspectRatioMode);
- Removed virtual bool isPopupShowing() const;
- Not virtual virtual FormFactor formFactor() const;
- Not virtual virtual Location location() const;
- Not a slot anymore ItemStatus status() const;
- SIGNAL newStatus(Plasma::ItemStatus status); Renamed to statusChanged
- Removed DataEngine *dataEngine(const QString &name) const;
- Renamed QString name() const; -> becomes title()
- Renamed void setName(const QString &name) const; ->setTitle()
- Removed QString category() const; Use pluginInfo() instead
- Removed QString pluginName() const;Use pluginInfo() instead
- Removed static QString category(const KPluginInfo &applet); Use pluginInfo() instead
- Removed bool shouldConserveResources() const;
- Moved to PluginLoader static KPluginInfo::List listAppletInfo(const QString category, const QString parentApp); -> PluginLoader
- Moved to PluginLoader static KPluginInfo::List listAppletInfoForMimeType(const QString &mimetype);
- Moved to PluginLoader static KPluginInfo::List listAppletInfoForUrl(const QUrl &url);
- Moved to PluginLoader static QStringList listCategories(const QString &parentApp, bool visibleOnly);
- Moved to PluginLoader void setCustomCategories(const QStringList &categories); just categories in PluginLoader? : currently stored in AppletPrivate::s_customCategories perhaps every shell should set what its categories are
- Moved to PluginLoader QStringList customCategories() const;
- Move to PluginLoader static QString category(const QString &appletName); -> PluginLoader
- New function: KPluginInfo pluginInfo() const;
- Removed bool hasAuthorization(const QString &constraint) const;
- Removed void appletTransformedByUser();
- Removed void appletTransformedItself();
- Remove void publish(Plasma::AnnouncementMethods methods, const QString &resourceName);
- Remove void unpublish();
- Remove bool isPublished() const;
- Remove bool hasFocus() const;
- Remove void setFocus(Qt::FocusReason);
- Remove QFont font() const;
- Removed void messageButtonPressed(const Plasma::MessageButton button);
- Removed void showMessage(const QIcon &icon, const QString &message, const Plasma::MessageButtons buttons);
- Removed SIGNAL void backgroundHintsChanged(Plasma::BackgroundHints backgroundHints);
- Moved to scriptengine void setBackgroundHints(const Plasma::BackgroundHints hint);
- Moved to scriptengine Plasma::BackgroundHints backgroundHints() const;
- Moved to scriptengine bool isBusy() const;
- Moved to scriptengine void setBusy(bool busy);
- Removed QPoint popupPosition(const QSize &s) const; -> Dialog in bindings
- Removed QPoint popupPosition(const QSize &s, Qt::AlignmentFlag alignment) const;
Containment
- Containment::Type becomes Plasma::ContainmentType
- Containment::ToolType becomes Plasma::ActionType
- Applet *addApplet(const QString &name, const QVariantList args, const QRectF geometry ; -> becomes createApplet, args and geometry arguments go away
- void addApplet(Applet *applet, const QPointF pos) becomes addApplet(Applet *applet), position not supported anymore
- clearApplets() has been removed
- lastScreen(), lastDesktop() and desktop() have been removed: different containments for each virtual desktop are not supported anymore
- destroy() and destroy(bool) have been removed, use Applet::destroy()
- void setScreen(int screen, int desktop) becomes setScreen(int screen), desktop not supported anymore
- signal appletAdded(Plasma::Applet *applet, const QPointF &pos) becomes signal appletAdded(Plasma::Applet *applet), position not supported anymore
- addToolBoxAction(QAction *action) and removeToolBoxAction(QAction *action) have been removed
- setContainmentActions(const QString &trigger, const QString &pluginName); becomes addContainmentActions(const QString &trigger, const QString &pluginName)
- QString containmentActions(const QString &trigger) has been removed
- QStringList containmentActionsTriggers() has been removed
- KConfigGroup containmentActionsConfig(); has been removed: use ContainmentActions::config() instead
- new function: QHash<QString, ContainmentsActions *> containmentActions() const: access to all containment actions plugins
- listContainmentsForMimetype becomes listContainmentsForMimeType
- context() was removed
- setActivity(QString) and activity() now use activity IDs rather than names
- zoomRequested signal was removed
- QGraphicsItem *toolBoxItem() was removed
- geometry functions removed: resize() setMinimumSize(), setMaximumSize()
- removed acceptDrops() / setAcceptDrops()
- enableAction was removed; use KActionCollection directly
- addAssociatedWidget and removeAssociated widget were removed as they are no longer necessary for shortcuts
- Removed void showContextMenu(const QPointF &containmentPos, const QPoint &screenPos);
- Removed virtual void showDropZone(const QPoint pos);
- Removed void contextMenuEvent(QContextMenuEvent *event);
- Removed void wheelEvent(QWheelEvent *event);
- Removed signal void toolBoxToggled();
- Removed signal void toolBoxVisibilityChanged(bool);
ContainmentActions
- doesn't have Q_PROPERTIES or Q_INVOKABLES anymore, don't rely on those in client code
- paste method is removed; instead, look for an action named "drop-current-data" via containment()->action
- popupPosition is gone -> all screen visibility is handled by the GSS
- isInitialized() is gone -> if needed, track this in the class itself
- event(QEvent *) is replaced by triggerableContextAction, performNextAction and performPreviousAction
- ContainmentActionsSource enum type, getter and setter gone. All containment actions are global by their containment type, so all panels have the same config, all desktop have the same config
- name(), pluginName() and icon() gone; use pluginInfo() instead that has all this information
- use ContainmentActions::config() instead of Containment::containmentActionsConfig()
- createConfigurationInterface() is now void and uses a QWindow* as parameter
- configAccepted() gone: management of ok/apply/cancel buttons and config save has to be done by the plugin itself
- init() gone. plugins can do all their initialization in ctor now
- concept of configurationRequired gone. was not used and plugins can still have a configure plugin among their actions
- dataEngine() gone: was not used and DataEngineConsumer is public now, so is easy for plugins to use a dataengine if needed
- triggerableContextAction() gone: if the plugin has only one action executed directly, will have only one item as contextualActions()
- ContainmentActionsPluginConfig class gone from API: users of the library should never access it
Context
- Plasma::Context has been removed; the Activity DataEngines or KActivity* classes should be used instead.
Corona
- layoutContainment is now virtual (no actual porting required; it is still a protected slot)
- importLayout(const KConfigBase &config) was removed in favor of importLayout(const KConfigGroup &config)
- addContainmentDelayed was removed; all containments are now initialized in the same manner (with an internal delay; an implementation detail). Replace all uses of addContainmentDelayed with addContainment.
- addAction, enableAction and action were removed, use actions() to get to the KActionCollection directly
- Removed abstractDialogManager(), the whole class AbstractDialogMager has been removed as well
- Removed appletMimeType() setAppletMimeType() (not used)
- Renamed addContainment() to createContainment()
- Removed Containment *containmentForScreen(int screen, const QString &defaultPluginIfNonExistent, const QVariantList &defaultArgs); use Containment *containmentForScreen(int screen) instead and then create a containment if needed
- Removed updateShortcuts(), addShortcuts() and shortcutsChanged()
- Removed releaseVisualFocus()
- Removed initializeLayout() -> use loadLayout() instead. if then corona will have 0 containments, then call loadDefaultLayout()
- Removed defaultContainmentPlugin(), can be retrieved from the "defaults" config file from the package
- Removed preferredToolBoxPlugin(), can be retrieved from the "defaults" config file from the package
- Removed Corona::defaultContainmentActionsPlugins(), can be retrieved from the "defaults" config file from the package
DataEngine
- source queue limit feature no longer available (no one used it)
DataEngineManager
- made private API; users of DataEngineManager should now use DataEngineConsumer
DataContainer
- added bool isUsed()
- removed protected checkUsage()
Dialog
- removed from libplasma
- will have to be reimplemented in QML bindings in PlasmaCore
- means will be visible from QML, not from the C++ part
Extenders
- removed; rarely used, many problems with the implementation, may be brought back via QML Component
PackageMetadata
- PackageMetadata was removed. It is replaced everywhere with KPluginInfo, except in AccessManager where a new class, RemoteObjectDescription, is used.
PackageStructure
- setMimetypes -> setMimeTypes
- setDefaultMimetypes -> setDefaultMimeTypes
- mimetypes(const char*) -> mimeTypes(const char*)
- sePrefix/prefix were removed in preference of the multi-path setPrefixPaths/prefixPaths
Plasma Namespace
- ContextConstraint is no longer a member of the Plasma::Constraint enumeration
- ZoomDirection, ZoomLevel and ScalingFactor were removed
PopupApplet
- Removed from libplasma
- Every applet will have to be able to collapse in a popup
Service
- parametersFromDescription now returns an unsorted QHash rather than a QMap
- createJob now takes a QHash instead of a QMap
- jobFinished signal was removed; connect to jobs individually instead
ServiceJob
- QMaps have been replaced with QHashes
ScrollWidget
- registerAsScrollWidget and unregisterAsScrollWidget removed
ToolTipContent
- moved to PlasmaCore Declarative imports
- setWidowToPreview/windowToPreview was removed; instead, use setWindowsToPreview/windowsToPreview which support more than one window id being passed in
Theme
- toolTipDelay removed; is now part of the UI implementation (e.g. QML)
- Q_properties and Q_invokables removed
- font(), setFont() and fontMetrics() removed, they don't belong there
- in QML plasmoids, replace theme.defaultFont.mSize with theme.mSize(theme.defaultFont)
- Removed useNativeWidgetStyle()
- Removed windowTranslucencyEnabled. use Qt api for it
- Removed homepage() use pluginInfo().website() instead
- Added KPluginInfo pluginInfo()
- Removed settingsChanged() is private now. It should have never been explicitly called by the user
- Theme is not a singleton anymore, but is implicitly shared. just manually create a Theme instance where needed
Wallpaper
- listWallpapersForMimetype becomes listWallpapersForMimeType
WindowEffects
- moved to libkwindowsystem (a tier one Framework)
- overrideShadow is gone as it was rendered obsolete with new window manager development and had become a no-op