mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
Fullscreen mode and add screensaver inhibition.
This commit is contained in:
parent
8171f2ceb2
commit
6933989753
5 changed files with 64 additions and 38 deletions
|
|
@ -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); });
|
||||
|
|
|
|||
3
Linphone/data/image/fullscreen.svg
Normal file
3
Linphone/data/image/fullscreen.svg
Normal 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 |
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue