mirror of
https://github.com/transmission/transmission.git
synced 2026-02-14 23:19:34 +00:00
refactor: move display types to UserMetaType.h (#8116)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 <libtransmission/transmission.h>
|
||||
|
||||
#include <QVariant>
|
||||
|
||||
class CustomVariantType
|
||||
{
|
||||
public:
|
||||
enum
|
||||
{
|
||||
TrackerStatsList = QMetaType::User,
|
||||
PeerList,
|
||||
FileList,
|
||||
ShowModeType,
|
||||
SortModeType,
|
||||
EncryptionModeType,
|
||||
};
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(tr_encryption_mode)
|
||||
11
qt/Filters.h
11
qt/Filters.h
@@ -5,20 +5,11 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <libtransmission-app/display-modes.h>
|
||||
|
||||
#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;
|
||||
|
||||
114
qt/Prefs.cc
114
qt/Prefs.cc
@@ -18,9 +18,9 @@
|
||||
#include <libtransmission/serializer.h>
|
||||
#include <libtransmission/variant.h>
|
||||
|
||||
#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<typename T>
|
||||
case QMetaType::Int:
|
||||
return qvarFromOptional(ser::to_value<int64_t>(var));
|
||||
|
||||
case CustomVariantType::EncryptionModeType:
|
||||
case UserMetaType::EncryptionModeType:
|
||||
return qvarFromOptional(ser::to_value<tr_encryption_mode>(var));
|
||||
|
||||
case CustomVariantType::SortModeType:
|
||||
case UserMetaType::SortModeType:
|
||||
return qvarFromOptional(ser::to_value<SortMode>(var));
|
||||
|
||||
case CustomVariantType::ShowModeType:
|
||||
case UserMetaType::ShowModeType:
|
||||
return qvarFromOptional(ser::to_value<ShowMode>(var));
|
||||
|
||||
case QMetaType::QString:
|
||||
@@ -80,13 +80,13 @@ template<typename T>
|
||||
case QMetaType::Int:
|
||||
return ser::to_variant(var.value<int>());
|
||||
|
||||
case CustomVariantType::EncryptionModeType:
|
||||
case UserMetaType::EncryptionModeType:
|
||||
return ser::to_variant(var.value<tr_encryption_mode>());
|
||||
|
||||
case CustomVariantType::SortModeType:
|
||||
case UserMetaType::SortModeType:
|
||||
return ser::to_variant(var.value<SortMode>());
|
||||
|
||||
case CustomVariantType::ShowModeType:
|
||||
case UserMetaType::ShowModeType:
|
||||
return ser::to_variant(var.value<ShowMode>());
|
||||
|
||||
case QMetaType::QString:
|
||||
@@ -125,106 +125,6 @@ void ensureSoundCommandIsAList(tr_variant::Map& map)
|
||||
}
|
||||
} // namespace
|
||||
|
||||
std::array<Prefs::PrefItem, Prefs::PREFS_COUNT> 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)
|
||||
|
||||
102
qt/Prefs.h
102
qt/Prefs.h
@@ -16,6 +16,8 @@
|
||||
|
||||
#include <libtransmission-app/display-modes.h>
|
||||
|
||||
#include "UserMetaType.h"
|
||||
|
||||
class Prefs : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -191,7 +193,105 @@ private:
|
||||
int type;
|
||||
};
|
||||
|
||||
static std::array<PrefItem, PREFS_COUNT> const Items;
|
||||
static inline auto constexpr Items = std::array<PrefItem, PREFS_COUNT>{ {
|
||||
// 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();
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#include <libtransmission/transmission.h>
|
||||
|
||||
#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;
|
||||
|
||||
@@ -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<tr_encryption_mode>());
|
||||
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<tr_encryption_mode>(*b))
|
||||
{
|
||||
prefs_.set(i, *val);
|
||||
|
||||
34
qt/UserMetaType.h
Normal file
34
qt/UserMetaType.h
Normal file
@@ -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 <libtransmission/transmission.h>
|
||||
|
||||
#include <libtransmission-app/display-modes.h>
|
||||
|
||||
#include <QMetaType>
|
||||
|
||||
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;
|
||||
@@ -18,8 +18,6 @@
|
||||
#include <libtransmission/utils.h>
|
||||
#include <libtransmission/variant.h>
|
||||
|
||||
#include "CustomVariantType.h"
|
||||
#include "Filters.h"
|
||||
#include "Prefs.h"
|
||||
#include "TrQtInit.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user