marcose — 2018-11-20 18:20:37As stated in the title, I'm requesting a feature for users to build up better themes by providing them access to a sandbox GUI API, allowing to change the layout and its styles, even being able to remove or add widgets based on theme.
Since the application is on top of the Qt framework, perhaps the QtQuick tooling (<http://doc.qt.io/qt-5/qmlapplications.html>) would fit for a modular UI toolset, within a limited sandbox with restricted components and bit of customization on those.
A further discussion about the security implications and their mitigations is required.
|
cancel — 2018-11-20 18:43:31> As stated in the title, I'm requesting a feature for users to build up better
> themes by providing them access to a sandbox GUI API, allowing to change the
> layout and its styles, even being able to remove or add widgets based on
> theme.
The only customization that can be done right now is using custom color
schemes. See here: [https://dev.cancel.fm/wiki?name=Custom_Themes]
> Since the application is on top of the Qt framework, perhaps the QtQuick
> tooling (<http://doc.qt.io/qt-5/qmlapplications.html>) would fit for a
> modular UI toolset, within a limited sandbox with restricted components and
> bit of customization on those.
Ripcord is written entirely in C++ using the QtWidgets module, with rendering
done using a traditional CPU rasterizer. QtQuick is a QML and JavaScript
framework, which uses GPU to render the scene. It is heavier on resource usage
and focused on things like animations, effects, and touch interfaces. I'm not
interested in any of those things for Ripcord. I'm also not interested in using
JavaScript or the DOM-like QML system. I believe most of the people who would
choose to use Ripcord are choosing it because it is much smaller, lighter and
responsive than the web browser-based clients, and moving to QML and JavaScript
would not only require rewriting most of the application (at least two years of
work), but would also lose most of those benefits. Additionally, because
QtQuick is designed for things like car infotainment systems and mobile phone
interfaces, it lacks many important things that Ripcord uses, such as tree
views, rich text editors, multiple windows, and native subpixel font rendering.
The QML system is not any less flexible for allowing customization. Mostly it
is less flexible. The plugin and customization API still has to be implemented
in the application either way.
> A further discussion about the security implications and their mitigations is
> required.
Ripcord will have a native C++ plugin interface for allowing it to be
extended/modified. I'm already using a version of that internally for
implementing the different service systems (Discord, Slack, etc.)
|