Add hover text wrap to settings

This commit is contained in:
Dan Paulat 2023-08-31 21:26:57 -05:00
parent fc6cdc729b
commit f9e69d15e4
10 changed files with 218 additions and 10 deletions

View file

@ -0,0 +1,56 @@
#include <scwx/qt/settings/text_settings.hpp>
namespace scwx
{
namespace qt
{
namespace settings
{
static const std::string logPrefix_ = "scwx::qt::settings::text_settings";
class TextSettings::Impl
{
public:
explicit Impl()
{
hoverTextWrap_.SetDefault(80);
hoverTextWrap_.SetMinimum(0);
hoverTextWrap_.SetMaximum(999);
}
~Impl() {}
SettingsVariable<std::int64_t> hoverTextWrap_ {"hover_text_wrap"};
};
TextSettings::TextSettings() :
SettingsCategory("text"), p(std::make_unique<Impl>())
{
RegisterVariables({&p->hoverTextWrap_});
SetDefaults();
}
TextSettings::~TextSettings() = default;
TextSettings::TextSettings(TextSettings&&) noexcept = default;
TextSettings& TextSettings::operator=(TextSettings&&) noexcept = default;
SettingsVariable<std::int64_t>& TextSettings::hover_text_wrap() const
{
return p->hoverTextWrap_;
}
TextSettings& TextSettings::Instance()
{
static TextSettings TextSettings_;
return TextSettings_;
}
bool operator==(const TextSettings& lhs, const TextSettings& rhs)
{
return (lhs.p->hoverTextWrap_ == rhs.p->hoverTextWrap_);
}
} // namespace settings
} // namespace qt
} // namespace scwx

View file

@ -0,0 +1,42 @@
#pragma once
#include <scwx/qt/settings/settings_category.hpp>
#include <scwx/qt/settings/settings_variable.hpp>
#include <memory>
#include <string>
namespace scwx
{
namespace qt
{
namespace settings
{
class TextSettings : public SettingsCategory
{
public:
explicit TextSettings();
~TextSettings();
TextSettings(const TextSettings&) = delete;
TextSettings& operator=(const TextSettings&) = delete;
TextSettings(TextSettings&&) noexcept;
TextSettings& operator=(TextSettings&&) noexcept;
SettingsVariable<std::int64_t>& hover_text_wrap() const;
static TextSettings& Instance();
friend bool operator==(const TextSettings& lhs, const TextSettings& rhs);
private:
class Impl;
std::unique_ptr<Impl> p;
};
} // namespace settings
} // namespace qt
} // namespace scwx