feat: add playlist, recent files and MPRIS backends

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
triandClaude Opus 5.5 committed 2026-10-28 09:26:12 +07:00
1 parent 6dc9377de1
commit 54ad4eecf3
18 files changed
+2240 -4

No files matched your search

+95
View File
@@ -0,0 +1,95 @@
/*
* SPDX-FileCopyrightText: 2021 George Florea Bănuș <georgefb899@gmail.com>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "rootadaptor.h"
#include <QDBusConnection>
#include <QDBusMessage>
#include "mpriscontroller.h"
using namespace Qt::StringLiterals;
RootAdaptor::RootAdaptor(MprisController &parent)
: QDBusAbstractAdaptor(&parent)
, m_mprisController(parent)
{
}
void RootAdaptor::notify(const QString &property, const QVariant &value)
{
const auto path = u"/org/mpris/MediaPlayer2"_s;
const auto propertiesInterface = u"org.freedesktop.DBus.Properties"_s;
const auto rootInterface = u"org.mpris.MediaPlayer2"_s;
const auto properties = QVariantMap{{property, value}};
QDBusMessage msg = QDBusMessage::createSignal(path, propertiesInterface, u"PropertiesChanged"_s);
msg << rootInterface << properties << QStringList{};
QDBusConnection::sessionBus().send(msg);
}
bool RootAdaptor::canQuit() const
{
return true;
}
bool RootAdaptor::fullscreen() const
{
return m_mprisController.fullscreen();
}
void RootAdaptor::setFullscreen(bool newFullscreen)
{
m_mprisController.requestFullscreenChange(newFullscreen);
}
bool RootAdaptor::canSetFullscreen() const
{
return m_mprisController.canSetFullscreen();
}
bool RootAdaptor::canRaise() const
{
return m_mprisController.canRaise();
}
bool RootAdaptor::hasTrackList() const
{
return m_mprisController.hasTrackList();
}
QString RootAdaptor::identity() const
{
return m_mprisController.identity();
}
QString RootAdaptor::desktopEntry() const
{
return m_mprisController.desktopEntry();
}
QStringList RootAdaptor::supportedUriSchemes() const
{
return m_mprisController.supportedUriSchemes();
}
QStringList RootAdaptor::supportedMimeTypes() const
{
return m_mprisController.supportedMimeTypes();
}
void RootAdaptor::Raise()
{
m_mprisController.raise();
}
void RootAdaptor::Quit()
{
m_mprisController.quit();
}
#include "moc_rootadaptor.cpp"