Fullscreen mode and add screensaver inhibition.

This commit is contained in:
Julien Wadel 2024-07-02 11:44:08 +02:00
parent 8171f2ceb2
commit 6933989753
5 changed files with 64 additions and 38 deletions

View file

@ -310,6 +310,9 @@ void App::initCppInterfaces() {
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new Constants(engine); });
qmlRegisterSingletonType<Utils>("UtilsCpp", 1, 0, "UtilsCpp",
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new Utils(engine); });
qmlRegisterSingletonType<DesktopTools>(
"DesktopToolsCpp", 1, 0, "DesktopToolsCpp",
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new DesktopTools(engine); });
qmlRegisterSingletonType<EnumsToString>(
"EnumsToStringCpp", 1, 0, "EnumsToStringCpp",
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new EnumsToString(engine); });

View file

@ -0,0 +1,3 @@
<svg width="26" height="22" viewBox="0 0 26 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22 5V9C22 9.26522 21.8946 9.51957 21.7071 9.70711C21.5196 9.89464 21.2652 10 21 10C20.7348 10 20.4804 9.89464 20.2929 9.70711C20.1054 9.51957 20 9.26522 20 9V6H17C16.7348 6 16.4804 5.89464 16.2929 5.70711C16.1054 5.51957 16 5.26522 16 5C16 4.73478 16.1054 4.48043 16.2929 4.29289C16.4804 4.10536 16.7348 4 17 4H21C21.2652 4 21.5196 4.10536 21.7071 4.29289C21.8946 4.48043 22 4.73478 22 5ZM9 16H6V13C6 12.7348 5.89464 12.4804 5.70711 12.2929C5.51957 12.1054 5.26522 12 5 12C4.73478 12 4.48043 12.1054 4.29289 12.2929C4.10536 12.4804 4 12.7348 4 13V17C4 17.2652 4.10536 17.5196 4.29289 17.7071C4.48043 17.8946 4.73478 18 5 18H9C9.26522 18 9.51957 17.8946 9.70711 17.7071C9.89464 17.5196 10 17.2652 10 17C10 16.7348 9.89464 16.4804 9.70711 16.2929C9.51957 16.1054 9.26522 16 9 16ZM26 2V20C26 20.5304 25.7893 21.0391 25.4142 21.4142C25.0391 21.7893 24.5304 22 24 22H2C1.46957 22 0.960859 21.7893 0.585786 21.4142C0.210714 21.0391 0 20.5304 0 20V2C0 1.46957 0.210714 0.960859 0.585786 0.585786C0.960859 0.210714 1.46957 0 2 0H24C24.5304 0 25.0391 0.210714 25.4142 0.585786C25.7893 0.960859 26 1.46957 26 2ZM24 20V2H2V20H24Z" fill="#6C7A87"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -28,48 +28,47 @@
// =============================================================================
namespace {
constexpr char ServiceName[] = "org.freedesktop.ScreenSaver";
constexpr char ServicePath[] = "/ScreenSaver";
constexpr char ServiceName[] = "org.freedesktop.ScreenSaver";
constexpr char ServicePath[] = "/ScreenSaver";
} // namespace
ScreenSaverDBus::ScreenSaverDBus(QObject *parent) : QObject(parent), mBus(ServiceName, ServicePath, ServiceName) {
}
ScreenSaverDBus::ScreenSaverDBus (QObject *parent) : QObject(parent), mBus(ServiceName, ServicePath, ServiceName) {}
ScreenSaverDBus::~ScreenSaverDBus () {
setScreenSaverStatus(true);
ScreenSaverDBus::~ScreenSaverDBus() {
setScreenSaverStatus(true);
}
bool ScreenSaverDBus::getScreenSaverStatus () const {
return mScreenSaverStatus;
bool ScreenSaverDBus::getScreenSaverStatus() const {
return mScreenSaverStatus;
}
void ScreenSaverDBus::setScreenSaverStatus (bool status) {
if (status == mScreenSaverStatus)
return;
void ScreenSaverDBus::setScreenSaverStatus(bool status) {
if (status == mScreenSaverStatus) return;
if (status) {
QDBusMessage reply(mBus.call("UnInhibit", mToken));
if (reply.type() == QDBusMessage::ErrorMessage) {
qWarning() << QStringLiteral("Uninhibit screen saver failed: `%1: %2`.")
.arg(reply.errorName()).arg(reply.errorMessage());
return;
} else
qInfo("Uninhibit screen saver.");
if (status) {
QDBusMessage reply(mBus.call("UnInhibit", mToken));
if (reply.type() == QDBusMessage::ErrorMessage) {
qWarning() << QStringLiteral("Uninhibit screen saver failed: `%1: %2`.")
.arg(reply.errorName())
.arg(reply.errorMessage());
return;
} else qInfo("Uninhibit screen saver.");
mToken = uint32_t(reply.arguments().first().toULongLong());
mScreenSaverStatus = status;
emit screenSaverStatusChanged(mScreenSaverStatus);
return;
}
mScreenSaverStatus = status;
emit screenSaverStatusChanged(mScreenSaverStatus);
return;
}
QDBusMessage reply(mBus.call("Inhibit", QCoreApplication::applicationName(), "Inhibit asked for video stream"));
if (reply.type() == QDBusMessage::ErrorMessage) {
if (reply.errorName() != QLatin1String("org.freedesktop.DBus.Error.ServiceUnknown"))
qWarning() << QStringLiteral("Inhibit screen saver failed: `%1: %2`.")
.arg(reply.errorName()).arg(reply.errorMessage());
return;
} else
qInfo("Inhibit screen saver.");
mScreenSaverStatus = status;
emit screenSaverStatusChanged(mScreenSaverStatus);
QDBusMessage reply(mBus.call("Inhibit", QCoreApplication::applicationName(), "Inhibit asked for video stream"));
if (reply.type() == QDBusMessage::ErrorMessage) {
if (reply.errorName() != QLatin1String("org.freedesktop.DBus.Error.ServiceUnknown"))
qWarning() << QStringLiteral("Inhibit screen saver failed: `%1: %2`.")
.arg(reply.errorName())
.arg(reply.errorMessage());
return;
} else qInfo("Inhibit screen saver.");
mToken = uint32_t(reply.arguments().first().toULongLong());
mScreenSaverStatus = status;
emit screenSaverStatusChanged(mScreenSaverStatus);
}

View file

@ -6,6 +6,7 @@ import Linphone
import EnumsToStringCpp 1.0
import UtilsCpp 1.0
import SettingsCpp 1.0
import DesktopToolsCpp 1.0
AppWindow {
id: mainWindow
@ -51,6 +52,7 @@ AppWindow {
}
}
onClosing: (close) => {
DesktopToolsCpp.screenSaverStatus = true
if (callsModel.haveCall) {
close.accepted = false
terminateAllCallsDialog.open()
@ -108,7 +110,7 @@ AppWindow {
}
middleItemStackView.replace(inCallItem)
}
Connections {
enabled: !!call
target: call && call.core
@ -1133,8 +1135,8 @@ AppWindow {
background: Item{}
icon.width: 32 * DefaultStyle.dp
icon.height: 32 * DefaultStyle.dp
textColor: down ? DefaultStyle.main1_500_main : DefaultStyle.main2_500main
contentImageColor: down ? DefaultStyle.main1_500_main : DefaultStyle.main2_500main
textColor: down || checked ? DefaultStyle.main1_500_main : DefaultStyle.main2_500main
contentImageColor: down || checked ? DefaultStyle.main1_500_main : DefaultStyle.main2_500main
textSize: 14 * DefaultStyle.dp
textWeight: 400 * DefaultStyle.dp
spacing: 5 * DefaultStyle.dp
@ -1156,6 +1158,24 @@ AppWindow {
moreOptionsButton.close()
}
}
MenuButton {
visible: mainWindow.conference
Layout.fillWidth: true
icon.source: AppIcons.fullscreen
icon.width: 32 * DefaultStyle.dp
icon.height: 32 * DefaultStyle.dp
text: qsTr("Mode Plein écran")
checkable: true
onToggled: {
if(checked) {
DesktopToolsCpp.screenSaverStatus = false
mainWindow.showFullScreen()
}else{
DesktopToolsCpp.screenSaverStatus = true
mainWindow.showNormal()
}
}
}
MenuButton {
icon.source: AppIcons.callList
Layout.fillWidth: true

View file

@ -99,4 +99,5 @@ QtObject {
property string world: "image://internal/world.svg"
property string detective: "image://internal/detective.svg"
property string warningCircle: "image://internal/warning-circle.svg"
property string fullscreen: "image://internal/fullscreen.svg"
}