D29024: feat(wayland): support multiple protocol extensions through plugin system

Roman Gilg noreply at phabricator.kde.org
Mon Apr 20 21:49:49 BST 2020


romangg added inline comments.

INLINE COMMENTS

> CMakeLists.txt:28
> +    TARGETS LibkscreenWaylandPluginKWayland
> +    DESTINATION ${PLUGIN_INSTALL_DIR}/org.kde.libkscreen.backends/wayland/
> +)

That directory fine or are there other suggestions? I would like to centralize over time all plugins libkscreen seems to install at random locations in a single one so that's why there is the wayland subdirectory.

> waylandconfig.cpp:155
>  
> -    const auto features = Config::Feature::Writable | Config::Feature::PerOutputScaling
> -                        | Config::Feature::AutoRotation | Config::Feature::TabletMode;
> -    m_kscreenConfig->setSupportedFeatures(features);
> -    m_kscreenConfig->setValid(m_connection->display());
> -
> -    KScreen::ScreenPtr screen = m_kscreenConfig->screen();
> -    m_screen->updateKScreenScreen(screen);
> -
> -    //Removing removed outputs
> -    const KScreen::OutputList outputs = m_kscreenConfig->outputs();
> -    for (const auto &output : outputs) {
> -        if (!m_outputMap.contains(output->id())) {
> -            m_kscreenConfig->removeOutput(output->id());
> -        }
> +    // TODO: qobject_cast not working here. Why?
> +    auto *factory = dynamic_cast<WaylandFactory*>(plugin->instantiate());

Someone having an idea about that? In general the plugin system is kinda funky. The thing returned is a singleton and gets returned whenever instantiate is called (that's why there is a factory to then generate objects on the heap).

REPOSITORY
  R110 KScreen Library

REVISION DETAIL
  https://phabricator.kde.org/D29024

To: romangg, #plasma
Cc: plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20200420/21de2b18/attachment.html>


More information about the Plasma-devel mailing list