diff --git a/qt/CMakeLists.txt b/qt/CMakeLists.txt index 3cdfe061a..bcee7004a 100644 --- a/qt/CMakeLists.txt +++ b/qt/CMakeLists.txt @@ -20,7 +20,6 @@ target_sources(${TR_NAME}-qt-lib ColumnResizer.h ComInteropHelper.cc ComInteropHelper.h - CustomVariantType.h DBusInteropHelper.cc DBusInteropHelper.h DetailsDialog.cc @@ -109,6 +108,7 @@ target_sources(${TR_NAME}-qt-lib TrQtInit.cc TrQtInit.h Typedefs.h + UserMetaType.h Utils.cc Utils.h VariantHelpers.cc diff --git a/qt/CustomVariantType.h b/qt/CustomVariantType.h deleted file mode 100644 index 1d2727d7f..000000000 --- a/qt/CustomVariantType.h +++ /dev/null @@ -1,26 +0,0 @@ -// This file Copyright © Mnemosyne LLC. -// It may be used under GPLv2 (SPDX: GPL-2.0-only), GPLv3 (SPDX: GPL-3.0-only), -// or any future license endorsed by Mnemosyne LLC. -// License text can be found in the licenses/ folder. - -#pragma once - -#include - -#include - -class CustomVariantType -{ -public: - enum - { - TrackerStatsList = QMetaType::User, - PeerList, - FileList, - ShowModeType, - SortModeType, - EncryptionModeType, - }; -}; - -Q_DECLARE_METATYPE(tr_encryption_mode) diff --git a/qt/Filters.h b/qt/Filters.h index 7be3ee79d..d9a61a85a 100644 --- a/qt/Filters.h +++ b/qt/Filters.h @@ -5,20 +5,11 @@ #pragma once -#include - +#include "UserMetaType.h" #include "Torrent.h" // The Torrent properties that can affect ShowMode filtering. // When one of these changes, it's time to refilter. extern Torrent::fields_t const ShowModeFields; -using ShowMode = transmission::app::ShowMode; -Q_DECLARE_METATYPE(ShowMode) -inline auto constexpr DefaultShowMode = transmission::app::DefaultShowMode; -inline auto constexpr ShowModeCount = transmission::app::ShowModeCount; bool should_show_torrent(Torrent const& torrent, ShowMode); - -using SortMode = transmission::app::SortMode; -Q_DECLARE_METATYPE(SortMode) -inline auto constexpr DefaultSortMode = transmission::app::DefaultSortMode; diff --git a/qt/Prefs.cc b/qt/Prefs.cc index d7a730514..c6ede9744 100644 --- a/qt/Prefs.cc +++ b/qt/Prefs.cc @@ -18,9 +18,9 @@ #include #include -#include "CustomVariantType.h" #include "Filters.h" #include "Prefs.h" +#include "UserMetaType.h" namespace api_compat = libtransmission::api_compat; namespace ser = libtransmission::serializer; @@ -43,13 +43,13 @@ template case QMetaType::Int: return qvarFromOptional(ser::to_value(var)); - case CustomVariantType::EncryptionModeType: + case UserMetaType::EncryptionModeType: return qvarFromOptional(ser::to_value(var)); - case CustomVariantType::SortModeType: + case UserMetaType::SortModeType: return qvarFromOptional(ser::to_value(var)); - case CustomVariantType::ShowModeType: + case UserMetaType::ShowModeType: return qvarFromOptional(ser::to_value(var)); case QMetaType::QString: @@ -80,13 +80,13 @@ template case QMetaType::Int: return ser::to_variant(var.value()); - case CustomVariantType::EncryptionModeType: + case UserMetaType::EncryptionModeType: return ser::to_variant(var.value()); - case CustomVariantType::SortModeType: + case UserMetaType::SortModeType: return ser::to_variant(var.value()); - case CustomVariantType::ShowModeType: + case UserMetaType::ShowModeType: return ser::to_variant(var.value()); case QMetaType::QString: @@ -125,106 +125,6 @@ void ensureSoundCommandIsAList(tr_variant::Map& map) } } // namespace -std::array const Prefs::Items{ - /* gui settings */ - PrefItem{ OPTIONS_PROMPT, TR_KEY_show_options_window, QMetaType::Bool }, - { OPEN_DIALOG_FOLDER, TR_KEY_open_dialog_dir, QMetaType::QString }, - { INHIBIT_HIBERNATION, TR_KEY_inhibit_desktop_hibernation, QMetaType::Bool }, - { DIR_WATCH, TR_KEY_watch_dir, QMetaType::QString }, - { DIR_WATCH_ENABLED, TR_KEY_watch_dir_enabled, QMetaType::Bool }, - { SHOW_TRAY_ICON, TR_KEY_show_notification_area_icon, QMetaType::Bool }, - { START_MINIMIZED, TR_KEY_start_minimized, QMetaType::Bool }, - { SHOW_NOTIFICATION_ON_ADD, TR_KEY_torrent_added_notification_enabled, QMetaType::Bool }, - { SHOW_NOTIFICATION_ON_COMPLETE, TR_KEY_torrent_complete_notification_enabled, QMetaType::Bool }, - { ASKQUIT, TR_KEY_prompt_before_exit, QMetaType::Bool }, - { SORT_MODE, TR_KEY_sort_mode, CustomVariantType::SortModeType }, - { SORT_REVERSED, TR_KEY_sort_reversed, QMetaType::Bool }, - { COMPACT_VIEW, TR_KEY_compact_view, QMetaType::Bool }, - { FILTERBAR, TR_KEY_show_filterbar, QMetaType::Bool }, - { STATUSBAR, TR_KEY_show_statusbar, QMetaType::Bool }, - { STATUSBAR_STATS, TR_KEY_statusbar_stats, QMetaType::QString }, - { SHOW_TRACKER_SCRAPES, TR_KEY_show_tracker_scrapes, QMetaType::Bool }, - { SHOW_BACKUP_TRACKERS, TR_KEY_show_backup_trackers, QMetaType::Bool }, - { TOOLBAR, TR_KEY_show_toolbar, QMetaType::Bool }, - { BLOCKLIST_DATE, TR_KEY_blocklist_date, QMetaType::QDateTime }, - { BLOCKLIST_UPDATES_ENABLED, TR_KEY_blocklist_updates_enabled, QMetaType::Bool }, - { MAIN_WINDOW_LAYOUT_ORDER, TR_KEY_main_window_layout_order, QMetaType::QString }, - { MAIN_WINDOW_HEIGHT, TR_KEY_main_window_height, QMetaType::Int }, - { MAIN_WINDOW_WIDTH, TR_KEY_main_window_width, QMetaType::Int }, - { MAIN_WINDOW_X, TR_KEY_main_window_x, QMetaType::Int }, - { MAIN_WINDOW_Y, TR_KEY_main_window_y, QMetaType::Int }, - { FILTER_MODE, TR_KEY_filter_mode, CustomVariantType::ShowModeType }, - { FILTER_TRACKERS, TR_KEY_filter_trackers, QMetaType::QString }, - { FILTER_TEXT, TR_KEY_filter_text, QMetaType::QString }, - { SESSION_IS_REMOTE, TR_KEY_remote_session_enabled, QMetaType::Bool }, - { SESSION_REMOTE_HOST, TR_KEY_remote_session_host, QMetaType::QString }, - { SESSION_REMOTE_HTTPS, TR_KEY_remote_session_https, QMetaType::Bool }, - { SESSION_REMOTE_PASSWORD, TR_KEY_remote_session_password, QMetaType::QString }, - { SESSION_REMOTE_PORT, TR_KEY_remote_session_port, QMetaType::Int }, - { SESSION_REMOTE_AUTH, TR_KEY_remote_session_requires_authentication, QMetaType::Bool }, - { SESSION_REMOTE_USERNAME, TR_KEY_remote_session_username, QMetaType::QString }, - { SESSION_REMOTE_URL_BASE_PATH, TR_KEY_remote_session_url_base_path, QMetaType::QString }, - { COMPLETE_SOUND_COMMAND, TR_KEY_torrent_complete_sound_command, QMetaType::QStringList }, - { COMPLETE_SOUND_ENABLED, TR_KEY_torrent_complete_sound_enabled, QMetaType::Bool }, - { READ_CLIPBOARD, TR_KEY_read_clipboard, QMetaType::Bool }, - - /* libtransmission settings */ - { ALT_SPEED_LIMIT_UP, TR_KEY_alt_speed_up, QMetaType::Int }, - { ALT_SPEED_LIMIT_DOWN, TR_KEY_alt_speed_down, QMetaType::Int }, - { ALT_SPEED_LIMIT_ENABLED, TR_KEY_alt_speed_enabled, QMetaType::Bool }, - { ALT_SPEED_LIMIT_TIME_BEGIN, TR_KEY_alt_speed_time_begin, QMetaType::Int }, - { ALT_SPEED_LIMIT_TIME_END, TR_KEY_alt_speed_time_end, QMetaType::Int }, - { ALT_SPEED_LIMIT_TIME_ENABLED, TR_KEY_alt_speed_time_enabled, QMetaType::Bool }, - { ALT_SPEED_LIMIT_TIME_DAY, TR_KEY_alt_speed_time_day, QMetaType::Int }, - { BLOCKLIST_ENABLED, TR_KEY_blocklist_enabled, QMetaType::Bool }, - { BLOCKLIST_URL, TR_KEY_blocklist_url, QMetaType::QString }, - { DEFAULT_TRACKERS, TR_KEY_default_trackers, QMetaType::QString }, - { DSPEED, TR_KEY_speed_limit_down, QMetaType::Int }, - { DSPEED_ENABLED, TR_KEY_speed_limit_down_enabled, QMetaType::Bool }, - { DOWNLOAD_DIR, TR_KEY_download_dir, QMetaType::QString }, - { DOWNLOAD_QUEUE_ENABLED, TR_KEY_download_queue_enabled, QMetaType::Bool }, - { DOWNLOAD_QUEUE_SIZE, TR_KEY_download_queue_size, QMetaType::Int }, - { ENCRYPTION, TR_KEY_encryption, CustomVariantType::EncryptionModeType }, - { IDLE_LIMIT, TR_KEY_idle_seeding_limit, QMetaType::Int }, - { IDLE_LIMIT_ENABLED, TR_KEY_idle_seeding_limit_enabled, QMetaType::Bool }, - { INCOMPLETE_DIR, TR_KEY_incomplete_dir, QMetaType::QString }, - { INCOMPLETE_DIR_ENABLED, TR_KEY_incomplete_dir_enabled, QMetaType::Bool }, - { MSGLEVEL, TR_KEY_message_level, QMetaType::Int }, - { PEER_LIMIT_GLOBAL, TR_KEY_peer_limit_global, QMetaType::Int }, - { PEER_LIMIT_TORRENT, TR_KEY_peer_limit_per_torrent, QMetaType::Int }, - { PEER_PORT, TR_KEY_peer_port, QMetaType::Int }, - { PEER_PORT_RANDOM_ON_START, TR_KEY_peer_port_random_on_start, QMetaType::Bool }, - { PEER_PORT_RANDOM_LOW, TR_KEY_peer_port_random_low, QMetaType::Int }, - { PEER_PORT_RANDOM_HIGH, TR_KEY_peer_port_random_high, QMetaType::Int }, - { QUEUE_STALLED_MINUTES, TR_KEY_queue_stalled_minutes, QMetaType::Int }, - { SCRIPT_TORRENT_DONE_ENABLED, TR_KEY_script_torrent_done_enabled, QMetaType::Bool }, - { SCRIPT_TORRENT_DONE_FILENAME, TR_KEY_script_torrent_done_filename, QMetaType::QString }, - { SCRIPT_TORRENT_DONE_SEEDING_ENABLED, TR_KEY_script_torrent_done_seeding_enabled, QMetaType::Bool }, - { SCRIPT_TORRENT_DONE_SEEDING_FILENAME, TR_KEY_script_torrent_done_seeding_filename, QMetaType::QString }, - { SOCKET_DIFFSERV, TR_KEY_peer_socket_diffserv, QMetaType::QString }, - { START, TR_KEY_start_added_torrents, QMetaType::Bool }, - { TRASH_ORIGINAL, TR_KEY_trash_original_torrent_files, QMetaType::Bool }, - { PEX_ENABLED, TR_KEY_pex_enabled, QMetaType::Bool }, - { DHT_ENABLED, TR_KEY_dht_enabled, QMetaType::Bool }, - { UTP_ENABLED, TR_KEY_utp_enabled, QMetaType::Bool }, - { LPD_ENABLED, TR_KEY_lpd_enabled, QMetaType::Bool }, - { PORT_FORWARDING, TR_KEY_port_forwarding_enabled, QMetaType::Bool }, - { PREALLOCATION, TR_KEY_preallocation, QMetaType::Int }, - { RATIO, TR_KEY_ratio_limit, QMetaType::Double }, - { RATIO_ENABLED, TR_KEY_ratio_limit_enabled, QMetaType::Bool }, - { RENAME_PARTIAL_FILES, TR_KEY_rename_partial_files, QMetaType::Bool }, - { RPC_AUTH_REQUIRED, TR_KEY_rpc_authentication_required, QMetaType::Bool }, - { RPC_ENABLED, TR_KEY_rpc_enabled, QMetaType::Bool }, - { RPC_PASSWORD, TR_KEY_rpc_password, QMetaType::QString }, - { RPC_PORT, TR_KEY_rpc_port, QMetaType::Int }, - { RPC_USERNAME, TR_KEY_rpc_username, QMetaType::QString }, - { RPC_WHITELIST_ENABLED, TR_KEY_rpc_whitelist_enabled, QMetaType::Bool }, - { RPC_WHITELIST, TR_KEY_rpc_whitelist, QMetaType::QString }, - { USPEED_ENABLED, TR_KEY_speed_limit_up_enabled, QMetaType::Bool }, - { USPEED, TR_KEY_speed_limit_up, QMetaType::Int }, - { UPLOAD_SLOTS_PER_TORRENT, TR_KEY_upload_slots_per_torrent, QMetaType::Int }, -}; - namespace { [[nodiscard]] constexpr auto prefIsSavable(int pref) diff --git a/qt/Prefs.h b/qt/Prefs.h index c6210f642..74598b2f5 100644 --- a/qt/Prefs.h +++ b/qt/Prefs.h @@ -16,6 +16,8 @@ #include +#include "UserMetaType.h" + class Prefs : public QObject { Q_OBJECT @@ -191,7 +193,105 @@ private: int type; }; - static std::array const Items; + static inline auto constexpr Items = std::array{ { + // gui settings + { OPTIONS_PROMPT, TR_KEY_show_options_window, QMetaType::Bool }, + { OPEN_DIALOG_FOLDER, TR_KEY_open_dialog_dir, QMetaType::QString }, + { INHIBIT_HIBERNATION, TR_KEY_inhibit_desktop_hibernation, QMetaType::Bool }, + { DIR_WATCH, TR_KEY_watch_dir, QMetaType::QString }, + { DIR_WATCH_ENABLED, TR_KEY_watch_dir_enabled, QMetaType::Bool }, + { SHOW_TRAY_ICON, TR_KEY_show_notification_area_icon, QMetaType::Bool }, + { START_MINIMIZED, TR_KEY_start_minimized, QMetaType::Bool }, + { SHOW_NOTIFICATION_ON_ADD, TR_KEY_torrent_added_notification_enabled, QMetaType::Bool }, + { SHOW_NOTIFICATION_ON_COMPLETE, TR_KEY_torrent_complete_notification_enabled, QMetaType::Bool }, + { ASKQUIT, TR_KEY_prompt_before_exit, QMetaType::Bool }, + { SORT_MODE, TR_KEY_sort_mode, UserMetaType::SortModeType }, + { SORT_REVERSED, TR_KEY_sort_reversed, QMetaType::Bool }, + { COMPACT_VIEW, TR_KEY_compact_view, QMetaType::Bool }, + { FILTERBAR, TR_KEY_show_filterbar, QMetaType::Bool }, + { STATUSBAR, TR_KEY_show_statusbar, QMetaType::Bool }, + { STATUSBAR_STATS, TR_KEY_statusbar_stats, QMetaType::QString }, + { SHOW_TRACKER_SCRAPES, TR_KEY_show_tracker_scrapes, QMetaType::Bool }, + { SHOW_BACKUP_TRACKERS, TR_KEY_show_backup_trackers, QMetaType::Bool }, + { TOOLBAR, TR_KEY_show_toolbar, QMetaType::Bool }, + { BLOCKLIST_DATE, TR_KEY_blocklist_date, QMetaType::QDateTime }, + { BLOCKLIST_UPDATES_ENABLED, TR_KEY_blocklist_updates_enabled, QMetaType::Bool }, + { MAIN_WINDOW_LAYOUT_ORDER, TR_KEY_main_window_layout_order, QMetaType::QString }, + { MAIN_WINDOW_HEIGHT, TR_KEY_main_window_height, QMetaType::Int }, + { MAIN_WINDOW_WIDTH, TR_KEY_main_window_width, QMetaType::Int }, + { MAIN_WINDOW_X, TR_KEY_main_window_x, QMetaType::Int }, + { MAIN_WINDOW_Y, TR_KEY_main_window_y, QMetaType::Int }, + { FILTER_MODE, TR_KEY_filter_mode, UserMetaType::ShowModeType }, + { FILTER_TRACKERS, TR_KEY_filter_trackers, QMetaType::QString }, + { FILTER_TEXT, TR_KEY_filter_text, QMetaType::QString }, + { SESSION_IS_REMOTE, TR_KEY_remote_session_enabled, QMetaType::Bool }, + { SESSION_REMOTE_HOST, TR_KEY_remote_session_host, QMetaType::QString }, + { SESSION_REMOTE_HTTPS, TR_KEY_remote_session_https, QMetaType::Bool }, + { SESSION_REMOTE_PASSWORD, TR_KEY_remote_session_password, QMetaType::QString }, + { SESSION_REMOTE_PORT, TR_KEY_remote_session_port, QMetaType::Int }, + { SESSION_REMOTE_AUTH, TR_KEY_remote_session_requires_authentication, QMetaType::Bool }, + { SESSION_REMOTE_USERNAME, TR_KEY_remote_session_username, QMetaType::QString }, + { SESSION_REMOTE_URL_BASE_PATH, TR_KEY_remote_session_url_base_path, QMetaType::QString }, + { COMPLETE_SOUND_COMMAND, TR_KEY_torrent_complete_sound_command, QMetaType::QStringList }, + { COMPLETE_SOUND_ENABLED, TR_KEY_torrent_complete_sound_enabled, QMetaType::Bool }, + { READ_CLIPBOARD, TR_KEY_read_clipboard, QMetaType::Bool }, + + /* libtransmission settings */ + { ALT_SPEED_LIMIT_UP, TR_KEY_alt_speed_up, QMetaType::Int }, + { ALT_SPEED_LIMIT_DOWN, TR_KEY_alt_speed_down, QMetaType::Int }, + { ALT_SPEED_LIMIT_ENABLED, TR_KEY_alt_speed_enabled, QMetaType::Bool }, + { ALT_SPEED_LIMIT_TIME_BEGIN, TR_KEY_alt_speed_time_begin, QMetaType::Int }, + { ALT_SPEED_LIMIT_TIME_END, TR_KEY_alt_speed_time_end, QMetaType::Int }, + { ALT_SPEED_LIMIT_TIME_ENABLED, TR_KEY_alt_speed_time_enabled, QMetaType::Bool }, + { ALT_SPEED_LIMIT_TIME_DAY, TR_KEY_alt_speed_time_day, QMetaType::Int }, + { BLOCKLIST_ENABLED, TR_KEY_blocklist_enabled, QMetaType::Bool }, + { BLOCKLIST_URL, TR_KEY_blocklist_url, QMetaType::QString }, + { DEFAULT_TRACKERS, TR_KEY_default_trackers, QMetaType::QString }, + { DSPEED, TR_KEY_speed_limit_down, QMetaType::Int }, + { DSPEED_ENABLED, TR_KEY_speed_limit_down_enabled, QMetaType::Bool }, + { DOWNLOAD_DIR, TR_KEY_download_dir, QMetaType::QString }, + { DOWNLOAD_QUEUE_ENABLED, TR_KEY_download_queue_enabled, QMetaType::Bool }, + { DOWNLOAD_QUEUE_SIZE, TR_KEY_download_queue_size, QMetaType::Int }, + { ENCRYPTION, TR_KEY_encryption, UserMetaType::EncryptionModeType }, + { IDLE_LIMIT, TR_KEY_idle_seeding_limit, QMetaType::Int }, + { IDLE_LIMIT_ENABLED, TR_KEY_idle_seeding_limit_enabled, QMetaType::Bool }, + { INCOMPLETE_DIR, TR_KEY_incomplete_dir, QMetaType::QString }, + { INCOMPLETE_DIR_ENABLED, TR_KEY_incomplete_dir_enabled, QMetaType::Bool }, + { MSGLEVEL, TR_KEY_message_level, QMetaType::Int }, + { PEER_LIMIT_GLOBAL, TR_KEY_peer_limit_global, QMetaType::Int }, + { PEER_LIMIT_TORRENT, TR_KEY_peer_limit_per_torrent, QMetaType::Int }, + { PEER_PORT, TR_KEY_peer_port, QMetaType::Int }, + { PEER_PORT_RANDOM_ON_START, TR_KEY_peer_port_random_on_start, QMetaType::Bool }, + { PEER_PORT_RANDOM_LOW, TR_KEY_peer_port_random_low, QMetaType::Int }, + { PEER_PORT_RANDOM_HIGH, TR_KEY_peer_port_random_high, QMetaType::Int }, + { QUEUE_STALLED_MINUTES, TR_KEY_queue_stalled_minutes, QMetaType::Int }, + { SCRIPT_TORRENT_DONE_ENABLED, TR_KEY_script_torrent_done_enabled, QMetaType::Bool }, + { SCRIPT_TORRENT_DONE_FILENAME, TR_KEY_script_torrent_done_filename, QMetaType::QString }, + { SCRIPT_TORRENT_DONE_SEEDING_ENABLED, TR_KEY_script_torrent_done_seeding_enabled, QMetaType::Bool }, + { SCRIPT_TORRENT_DONE_SEEDING_FILENAME, TR_KEY_script_torrent_done_seeding_filename, QMetaType::QString }, + { SOCKET_DIFFSERV, TR_KEY_peer_socket_diffserv, QMetaType::QString }, + { START, TR_KEY_start_added_torrents, QMetaType::Bool }, + { TRASH_ORIGINAL, TR_KEY_trash_original_torrent_files, QMetaType::Bool }, + { PEX_ENABLED, TR_KEY_pex_enabled, QMetaType::Bool }, + { DHT_ENABLED, TR_KEY_dht_enabled, QMetaType::Bool }, + { UTP_ENABLED, TR_KEY_utp_enabled, QMetaType::Bool }, + { LPD_ENABLED, TR_KEY_lpd_enabled, QMetaType::Bool }, + { PORT_FORWARDING, TR_KEY_port_forwarding_enabled, QMetaType::Bool }, + { PREALLOCATION, TR_KEY_preallocation, QMetaType::Int }, + { RATIO, TR_KEY_ratio_limit, QMetaType::Double }, + { RATIO_ENABLED, TR_KEY_ratio_limit_enabled, QMetaType::Bool }, + { RENAME_PARTIAL_FILES, TR_KEY_rename_partial_files, QMetaType::Bool }, + { RPC_AUTH_REQUIRED, TR_KEY_rpc_authentication_required, QMetaType::Bool }, + { RPC_ENABLED, TR_KEY_rpc_enabled, QMetaType::Bool }, + { RPC_PASSWORD, TR_KEY_rpc_password, QMetaType::QString }, + { RPC_PORT, TR_KEY_rpc_port, QMetaType::Int }, + { RPC_USERNAME, TR_KEY_rpc_username, QMetaType::QString }, + { RPC_WHITELIST_ENABLED, TR_KEY_rpc_whitelist_enabled, QMetaType::Bool }, + { RPC_WHITELIST, TR_KEY_rpc_whitelist, QMetaType::QString }, + { USPEED_ENABLED, TR_KEY_speed_limit_up_enabled, QMetaType::Bool }, + { USPEED, TR_KEY_speed_limit_up, QMetaType::Int }, + { UPLOAD_SLOTS_PER_TORRENT, TR_KEY_upload_slots_per_torrent, QMetaType::Int }, + } }; [[nodiscard]] static tr_variant::Map defaults(); diff --git a/qt/PrefsDialog.cc b/qt/PrefsDialog.cc index eb4df9682..a162c67f1 100644 --- a/qt/PrefsDialog.cc +++ b/qt/PrefsDialog.cc @@ -27,11 +27,11 @@ #include #include "ColumnResizer.h" -#include "CustomVariantType.h" #include "Formatter.h" #include "FreeSpaceLabel.h" #include "Prefs.h" #include "Session.h" +#include "UserMetaType.h" #include "Utils.h" using namespace libtransmission; diff --git a/qt/Session.cc b/qt/Session.cc index 0cd54d497..ba9e54051 100644 --- a/qt/Session.cc +++ b/qt/Session.cc @@ -35,12 +35,12 @@ #include "Session.h" #include "AddData.h" -#include "CustomVariantType.h" #include "Filters.h" #include "Prefs.h" #include "RpcQueue.h" #include "SessionDialog.h" #include "Torrent.h" +#include "UserMetaType.h" #include "VariantHelpers.h" using namespace std::literals; @@ -82,7 +82,7 @@ void Session::sessionSet(tr_quark const key, QVariant const& value) dictAdd(&args, key, value.toString()); break; - case CustomVariantType::EncryptionModeType: + case UserMetaType::EncryptionModeType: *tr_variantDictAdd(&args, key) = to_variant(value.value()); break; @@ -923,7 +923,7 @@ void Session::updateInfo(tr_variant* args_dict) break; - case CustomVariantType::EncryptionModeType: + case UserMetaType::EncryptionModeType: if (auto const val = to_value(*b)) { prefs_.set(i, *val); diff --git a/qt/UserMetaType.h b/qt/UserMetaType.h new file mode 100644 index 000000000..e30507692 --- /dev/null +++ b/qt/UserMetaType.h @@ -0,0 +1,34 @@ +// This file Copyright © Mnemosyne LLC. +// It may be used under GPLv2 (SPDX: GPL-2.0-only), GPLv3 (SPDX: GPL-3.0-only), +// or any future license endorsed by Mnemosyne LLC. +// License text can be found in the licenses/ folder. + +#pragma once + +#include + +#include + +#include + +class UserMetaType +{ +public: + enum + { + ShowModeType = QMetaType::User, + SortModeType, + EncryptionModeType, + }; +}; + +Q_DECLARE_METATYPE(tr_encryption_mode) + +using ShowMode = transmission::app::ShowMode; +Q_DECLARE_METATYPE(ShowMode) +inline auto constexpr DefaultShowMode = transmission::app::DefaultShowMode; +inline auto constexpr ShowModeCount = transmission::app::ShowModeCount; + +using SortMode = transmission::app::SortMode; +Q_DECLARE_METATYPE(SortMode) +inline auto constexpr DefaultSortMode = transmission::app::DefaultSortMode; diff --git a/tests/qt/prefs-test.cc b/tests/qt/prefs-test.cc index 5b4268f33..4126ce155 100644 --- a/tests/qt/prefs-test.cc +++ b/tests/qt/prefs-test.cc @@ -18,8 +18,6 @@ #include #include -#include "CustomVariantType.h" -#include "Filters.h" #include "Prefs.h" #include "TrQtInit.h"