Plasma/PortingTolibplasma2: Difference between revisions
Appearance
< Plasma
(18 intermediate revisions by 2 users not shown) | |||
Line 120: | Line 120: | ||
* Removed releaseVisualFocus() | * Removed releaseVisualFocus() | ||
* Removed initializeLayout() -> use loadLayout() instead. if then corona will have 0 containments, then call loadDefaultLayout() | * 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== | ==DataEngine== | ||
* source queue limit feature no longer available (no one used it) | * source queue limit feature no longer available (no one used it) | ||
* REMOVED name(), icon(), pluginName(): use DataEngine::pluginInfo() instead. | |||
* REMOVED query() never use synchronous calls | |||
* REMOVED setDefaultService() defaultService(): use service(QString()) | |||
* REMOVED scheduleSourcesUpdated(); dataengines should never ever call it | |||
* Moved static QStringList listAllEngines(const QString &parentApp); -> in PluginLoader | |||
* Moved static KPluginInfo::List listEngineInfo(const QString &parentApp); -> in PluginLoader | |||
* Moved static KPluginInfo::List listEngineInfoByCategory(const QString &category, const QString &parentApp); -> in PluginLoader | |||
* REMOVED explicit DataEngine(QObject *parent , KService::Ptr service); -> use explicit DataEngine(QObject *parent, const KPluginInfo &info); | |||
* REMOVED DataEngine(QObject *parent, const QVariantList &args); -> use explicit DataEngine(QObject *parent, const KPluginInfo &info); | |||
* REMOVED init() with only one constructor is not necessary anymore | |||
==DataEngineManager== | ==DataEngineManager== | ||
Line 155: | Line 168: | ||
* Removed from libplasma | * Removed from libplasma | ||
* Every applet will have to be able to collapse in a popup | * Every applet will have to be able to collapse in a popup | ||
== RunnerManager == | |||
* Removed both execQuery(). Never do sync queries | |||
== Service == | == Service == | ||
* | * operationDescription returns a QVariantMap instead of a KConfigGroup | ||
* createJob | * startOperationCall taked a QVariantMap as well (same form as what is returned by operationDescription) | ||
* jobFinished signal | * createJob takes a QVariantMap as well | ||
* REMOVED access(), remoting has been removed | |||
* REMOVED operationsChanged signal; use serviceReady instead | |||
* REMOVED jobFinished signal; connect to jobs individually instead | |||
* REMOVED parametersFromDescription, use operationDescription instead | |||
* NEW SIGNAL operationEnabledChanged(const QString &operation, bool enabled) | |||
* REMOVED associateItem; use the ServiceOperationStatus QML item instead (from PlasmaCore imports) | |||
* REMOVED disassociateItem; use the ServiceOperationStatus QML item instead (from PlasmaCore imports) | |||
== ServiceJob == | == ServiceJob == | ||
Line 170: | Line 193: | ||
* moved to PlasmaCore Declarative imports | * moved to PlasmaCore Declarative imports | ||
* setWidowToPreview/windowToPreview was removed; instead, use setWindowsToPreview/windowsToPreview which support more than one window id being passed in | * 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 == | == Wallpaper == | ||
* C++-based plugins no longer possible, only QML-based ones supported | |||
* listWallpapersForMimetype becomes listWallpapersForMimeType | * listWallpapersForMimetype becomes listWallpapersForMimeType | ||
Latest revision as of 13:56, 4 April 2016
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)
- REMOVED name(), icon(), pluginName(): use DataEngine::pluginInfo() instead.
- REMOVED query() never use synchronous calls
- REMOVED setDefaultService() defaultService(): use service(QString())
- REMOVED scheduleSourcesUpdated(); dataengines should never ever call it
- Moved static QStringList listAllEngines(const QString &parentApp); -> in PluginLoader
- Moved static KPluginInfo::List listEngineInfo(const QString &parentApp); -> in PluginLoader
- Moved static KPluginInfo::List listEngineInfoByCategory(const QString &category, const QString &parentApp); -> in PluginLoader
- REMOVED explicit DataEngine(QObject *parent , KService::Ptr service); -> use explicit DataEngine(QObject *parent, const KPluginInfo &info);
- REMOVED DataEngine(QObject *parent, const QVariantList &args); -> use explicit DataEngine(QObject *parent, const KPluginInfo &info);
- REMOVED init() with only one constructor is not necessary anymore
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
RunnerManager
- Removed both execQuery(). Never do sync queries
Service
- operationDescription returns a QVariantMap instead of a KConfigGroup
- startOperationCall taked a QVariantMap as well (same form as what is returned by operationDescription)
- createJob takes a QVariantMap as well
- REMOVED access(), remoting has been removed
- REMOVED operationsChanged signal; use serviceReady instead
- REMOVED jobFinished signal; connect to jobs individually instead
- REMOVED parametersFromDescription, use operationDescription instead
- NEW SIGNAL operationEnabledChanged(const QString &operation, bool enabled)
- REMOVED associateItem; use the ServiceOperationStatus QML item instead (from PlasmaCore imports)
- REMOVED disassociateItem; use the ServiceOperationStatus QML item instead (from PlasmaCore imports)
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
- C++-based plugins no longer possible, only QML-based ones supported
- 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