Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Müller <fmueller@owncloud.com>2022-10-19 01:47:35 +0300
committerFabian Müller <80399010+fmoc@users.noreply.github.com>2022-11-11 19:06:54 +0300
commitb428fbd60cbc31ad827a20530a732b7898bee2fd (patch)
treea628aa72e7318ae320d62b093ac1e2cc5c956378
parent4180a4f34100ce289fdcf2cf13a7a90a89378e96 (diff)
Move platform specific init code to platform class
-rw-r--r--src/gui/application.cpp11
-rw-r--r--src/gui/platform.cpp6
-rw-r--r--src/gui/platform.h10
-rw-r--r--src/gui/platform_unix.cpp20
-rw-r--r--src/gui/platform_win.cpp9
5 files changed, 41 insertions, 15 deletions
diff --git a/src/gui/application.cpp b/src/gui/application.cpp
index b8b5a994c..85cae35fd 100644
--- a/src/gui/application.cpp
+++ b/src/gui/application.cpp
@@ -232,15 +232,8 @@ Application::Application(int &argc, char **argv, Platform *platform)
, _userTriggeredConnect(false)
, _debugMode(false)
{
-#ifdef Q_OS_WIN
- // Ensure OpenSSL config file is only loaded from app directory
- const QString opensslConf = QCoreApplication::applicationDirPath() + QStringLiteral("/openssl.cnf");
- qputenv("OPENSSL_CONF", opensslConf.toLocal8Bit());
-#elif defined(Q_OS_LINUX)
-#if defined(OC_PLUGIN_DIR)
- addLibraryPath(QDir(QApplication::applicationDirPath()).filePath(QStringLiteral(OC_PLUGIN_DIR)));
-#endif
-#endif
+ platform->setApplication(this);
+
// TODO: Can't set this without breaking current config paths
// setOrganizationName(QLatin1String(APPLICATION_VENDOR));
setOrganizationDomain(QStringLiteral(APPLICATION_REV_DOMAIN));
diff --git a/src/gui/platform.cpp b/src/gui/platform.cpp
index fee225985..400acbedb 100644
--- a/src/gui/platform.cpp
+++ b/src/gui/platform.cpp
@@ -13,6 +13,7 @@
*/
#include "platform.h"
+#include "application.h"
namespace OCC {
@@ -24,4 +25,9 @@ void Platform::migrate()
{
}
+void Platform::setApplication(Application *application)
+{
+ Q_UNUSED(application);
+}
+
} // OCC namespace
diff --git a/src/gui/platform.h b/src/gui/platform.h
index cde0d8d55..d2112689c 100644
--- a/src/gui/platform.h
+++ b/src/gui/platform.h
@@ -15,12 +15,16 @@
#ifndef PLATFORM_H
#define PLATFORM_H
-#include <memory>
-
+#include <QCoreApplication>
#include <QString>
+#include <memory>
+
namespace OCC {
+// forward declaration to avoid cyclic dependency
+class Application;
+
/**
* @brief The Platform is the baseclass for all platform classes, which in turn implement platform
* specific functionality for the GUI.
@@ -33,6 +37,8 @@ public:
static std::unique_ptr<Platform> create();
virtual void migrate();
+
+ virtual void setApplication(Application *application);
};
} // OCC namespace
diff --git a/src/gui/platform_unix.cpp b/src/gui/platform_unix.cpp
index e0e796fe3..a6f3f43db 100644
--- a/src/gui/platform_unix.cpp
+++ b/src/gui/platform_unix.cpp
@@ -12,14 +12,15 @@
* for more details.
*/
+#include "application.h"
+#include "guiutility.h"
+#include "platform.h"
+
+#include <QDir>
#include <QLoggingCategory>
#include <signal.h>
#include <sys/resource.h>
-#include <sys/time.h>
-
-#include "guiutility.h"
-#include "platform.h"
namespace OCC {
@@ -36,6 +37,8 @@ public:
~UnixPlatform() override;
+ void setApplication(Application *application) override;
+
private:
void setLimitsForCoreDumps();
};
@@ -60,6 +63,15 @@ void UnixPlatform::setLimitsForCoreDumps()
}
}
+void UnixPlatform::setApplication(Application *application)
+{
+ Platform::setApplication(application);
+
+#if defined(OC_PLUGIN_DIR)
+ application->addLibraryPath(QDir(application::applicationDirPath()).filePath(QStringLiteral(OC_PLUGIN_DIR)));
+#endif
+}
+
std::unique_ptr<Platform> Platform::create()
{
return std::make_unique<UnixPlatform>();
diff --git a/src/gui/platform_win.cpp b/src/gui/platform_win.cpp
index 167be35ed..08fd5dc80 100644
--- a/src/gui/platform_win.cpp
+++ b/src/gui/platform_win.cpp
@@ -28,6 +28,8 @@ public:
}
~WinPlatform() override;
+
+ void setApplication(Application *application) override;
};
WinPlatform::~WinPlatform()
@@ -39,4 +41,11 @@ std::unique_ptr<Platform> Platform::create()
return std::make_unique<WinPlatform>();
}
+void Platform::setApplication(OCC::Application *application)
+{
+ // Ensure OpenSSL config file is only loaded from app directory
+ const QString opensslConf = QCoreApplication::applicationDirPath() + QStringLiteral("/openssl.cnf");
+ qputenv("OPENSSL_CONF", opensslConf.toLocal8Bit());
+}
+
} // namespace OCC