From 7f453a80d3c222ca5897cbda8a7dc1fb8dce108f Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sat, 28 Sep 2019 16:49:36 +0800 Subject: [PATCH] Revise SessionSettingsEnums wrapper This simplify the wrapper to become a namespace. --- src/base/bittorrent/session.h | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index 43b070dc9..7324ea812 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -95,18 +95,19 @@ namespace BitTorrent class TrackerEntry; struct CreateTorrentParams; - class SessionSettingsEnums + // Using `Q_ENUM_NS()` without a wrapper namespace in our case is not advised + // since `Q_NAMESPACE` cannot be used when the same namespace resides at different files. + // https://www.kdab.com/new-qt-5-8-meta-object-support-namespaces/#comment-143779 + namespace SessionSettingsEnums { - Q_GADGET + Q_NAMESPACE - public: - // TODO: remove `SessionSettingsEnums` wrapper when we can use `Q_ENUM_NS` directly (QT >= 5.8 only) enum class ChokingAlgorithm : int { FixedSlots = 0, RateBased = 1 }; - Q_ENUM(ChokingAlgorithm) + Q_ENUM_NS(ChokingAlgorithm) enum class SeedChokingAlgorithm : int { @@ -114,14 +115,14 @@ namespace BitTorrent FastestUpload = 1, AntiLeech = 2 }; - Q_ENUM(SeedChokingAlgorithm) + Q_ENUM_NS(SeedChokingAlgorithm) enum class MixedModeAlgorithm : int { TCP = 0, Proportional = 1 }; - Q_ENUM(MixedModeAlgorithm) + Q_ENUM_NS(MixedModeAlgorithm) enum class BTProtocol : int { @@ -129,12 +130,9 @@ namespace BitTorrent TCP = 1, UTP = 2 }; - Q_ENUM(BTProtocol) - }; - using ChokingAlgorithm = SessionSettingsEnums::ChokingAlgorithm; - using SeedChokingAlgorithm = SessionSettingsEnums::SeedChokingAlgorithm; - using MixedModeAlgorithm = SessionSettingsEnums::MixedModeAlgorithm; - using BTProtocol = SessionSettingsEnums::BTProtocol; + Q_ENUM_NS(BTProtocol) + } + using namespace SessionSettingsEnums; struct SessionMetricIndices {