summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-10-27 21:03:14 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-10-27 16:18:09 -0700
commitd747d76762ad745b510c645706c2dd708fe20302 (patch)
treee08fef51e339416bac144a77fd7dc690fba700dd
parent49fc05de7ebdc3f402b76072a34e3aa53b3b7d4d (diff)
downloadsubsurface-d747d76762ad745b510c645706c2dd708fe20302.tar.gz
cleanup: refactor subsurfacesysinfo.cpp
This used to be a copy of QSysInfo. However, once the requirement was raised to Qt5.4, this was replaced by a subclass of the original QSysInfo - which made the whole file mostly obsolete. Just use QSysInfo directly where needed. Only for windows.c, which can't call directly into Qt, keep the isWin7Or8() helper function. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--core/qthelper.cpp18
-rw-r--r--core/subsurfacesysinfo.cpp71
-rw-r--r--core/subsurfacesysinfo.h55
-rw-r--r--core/windows.c3
4 files changed, 26 insertions, 121 deletions
diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index 1dacbab38..5e375997a 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -8,7 +8,6 @@
#include "gettextfromc.h"
#include "statistics.h"
#include "membuffer.h"
-#include "subsurfacesysinfo.h"
#include "version.h"
#include "errorhelper.h"
#include "planner.h"
@@ -40,6 +39,9 @@
#include <QProgressDialog> // TODO: remove with convertThumbnails()
#include <cstdarg>
#include <cstdint>
+#ifdef Q_OS_UNIX
+#include <sys/utsname.h>
+#endif
#include <libxslt/documents.h>
@@ -420,11 +422,19 @@ QString getUserAgent()
#else
QString userAgent = QString("Subsurface:%1:").arg(subsurface_canonical_version());
#endif
- userAgent.append(SubsurfaceSysInfo::prettyOsName().replace(':', ' ') + ":");
- arch = SubsurfaceSysInfo::buildCpuArchitecture().replace(':', ' ');
+ QString prettyOsName = QSysInfo::prettyProductName();
+#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_ANDROID)
+ // QSysInfo::kernelType() returns lowercase ("linux" instead of "Linux")
+ struct utsname u;
+ if (uname(&u) == 0)
+ prettyOsName = QString::fromLatin1(u.sysname) + QLatin1String(" (") + prettyOsName + QLatin1Char(')');
+#endif
+
+ userAgent.append(prettyOsName.replace(':', ' ') + ":");
+ arch = QSysInfo::buildCpuArchitecture().replace(':', ' ');
userAgent.append(arch);
if (arch == "i386")
- userAgent.append("/" + SubsurfaceSysInfo::currentCpuArchitecture());
+ userAgent.append("/" + QSysInfo::currentCpuArchitecture());
userAgent.append(":" + getUiLanguage());
return userAgent;
diff --git a/core/subsurfacesysinfo.cpp b/core/subsurfacesysinfo.cpp
index 6771a61c4..7cad562b8 100644
--- a/core/subsurfacesysinfo.cpp
+++ b/core/subsurfacesysinfo.cpp
@@ -1,73 +1,10 @@
// SPDX-License-Identifier: LGPL-2.1+
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Copyright (C) 2014 Intel Corporation
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
#include "subsurfacesysinfo.h"
-#include <QString>
-
-#ifdef Q_OS_UNIX
-#include <sys/utsname.h>
-#endif
-
-QString SubsurfaceSysInfo::prettyOsName()
-{
- // Matches the pre-release version of Qt 5.4
- QString pretty = prettyProductName();
-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_ANDROID)
- // QSysInfo::kernelType() returns lowercase ("linux" instead of "Linux")
- struct utsname u;
- if (uname(&u) == 0)
- return QString::fromLatin1(u.sysname) + QLatin1String(" (") + pretty + QLatin1Char(')');
-#endif
- return pretty;
-}
+#include <QSysInfo>
-extern "C" {
-bool isWin7Or8()
-{
#ifdef Q_OS_WIN
+extern "C" bool isWin7Or8()
+{
return (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based) >= QSysInfo::WV_WINDOWS7;
-#else
- return false;
-#endif
-}
}
+#endif
diff --git a/core/subsurfacesysinfo.h b/core/subsurfacesysinfo.h
index 6d195b7d9..a608239b3 100644
--- a/core/subsurfacesysinfo.h
+++ b/core/subsurfacesysinfo.h
@@ -1,55 +1,14 @@
-// SPDX-License-Identifier: LGPL-2.1+
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Copyright (C) 2014 Intel Corporation
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
#ifndef SUBSURFACESYSINFO_H
#define SUBSURFACESYSINFO_H
-#include <QSysInfo>
+#include <QtGlobal>
-class SubsurfaceSysInfo : public QSysInfo {
-public:
- static QString prettyOsName();
-};
+#ifdef Q_OS_WIN
+#ifdef __cplusplus
+extern "C"
+#endif
+bool isWin7Or8();
+#endif
#endif // SUBSURFACESYSINFO_H
diff --git a/core/windows.c b/core/windows.c
index 37f4d3a63..b770129c5 100644
--- a/core/windows.c
+++ b/core/windows.c
@@ -7,6 +7,7 @@
#include "display.h"
#include "file.h"
#include "errorhelper.h"
+#include "subsurfacesysinfo.h"
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x500
#include <windows.h>
@@ -23,8 +24,6 @@ const char current_system_divelist_default_font[] = "Segoe UI";
const char *system_divelist_default_font = non_standard_system_divelist_default_font;
double system_divelist_default_font_size = -1;
-extern bool isWin7Or8();
-
void subsurface_OS_pref_setup(void)
{
if (isWin7Or8())