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); });
|
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new Constants(engine); });
|
||||||
qmlRegisterSingletonType<Utils>("UtilsCpp", 1, 0, "UtilsCpp",
|
qmlRegisterSingletonType<Utils>("UtilsCpp", 1, 0, "UtilsCpp",
|
||||||
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new Utils(engine); });
|
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new Utils(engine); });
|
||||||
|
qmlRegisterSingletonType<DesktopTools>(
|
||||||
|
"DesktopToolsCpp", 1, 0, "DesktopToolsCpp",
|
||||||
|
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new DesktopTools(engine); });
|
||||||
qmlRegisterSingletonType<EnumsToString>(
|
qmlRegisterSingletonType<EnumsToString>(
|
||||||
"EnumsToStringCpp", 1, 0, "EnumsToStringCpp",
|
"EnumsToStringCpp", 1, 0, "EnumsToStringCpp",
|
||||||
[](QQmlEngine *engine, QJSEngine *) -> QObject * { return new EnumsToString(engine); });
|
[](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 {
|
namespace {
|
||||||
constexpr char ServiceName[] = "org.freedesktop.ScreenSaver";
|
constexpr char ServiceName[] = "org.freedesktop.ScreenSaver";
|
||||||
constexpr char ServicePath[] = "/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 {
|
bool ScreenSaverDBus::getScreenSaverStatus() const {
|
||||||
return mScreenSaverStatus;
|
return mScreenSaverStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenSaverDBus::setScreenSaverStatus (bool status) {
|
void ScreenSaverDBus::setScreenSaverStatus(bool status) {
|
||||||
if (status == mScreenSaverStatus)
|
if (status == mScreenSaverStatus) return;
|
||||||
return;
|
|
||||||
|
|
||||||
if (status) {
|
if (status) {
|
||||||
QDBusMessage reply(mBus.call("UnInhibit", mToken));
|
QDBusMessage reply(mBus.call("UnInhibit", mToken));
|
||||||
if (reply.type() == QDBusMessage::ErrorMessage) {
|
if (reply.type() == QDBusMessage::ErrorMessage) {
|
||||||
qWarning() << QStringLiteral("Uninhibit screen saver failed: `%1: %2`.")
|
qWarning() << QStringLiteral("Uninhibit screen saver failed: `%1: %2`.")
|
||||||
.arg(reply.errorName()).arg(reply.errorMessage());
|
.arg(reply.errorName())
|
||||||
return;
|
.arg(reply.errorMessage());
|
||||||
} else
|
return;
|
||||||
qInfo("Uninhibit screen saver.");
|
} else qInfo("Uninhibit screen saver.");
|
||||||
|
|
||||||
mToken = uint32_t(reply.arguments().first().toULongLong());
|
mScreenSaverStatus = status;
|
||||||
mScreenSaverStatus = status;
|
emit screenSaverStatusChanged(mScreenSaverStatus);
|
||||||
emit screenSaverStatusChanged(mScreenSaverStatus);
|
return;
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
QDBusMessage reply(mBus.call("Inhibit", QCoreApplication::applicationName(), "Inhibit asked for video stream"));
|
QDBusMessage reply(mBus.call("Inhibit", QCoreApplication::applicationName(), "Inhibit asked for video stream"));
|
||||||
if (reply.type() == QDBusMessage::ErrorMessage) {
|
if (reply.type() == QDBusMessage::ErrorMessage) {
|
||||||
if (reply.errorName() != QLatin1String("org.freedesktop.DBus.Error.ServiceUnknown"))
|
if (reply.errorName() != QLatin1String("org.freedesktop.DBus.Error.ServiceUnknown"))
|
||||||
qWarning() << QStringLiteral("Inhibit screen saver failed: `%1: %2`.")
|
qWarning() << QStringLiteral("Inhibit screen saver failed: `%1: %2`.")
|
||||||
.arg(reply.errorName()).arg(reply.errorMessage());
|
.arg(reply.errorName())
|
||||||
return;
|
.arg(reply.errorMessage());
|
||||||
} else
|
return;
|
||||||
qInfo("Inhibit screen saver.");
|
} else qInfo("Inhibit screen saver.");
|
||||||
|
mToken = uint32_t(reply.arguments().first().toULongLong());
|
||||||
mScreenSaverStatus = status;
|
mScreenSaverStatus = status;
|
||||||
emit screenSaverStatusChanged(mScreenSaverStatus);
|
emit screenSaverStatusChanged(mScreenSaverStatus);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import Linphone
|
||||||
import EnumsToStringCpp 1.0
|
import EnumsToStringCpp 1.0
|
||||||
import UtilsCpp 1.0
|
import UtilsCpp 1.0
|
||||||
import SettingsCpp 1.0
|
import SettingsCpp 1.0
|
||||||
|
import DesktopToolsCpp 1.0
|
||||||
|
|
||||||
AppWindow {
|
AppWindow {
|
||||||
id: mainWindow
|
id: mainWindow
|
||||||
|
|
@ -51,6 +52,7 @@ AppWindow {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onClosing: (close) => {
|
onClosing: (close) => {
|
||||||
|
DesktopToolsCpp.screenSaverStatus = true
|
||||||
if (callsModel.haveCall) {
|
if (callsModel.haveCall) {
|
||||||
close.accepted = false
|
close.accepted = false
|
||||||
terminateAllCallsDialog.open()
|
terminateAllCallsDialog.open()
|
||||||
|
|
@ -108,7 +110,7 @@ AppWindow {
|
||||||
}
|
}
|
||||||
middleItemStackView.replace(inCallItem)
|
middleItemStackView.replace(inCallItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
enabled: !!call
|
enabled: !!call
|
||||||
target: call && call.core
|
target: call && call.core
|
||||||
|
|
@ -1133,8 +1135,8 @@ AppWindow {
|
||||||
background: Item{}
|
background: Item{}
|
||||||
icon.width: 32 * DefaultStyle.dp
|
icon.width: 32 * DefaultStyle.dp
|
||||||
icon.height: 32 * DefaultStyle.dp
|
icon.height: 32 * DefaultStyle.dp
|
||||||
textColor: down ? DefaultStyle.main1_500_main : DefaultStyle.main2_500main
|
textColor: down || checked ? DefaultStyle.main1_500_main : DefaultStyle.main2_500main
|
||||||
contentImageColor: down ? DefaultStyle.main1_500_main : DefaultStyle.main2_500main
|
contentImageColor: down || checked ? DefaultStyle.main1_500_main : DefaultStyle.main2_500main
|
||||||
textSize: 14 * DefaultStyle.dp
|
textSize: 14 * DefaultStyle.dp
|
||||||
textWeight: 400 * DefaultStyle.dp
|
textWeight: 400 * DefaultStyle.dp
|
||||||
spacing: 5 * DefaultStyle.dp
|
spacing: 5 * DefaultStyle.dp
|
||||||
|
|
@ -1156,6 +1158,24 @@ AppWindow {
|
||||||
moreOptionsButton.close()
|
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 {
|
MenuButton {
|
||||||
icon.source: AppIcons.callList
|
icon.source: AppIcons.callList
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
||||||
|
|
@ -99,4 +99,5 @@ QtObject {
|
||||||
property string world: "image://internal/world.svg"
|
property string world: "image://internal/world.svg"
|
||||||
property string detective: "image://internal/detective.svg"
|
property string detective: "image://internal/detective.svg"
|
||||||
property string warningCircle: "image://internal/warning-circle.svg"
|
property string warningCircle: "image://internal/warning-circle.svg"
|
||||||
|
property string fullscreen: "image://internal/fullscreen.svg"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue