Files
transmission/gtk/Prefs.h
Charles Kerr 90402fd97b refactor: move StatsMode to tr::app (#8330)
* refactor: add StatsMode to libtransmission-app

* test: add display-mode unit tests

* feat: add apicompat for StatsMode

* refactor: use StatsMode in Qt client

* refactor: add template method for gtr_set_pref()

* refactor: use StatsMode in GTK client

* ci: use the all-tests alias instead of hardcoding tests

* ci: copy runtime DLLS into test output directory for Windows test binaries
2026-02-03 09:52:49 -06:00

54 lines
1.5 KiB
C++

// This file Copyright © Transmission authors and contributors.
// It may be used under the MIT (SPDX: MIT) license.
// License text can be found in the licenses/ folder.
#pragma once
#include <libtransmission/transmission.h> /* tr_variant, tr_session */
#include <libtransmission/quark.h>
#include <libtransmission/serializer.h>
#include <libtransmission/variant.h>
#include <cstdint> // int64_t
#include <string>
#include <string_view>
#include <vector>
[[nodiscard]] tr_variant::Map& gtr_pref_get_map();
template<typename T>
[[nodiscard]] std::optional<T> gtr_pref_get(tr_quark const key)
{
using namespace tr::serializer;
auto const& map = gtr_pref_get_map();
auto const iter = map.find(key);
return iter != std::end(map) ? to_value<T>(iter->second) : std::nullopt;
}
template<typename T>
void gtr_pref_set(tr_quark const key, T const& val)
{
using namespace tr::serializer;
auto& map = gtr_pref_get_map();
map.insert_or_assign(key, to_variant(val));
}
void gtr_pref_init(std::string_view config_dir);
int64_t gtr_pref_int_get(tr_quark key);
void gtr_pref_int_set(tr_quark key, int64_t value);
double gtr_pref_double_get(tr_quark key);
void gtr_pref_double_set(tr_quark key, double value);
bool gtr_pref_flag_get(tr_quark key);
void gtr_pref_flag_set(tr_quark key, bool value);
std::vector<std::string> gtr_pref_strv_get(tr_quark key);
std::string gtr_pref_string_get(tr_quark key);
void gtr_pref_string_set(tr_quark key, std::string_view value);
void gtr_pref_save(tr_session* /*session*/);
tr_variant& gtr_pref_get_all();