2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
9 #include "GUIDialogSettingsManualBase.h"
11 #include "settings/SettingAddon.h"
12 #include "settings/SettingDateTime.h"
13 #include "settings/SettingPath.h"
14 #include "settings/SettingUtils.h"
15 #include "settings/lib/Setting.h"
16 #include "settings/lib/SettingSection.h"
17 #include "settings/lib/SettingsManager.h"
18 #include "utils/StringUtils.h"
19 #include "utils/Variant.h"
24 CGUIDialogSettingsManualBase::CGUIDialogSettingsManualBase(int windowId
, const std::string
& xmlFile
)
25 : CGUIDialogSettingsManagerBase(windowId
, xmlFile
)
28 CGUIDialogSettingsManualBase::~CGUIDialogSettingsManualBase()
30 if (GetSettingsManager() != nullptr)
32 GetSettingsManager()->Clear();
34 delete GetSettingsManager();
38 void CGUIDialogSettingsManualBase::SetupView()
42 if (GetSettingsManager() != nullptr)
44 // add the created setting section to the settings manager and mark it as ready
45 GetSettingsManager()->AddSection(m_section
);
46 GetSettingsManager()->SetInitialized();
47 GetSettingsManager()->SetLoaded();
50 CGUIDialogSettingsBase::SetupView();
53 CSettingsManager
* CGUIDialogSettingsManualBase::GetSettingsManager() const
55 if (m_settingsManager
== nullptr)
56 m_settingsManager
= new CSettingsManager();
58 return m_settingsManager
;
61 void CGUIDialogSettingsManualBase::InitializeSettings()
63 if (GetSettingsManager() != nullptr)
65 GetSettingsManager()->Clear();
68 // create a std::make_shared<section
69 m_section
= std::make_shared
<CSettingSection
>(GetProperty("xmlfile").asString(), GetSettingsManager());
73 SettingCategoryPtr
CGUIDialogSettingsManualBase::AddCategory(const std::string
&id
, int label
, int help
/* = -1 */)
78 SettingCategoryPtr category
= std::make_shared
<CSettingCategory
>(id
, GetSettingsManager());
82 category
->SetLabel(label
);
84 category
->SetHelp(help
);
86 m_section
->AddCategory(category
);
90 SettingGroupPtr
CGUIDialogSettingsManualBase::AddGroup(const SettingCategoryPtr
& category
,
93 bool separatorBelowLabel
/* = true */,
94 bool hideSeparator
/* = false */)
99 size_t groups
= category
->GetGroups().size();
101 SettingGroupPtr group
= std::make_shared
<CSettingGroup
>(StringUtils::Format("{0}", groups
+ 1), GetSettingsManager());
106 group
->SetLabel(label
);
108 group
->SetHelp(help
);
109 group
->SetControl(GetTitleControl(separatorBelowLabel
, hideSeparator
));
111 category
->AddGroup(group
);
115 std::shared_ptr
<CSettingBool
> CGUIDialogSettingsManualBase::AddToggle(const SettingGroupPtr
& group
,
116 const std::string
& id
,
120 bool delayed
/* = false */,
121 bool visible
/* = true */,
124 if (group
== NULL
|| id
.empty() || label
< 0 ||
125 GetSetting(id
) != NULL
)
128 std::shared_ptr
<CSettingBool
> setting
= std::make_shared
<CSettingBool
>(id
, label
, value
, GetSettingsManager());
132 setting
->SetControl(GetCheckmarkControl(delayed
));
133 setSettingDetails(setting
, level
, visible
, help
);
135 group
->AddSetting(setting
);
139 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddEdit(
140 const SettingGroupPtr
& group
,
141 const std::string
& id
,
145 int minimum
/* = 0 */,
147 int maximum
/* = 0 */,
148 bool verifyNewValue
/* = false */,
149 int heading
/* = -1 */,
150 bool delayed
/* = false */,
151 bool visible
/* = true */,
154 if (group
== NULL
|| id
.empty() || label
< 0 ||
155 GetSetting(id
) != NULL
)
158 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, minimum
, step
, maximum
, GetSettingsManager());
162 setting
->SetControl(GetEditControl("integer", delayed
, false, verifyNewValue
, heading
));
163 setSettingDetails(setting
, level
, visible
, help
);
165 group
->AddSetting(setting
);
169 std::shared_ptr
<CSettingNumber
> CGUIDialogSettingsManualBase::AddEdit(
170 const SettingGroupPtr
& group
,
171 const std::string
& id
,
175 float minimum
/* = 0.0f */,
176 float step
/* = 1.0f */,
177 float maximum
/* = 0.0f */,
178 bool verifyNewValue
/* = false */,
179 int heading
/* = -1 */,
180 bool delayed
/* = false */,
181 bool visible
/* = true */,
184 if (group
== NULL
|| id
.empty() || label
< 0 ||
185 GetSetting(id
) != NULL
)
188 std::shared_ptr
<CSettingNumber
> setting
= std::make_shared
<CSettingNumber
>(id
, label
, value
, minimum
, step
, maximum
, GetSettingsManager());
192 setting
->SetControl(GetEditControl("number", delayed
, false, verifyNewValue
, heading
));
193 setSettingDetails(setting
, level
, visible
, help
);
195 group
->AddSetting(setting
);
199 std::shared_ptr
<CSettingString
> CGUIDialogSettingsManualBase::AddEdit(const SettingGroupPtr
& group
,
200 const std::string
& id
,
203 const std::string
& value
,
204 bool allowEmpty
/* = false */,
205 bool hidden
/* = false */,
206 int heading
/* = -1 */,
207 bool delayed
/* = false */,
208 bool visible
/* = true */,
211 if (group
== NULL
|| id
.empty() || label
< 0 ||
212 GetSetting(id
) != NULL
)
215 std::shared_ptr
<CSettingString
> setting
= std::make_shared
<CSettingString
>(id
, label
, value
, GetSettingsManager());
219 setting
->SetControl(GetEditControl("string", delayed
, hidden
, false, heading
));
220 setting
->SetAllowEmpty(allowEmpty
);
221 setSettingDetails(setting
, level
, visible
, help
);
223 group
->AddSetting(setting
);
227 std::shared_ptr
<CSettingString
> CGUIDialogSettingsManualBase::AddIp(const SettingGroupPtr
& group
,
228 const std::string
& id
,
231 const std::string
& value
,
232 bool allowEmpty
/* = false */,
233 int heading
/* = -1 */,
234 bool delayed
/* = false */,
235 bool visible
/* = true */,
238 if (group
== NULL
|| id
.empty() || label
< 0 ||
239 GetSetting(id
) != NULL
)
242 std::shared_ptr
<CSettingString
> setting
= std::make_shared
<CSettingString
>(id
, label
, value
, GetSettingsManager());
246 setting
->SetControl(GetEditControl("ip", delayed
, false, false, heading
));
247 setting
->SetAllowEmpty(allowEmpty
);
248 setSettingDetails(setting
, level
, visible
, help
);
250 group
->AddSetting(setting
);
254 std::shared_ptr
<CSettingString
> CGUIDialogSettingsManualBase::AddPasswordMd5(
255 const SettingGroupPtr
& group
,
256 const std::string
& id
,
259 const std::string
& value
,
260 bool allowEmpty
/* = false */,
261 int heading
/* = -1 */,
262 bool delayed
/* = false */,
263 bool visible
/* = true */,
266 if (group
== NULL
|| id
.empty() || label
< 0 ||
267 GetSetting(id
) != NULL
)
270 std::shared_ptr
<CSettingString
> setting
= std::make_shared
<CSettingString
>(id
, label
, value
, GetSettingsManager());
274 setting
->SetControl(GetEditControl("md5", delayed
, false, false, heading
));
275 setting
->SetAllowEmpty(allowEmpty
);
276 setSettingDetails(setting
, level
, visible
, help
);
278 group
->AddSetting(setting
);
282 std::shared_ptr
<CSettingAction
> CGUIDialogSettingsManualBase::AddButton(
283 const SettingGroupPtr
& group
,
284 const std::string
& id
,
287 const std::string
& data
/* = "" */,
288 bool delayed
/* = false */,
289 bool visible
/* = true */,
292 if (group
== NULL
|| id
.empty() || label
< 0 ||
293 GetSetting(id
) != NULL
)
296 std::shared_ptr
<CSettingAction
> setting
= std::make_shared
<CSettingAction
>(id
, label
, GetSettingsManager());
300 setting
->SetControl(GetButtonControl("action", delayed
));
301 setting
->SetData(data
);
302 setSettingDetails(setting
, level
, visible
, help
);
304 group
->AddSetting(setting
);
308 std::shared_ptr
<CSettingString
> CGUIDialogSettingsManualBase::AddInfoLabelButton(
309 const SettingGroupPtr
& group
,
310 const std::string
& id
,
313 const std::string
& info
,
314 bool visible
/* = true */,
317 if (group
== NULL
|| id
.empty() || label
< 0 ||
318 GetSetting(id
) != NULL
)
321 std::shared_ptr
<CSettingString
> setting
= std::make_shared
<CSettingString
>(id
, label
, info
, GetSettingsManager());
325 setting
->SetControl(GetButtonControl("infolabel", false));
326 setSettingDetails(setting
, level
, visible
, help
);
328 group
->AddSetting(setting
);
332 std::shared_ptr
<CSettingAddon
> CGUIDialogSettingsManualBase::AddAddon(
333 const SettingGroupPtr
& group
,
334 const std::string
& id
,
337 const std::string
& value
,
338 ADDON::AddonType addonType
,
339 bool allowEmpty
/* = false */,
340 int heading
/* = -1 */,
341 bool hideValue
/* = false */,
342 bool showInstalledAddons
/* = true */,
343 bool showInstallableAddons
/* = false */,
344 bool showMoreAddons
/* = true */,
345 bool delayed
/* = false */,
346 bool visible
/* = true */,
349 if (group
== NULL
|| id
.empty() || label
< 0 ||
350 GetSetting(id
) != NULL
)
353 std::shared_ptr
<CSettingAddon
> setting
= std::make_shared
<CSettingAddon
>(id
, label
, value
, GetSettingsManager());
357 setting
->SetControl(GetButtonControl("addon", delayed
, heading
, hideValue
, showInstalledAddons
, showInstallableAddons
, showMoreAddons
));
358 setting
->SetAddonType(addonType
);
359 setting
->SetAllowEmpty(allowEmpty
);
360 setSettingDetails(setting
, level
, visible
, help
);
362 group
->AddSetting(setting
);
366 std::shared_ptr
<CSettingPath
> CGUIDialogSettingsManualBase::AddPath(
367 const SettingGroupPtr
& group
,
368 const std::string
& id
,
371 const std::string
& value
,
372 bool writable
/* = true */,
373 const std::vector
<std::string
>& sources
/* = std::vector<std::string>() */,
374 bool allowEmpty
/* = false */,
375 int heading
/* = -1 */,
376 bool hideValue
/* = false */,
377 bool delayed
/* = false */,
378 bool visible
/* = true */,
381 if (group
== NULL
|| id
.empty() || label
< 0 ||
382 GetSetting(id
) != NULL
)
385 std::shared_ptr
<CSettingPath
> setting
= std::make_shared
<CSettingPath
>(id
, label
, value
, GetSettingsManager());
389 setting
->SetControl(GetButtonControl("path", delayed
, heading
, hideValue
));
390 setting
->SetWritable(writable
);
391 setting
->SetSources(sources
);
392 setting
->SetAllowEmpty(allowEmpty
);
393 setSettingDetails(setting
, level
, visible
, help
);
395 group
->AddSetting(setting
);
399 std::shared_ptr
<CSettingDate
> CGUIDialogSettingsManualBase::AddDate(const SettingGroupPtr
& group
,
400 const std::string
& id
,
403 const std::string
& value
,
404 bool allowEmpty
/* = false */,
405 int heading
/* = -1 */,
406 bool delayed
/* = false */,
407 bool visible
/* = true */,
410 if (group
== NULL
|| id
.empty() || label
< 0 || GetSetting(id
) != NULL
)
413 std::shared_ptr
<CSettingDate
> setting
= std::make_shared
<CSettingDate
>(id
, label
, value
, GetSettingsManager());
417 setting
->SetControl(GetButtonControl("date", delayed
, heading
));
418 setting
->SetAllowEmpty(allowEmpty
);
419 setSettingDetails(setting
, level
, visible
, help
);
421 group
->AddSetting(setting
);
425 std::shared_ptr
<CSettingTime
> CGUIDialogSettingsManualBase::AddTime(const SettingGroupPtr
& group
,
426 const std::string
& id
,
429 const std::string
& value
,
430 bool allowEmpty
/* = false */,
431 int heading
/* = -1 */,
432 bool delayed
/* = false */,
433 bool visible
/* = true */,
436 if (group
== NULL
|| id
.empty() || label
< 0 || GetSetting(id
) != NULL
)
439 std::shared_ptr
<CSettingTime
> setting
= std::make_shared
<CSettingTime
>(id
, label
, value
, GetSettingsManager());
443 setting
->SetControl(GetButtonControl("time", delayed
, heading
));
444 setting
->SetAllowEmpty(allowEmpty
);
445 setSettingDetails(setting
, level
, visible
, help
);
447 group
->AddSetting(setting
);
451 std::shared_ptr
<CSettingString
> CGUIDialogSettingsManualBase::AddSpinner(
452 const SettingGroupPtr
& group
,
453 const std::string
& id
,
456 const std::string
& value
,
457 StringSettingOptionsFiller filler
,
458 bool delayed
/* = false */,
459 bool visible
/* = true */,
462 if (group
== NULL
|| id
.empty() || label
< 0 || filler
== NULL
||
463 GetSetting(id
) != NULL
)
466 std::shared_ptr
<CSettingString
> setting
= std::make_shared
<CSettingString
>(id
, label
, value
, GetSettingsManager());
470 setting
->SetControl(GetSpinnerControl("string", delayed
));
471 setting
->SetOptionsFiller(filler
, this);
472 setSettingDetails(setting
, level
, visible
, help
);
474 group
->AddSetting(setting
);
478 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddSpinner(const SettingGroupPtr
& group
,
479 const std::string
& id
,
486 int formatLabel
/* = -1 */,
487 int minimumLabel
/* = -1 */,
488 bool delayed
/* = false */,
489 bool visible
/* = true */,
492 if (group
== NULL
|| id
.empty() || label
< 0 ||
493 GetSetting(id
) != NULL
)
496 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
500 setting
->SetControl(GetSpinnerControl("string", delayed
, minimumLabel
, formatLabel
));
501 setting
->SetMinimum(minimum
);
502 setting
->SetStep(step
);
503 setting
->SetMaximum(maximum
);
504 setSettingDetails(setting
, level
, visible
, help
);
506 group
->AddSetting(setting
);
510 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddSpinner(
511 const SettingGroupPtr
& group
,
512 const std::string
& id
,
519 const std::string
& formatString
,
520 int minimumLabel
/* = -1 */,
521 bool delayed
/* = false */,
522 bool visible
/* = true */,
525 if (group
== NULL
|| id
.empty() || label
< 0 ||
526 GetSetting(id
) != NULL
)
529 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
533 setting
->SetControl(GetSpinnerControl("string", delayed
, minimumLabel
, -1, formatString
));
534 setting
->SetMinimum(minimum
);
535 setting
->SetStep(step
);
536 setting
->SetMaximum(maximum
);
537 setSettingDetails(setting
, level
, visible
, help
);
539 group
->AddSetting(setting
);
543 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddSpinner(
544 const SettingGroupPtr
& group
,
545 const std::string
& id
,
549 const TranslatableIntegerSettingOptions
& entries
,
550 bool delayed
/* = false */,
551 bool visible
/* = true */,
554 if (group
== NULL
|| id
.empty() || label
< 0 || entries
.empty() ||
555 GetSetting(id
) != NULL
)
558 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
562 setting
->SetControl(GetSpinnerControl("string", delayed
));
563 setting
->SetTranslatableOptions(entries
);
564 setSettingDetails(setting
, level
, visible
, help
);
566 group
->AddSetting(setting
);
570 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddSpinner(
571 const SettingGroupPtr
& group
,
572 const std::string
& id
,
576 const IntegerSettingOptions
& entries
,
577 bool delayed
/* = false */,
578 bool visible
/* = true */,
581 if (group
== NULL
|| id
.empty() || label
< 0 || entries
.empty() ||
582 GetSetting(id
) != NULL
)
585 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
589 setting
->SetControl(GetSpinnerControl("string", delayed
));
590 setting
->SetOptions(entries
);
591 setSettingDetails(setting
, level
, visible
, help
);
593 group
->AddSetting(setting
);
597 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddSpinner(
598 const SettingGroupPtr
& group
,
599 const std::string
& id
,
603 IntegerSettingOptionsFiller filler
,
604 bool delayed
/* = false */,
605 bool visible
/* = true */,
608 if (group
== NULL
|| id
.empty() || label
< 0 || filler
== NULL
||
609 GetSetting(id
) != NULL
)
612 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
616 setting
->SetControl(GetSpinnerControl("string", delayed
));
617 setting
->SetOptionsFiller(filler
, this);
618 setSettingDetails(setting
, level
, visible
, help
);
620 group
->AddSetting(setting
);
624 std::shared_ptr
<CSettingNumber
> CGUIDialogSettingsManualBase::AddSpinner(
625 const SettingGroupPtr
& group
,
626 const std::string
& id
,
633 int formatLabel
/* = -1 */,
634 int minimumLabel
/* = -1 */,
635 bool delayed
/* = false */,
636 bool visible
/* = true */,
639 if (group
== NULL
|| id
.empty() || label
< 0 ||
640 GetSetting(id
) != NULL
)
643 std::shared_ptr
<CSettingNumber
> setting
= std::make_shared
<CSettingNumber
>(id
, label
, value
, GetSettingsManager());
647 setting
->SetControl(GetSpinnerControl("number", delayed
, minimumLabel
, formatLabel
));
648 setting
->SetMinimum(static_cast<double>(minimum
));
649 setting
->SetStep(static_cast<double>(step
));
650 setting
->SetMaximum(static_cast<double>(maximum
));
651 setSettingDetails(setting
, level
, visible
, help
);
653 group
->AddSetting(setting
);
657 std::shared_ptr
<CSettingNumber
> CGUIDialogSettingsManualBase::AddSpinner(
658 const SettingGroupPtr
& group
,
659 const std::string
& id
,
666 const std::string
& formatString
,
667 int minimumLabel
/* = -1 */,
668 bool delayed
/* = false */,
669 bool visible
/* = true */,
672 if (group
== NULL
|| id
.empty() || label
< 0 ||
673 GetSetting(id
) != NULL
)
676 std::shared_ptr
<CSettingNumber
> setting
= std::make_shared
<CSettingNumber
>(id
, label
, value
, GetSettingsManager());
680 setting
->SetControl(GetSpinnerControl("number", delayed
, minimumLabel
, -1, formatString
));
681 setting
->SetMinimum(static_cast<double>(minimum
));
682 setting
->SetStep(static_cast<double>(step
));
683 setting
->SetMaximum(static_cast<double>(maximum
));
684 setSettingDetails(setting
, level
, visible
, help
);
686 group
->AddSetting(setting
);
690 std::shared_ptr
<CSettingString
> CGUIDialogSettingsManualBase::AddList(
691 const SettingGroupPtr
& group
,
692 const std::string
& id
,
695 const std::string
& value
,
696 StringSettingOptionsFiller filler
,
698 bool visible
/* = true */,
700 bool details
/* = false */)
702 if (group
== NULL
|| id
.empty() || label
< 0 || filler
== NULL
||
703 GetSetting(id
) != NULL
)
706 std::shared_ptr
<CSettingString
> setting
= std::make_shared
<CSettingString
>(id
, label
, value
, GetSettingsManager());
710 setting
->SetControl(GetListControl("string", false, heading
, false, nullptr, details
));
711 setting
->SetOptionsFiller(filler
, this);
712 setSettingDetails(setting
, level
, visible
, help
);
714 group
->AddSetting(setting
);
718 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddList(
719 const SettingGroupPtr
& group
,
720 const std::string
& id
,
724 const TranslatableIntegerSettingOptions
& entries
,
726 bool visible
/* = true */,
728 bool details
/* = false */)
730 if (group
== NULL
|| id
.empty() || label
< 0 || entries
.empty() ||
731 GetSetting(id
) != NULL
)
734 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
738 setting
->SetControl(GetListControl("integer", false, heading
, false, nullptr, details
));
739 setting
->SetTranslatableOptions(entries
);
740 setSettingDetails(setting
, level
, visible
, help
);
742 group
->AddSetting(setting
);
746 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddList(
747 const SettingGroupPtr
& group
,
748 const std::string
& id
,
752 const IntegerSettingOptions
& entries
,
754 bool visible
/* = true */,
756 bool details
/* = false */)
758 if (group
== NULL
|| id
.empty() || label
< 0 || entries
.empty() ||
759 GetSetting(id
) != NULL
)
762 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
766 setting
->SetControl(GetListControl("integer", false, heading
, false, nullptr, details
));
767 setting
->SetOptions(entries
);
768 setSettingDetails(setting
, level
, visible
, help
);
770 group
->AddSetting(setting
);
774 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddList(
775 const SettingGroupPtr
& group
,
776 const std::string
& id
,
780 IntegerSettingOptionsFiller filler
,
782 bool visible
/* = true */,
784 bool details
/* = false */)
786 if (group
== NULL
|| id
.empty() || label
< 0 || filler
== NULL
||
787 GetSetting(id
) != NULL
)
790 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
794 setting
->SetControl(GetListControl("integer", false, heading
, false, nullptr, details
));
795 setting
->SetOptionsFiller(filler
, this);
796 setSettingDetails(setting
, level
, visible
, help
);
798 group
->AddSetting(setting
);
802 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddList(
803 const SettingGroupPtr
& group
,
804 const std::string
& id
,
807 std::vector
<std::string
> values
,
808 StringSettingOptionsFiller filler
,
810 int minimumItems
/* = 0 */,
811 int maximumItems
/* = -1 */,
812 bool visible
/* = true */,
814 bool details
/* = false */)
816 if (group
== NULL
|| id
.empty() || label
< 0 || filler
== NULL
||
817 GetSetting(id
) != NULL
)
820 std::shared_ptr
<CSettingString
> settingDefinition
= std::make_shared
<CSettingString
>(id
, GetSettingsManager());
821 if (settingDefinition
== NULL
)
824 settingDefinition
->SetOptionsFiller(filler
, this);
826 std::shared_ptr
<CSettingList
> setting
= std::make_shared
<CSettingList
>(id
, settingDefinition
, label
, GetSettingsManager());
830 std::vector
<CVariant
> valueList
;
831 for (std::vector
<std::string
>::const_iterator itValue
= values
.begin(); itValue
!= values
.end(); ++itValue
)
832 valueList
.emplace_back(*itValue
);
833 SettingList settingValues
;
834 if (!CSettingUtils::ValuesToList(setting
, valueList
, settingValues
))
836 // setting the default will also set the actual value on an unchanged setting
837 setting
->SetDefault(settingValues
);
839 setting
->SetControl(GetListControl("string", false, heading
, true, nullptr, details
));
840 setting
->SetMinimumItems(minimumItems
);
841 setting
->SetMaximumItems(maximumItems
);
842 setSettingDetails(setting
, level
, visible
, help
);
844 group
->AddSetting(setting
);
848 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddList(
849 const SettingGroupPtr
& group
,
850 const std::string
& id
,
853 std::vector
<int> values
,
854 const TranslatableIntegerSettingOptions
& entries
,
856 int minimumItems
/* = 0 */,
857 int maximumItems
/* = -1 */,
858 bool visible
/* = true */,
860 bool details
/* = false */)
862 if (group
== NULL
|| id
.empty() || label
< 0 || entries
.empty() ||
863 GetSetting(id
) != NULL
)
866 std::shared_ptr
<CSettingInt
> settingDefinition
= std::make_shared
<CSettingInt
>(id
, GetSettingsManager());
867 if (settingDefinition
== NULL
)
870 settingDefinition
->SetTranslatableOptions(entries
);
872 std::shared_ptr
<CSettingList
> setting
= std::make_shared
<CSettingList
>(id
, settingDefinition
, label
, GetSettingsManager());
876 std::vector
<CVariant
> valueList
;
877 for (std::vector
<int>::const_iterator itValue
= values
.begin(); itValue
!= values
.end(); ++itValue
)
878 valueList
.emplace_back(*itValue
);
879 SettingList settingValues
;
880 if (!CSettingUtils::ValuesToList(setting
, valueList
, settingValues
))
882 // setting the default will also set the actual value on an unchanged setting
883 setting
->SetDefault(settingValues
);
885 setting
->SetControl(GetListControl("integer", false, heading
, true, nullptr, details
));
886 setting
->SetMinimumItems(minimumItems
);
887 setting
->SetMaximumItems(maximumItems
);
888 setSettingDetails(setting
, level
, visible
, help
);
890 group
->AddSetting(setting
);
894 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddList(
895 const SettingGroupPtr
& group
,
896 const std::string
& id
,
899 std::vector
<int> values
,
900 const IntegerSettingOptions
& entries
,
902 int minimumItems
/* = 0 */,
903 int maximumItems
/* = -1 */,
904 bool visible
/* = true */,
906 bool details
/* = false */)
908 if (group
== NULL
|| id
.empty() || label
< 0 || entries
.empty() ||
909 GetSetting(id
) != NULL
)
912 std::shared_ptr
<CSettingInt
> settingDefinition
= std::make_shared
<CSettingInt
>(id
, GetSettingsManager());
913 if (settingDefinition
== NULL
)
916 settingDefinition
->SetOptions(entries
);
918 std::shared_ptr
<CSettingList
> setting
= std::make_shared
<CSettingList
>(id
, settingDefinition
, label
, GetSettingsManager());
922 std::vector
<CVariant
> valueList
;
923 for (std::vector
<int>::const_iterator itValue
= values
.begin(); itValue
!= values
.end(); ++itValue
)
924 valueList
.emplace_back(*itValue
);
925 SettingList settingValues
;
926 if (!CSettingUtils::ValuesToList(setting
, valueList
, settingValues
))
928 // setting the default will also set the actual value on an unchanged setting
929 setting
->SetDefault(settingValues
);
931 setting
->SetControl(GetListControl("integer", false, heading
, true, nullptr, details
));
932 setting
->SetMinimumItems(minimumItems
);
933 setting
->SetMaximumItems(maximumItems
);
934 setSettingDetails(setting
, level
, visible
, help
);
936 group
->AddSetting(setting
);
940 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddList(
941 const SettingGroupPtr
& group
,
942 const std::string
& id
,
945 std::vector
<int> values
,
946 IntegerSettingOptionsFiller filler
,
948 int minimumItems
/* = 0 */,
949 int maximumItems
/* = -1 */,
950 bool visible
/* = true */,
952 SettingControlListValueFormatter formatter
/* = NULL */,
953 bool details
/* = false */)
955 if (group
== NULL
|| id
.empty() || label
< 0 || filler
== NULL
||
956 GetSetting(id
) != NULL
)
959 std::shared_ptr
<CSettingInt
> settingDefinition
= std::make_shared
<CSettingInt
>(id
, GetSettingsManager());
960 if (settingDefinition
== NULL
)
963 settingDefinition
->SetOptionsFiller(filler
, this);
965 std::shared_ptr
<CSettingList
> setting
= std::make_shared
<CSettingList
>(id
, settingDefinition
, label
, GetSettingsManager());
969 std::vector
<CVariant
> valueList
;
970 for (std::vector
<int>::const_iterator itValue
= values
.begin(); itValue
!= values
.end(); ++itValue
)
971 valueList
.emplace_back(*itValue
);
972 SettingList settingValues
;
973 if (!CSettingUtils::ValuesToList(setting
, valueList
, settingValues
))
975 // setting the default will also set the actual value on an unchanged setting
976 setting
->SetDefault(settingValues
);
978 setting
->SetControl(GetListControl("integer", false, heading
, true, formatter
, details
));
979 setting
->SetMinimumItems(minimumItems
);
980 setting
->SetMaximumItems(maximumItems
);
981 setSettingDetails(setting
, level
, visible
, help
);
983 group
->AddSetting(setting
);
987 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddPercentageSlider(
988 const SettingGroupPtr
& group
,
989 const std::string
& id
,
995 int heading
/* = -1 */,
996 bool usePopup
/* = false */,
997 bool delayed
/* = false */,
998 bool visible
/* = true */,
1001 if (group
== NULL
|| id
.empty() || label
< 0 ||
1002 GetSetting(id
) != NULL
)
1005 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
1006 if (setting
== NULL
)
1009 setting
->SetControl(GetSliderControl("percentage", delayed
, heading
, usePopup
, formatLabel
));
1010 setting
->SetMinimum(0);
1011 setting
->SetStep(step
);
1012 setting
->SetMaximum(100);
1013 setSettingDetails(setting
, level
, visible
, help
);
1015 group
->AddSetting(setting
);
1019 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddPercentageSlider(
1020 const SettingGroupPtr
& group
,
1021 const std::string
& id
,
1025 const std::string
& formatString
,
1027 int heading
/* = -1 */,
1028 bool usePopup
/* = false */,
1029 bool delayed
/* = false */,
1030 bool visible
/* = true */,
1031 int help
/* = -1 */)
1033 if (group
== NULL
|| id
.empty() || label
< 0 ||
1034 GetSetting(id
) != NULL
)
1037 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
1038 if (setting
== NULL
)
1041 setting
->SetControl(GetSliderControl("percentage", delayed
, heading
, usePopup
, -1, formatString
));
1042 setting
->SetMinimum(0);
1043 setting
->SetStep(step
);
1044 setting
->SetMaximum(100);
1045 setSettingDetails(setting
, level
, visible
, help
);
1047 group
->AddSetting(setting
);
1051 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddSlider(const SettingGroupPtr
& group
,
1052 const std::string
& id
,
1060 int heading
/* = -1 */,
1061 bool usePopup
/* = false */,
1062 bool delayed
/* = false */,
1063 bool visible
/* = true */,
1064 int help
/* = -1 */)
1066 if (group
== NULL
|| id
.empty() || label
< 0 ||
1067 GetSetting(id
) != NULL
)
1070 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
1071 if (setting
== NULL
)
1074 setting
->SetControl(GetSliderControl("integer", delayed
, heading
, usePopup
, formatLabel
));
1075 setting
->SetMinimum(minimum
);
1076 setting
->SetStep(step
);
1077 setting
->SetMaximum(maximum
);
1078 setSettingDetails(setting
, level
, visible
, help
);
1080 group
->AddSetting(setting
);
1084 std::shared_ptr
<CSettingInt
> CGUIDialogSettingsManualBase::AddSlider(
1085 const SettingGroupPtr
& group
,
1086 const std::string
& id
,
1090 const std::string
& formatString
,
1094 int heading
/* = -1 */,
1095 bool usePopup
/* = false */,
1096 bool delayed
/* = false */,
1097 bool visible
/* = true */,
1098 int help
/* = -1 */)
1100 if (group
== NULL
|| id
.empty() || label
< 0 ||
1101 GetSetting(id
) != NULL
)
1104 std::shared_ptr
<CSettingInt
> setting
= std::make_shared
<CSettingInt
>(id
, label
, value
, GetSettingsManager());
1105 if (setting
== NULL
)
1108 setting
->SetControl(GetSliderControl("integer", delayed
, heading
, usePopup
, -1, formatString
));
1109 setting
->SetMinimum(minimum
);
1110 setting
->SetStep(step
);
1111 setting
->SetMaximum(maximum
);
1112 setSettingDetails(setting
, level
, visible
, help
);
1114 group
->AddSetting(setting
);
1118 std::shared_ptr
<CSettingNumber
> CGUIDialogSettingsManualBase::AddSlider(
1119 const SettingGroupPtr
& group
,
1120 const std::string
& id
,
1128 int heading
/* = -1 */,
1129 bool usePopup
/* = false */,
1130 bool delayed
/* = false */,
1131 bool visible
/* = true */,
1132 int help
/* = -1 */)
1134 if (group
== NULL
|| id
.empty() || label
< 0 ||
1135 GetSetting(id
) != NULL
)
1138 std::shared_ptr
<CSettingNumber
> setting
= std::make_shared
<CSettingNumber
>(id
, label
, value
, GetSettingsManager());
1139 if (setting
== NULL
)
1142 setting
->SetControl(GetSliderControl("number", delayed
, heading
, usePopup
, formatLabel
));
1143 setting
->SetMinimum(static_cast<double>(minimum
));
1144 setting
->SetStep(static_cast<double>(step
));
1145 setting
->SetMaximum(static_cast<double>(maximum
));
1146 setSettingDetails(setting
, level
, visible
, help
);
1148 group
->AddSetting(setting
);
1152 std::shared_ptr
<CSettingNumber
> CGUIDialogSettingsManualBase::AddSlider(
1153 const SettingGroupPtr
& group
,
1154 const std::string
& id
,
1158 const std::string
& formatString
,
1162 int heading
/* = -1 */,
1163 bool usePopup
/* = false */,
1164 bool delayed
/* = false */,
1165 bool visible
/* = true */,
1166 int help
/* = -1 */)
1168 if (group
== NULL
|| id
.empty() || label
< 0 ||
1169 GetSetting(id
) != NULL
)
1172 std::shared_ptr
<CSettingNumber
> setting
= std::make_shared
<CSettingNumber
>(id
, label
, value
, GetSettingsManager());
1173 if (setting
== NULL
)
1176 setting
->SetControl(GetSliderControl("number", delayed
, heading
, usePopup
, -1, formatString
));
1177 setting
->SetMinimum(static_cast<double>(minimum
));
1178 setting
->SetStep(static_cast<double>(step
));
1179 setting
->SetMaximum(static_cast<double>(maximum
));
1180 setSettingDetails(setting
, level
, visible
, help
);
1182 group
->AddSetting(setting
);
1186 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddPercentageRange(
1187 const SettingGroupPtr
& group
,
1188 const std::string
& id
,
1193 int valueFormatLabel
,
1195 int formatLabel
/* = 21469 */,
1196 bool delayed
/* = false */,
1197 bool visible
/* = true */,
1198 int help
/* = -1 */)
1200 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, 0, step
, 100, "percentage", formatLabel
, valueFormatLabel
, "", delayed
, visible
, help
);
1203 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddPercentageRange(
1204 const SettingGroupPtr
& group
,
1205 const std::string
& id
,
1210 const std::string
& valueFormatString
/* = "{:d} %" */,
1212 int formatLabel
/* = 21469 */,
1213 bool delayed
/* = false */,
1214 bool visible
/* = true */,
1215 int help
/* = -1 */)
1217 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, 0, step
, 100, "percentage", formatLabel
, -1, valueFormatString
, delayed
, visible
, help
);
1220 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddRange(const SettingGroupPtr
& group
,
1221 const std::string
& id
,
1229 int valueFormatLabel
,
1230 int formatLabel
/* = 21469 */,
1231 bool delayed
/* = false */,
1232 bool visible
/* = true */,
1233 int help
/* = -1 */)
1235 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, minimum
, step
, maximum
, "integer", formatLabel
, valueFormatLabel
, "", delayed
, visible
, help
);
1238 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddRange(
1239 const SettingGroupPtr
& group
,
1240 const std::string
& id
,
1248 const std::string
& valueFormatString
/* = "{:d}" */,
1249 int formatLabel
/* = 21469 */,
1250 bool delayed
/* = false */,
1251 bool visible
/* = true */,
1252 int help
/* = -1 */)
1254 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, minimum
, step
, maximum
, "integer", formatLabel
, -1, valueFormatString
, delayed
, visible
, help
);
1257 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddRange(const SettingGroupPtr
& group
,
1258 const std::string
& id
,
1266 int valueFormatLabel
,
1267 int formatLabel
/* = 21469 */,
1268 bool delayed
/* = false */,
1269 bool visible
/* = true */,
1270 int help
/* = -1 */)
1272 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, minimum
, step
, maximum
, "number", formatLabel
, valueFormatLabel
, "", delayed
, visible
, help
);
1275 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddRange(
1276 const SettingGroupPtr
& group
,
1277 const std::string
& id
,
1285 const std::string
& valueFormatString
/* = "{:.1f}" */,
1286 int formatLabel
/* = 21469 */,
1287 bool delayed
/* = false */,
1288 bool visible
/* = true */,
1289 int help
/* = -1 */)
1291 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, minimum
, step
, maximum
, "number", formatLabel
, -1, valueFormatString
, delayed
, visible
, help
);
1294 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddDateRange(
1295 const SettingGroupPtr
& group
,
1296 const std::string
& id
,
1304 int valueFormatLabel
,
1305 int formatLabel
/* = 21469 */,
1306 bool delayed
/* = false */,
1307 bool visible
/* = true */,
1308 int help
/* = -1 */)
1310 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, minimum
, step
, maximum
, "date", formatLabel
, valueFormatLabel
, "", delayed
, visible
, help
);
1313 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddDateRange(
1314 const SettingGroupPtr
& group
,
1315 const std::string
& id
,
1323 const std::string
& valueFormatString
/* = "" */,
1324 int formatLabel
/* = 21469 */,
1325 bool delayed
/* = false */,
1326 bool visible
/* = true */,
1327 int help
/* = -1 */)
1329 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, minimum
, step
, maximum
, "date", formatLabel
, -1, valueFormatString
, delayed
, visible
, help
);
1332 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddTimeRange(
1333 const SettingGroupPtr
& group
,
1334 const std::string
& id
,
1342 int valueFormatLabel
,
1343 int formatLabel
/* = 21469 */,
1344 bool delayed
/* = false */,
1345 bool visible
/* = true */,
1346 int help
/* = -1 */)
1348 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, minimum
, step
, maximum
, "time", formatLabel
, valueFormatLabel
, "", delayed
, visible
, help
);
1351 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddTimeRange(
1352 const SettingGroupPtr
& group
,
1353 const std::string
& id
,
1361 const std::string
& valueFormatString
/* = "mm:ss" */,
1362 int formatLabel
/* = 21469 */,
1363 bool delayed
/* = false */,
1364 bool visible
/* = true */,
1365 int help
/* = -1 */)
1367 return AddRange(group
, id
, label
, level
, valueLower
, valueUpper
, minimum
, step
, maximum
, "time", formatLabel
, -1, valueFormatString
, delayed
, visible
, help
);
1370 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddRange(
1371 const SettingGroupPtr
& group
,
1372 const std::string
& id
,
1380 const std::string
& format
,
1382 int valueFormatLabel
,
1383 const std::string
& valueFormatString
,
1388 if (group
== NULL
|| id
.empty() || label
< 0 ||
1389 GetSetting(id
) != NULL
)
1392 std::shared_ptr
<CSettingInt
> settingDefinition
= std::make_shared
<CSettingInt
>(id
, GetSettingsManager());
1393 if (settingDefinition
== NULL
)
1396 settingDefinition
->SetMinimum(minimum
);
1397 settingDefinition
->SetStep(step
);
1398 settingDefinition
->SetMaximum(maximum
);
1400 std::shared_ptr
<CSettingList
> setting
= std::make_shared
<CSettingList
>(id
, settingDefinition
, label
, GetSettingsManager());
1401 if (setting
== NULL
)
1404 std::vector
<CVariant
> valueList
;
1405 valueList
.emplace_back(valueLower
);
1406 valueList
.emplace_back(valueUpper
);
1407 SettingList settingValues
;
1408 if (!CSettingUtils::ValuesToList(setting
, valueList
, settingValues
))
1410 // setting the default will also set the actual value on an unchanged setting
1411 setting
->SetDefault(settingValues
);
1413 setting
->SetControl(GetRangeControl(format
, delayed
, formatLabel
, valueFormatLabel
, valueFormatString
));
1414 setting
->SetMinimumItems(2);
1415 setting
->SetMaximumItems(2);
1417 setSettingDetails(setting
, level
, visible
, help
);
1419 group
->AddSetting(setting
);
1423 std::shared_ptr
<CSettingList
> CGUIDialogSettingsManualBase::AddRange(
1424 const SettingGroupPtr
& group
,
1425 const std::string
& id
,
1433 const std::string
& format
,
1435 int valueFormatLabel
,
1436 const std::string
& valueFormatString
,
1441 if (group
== NULL
|| id
.empty() || label
< 0 ||
1442 GetSetting(id
) != NULL
)
1445 std::shared_ptr
<CSettingNumber
> settingDefinition
= std::make_shared
<CSettingNumber
>(id
, GetSettingsManager());
1446 if (settingDefinition
== NULL
)
1449 settingDefinition
->SetMinimum(static_cast<double>(minimum
));
1450 settingDefinition
->SetStep(static_cast<double>(step
));
1451 settingDefinition
->SetMaximum(static_cast<double>(maximum
));
1453 std::shared_ptr
<CSettingList
> setting
= std::make_shared
<CSettingList
>(id
, settingDefinition
, label
, GetSettingsManager());
1454 if (setting
== NULL
)
1457 std::vector
<CVariant
> valueList
;
1458 valueList
.emplace_back(valueLower
);
1459 valueList
.emplace_back(valueUpper
);
1460 SettingList settingValues
;
1461 if (!CSettingUtils::ValuesToList(setting
, valueList
, settingValues
))
1463 // setting the default will also set the actual value on an unchanged setting
1464 setting
->SetDefault(settingValues
);
1466 setting
->SetControl(GetRangeControl(format
, delayed
, formatLabel
, valueFormatLabel
, valueFormatString
));
1467 setting
->SetMinimumItems(2);
1468 setting
->SetMaximumItems(2);
1470 setSettingDetails(setting
, level
, visible
, help
);
1472 group
->AddSetting(setting
);
1476 void CGUIDialogSettingsManualBase::setSettingDetails(const std::shared_ptr
<CSetting
>& setting
,
1481 if (setting
== NULL
)
1484 if (level
< SettingLevel::Basic
)
1485 level
= SettingLevel::Basic
;
1486 else if (level
> SettingLevel::Expert
)
1487 level
= SettingLevel::Expert
;
1489 setting
->SetLevel(level
);
1490 setting
->SetVisible(visible
);
1492 setting
->SetHelp(help
);
1495 std::shared_ptr
<ISettingControl
> CGUIDialogSettingsManualBase::GetCheckmarkControl(bool delayed
/* = false */)
1497 std::shared_ptr
<CSettingControlCheckmark
> control
= std::make_shared
<CSettingControlCheckmark
>();
1498 control
->SetDelayed(delayed
);
1503 std::shared_ptr
<ISettingControl
> CGUIDialogSettingsManualBase::GetTitleControl(bool separatorBelowLabel
/* = true */, bool hideSeparator
/* = false */)
1505 std::shared_ptr
<CSettingControlTitle
> control
= std::make_shared
<CSettingControlTitle
>();
1506 control
->SetSeparatorBelowLabel(separatorBelowLabel
);
1507 control
->SetSeparatorHidden(hideSeparator
);
1512 std::shared_ptr
<ISettingControl
> CGUIDialogSettingsManualBase::GetEditControl(const std::string
&format
, bool delayed
/* = false */, bool hidden
/* = false */, bool verifyNewValue
/* = false */, int heading
/* = -1 */)
1514 std::shared_ptr
<CSettingControlEdit
> control
= std::make_shared
<CSettingControlEdit
>();
1515 if (!control
->SetFormat(format
))
1518 control
->SetDelayed(delayed
);
1519 control
->SetHidden(hidden
);
1520 control
->SetVerifyNewValue(verifyNewValue
);
1521 control
->SetHeading(heading
);
1526 std::shared_ptr
<ISettingControl
> CGUIDialogSettingsManualBase::GetButtonControl(const std::string
&format
, bool delayed
/* = false */, int heading
/* = -1 */, bool hideValue
/* = false */,
1527 bool showInstalledAddons
/* = true */, bool showInstallableAddons
/* = false */, bool showMoreAddons
/* = true */)
1529 std::shared_ptr
<CSettingControlButton
> control
= std::make_shared
<CSettingControlButton
>();
1530 if (!control
->SetFormat(format
))
1533 control
->SetDelayed(delayed
);
1534 control
->SetHeading(heading
);
1535 control
->SetHideValue(hideValue
);
1536 control
->SetShowInstalledAddons(showInstalledAddons
);
1537 control
->SetShowInstallableAddons(showInstallableAddons
);
1538 control
->SetShowMoreAddons(showMoreAddons
);
1543 std::shared_ptr
<ISettingControl
> CGUIDialogSettingsManualBase::GetSpinnerControl(const std::string
&format
, bool delayed
/* = false */, int minimumLabel
/* = -1 */, int formatLabel
/* = -1 */, const std::string
&formatString
/* = "" */)
1545 std::shared_ptr
<CSettingControlSpinner
> control
= std::make_shared
<CSettingControlSpinner
>();
1546 if (!control
->SetFormat(format
))
1549 control
->SetDelayed(delayed
);
1550 if (formatLabel
>= 0)
1551 control
->SetFormatLabel(formatLabel
);
1552 if (!formatString
.empty())
1553 control
->SetFormatString(formatString
);
1554 if (minimumLabel
>= 0)
1555 control
->SetMinimumLabel(minimumLabel
);
1560 std::shared_ptr
<ISettingControl
> CGUIDialogSettingsManualBase::GetListControl(
1561 const std::string
& format
,
1562 bool delayed
/* = false */,
1563 int heading
/* = -1 */,
1564 bool multiselect
/* = false */,
1565 SettingControlListValueFormatter formatter
/* = NULL */,
1566 bool details
/* = false */)
1568 std::shared_ptr
<CSettingControlList
> control
= std::make_shared
<CSettingControlList
>();
1569 if (!control
->SetFormat(format
))
1572 control
->SetDelayed(delayed
);
1573 control
->SetHeading(heading
);
1574 control
->SetMultiSelect(multiselect
);
1575 control
->SetFormatter(formatter
);
1576 control
->SetUseDetails(details
);
1581 std::shared_ptr
<ISettingControl
> CGUIDialogSettingsManualBase::GetSliderControl(const std::string
&format
, bool delayed
/* = false */, int heading
/* = -1 */, bool usePopup
/* = false */,
1582 int formatLabel
/* = -1 */, const std::string
&formatString
/* = "" */)
1584 std::shared_ptr
<CSettingControlSlider
> control
= std::make_shared
<CSettingControlSlider
>();
1585 if (!control
->SetFormat(format
))
1588 control
->SetDelayed(delayed
);
1590 control
->SetHeading(heading
);
1591 control
->SetPopup(usePopup
);
1592 if (formatLabel
>= 0)
1593 control
->SetFormatLabel(formatLabel
);
1594 if (!formatString
.empty())
1595 control
->SetFormatString(formatString
);
1600 std::shared_ptr
<ISettingControl
> CGUIDialogSettingsManualBase::GetRangeControl(const std::string
&format
, bool delayed
/* = false */, int formatLabel
/* = -1 */,
1601 int valueFormatLabel
/* = -1 */, const std::string
&valueFormatString
/* = "" */)
1603 std::shared_ptr
<CSettingControlRange
> control
= std::make_shared
<CSettingControlRange
>();
1604 if (!control
->SetFormat(format
))
1607 control
->SetDelayed(delayed
);
1608 if (formatLabel
>= 0)
1609 control
->SetFormatLabel(formatLabel
);
1610 if (valueFormatLabel
>= 0)
1611 control
->SetValueFormatLabel(valueFormatLabel
);
1612 if (!valueFormatString
.empty())
1613 control
->SetValueFormat(valueFormatString
);