Группа :: Обучение
Пакет: OpenBoard
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: 0005-run-in-a-window.patch
Скачать
Скачать
From c8fe5cefdc750bfad3423a108e4bfb8d6c3a88d3 Mon Sep 17 00:00:00 2001
From: Evgeniy Kukhtinov <neurofreak@altlinux.org>
Date: Tue, 11 Oct 2022 17:40:25 +0300
Subject: [PATCH 05/10] run-in-a-window
---
OpenBoard.pro | 4 ++++
resources/etc/OpenBoard.config | 1 +
src/core/UBApplication.cpp | 15 ++++++++++++++-
src/core/UBSettings.cpp | 3 +++
src/core/UBSettings.h | 4 +++-
src/frameworks/UBPlatformUtils_linux.cpp | 13 +++++++++++--
src/frameworks/UBPlatformUtils_win.cpp | 12 +++++++++++-
7 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/OpenBoard.pro b/OpenBoard.pro
index 243169d..87f9382 100644
--- a/OpenBoard.pro
+++ b/OpenBoard.pro
@@ -460,6 +460,10 @@ linux-g++* {
QMAKE_CFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
QMAKE_LFLAGS += -fopenmp
+# RunInWindow patch
+ # Necessary for CentOS/RHEL and won't harm in other distributions
+ INCLUDEPATH += /usr/include/ffmpeg
+# end patch
UB_LIBRARY.path = $$DESTDIR
UB_I18N.path = $$DESTDIR/i18n
UB_ETC.path = $$DESTDIR
diff --git a/resources/etc/OpenBoard.config b/resources/etc/OpenBoard.config
index 74dfcd2..896b27d 100644
--- a/resources/etc/OpenBoard.config
+++ b/resources/etc/OpenBoard.config
@@ -14,6 +14,7 @@ OnlineUserName=
PageCacheSize=20
PreferredLanguage=fr_CH
ProductWebAddress=http://www.openboard.ch
+RunInWindow=false
SoftwareUpdateURL=http://www.openboard.ch/update.json
StartMode=
SwapControlAndDisplayScreens=false
diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp
index 0513694..535c3d6 100644
--- a/src/core/UBApplication.cpp
+++ b/src/core/UBApplication.cpp
@@ -278,8 +278,21 @@ int UBApplication::exec(const QString& pFileToImport)
gs->setAttribute(QWebSettings::JavascriptCanAccessClipboard, true);
gs->setAttribute(QWebSettings::DnsPrefetchEnabled, true);
+ /* RunInWindow patch */
+ if (UBSettings::settings()->appRunInWindow->get().toBool()) {
+ mainWindow = new UBMainWindow(0,
+ Qt::Window |
+ Qt::WindowCloseButtonHint |
+ Qt::WindowMinimizeButtonHint |
+ Qt::WindowMaximizeButtonHint |
+ Qt::WindowShadeButtonHint
+ ); // deleted by application destructor
+ } else {
+ mainWindow = new UBMainWindow(0, Qt::FramelessWindowHint); // deleted by application destructor
+ }
+ /* mainWindow = new UBMainWindow(0, Qt::FramelessWindowHint); // deleted by application destructor */
+ /* end patch */
- mainWindow = new UBMainWindow(0, Qt::FramelessWindowHint); // deleted by application destructor
mainWindow->setAttribute(Qt::WA_NativeWindow, true);
mainWindow->actionCopy->setShortcuts(QKeySequence::Copy);
diff --git a/src/core/UBSettings.cpp b/src/core/UBSettings.cpp
index 257e3f3..6a196fc 100644
--- a/src/core/UBSettings.cpp
+++ b/src/core/UBSettings.cpp
@@ -266,6 +266,9 @@ void UBSettings::init()
appLookForOpenSankoreInstall = new UBSetting(this, "App", "LookForOpenSankoreInstall", true);
appStartMode = new UBSetting(this, "App", "StartMode", "");
+ /* RunInWindow patch */
+ appRunInWindow = new UBSetting(this, "App", "RunInWindow", false);
+ /* end patch */
featureSliderPosition = new UBSetting(this, "Board", "FeatureSliderPosition", 40);
diff --git a/src/core/UBSettings.h b/src/core/UBSettings.h
index 0f67f20..fdca53c 100644
--- a/src/core/UBSettings.h
+++ b/src/core/UBSettings.h
@@ -266,7 +266,9 @@ class UBSettings : public QObject
UBSetting* appHideSwapDisplayScreens;
UBSetting* appToolBarOrientationVertical;
UBSetting* appPreferredLanguage;
-
+ /* RunInWindow patch */
+ UBSetting* appRunInWindow;
+ /* end patch */
UBSetting* appIsInSoftwareUpdateProcess;
UBSetting* appLastSessionDocumentUUID;
diff --git a/src/frameworks/UBPlatformUtils_linux.cpp b/src/frameworks/UBPlatformUtils_linux.cpp
index d3693ce..4560233 100644
--- a/src/frameworks/UBPlatformUtils_linux.cpp
+++ b/src/frameworks/UBPlatformUtils_linux.cpp
@@ -36,7 +36,9 @@
#include <X11/keysym.h>
#include "frameworks/UBFileSystemUtils.h"
-
+/* RunInWindow patch */
+#include "core/UBSettings.h"
+/* end patch */
void UBPlatformUtils::init()
{
@@ -439,7 +441,14 @@ void UBPlatformUtils::setFrontProcess()
void UBPlatformUtils::showFullScreen(QWidget *pWidget)
{
- pWidget->showFullScreen();
+ /* RunInWindow patch */
+ /* pWidget->showFullScreen(); */
+ if (UBSettings::settings()->appRunInWindow->get().toBool()) {
+ pWidget->showNormal();
+ } else {
+ pWidget->showFullScreen();
+ }
+ /* end patch */
}
void UBPlatformUtils::showOSK(bool show)
diff --git a/src/frameworks/UBPlatformUtils_win.cpp b/src/frameworks/UBPlatformUtils_win.cpp
index da8ee12..6ddf261 100644
--- a/src/frameworks/UBPlatformUtils_win.cpp
+++ b/src/frameworks/UBPlatformUtils_win.cpp
@@ -36,6 +36,9 @@
#include "frameworks/UBFileSystemUtils.h"
#include "core/memcheck.h"
+/* RunInWindow patch */
+#include "core/UBSettings.h"
+/* end patch */
void UBPlatformUtils::init()
{
@@ -436,7 +439,14 @@ void UBPlatformUtils::setFrontProcess()
void UBPlatformUtils::showFullScreen(QWidget *pWidget)
{
- pWidget->showFullScreen();
+ /* RunInWindow patch */
+ /* pWidget->showFullScreen(); */
+ if (UBSettings::settings()->appRunInWindow->get().toBool()) {
+ pWidget->showNormal();
+ } else {
+ pWidget->showFullScreen();
+ }
+ /* end patch */
}
void UBPlatformUtils::showOSK(bool show)
--
2.25.4