SVN commit 1157190 by mart: new property: preferredToolBoxPlugin(Containment::Type) used to decide what toolbox plugin dynamically load, only corona implementations can decide this.
api review anyone? ;) CCMAIL:plasma-devel@kde.org M +12 -0 corona.cpp M +17 -0 corona.h --- trunk/KDE/kdelibs/plasma/corona.cpp #1157189:1157190 @@ -279,6 +279,7 @@ KShortcutsDialog shortcutsDlg; QMap<Containment::Type, ContainmentActionsPluginsConfig> containmentActionsDefaults; QWeakPointer<AbstractDialogManager>dialogManager; + QHash<Containment::Type, QString> toolBoxPlugins; }; bool CoronaPrivate::s_positioningContainments = false; @@ -796,6 +797,17 @@ { } +void Corona::setPreferredToolBoxPlugin(const Containment::Type type, const QString &plugin) +{ + d->toolBoxPlugins[type] = plugin; + //TODO: react to plugin changes on the fly? still don't see the use case (maybe for laptops that become tablets?) +} + +QString Corona::preferredToolBoxPlugin(const Containment::Type type) const +{ + return d->toolBoxPlugins.value(type); +} + void Corona::dragEnterEvent(QGraphicsSceneDragDropEvent *event) { QGraphicsScene::dragEnterEvent(event); --- trunk/KDE/kdelibs/plasma/corona.h #1157189:1157190 @@ -262,6 +262,15 @@ */ QList<Plasma::Containment *> importLayout(const KConfigBase &config); + /** + * Returns the name of the preferred plugin to be used as containment toolboxes. + * CustomContainments and CustomPanelContainments can still override it as their liking. It's also not guaranteed that the plugin will actually exist. + * + * @param type the containment type of which we want to know the associated toolbox plugin + * @since 4.6 + */ + QString preferredToolBoxPlugin(const Containment::Type type) const; + public Q_SLOTS: /** * Initializes the layout from a config file. This will first clear any existing @@ -417,6 +426,14 @@ */ void mapAnimation(Animator::Animation from, const QString &to); + /** + * @return The preferred toolbox plugin name for a given containment type. + * @param type the containment type of which we want to know the preferred toolbox plugin. + * @param plugin the toolbox plugin name + * @since 4.6 + */ + void setPreferredToolBoxPlugin(const Containment::Type type, const QString &plugin); + //Reimplemented from QGraphicsScene void dragEnterEvent(QGraphicsSceneDragDropEvent *event); void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel