From 4e1129b6edbfd2bb6db77d32f5b3ff7a03261869 Mon Sep 17 00:00:00 2001 From: Robert Adam Date: Fri, 5 Mar 2021 09:28:53 +0100 Subject: REFAC(client): Put qsslStringConversion to QtUtils There was a function for processing QsslStrings in UserInformation.cpp as well as ViewCert.cpp. These functions were completely identical. Therefore there were name clashes that appeared when performing a unity build. Furthermore duplicating functionality in multiple places in never a good idea. Thus this commit refactors the code so that both classes now use a shared implementation in QtUtils.cpp. --- src/QtUtils.cpp | 15 +++++++++++++++ src/QtUtils.h | 11 +++++++++++ src/mumble/UserInformation.cpp | 16 ++-------------- src/mumble/ViewCert.cpp | 9 ++------- 4 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/QtUtils.cpp b/src/QtUtils.cpp index 6f22fdfbf..4a71e0ff2 100644 --- a/src/QtUtils.cpp +++ b/src/QtUtils.cpp @@ -4,10 +4,25 @@ // Mumble source tree or at . #include +#include +#include namespace Mumble { namespace QtUtils { void deleteQObject(QObject *object) { object->deleteLater(); } + QString decode_utf8_qssl_string(const QString &input) { + QString i = input; + return QUrl::fromPercentEncoding(i.replace(QLatin1String("\\x"), QLatin1String("%")).toLatin1()); + } + + QString decode_first_utf8_qssl_string(const QStringList &list) { + if (list.count() > 0) { + return decode_utf8_qssl_string(list.at(0)); + } + return QString(); + } + + }; // namespace QtUtils }; // namespace Mumble diff --git a/src/QtUtils.h b/src/QtUtils.h index 7fc09246b..74a3808b4 100644 --- a/src/QtUtils.h +++ b/src/QtUtils.h @@ -6,7 +6,10 @@ #ifndef MUMBLE_QTUTILS_H_ #define MUMBLE_QTUTILS_H_ +#include + class QObject; +class QStringList; namespace Mumble { namespace QtUtils { @@ -20,6 +23,14 @@ namespace QtUtils { */ void deleteQObject(QObject *object); + QString decode_utf8_qssl_string(const QString &input); + + /** + * Applies decode_utf8_qssl_string on the first element in the + * given list. If the list is empty an empty String is returned. + */ + QString decode_first_utf8_qssl_string(const QStringList &list); + }; // namespace QtUtils }; // namespace Mumble diff --git a/src/mumble/UserInformation.cpp b/src/mumble/UserInformation.cpp index f234169c7..1ecc996e9 100644 --- a/src/mumble/UserInformation.cpp +++ b/src/mumble/UserInformation.cpp @@ -8,23 +8,11 @@ #include "Audio.h" #include "CELTCodec.h" #include "HostAddress.h" +#include "QtUtils.h" #include "ServerHandler.h" #include "ViewCert.h" #include "Global.h" -#include - -static QString decode_utf8_qssl_string(const QString &input) { - QString i = input; - return QUrl::fromPercentEncoding(i.replace(QLatin1String("\\x"), QLatin1String("%")).toLatin1()); -} - -static QString decode_utf8_qssl_string(const QStringList &list) { - if (list.count() > 0) { - return decode_utf8_qssl_string(list.at(0)); - } - return QString(); -} UserInformation::UserInformation(const MumbleProto::UserStats &msg, QWidget *p) : QDialog(p) { setupUi(this); @@ -116,7 +104,7 @@ void UserInformation::update(const MumbleProto::UserStats &msg) { if (alts.contains(QSsl::EmailEntry)) qlCertificate->setText(QStringList(alts.values(QSsl::EmailEntry)).join(tr(", "))); else - qlCertificate->setText(decode_utf8_qssl_string(cert.subjectInfo(QSslCertificate::CommonName))); + qlCertificate->setText(Mumble::QtUtils::decode_first_utf8_qssl_string(cert.subjectInfo(QSslCertificate::CommonName))); if (msg.strong_certificate()) { QFont f = qfCertificateFont; diff --git a/src/mumble/ViewCert.cpp b/src/mumble/ViewCert.cpp index 19f4968f3..366987a1d 100644 --- a/src/mumble/ViewCert.cpp +++ b/src/mumble/ViewCert.cpp @@ -4,8 +4,8 @@ // Mumble source tree or at . #include "ViewCert.h" +#include "QtUtils.h" -#include #include #include #include @@ -13,14 +13,9 @@ #include #include -static QString decode_utf8_qssl_string(const QString &input) { - QString i = input; - return QUrl::fromPercentEncoding(i.replace(QLatin1String("\\x"), QLatin1String("%")).toLatin1()); -} - static QStringList processQSslCertificateInfo(QStringList in) { QStringList list; - foreach (QString str, in) { list << decode_utf8_qssl_string(str); } + foreach (QString str, in) { list << Mumble::QtUtils::decode_utf8_qssl_string(str); } return list; } -- cgit v1.2.3