mirror of
https://github.com/debauchee/barrier.git
synced 2025-06-15 17:21:40 +02:00
65 lines
1.9 KiB
C++
65 lines
1.9 KiB
C++
/*
|
|
* synergy -- mouse and keyboard sharing utility
|
|
* 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 COPYING 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 <QtCore>
|
|
#include <QtGui>
|
|
#include <QtNetwork>
|
|
|
|
static QString getSynergyVersion(const QString& app)
|
|
{
|
|
#if !defined(Q_OS_WIN)
|
|
QProcess process;
|
|
process.start(app, QStringList() << "--version");
|
|
|
|
process.setReadChannel(QProcess::StandardError);
|
|
if (!process.waitForStarted() || !process.waitForFinished())
|
|
return QObject::tr("(unknown)");
|
|
|
|
QRegExp rx("synergy[cs] ([\\d\\.]+)");
|
|
if (rx.indexIn(QString(process.readLine())) != -1)
|
|
return rx.cap(1);
|
|
#else
|
|
Q_UNUSED(app);
|
|
#endif
|
|
|
|
return QObject::tr("(unknown)");
|
|
}
|
|
|
|
static QString getIPAddress()
|
|
{
|
|
QList<QHostAddress> addresses = QNetworkInterface::allAddresses();
|
|
|
|
for (int i = 0; i < addresses.size(); i++)
|
|
if (addresses[i].protocol() == QAbstractSocket::IPv4Protocol && addresses[i] != QHostAddress(QHostAddress::LocalHost))
|
|
return addresses[i].toString();
|
|
|
|
return QObject::tr("(unknown)");
|
|
}
|
|
|
|
AboutDialog::AboutDialog(QWidget* parent, const QString& synergyApp) :
|
|
QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
|
|
Ui::AboutDialogBase()
|
|
{
|
|
setupUi(this);
|
|
|
|
m_pLabelSynergyVersion->setText(getSynergyVersion(synergyApp));
|
|
m_pLabelHostname->setText(QHostInfo::localHostName());
|
|
m_pLabelIPAddress->setText(getIPAddress());
|
|
}
|
|
|