service/tray: mostly complete StatusNotifierItem implementation

Notably missing dbusmenu which makes it actually useful.
This commit is contained in:
outfoxxed 2024-04-06 02:19:40 -07:00
parent d47a7f2cff
commit 6214ac1002
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E
25 changed files with 1321 additions and 4 deletions

View file

@ -33,6 +33,8 @@ EngineGeneration::EngineGeneration(QmlScanner scanner)
this->engine.setIncubationController(&this->delayedIncubationController);
this->engine.addImageProvider("icon", new IconImageProvider());
QuickshellPlugin::runConstructGeneration(*this);
}
EngineGeneration::~EngineGeneration() {

View file

@ -1,8 +1,9 @@
#include "iconimageprovider.hpp"
#include <qicon.h>
#include <qlogging.h>
#include <qpixmap.h>
#include <qsize.h>
#include <qstring.h>
QPixmap
IconImageProvider::requestPixmap(const QString& id, QSize* size, const QSize& requestedSize) {

View file

@ -3,6 +3,8 @@
#include <qvector.h> // NOLINT (what??)
#include "generation.hpp"
static QVector<QuickshellPlugin*> plugins; // NOLINT
void QuickshellPlugin::registerPlugin(QuickshellPlugin& plugin) { plugins.push_back(&plugin); }
@ -26,6 +28,12 @@ void QuickshellPlugin::initPlugins() {
}
}
void QuickshellPlugin::runConstructGeneration(EngineGeneration& generation) {
for (QuickshellPlugin* plugin: plugins) {
plugin->constructGeneration(generation);
}
}
void QuickshellPlugin::runOnReload() {
for (QuickshellPlugin* plugin: plugins) {
plugin->onReload();

View file

@ -3,6 +3,8 @@
#include <qcontainerfwd.h>
#include <qfunctionpointer.h>
class EngineGeneration;
class QuickshellPlugin {
public:
QuickshellPlugin() = default;
@ -15,10 +17,12 @@ public:
virtual bool applies() { return true; }
virtual void init() {}
virtual void registerTypes() {}
virtual void constructGeneration(EngineGeneration& generation) {} // NOLINT
virtual void onReload() {}
static void registerPlugin(QuickshellPlugin& plugin);
static void initPlugins();
static void runConstructGeneration(EngineGeneration& generation);
static void runOnReload();
};