Files
deskflow/src/gui/src/AboutDialog.cpp
Nick Bolton 8beeaf4276 Add warnings for missing Wayland libs and features (#7492)
* Add warnings for libei and libportal

* Add warning about experimental Wayland support

* Update ChangeLog

* Move GUI res files to root res dir

* Fixed crazy qrc shenanigans

* Move Wayland warning logic, add tests, improve core retry

* Also install py modules with pip since meson can be in venv

* Throw error when no libei

* Add warnings when no libportal

* Allow failure then success to show related to Wayland (for switching modes)

* Fixed formatting

* Fixed includes

* Simplify warning message

* Add log hint

* Show warning when error already shown

* Only check for Wayland if X or libei

* Add error message when quitting dur to remote desktop error

* Improve consistency of portal log lines
2024-09-09 11:18:17 +01:00

116 lines
3.3 KiB
C++

/*
* synergy -- mouse and keyboard sharing utility
* Copyright (C) 2012 Symless Ltd.
* Copyright (C) 2008 Volker Lanz (vl@fidra.de)
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include "AboutDialog.h"
#include "common/copyright.h"
#include "common/version.h"
#include "gui/style_utils.h"
#include <QDateTime>
#include <qguiapplication.h>
using namespace synergy::gui;
AboutDialog::AboutDialog(MainWindow *parent)
: QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
Ui::AboutDialogBase() {
setupUi(this);
this->setFixedSize(this->size());
QString version = QString::fromStdString(synergy::version());
m_pLabelSynergyVersion->setText(version);
QString buildDateString = QString::fromLocal8Bit(__DATE__).simplified();
QDate buildDate = QLocale("en_US").toDate(buildDateString, "MMM d yyyy");
m_pLabelBuildDate->setText(
buildDate.toString(QLocale::system().dateFormat(QLocale::LongFormat)));
}
int AboutDialog::exec() {
m_pDevelopersLabel->setText(importantDevelopers());
m_pCopyrightLabel->setText(QString::fromStdString(synergy::copyright()));
updateLogo();
return QDialog::exec();
}
void AboutDialog::updateLogo() const {
if (isDarkMode()) {
qDebug("dark mode detected, showing dark logo");
QPixmap logo(":/image/about-dark.png");
if (!logo.isNull()) {
m_pLabel_Logo->setPixmap(logo);
}
} else {
qDebug("light mode detected, keeping light logo");
}
}
QString AboutDialog::importantDevelopers() const {
QStringList awesomePeople;
awesomePeople
// Chris is the ultimate creator, and the one who started it all in 2001.
<< "Chris Schoeneman"
// Richard and Adam developed CosmoSynergy, the 90's predecessor project.
<< "Richard Lee"
<< "Adam Feder"
// Nick continued the legacy in 2009 started by Chris.
<< "Nick Bolton"
// Volker wrote the first version of the GUI (QSynergy) in 2008.
<< "Volker Lanz"
// Re-ignited the project in 2008 and rebuilt the community.
<< "Sorin Sbârnea"
// Contributors of bug fixes in the early days.
<< "Ryan Breen"
<< "Guido Poschta"
<< "Bertrand Landry Hetu"
<< "Tom Chadwick"
<< "Brent Priddy"
<< "Jason Axelson"
<< "Jake Petroules"
// Implemented Wayland support (libei and libportal).
<< "Peter Hutterer"
<< "Olivier Fourdan"
// Symless employees (in order of joining).
<< "Kyle Bloom"
<< "Daun Chung"
<< "Serhii Hadzhylov"
<< "Oleksandr Lysytsia"
<< "Olena Kutytska"
<< "Owen Phillips"
<< "Daniel Evenson";
for (auto &person : awesomePeople) {
// prevent names from breaking on the space when wrapped
person = person.replace(" ", QString::fromUtf8("&nbsp;"));
}
return awesomePeople.join(", ") + ".";
}