Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37566117
en ru br
Репозитории ALT

Группа :: Обучение
Пакет: 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
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin