From a53b17cce374a4929fc706ff15d0f4f65e305b68 Mon Sep 17 00:00:00 2001 From: Andrey Batyiev Date: Fri, 14 May 2021 15:27:04 +0300 Subject: [PATCH] =?UTF-8?q?SYNERGY-969=20Detect=20if=20Linux=20is=20runnin?= =?UTF-8?q?g=20with=20Wayland,=20and=20display=20a=20wa=E2=80=A6=20(#6999)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * SYNERGY-969 Detect if Linux is running with Wayland, and display a warning message *Add Waylend detect logic * SYNERGY-969 Detect if Linux is running with Wayland, and display a warning message *Add new files *Update changelog * SYNERGY-969 Detect if Linux is running with Wayland, and display a warning message *Remove debug code * SYNERGY-969 Detect if Linux is running with Wayland, and display a warning message *Fix code smells Co-authored-by: Andrii Batyiev --- ChangeLog | 1 + src/gui/res/Synergy.qrc | 1 + src/gui/res/image/setupBlocker.png | Bin 0 -> 12202 bytes src/gui/src/SetupWizardBlocker.cpp | 58 ++++++++++ src/gui/src/SetupWizardBlocker.h | 41 +++++++ src/gui/src/SetupWizardBlocker.ui | 177 +++++++++++++++++++++++++++++ src/gui/src/main.cpp | 9 ++ 7 files changed, 287 insertions(+) create mode 100644 src/gui/res/image/setupBlocker.png create mode 100644 src/gui/src/SetupWizardBlocker.cpp create mode 100644 src/gui/src/SetupWizardBlocker.h create mode 100644 src/gui/src/SetupWizardBlocker.ui diff --git a/ChangeLog b/ChangeLog index 33c8ac1aa3..a4a52646c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,7 @@ Enhancements: - #6984 Update synergy UI. Client error messages - #6962 | #6965 Add macOS 10.13 builder - #6990 Change VersionChecker URL and include system language in the header +- #6999 Detect if Linux is running with Wayland, and display a warning message =========== v1.13.1-stable diff --git a/src/gui/res/Synergy.qrc b/src/gui/res/Synergy.qrc index 345e6b7000..fc477154eb 100644 --- a/src/gui/res/Synergy.qrc +++ b/src/gui/res/Synergy.qrc @@ -21,5 +21,6 @@ image/welcome.png icons/64x64/folder.png fonts/Arial.ttf + image/setupBlocker.png diff --git a/src/gui/res/image/setupBlocker.png b/src/gui/res/image/setupBlocker.png new file mode 100644 index 0000000000000000000000000000000000000000..e1aa696a02fd2d583bd2ad6c481c4ecca93fae2f GIT binary patch literal 12202 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 sDF)C^(2E!#D)!BB. + */ + +#include +#include + +#include "SetupWizardBlocker.h" +#include "MainWindow.h" + +static const std::vector blockerTitels = { + "No Wayland support", +}; + +static const std::vector blockerText = { + "We have detected your system is using Wayland. It is not currently \n" + "supported, but we are working on it. It's top of our priority list. \n" + "\n" + "Please switch to Xorg if you wish to continue using Synergy today.", +}; + +SetupWizardBlocker::SetupWizardBlocker(MainWindow& mainWindow, qBlockerType type) : + m_MainWindow(mainWindow) +{ + setupUi(this); + + label_Title->setText(blockerTitels[static_cast(type)]); + + label_HelpInfo->setText(blockerText[static_cast(type)]); + + connect(m_pButtonSupport, &QPushButton::released, this, &SetupWizardBlocker::onlineSupport); + connect(m_pButtonCancel, &QPushButton::released, this, &SetupWizardBlocker::cancel); +} + +void SetupWizardBlocker::onlineSupport() +{ + QDesktopServices::openUrl(QUrl("https://symless.com/help")); + cancel(); +} + +void SetupWizardBlocker::cancel() +{ + QDialog::reject(); + QCoreApplication::quit(); +} diff --git a/src/gui/src/SetupWizardBlocker.h b/src/gui/src/SetupWizardBlocker.h new file mode 100644 index 0000000000..7620ed43be --- /dev/null +++ b/src/gui/src/SetupWizardBlocker.h @@ -0,0 +1,41 @@ +/* + * synergy -- mouse and keyboard sharing utility + * Copyright (C) 2012-2016 Symless Ltd. + * + * This package is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * found in the file LICENSE that should have accompanied this file. + * + * This package is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "ui_SetupWizardBlocker.h" +#include + +class MainWindow; + +class SetupWizardBlocker : public QDialog, public Ui::SetupWizardBlocker +{ + Q_OBJECT + +public: + enum class qBlockerType + { + waylandDetected + }; + explicit SetupWizardBlocker(MainWindow& mainWindow, qBlockerType type); + +protected: + void onlineSupport(); + void cancel(); + +private: + MainWindow& m_MainWindow; +}; diff --git a/src/gui/src/SetupWizardBlocker.ui b/src/gui/src/SetupWizardBlocker.ui new file mode 100644 index 0000000000..de278e6ad0 --- /dev/null +++ b/src/gui/src/SetupWizardBlocker.ui @@ -0,0 +1,177 @@ + + + SetupWizardBlocker + + + + 0 + 0 + 720 + 580 + + + + + 0 + 0 + + + + + 720 + 580 + + + + + 720 + 580 + + + + + 720 + 580 + + + + + Arial + + + + Qt::NoContextMenu + + + Setup Synergy + + + 1.000000000000000 + + + + + 278 + 87 + 165 + 165 + + + + + + + :/res/image/setupBlocker.png + + + true + + + + + + 0 + 273 + 720 + 25 + + + + + Arial + 18 + 50 + false + + + + Test header + + + Qt::RichText + + + Qt::AlignHCenter|Qt::AlignTop + + + true + + + + + + 153 + 321 + 455 + 150 + + + + + Arial + 13 + 50 + false + + + + large text test large text test large text test + + + Qt::RichText + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + + + + 642 + 540 + 71 + 25 + + + + + Arial + 13 + 50 + false + + + + Cancel + + + + + + 500 + 540 + 131 + 25 + + + + + Arial + 13 + 50 + false + + + + Online support + + + + + + + + diff --git a/src/gui/src/main.cpp b/src/gui/src/main.cpp index 4d1fc3fc24..6d1ac22e34 100644 --- a/src/gui/src/main.cpp +++ b/src/gui/src/main.cpp @@ -21,6 +21,7 @@ #include "MainWindow.h" #include "AppConfig.h" #include "SetupWizard.h" +#include "SetupWizardBlocker.h" #include #include @@ -98,6 +99,14 @@ int main(int argc, char* argv[]) QObject::connect(dynamic_cast(&app), SIGNAL(aboutToQuit()), &mainWindow, SLOT(saveSettings())); + std::unique_ptr setupBlocker; + if (qgetenv("XDG_SESSION_TYPE") == "wayland") + { + setupBlocker.reset(new SetupWizardBlocker(mainWindow, SetupWizardBlocker::qBlockerType::waylandDetected)); + setupBlocker->show(); + return QApplication::exec(); + } + std::unique_ptr setupWizard; if (appConfig.wizardShouldRun()) {