Moving preferences to dependency mananger

This commit is contained in:
Brad Davis 2016-01-21 19:44:27 -08:00
parent 205ab05506
commit 2026821d9e
7 changed files with 76 additions and 67 deletions

View file

@ -42,7 +42,6 @@ Window {
}
Component.onCompleted: {
Preferences.loadAll();
var categories = Preferences.categories;
for (var i = 0; i < categories.length; ++i) {
var category = categories[i];

View file

@ -6,4 +6,5 @@ Item {
anchors { left: parent.left; right: parent.right }
property var preference;
property string label: preference ? preference.name : "";
Component.onCompleted: preference.load();
}

View file

@ -49,6 +49,7 @@ Preference {
font.pointSize: 16
color: "#0e7077"
text: root.name
MouseArea { anchors.fill: parent; onClicked: root.toggleExpanded() }
}
Column {

View file

@ -117,6 +117,7 @@
#include <recording/Deck.h>
#include <recording/Recorder.h>
#include <QmlWebWindowClass.h>
#include <Preferences.h>
#include "AnimDebugDraw.h"
#include "AudioClient.h"
@ -324,6 +325,7 @@ bool setupEssentials(int& argc, char** argv) {
// Set dependencies
DependencyManager::set<ScriptEngines>();
DependencyManager::set<Preferences>();
DependencyManager::set<recording::Deck>();
DependencyManager::set<recording::Recorder>();
DependencyManager::set<AddressManager>();
@ -1182,6 +1184,7 @@ void Application::initializeUi() {
LoginDialog::registerType();
Tooltip::registerType();
UpdateDialog::registerType();
qmlRegisterType<Preference>("Hifi", 1, 0, "Preference");
auto offscreenUi = DependencyManager::get<OffscreenUi>();
offscreenUi->create(_offscreenContext->getContext());
@ -1213,6 +1216,7 @@ void Application::initializeUi() {
rootContext->setContextProperty("MyAvatar", getMyAvatar());
rootContext->setContextProperty("Messages", DependencyManager::get<MessagesClient>().data());
rootContext->setContextProperty("Recording", DependencyManager::get<RecordingScriptingInterface>().data());
rootContext->setContextProperty("Preferences", DependencyManager::get<Preferences>().data());
rootContext->setContextProperty("TREE_SCALE", TREE_SCALE);
rootContext->setContextProperty("Quat", new Quat());

View file

@ -34,16 +34,15 @@
#include "scripting/WebWindowClass.h"
void setupPreferences() {
MyAvatar* myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
qmlRegisterType<Preference>("Hifi", 1, 0, "Preference");
Preferences* preferences = new Preferences();
auto preferences = DependencyManager::get<Preferences>();
MyAvatar* myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
static const QString AVATAR_BASICS { "Avatar Basics" };
{
auto getter = [=]()->QString {return myAvatar->getDisplayName(); };
auto setter = [=](const QString& value) { myAvatar->setDisplayName(value); };
const QString label = "Avatar display name <font color=\"#909090\">(optional)</font>";
auto preference = new EditPreference(AVATAR_BASICS, label, getter, setter, preferences);
auto preference = new EditPreference(AVATAR_BASICS, label, getter, setter);
preference->setPlaceholderText("Not showing a name");
preferences->addPreference(preference);
}
@ -52,7 +51,7 @@ void setupPreferences() {
auto getter = [=]()->QString {return myAvatar->getCollisionSoundURL(); };
auto setter = [=](const QString& value) { myAvatar->setCollisionSoundURL(value); };
const QString label = "Avatar collision sound URL <font color=\"#909090\">(optional)</font>";
auto preference = new EditPreference(AVATAR_BASICS, label, getter, setter, preferences);
auto preference = new EditPreference(AVATAR_BASICS, label, getter, setter);
preference->setPlaceholderText("Enter the URL of a sound to play when you bump into something");
preferences->addPreference(preference);
}
@ -60,14 +59,14 @@ void setupPreferences() {
{
auto getter = [=]()->QString { return myAvatar->getFullAvatarURLFromPreferences().toString(); };
auto setter = [=](const QString& value) { /* FIXME */ };
auto preference = new BrowsePreference(AVATAR_BASICS, "Appearance: ", getter, setter, preferences);
auto preference = new BrowsePreference(AVATAR_BASICS, "Appearance: ", getter, setter);
preferences->addPreference(preference);
}
{
auto getter = []()->QString { return Snapshot::snapshotsLocation.get(); };
auto setter = [](const QString& value) { Snapshot::snapshotsLocation.set(value); };
auto preference = new BrowsePreference("Snapshots", "Place my Snapshots here:", getter, setter, preferences);
auto preference = new BrowsePreference("Snapshots", "Place my Snapshots here:", getter, setter);
preferences->addPreference(preference);
}
@ -75,29 +74,29 @@ void setupPreferences() {
{
auto getter = []()->QString { return DependencyManager::get<ScriptEngines>()->getScriptsLocation(); };
auto setter = [](const QString& value) { DependencyManager::get<ScriptEngines>()->setScriptsLocation(value); };
preferences->addPreference(new BrowsePreference("Scripts", "Load scripts from this directory:", getter, setter, preferences));
preferences->addPreference(new BrowsePreference("Scripts", "Load scripts from this directory:", getter, setter));
}
preferences->addPreference(new ButtonPreference("Scripts", "Load Default Scripts", preferences));
preferences->addPreference(new ButtonPreference("Scripts", "Load Default Scripts"));
{
auto getter = []()->bool {return !Menu::getInstance()->isOptionChecked(MenuOption::DisableActivityLogger); };
auto setter = [](bool value) { Menu::getInstance()->setIsOptionChecked(MenuOption::DisableActivityLogger, !value); };
preferences->addPreference(new CheckPreference("Privacy", "Send Data", getter, setter, preferences));
preferences->addPreference(new CheckPreference("Privacy", "Send Data", getter, setter));
}
static const QString LOD_TUNING("Level of Detail Tuning");
{
auto getter = []()->bool { return DependencyManager::get<LODManager>()->getUseAcuity(); };
auto setter = [](bool value) { DependencyManager::get<LODManager>()->setUseAcuity(value); };
preferences->addPreference(new CheckPreference(LOD_TUNING, "Render based on visual acuity", getter, setter, preferences));
preferences->addPreference(new CheckPreference(LOD_TUNING, "Render based on visual acuity", getter, setter));
}
{
auto getter = []()->float { return DependencyManager::get<LODManager>()->getDesktopLODDecreaseFPS(); };
auto setter = [](float value) { DependencyManager::get<LODManager>()->setDesktopLODDecreaseFPS(value); };
auto preference = new SpinnerPreference(LOD_TUNING, "Minimum Desktop FPS", getter, setter, preferences);
auto preference = new SpinnerPreference(LOD_TUNING, "Minimum Desktop FPS", getter, setter);
preference->setMin(0);
preference->setMax(120);
preference->setStep(1);
@ -107,7 +106,7 @@ void setupPreferences() {
{
auto getter = []()->float { return DependencyManager::get<LODManager>()->getHMDLODDecreaseFPS(); };
auto setter = [](float value) { DependencyManager::get<LODManager>()->setHMDLODDecreaseFPS(value); };
auto preference = new SpinnerPreference(LOD_TUNING, "Minimum HMD FPS", getter, setter, preferences);
auto preference = new SpinnerPreference(LOD_TUNING, "Minimum HMD FPS", getter, setter);
preference->setMin(0);
preference->setMax(120);
preference->setStep(1);
@ -117,7 +116,7 @@ void setupPreferences() {
{
auto getter = []()->float { return 1.0f / DependencyManager::get<LODManager>()->getRenderDistanceInverseHighLimit(); };
auto setter = [](float value) { DependencyManager::get<LODManager>()->setRenderDistanceInverseHighLimit(1.0f / value); };
auto preference = new SpinnerPreference(LOD_TUNING, "Minimum Display Distance", getter, setter, preferences);
auto preference = new SpinnerPreference(LOD_TUNING, "Minimum Display Distance", getter, setter);
preference->setMin(5);
preference->setMax(32768);
preference->setStep(1);
@ -128,7 +127,7 @@ void setupPreferences() {
{
auto getter = [=]()->float { return myAvatar->getRealWorldFieldOfView(); };
auto setter = [=](float value) { myAvatar->setRealWorldFieldOfView(value); };
auto preference = new SpinnerPreference(AVATAR_TUNING, "Real world vertical field of view (angular size of monitor)", getter, setter, preferences);
auto preference = new SpinnerPreference(AVATAR_TUNING, "Real world vertical field of view (angular size of monitor)", getter, setter);
preference->setMin(1);
preference->setMax(180);
preferences->addPreference(preference);
@ -136,7 +135,7 @@ void setupPreferences() {
{
auto getter = []()->float { return qApp->getFieldOfView(); };
auto setter = [](float value) { qApp->setFieldOfView(value); };
auto preference = new SpinnerPreference(AVATAR_TUNING, "Vertical field of view", getter, setter, preferences);
auto preference = new SpinnerPreference(AVATAR_TUNING, "Vertical field of view", getter, setter);
preference->setMin(1);
preference->setMax(180);
preference->setStep(1);
@ -145,7 +144,7 @@ void setupPreferences() {
{
auto getter = [=]()->float { return myAvatar->getLeanScale(); };
auto setter = [=](float value) { myAvatar->setLeanScale(value); };
auto preference = new SpinnerPreference(AVATAR_TUNING, "Lean scale (applies to Faceshift users)", getter, setter, preferences);
auto preference = new SpinnerPreference(AVATAR_TUNING, "Lean scale (applies to Faceshift users)", getter, setter);
preference->setMin(0);
preference->setMax(99.9f);
preference->setDecimals(2);
@ -155,7 +154,7 @@ void setupPreferences() {
{
auto getter = [=]()->float { return myAvatar->getUniformScale(); };
auto setter = [=](float value) { myAvatar->setTargetScaleVerbose(value); }; // The hell?
auto preference = new SpinnerPreference(AVATAR_TUNING, "Avatar scale <font color=\"#909090\">(default is 1.0)</font>", getter, setter, preferences);
auto preference = new SpinnerPreference(AVATAR_TUNING, "Avatar scale <font color=\"#909090\">(default is 1.0)</font>", getter, setter);
preference->setMin(0.01f);
preference->setMax(99.9f);
preference->setDecimals(2);
@ -165,29 +164,29 @@ void setupPreferences() {
{
auto getter = [=]()->float { return myAvatar->getHead()->getPupilDilation(); };
auto setter = [=](float value) { myAvatar->getHead()->setPupilDilation(value); };
preferences->addPreference(new SliderPreference(AVATAR_TUNING, "Pupil dilation", getter, setter, preferences));
preferences->addPreference(new SliderPreference(AVATAR_TUNING, "Pupil dilation", getter, setter));
}
{
auto getter = []()->float { return DependencyManager::get<DdeFaceTracker>()->getEyeClosingThreshold(); };
auto setter = [](float value) { DependencyManager::get<DdeFaceTracker>()->setEyeClosingThreshold(value); };
preferences->addPreference(new SliderPreference(AVATAR_TUNING, "Camera binary eyelid threshold", getter, setter, preferences));
preferences->addPreference(new SliderPreference(AVATAR_TUNING, "Camera binary eyelid threshold", getter, setter));
}
{
auto getter = []()->float { return FaceTracker::getEyeDeflection(); };
auto setter = [](float value) { FaceTracker::setEyeDeflection(value); };
preferences->addPreference(new SliderPreference(AVATAR_TUNING, "Face tracker eye deflection", getter, setter, preferences));
preferences->addPreference(new SliderPreference(AVATAR_TUNING, "Face tracker eye deflection", getter, setter));
}
{
auto getter = []()->QString { return DependencyManager::get<Faceshift>()->getHostname(); };
auto setter = [](const QString& value) { DependencyManager::get<Faceshift>()->setHostname(value); };
auto preference = new EditPreference(AVATAR_TUNING, "Faceshift hostname", getter, setter, preferences);
auto preference = new EditPreference(AVATAR_TUNING, "Faceshift hostname", getter, setter);
preference->setPlaceholderText("localhost");
preferences->addPreference(preference);
}
{
auto getter = [=]()->QString { return myAvatar->getAnimGraphUrl().toString(); };
auto setter = [=](const QString& value) { myAvatar->setAnimGraphUrl(value); };
auto preference = new EditPreference(AVATAR_TUNING, "Avatar Animation JSON", getter, setter, preferences);
auto preference = new EditPreference(AVATAR_TUNING, "Avatar Animation JSON", getter, setter);
preference->setPlaceholderText("default");
preferences->addPreference(preference);
}
@ -196,13 +195,13 @@ void setupPreferences() {
{
auto getter = []()->bool {return DependencyManager::get<AudioClient>()->getReceivedAudioStream().getDynamicJitterBuffers(); };
auto setter = [](bool value) { DependencyManager::get<AudioClient>()->getReceivedAudioStream().setDynamicJitterBuffers(value); };
preferences->addPreference(new CheckPreference(AUDIO, "Enable Dynamic Jitter Buffers", getter, setter, preferences));
preferences->addPreference(new CheckPreference(AUDIO, "Enable Dynamic Jitter Buffers", getter, setter));
}
{
auto getter = []()->float { return DependencyManager::get<AudioClient>()->getReceivedAudioStream().getDesiredJitterBufferFrames(); };
auto setter = [](float value) { DependencyManager::get<AudioClient>()->getReceivedAudioStream().setStaticDesiredJitterBufferFrames(value); };
auto preference = new SpinnerPreference(AUDIO, "Static Jitter Buffer Frames", getter, setter, preferences);
auto preference = new SpinnerPreference(AUDIO, "Static Jitter Buffer Frames", getter, setter);
preference->setMin(0);
preference->setMax(10000);
preference->setStep(1);
@ -211,7 +210,7 @@ void setupPreferences() {
{
auto getter = []()->float { return DependencyManager::get<AudioClient>()->getReceivedAudioStream().getMaxFramesOverDesired(); };
auto setter = [](float value) { DependencyManager::get<AudioClient>()->getReceivedAudioStream().setMaxFramesOverDesired(value); };
auto preference = new SpinnerPreference(AUDIO, "Max Frames Over Desired", getter, setter, preferences);
auto preference = new SpinnerPreference(AUDIO, "Max Frames Over Desired", getter, setter);
preference->setMax(10000);
preference->setStep(1);
preferences->addPreference(preference);
@ -219,12 +218,12 @@ void setupPreferences() {
{
auto getter = []()->bool {return DependencyManager::get<AudioClient>()->getReceivedAudioStream().getUseStDevForJitterCalc(); };
auto setter = [](bool value) { DependencyManager::get<AudioClient>()->getReceivedAudioStream().setUseStDevForJitterCalc(value); };
preferences->addPreference(new CheckPreference(AUDIO, "Use Stddev for Dynamic Jitter Calc", getter, setter, preferences));
preferences->addPreference(new CheckPreference(AUDIO, "Use Stddev for Dynamic Jitter Calc", getter, setter));
}
{
auto getter = []()->float { return DependencyManager::get<AudioClient>()->getReceivedAudioStream().getWindowStarveThreshold(); };
auto setter = [](float value) { DependencyManager::get<AudioClient>()->getReceivedAudioStream().setWindowStarveThreshold(value); };
auto preference = new SpinnerPreference(AUDIO, "Window A Starve Threshold", getter, setter, preferences);
auto preference = new SpinnerPreference(AUDIO, "Window A Starve Threshold", getter, setter);
preference->setMax(10000);
preference->setStep(1);
preferences->addPreference(preference);
@ -232,7 +231,7 @@ void setupPreferences() {
{
auto getter = []()->float { return DependencyManager::get<AudioClient>()->getReceivedAudioStream().getWindowSecondsForDesiredCalcOnTooManyStarves(); };
auto setter = [](float value) { DependencyManager::get<AudioClient>()->getReceivedAudioStream().setWindowSecondsForDesiredCalcOnTooManyStarves(value); };
auto preference = new SpinnerPreference(AUDIO, "Window A (raise desired on N starves) Seconds)", getter, setter, preferences);
auto preference = new SpinnerPreference(AUDIO, "Window A (raise desired on N starves) Seconds)", getter, setter);
preference->setMax(10000);
preference->setStep(1);
preferences->addPreference(preference);
@ -240,7 +239,7 @@ void setupPreferences() {
{
auto getter = []()->float { return DependencyManager::get<AudioClient>()->getReceivedAudioStream().getWindowSecondsForDesiredReduction(); };
auto setter = [](float value) { DependencyManager::get<AudioClient>()->getReceivedAudioStream().setWindowSecondsForDesiredReduction(value); };
auto preference = new SpinnerPreference(AUDIO, "Window B (desired ceiling) Seconds", getter, setter, preferences);
auto preference = new SpinnerPreference(AUDIO, "Window B (desired ceiling) Seconds", getter, setter);
preference->setMax(10000);
preference->setStep(1);
preferences->addPreference(preference);
@ -248,12 +247,12 @@ void setupPreferences() {
{
auto getter = []()->bool {return DependencyManager::get<AudioClient>()->getReceivedAudioStream().getRepetitionWithFade(); };
auto setter = [](bool value) { DependencyManager::get<AudioClient>()->getReceivedAudioStream().setRepetitionWithFade(value); };
preferences->addPreference(new CheckPreference(AUDIO, "Repetition with Fade", getter, setter, preferences));
preferences->addPreference(new CheckPreference(AUDIO, "Repetition with Fade", getter, setter));
}
{
auto getter = []()->float { return DependencyManager::get<AudioClient>()->getOutputBufferSize(); };
auto setter = [](float value) { DependencyManager::get<AudioClient>()->setOutputBufferSize(value); };
auto preference = new SpinnerPreference(AUDIO, "Output Buffer Size (frames)", getter, setter, preferences);
auto preference = new SpinnerPreference(AUDIO, "Output Buffer Size (frames)", getter, setter);
preference->setMin(1);
preference->setMax(20);
preference->setStep(1);
@ -262,13 +261,13 @@ void setupPreferences() {
{
auto getter = []()->bool {return DependencyManager::get<AudioClient>()->getOutputStarveDetectionEnabled(); };
auto setter = [](bool value) { DependencyManager::get<AudioClient>()->setOutputStarveDetectionEnabled(value); };
auto preference = new CheckPreference(AUDIO, "Output Starve Detection (Automatic Buffer Size Increase)", getter, setter, preferences);
auto preference = new CheckPreference(AUDIO, "Output Starve Detection (Automatic Buffer Size Increase)", getter, setter);
preferences->addPreference(preference);
}
{
auto getter = []()->float { return DependencyManager::get<AudioClient>()->getOutputStarveDetectionThreshold(); };
auto setter = [](float value) { DependencyManager::get<AudioClient>()->setOutputStarveDetectionThreshold(value); };
auto preference = new SpinnerPreference(AUDIO, "Output Starve Detection Threshold", getter, setter, preferences);
auto preference = new SpinnerPreference(AUDIO, "Output Starve Detection Threshold", getter, setter);
preference->setMin(1);
preference->setMax(500);
preference->setStep(1);
@ -277,9 +276,9 @@ void setupPreferences() {
{
auto getter = []()->float { return DependencyManager::get<AudioClient>()->getOutputStarveDetectionPeriod(); };
auto setter = [](float value) { DependencyManager::get<AudioClient>()->setOutputStarveDetectionPeriod(value); };
auto preference = new SpinnerPreference(AUDIO, "Output Starve Detection Period (ms)", getter, setter, preferences);
auto preference = new SpinnerPreference(AUDIO, "Output Starve Detection Period (ms)", getter, setter);
preference->setMin(1);
preference->setMax(999999999);
preference->setMax((float)999999999);
preference->setStep(1);
preferences->addPreference(preference);
}
@ -287,7 +286,7 @@ void setupPreferences() {
{
auto getter = []()->float { return qApp->getMaxOctreePacketsPerSecond(); };
auto setter = [](float value) { qApp->setMaxOctreePacketsPerSecond(value); };
auto preference = new SpinnerPreference("Octree", "Max packets sent each second", getter, setter, preferences);
auto preference = new SpinnerPreference("Octree", "Max packets sent each second", getter, setter);
preference->setMin(60);
preference->setMax(6000);
preference->setStep(10);
@ -298,7 +297,7 @@ void setupPreferences() {
{
auto getter = []()->float { return qApp->getApplicationCompositor().getHmdUIAngularSize(); };
auto setter = [](float value) { qApp->getApplicationCompositor().setHmdUIAngularSize(value); };
auto preference = new SpinnerPreference("HMD", "User Interface Horizontal Angular Size (degrees)", getter, setter, preferences);
auto preference = new SpinnerPreference("HMD", "User Interface Horizontal Angular Size (degrees)", getter, setter);
preference->setMin(30);
preference->setMax(160);
preference->setStep(1);
@ -309,14 +308,12 @@ void setupPreferences() {
{
auto getter = []()->float { return controller::InputDevice::getReticleMoveSpeed(); };
auto setter = [](float value) { controller::InputDevice::setReticleMoveSpeed(value); };
auto preference = new SpinnerPreference("Sixense Controllers", "Reticle Movement Speed", getter, setter, preferences);
auto preference = new SpinnerPreference("Sixense Controllers", "Reticle Movement Speed", getter, setter);
preference->setMin(0);
preference->setMax(100);
preference->setStep(1);
preferences->addPreference(preference);
}
DependencyManager::get<OffscreenUi>()->getRootContext()->setContextProperty("Preferences", preferences);
}
const int PREFERENCES_HEIGHT_PADDING = 20;

View file

@ -10,15 +10,20 @@
void Preferences::addPreference(Preference* preference) {
preference->setParent(this);
const QString& category = preference->getCategory();
// Use this structure to maintain the order of the categories
if (!_categories.contains(category)) {
_categories.append(category);
}
QVariantList categoryPreferences;
// FIXME is there an easier way to do this with less copying?
if (_preferencesByCategory.contains(category)) {
categoryPreferences = qvariant_cast<QVariantList>(_preferencesByCategory[category]);
} else {
// Use this property to maintain the order of the categories
_categories.append(category);
}
}
categoryPreferences.append(QVariant::fromValue(preference));
_preferencesByCategory[category] = categoryPreferences;
}

View file

@ -16,9 +16,11 @@
#include <QtCore/QList>
#include <QtCore/QString>
#include "DependencyManager.h"
class Preference;
class Preferences : public QObject {
class Preferences : public QObject, public Dependency {
Q_OBJECT
Q_PROPERTY(QVariantMap preferencesByCategory READ getPreferencesByCategory CONSTANT)
Q_PROPERTY(QList<QString> categories READ getCategories CONSTANT)
@ -88,8 +90,8 @@ protected:
class ButtonPreference : public Preference {
Q_OBJECT
public:
ButtonPreference(const QString& category, const QString& name, Preferences* parent = nullptr)
: Preference(category, name, parent) { }
ButtonPreference(const QString& category, const QString& name)
: Preference(category, name) { }
Type getType() { return Button; }
};
@ -101,8 +103,8 @@ public:
using Getter = std::function<T()>;
using Setter = std::function<void(const T&)>;
TypedPreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: Preference(category, name, parent), _getter(getter), _setter(setter) { }
TypedPreference(const QString& category, const QString& name, Getter getter, Setter setter)
: Preference(category, name), _getter(getter), _setter(setter) { }
T getValue() const { return _getter(); }
void setValue(const T& value) { if (_value != value) { _value = value; emitValueChanged(); } }
@ -125,8 +127,8 @@ class BoolPreference : public TypedPreference<bool> {
Q_PROPERTY(bool value READ getValue WRITE setValue NOTIFY valueChanged)
public:
BoolPreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: TypedPreference(category, name, getter, setter, parent) { }
BoolPreference(const QString& category, const QString& name, Getter getter, Setter setter)
: TypedPreference(category, name, getter, setter) { }
signals:
void valueChanged();
@ -144,8 +146,8 @@ class FloatPreference : public TypedPreference<float> {
Q_PROPERTY(float decimals READ getDecimals CONSTANT)
public:
FloatPreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: TypedPreference(category, name, getter, setter, parent) { }
FloatPreference(const QString& category, const QString& name, Getter getter, Setter setter)
: TypedPreference(category, name, getter, setter) { }
float getMin() const { return _min; }
void setMin(float min) { _min = min; };
@ -176,8 +178,8 @@ class StringPreference : public TypedPreference<QString> {
Q_PROPERTY(QString value READ getValue WRITE setValue NOTIFY valueChanged)
public:
StringPreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: TypedPreference(category, name, getter, setter, parent) { }
StringPreference(const QString& category, const QString& name, Getter getter, Setter setter)
: TypedPreference(category, name, getter, setter) { }
signals:
void valueChanged();
@ -189,8 +191,8 @@ protected:
class SliderPreference : public FloatPreference {
Q_OBJECT
public:
SliderPreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: FloatPreference(category, name, getter, setter, parent) { }
SliderPreference(const QString& category, const QString& name, Getter getter, Setter setter)
: FloatPreference(category, name, getter, setter) { }
Type getType() { return Slider; }
};
@ -198,8 +200,8 @@ public:
class SpinnerPreference : public FloatPreference {
Q_OBJECT
public:
SpinnerPreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: FloatPreference(category, name, getter, setter, parent) { }
SpinnerPreference(const QString& category, const QString& name, Getter getter, Setter setter)
: FloatPreference(category, name, getter, setter) { }
Type getType() { return Spinner; }
};
@ -209,8 +211,8 @@ class EditPreference : public StringPreference {
Q_PROPERTY(QString placeholderText READ getPlaceholderText CONSTANT)
public:
EditPreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: StringPreference(category, name, getter, setter, parent) { }
EditPreference(const QString& category, const QString& name, Getter getter, Setter setter)
: StringPreference(category, name, getter, setter) { }
Type getType() { return Editable; }
const QString& getPlaceholderText() const { return _placeholderText; }
void setPlaceholderText(const QString& placeholderText) { _placeholderText = placeholderText; }
@ -224,8 +226,8 @@ class BrowsePreference : public EditPreference {
Q_PROPERTY(QString browseLabel READ getBrowseLabel CONSTANT)
public:
BrowsePreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: EditPreference(category, name, getter, setter, parent) { }
BrowsePreference(const QString& category, const QString& name, Getter getter, Setter setter)
: EditPreference(category, name, getter, setter) { }
Type getType() { return Browsable; }
const QString& getBrowseLabel() { return _browseLabel; }
@ -238,8 +240,8 @@ protected:
class CheckPreference : public BoolPreference {
Q_OBJECT
public:
CheckPreference(const QString& category, const QString& name, Getter getter, Setter setter, Preferences* parent = nullptr)
: BoolPreference(category, name, getter, setter, parent) { }
CheckPreference(const QString& category, const QString& name, Getter getter, Setter setter)
: BoolPreference(category, name, getter, setter) { }
Type getType() { return Checkbox; }
};