fix: show window on startup and on MPRIS Raise (1.0.5 pkgrel 4)

Register MPRIS only after QML loads, always connect raiseRequested to the
main window (not only when the tray icon exists), and show or activate the
window explicitly on launch. Fix circular dialog property aliases.
This commit is contained in:
Sebastian Palencsar
2026-06-22 17:04:46 +02:00
parent fe0591e32d
commit 872670bd3e
5 changed files with 30 additions and 17 deletions

View File

@@ -38,6 +38,7 @@ int main(int argc, char *argv[])
QStringLiteral("Raise")
);
sessionBus.call(call);
qInfo() << "BearWave is already running; raised the existing window.";
return 0;
}
app.setWindowIcon(QIcon::fromTheme(QStringLiteral("de.nerdbear.bearwave")));
@@ -64,15 +65,6 @@ int main(int argc, char *argv[])
Q_UNUSED(controlAdaptor)
Q_UNUSED(notificationManager)
if (!sessionBus.registerObject(QStringLiteral("/org/mpris/MediaPlayer2"), &backend, QDBusConnection::ExportAdaptors)) {
qWarning() << "Failed to register MPRIS D-Bus object";
}
if (!sessionBus.registerService(QStringLiteral("org.mpris.MediaPlayer2.bearwave"))) {
qWarning() << "Failed to register MPRIS D-Bus service org.mpris.MediaPlayer2.bearwave";
} else {
mprisPlayer->publishState();
}
const QUrl url(QStringLiteral("qrc:/qml/Main.qml"));
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
&app, [&app, url](QObject *obj, const QUrl &objUrl) {
@@ -94,6 +86,25 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
QObject::connect(&backend, &RadioBackend::raiseRequested, mainWindow, [mainWindow]() {
mainWindow->show();
mainWindow->raise();
mainWindow->requestActivate();
});
if (!sessionBus.registerObject(QStringLiteral("/org/mpris/MediaPlayer2"), &backend, QDBusConnection::ExportAdaptors)) {
qWarning() << "Failed to register MPRIS D-Bus object";
}
if (!sessionBus.registerService(QStringLiteral("org.mpris.MediaPlayer2.bearwave"))) {
qWarning() << "Failed to register MPRIS D-Bus service org.mpris.MediaPlayer2.bearwave";
} else {
mprisPlayer->publishState();
}
mainWindow->show();
mainWindow->raise();
mainWindow->requestActivate();
SystemTrayManager trayManager(&backend, mainWindow, &app);
Q_UNUSED(trayManager)