diff --git a/interface/resources/qml/hifi/dialogs/PreferencesDialog.qml b/interface/resources/qml/hifi/dialogs/PreferencesDialog.qml index c2ec465a59..2851dd7ff0 100644 --- a/interface/resources/qml/hifi/dialogs/PreferencesDialog.qml +++ b/interface/resources/qml/hifi/dialogs/PreferencesDialog.qml @@ -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]; diff --git a/interface/resources/qml/hifi/dialogs/preferences/Preference.qml b/interface/resources/qml/hifi/dialogs/preferences/Preference.qml index b3e75240d5..0099df6869 100644 --- a/interface/resources/qml/hifi/dialogs/preferences/Preference.qml +++ b/interface/resources/qml/hifi/dialogs/preferences/Preference.qml @@ -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(); } diff --git a/interface/resources/qml/hifi/dialogs/preferences/Section.qml b/interface/resources/qml/hifi/dialogs/preferences/Section.qml index ec7b46fc9d..66ec83a641 100644 --- a/interface/resources/qml/hifi/dialogs/preferences/Section.qml +++ b/interface/resources/qml/hifi/dialogs/preferences/Section.qml @@ -49,6 +49,7 @@ Preference { font.pointSize: 16 color: "#0e7077" text: root.name + MouseArea { anchors.fill: parent; onClicked: root.toggleExpanded() } } Column { diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index c33fbc7f5b..ddc90886c9 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -117,6 +117,7 @@ #include #include #include +#include #include "AnimDebugDraw.h" #include "AudioClient.h" @@ -324,6 +325,7 @@ bool setupEssentials(int& argc, char** argv) { // Set dependencies DependencyManager::set(); + DependencyManager::set(); DependencyManager::set(); DependencyManager::set(); DependencyManager::set(); @@ -1182,6 +1184,7 @@ void Application::initializeUi() { LoginDialog::registerType(); Tooltip::registerType(); UpdateDialog::registerType(); + qmlRegisterType("Hifi", 1, 0, "Preference"); auto offscreenUi = DependencyManager::get(); offscreenUi->create(_offscreenContext->getContext()); @@ -1213,6 +1216,7 @@ void Application::initializeUi() { rootContext->setContextProperty("MyAvatar", getMyAvatar()); rootContext->setContextProperty("Messages", DependencyManager::get().data()); rootContext->setContextProperty("Recording", DependencyManager::get().data()); + rootContext->setContextProperty("Preferences", DependencyManager::get().data()); rootContext->setContextProperty("TREE_SCALE", TREE_SCALE); rootContext->setContextProperty("Quat", new Quat()); diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index 2a0d4062c0..6031994415 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -34,16 +34,15 @@ #include "scripting/WebWindowClass.h" void setupPreferences() { - MyAvatar* myAvatar = DependencyManager::get()->getMyAvatar(); - qmlRegisterType("Hifi", 1, 0, "Preference"); - Preferences* preferences = new Preferences(); + auto preferences = DependencyManager::get(); + MyAvatar* myAvatar = DependencyManager::get()->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 (optional)"; - 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 (optional)"; - 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()->getScriptsLocation(); }; auto setter = [](const QString& value) { DependencyManager::get()->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()->getUseAcuity(); }; auto setter = [](bool value) { DependencyManager::get()->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()->getDesktopLODDecreaseFPS(); }; auto setter = [](float value) { DependencyManager::get()->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()->getHMDLODDecreaseFPS(); }; auto setter = [](float value) { DependencyManager::get()->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()->getRenderDistanceInverseHighLimit(); }; auto setter = [](float value) { DependencyManager::get()->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 (default is 1.0)", getter, setter, preferences); + auto preference = new SpinnerPreference(AVATAR_TUNING, "Avatar scale (default is 1.0)", 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()->getEyeClosingThreshold(); }; auto setter = [](float value) { DependencyManager::get()->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()->getHostname(); }; auto setter = [](const QString& value) { DependencyManager::get()->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()->getReceivedAudioStream().getDynamicJitterBuffers(); }; auto setter = [](bool value) { DependencyManager::get()->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()->getReceivedAudioStream().getDesiredJitterBufferFrames(); }; auto setter = [](float value) { DependencyManager::get()->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()->getReceivedAudioStream().getMaxFramesOverDesired(); }; auto setter = [](float value) { DependencyManager::get()->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()->getReceivedAudioStream().getUseStDevForJitterCalc(); }; auto setter = [](bool value) { DependencyManager::get()->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()->getReceivedAudioStream().getWindowStarveThreshold(); }; auto setter = [](float value) { DependencyManager::get()->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()->getReceivedAudioStream().getWindowSecondsForDesiredCalcOnTooManyStarves(); }; auto setter = [](float value) { DependencyManager::get()->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()->getReceivedAudioStream().getWindowSecondsForDesiredReduction(); }; auto setter = [](float value) { DependencyManager::get()->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()->getReceivedAudioStream().getRepetitionWithFade(); }; auto setter = [](bool value) { DependencyManager::get()->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()->getOutputBufferSize(); }; auto setter = [](float value) { DependencyManager::get()->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()->getOutputStarveDetectionEnabled(); }; auto setter = [](bool value) { DependencyManager::get()->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()->getOutputStarveDetectionThreshold(); }; auto setter = [](float value) { DependencyManager::get()->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()->getOutputStarveDetectionPeriod(); }; auto setter = [](float value) { DependencyManager::get()->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()->getRootContext()->setContextProperty("Preferences", preferences); } const int PREFERENCES_HEIGHT_PADDING = 20; diff --git a/libraries/shared/src/Preferences.cpp b/libraries/shared/src/Preferences.cpp index feb9e7c3c9..db3b618f2d 100644 --- a/libraries/shared/src/Preferences.cpp +++ b/libraries/shared/src/Preferences.cpp @@ -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(_preferencesByCategory[category]); - } else { - // Use this property to maintain the order of the categories - _categories.append(category); - } + } categoryPreferences.append(QVariant::fromValue(preference)); _preferencesByCategory[category] = categoryPreferences; } diff --git a/libraries/shared/src/Preferences.h b/libraries/shared/src/Preferences.h index b91dcc8256..3316086c3d 100644 --- a/libraries/shared/src/Preferences.h +++ b/libraries/shared/src/Preferences.h @@ -16,9 +16,11 @@ #include #include +#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 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; using Setter = std::function; - 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 { 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 { 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 { 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; } };