blob: c0d7c81942ccc95425675b78d715e15024867830 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
/*
* Copyright (C) 2005-2018 Team Kodi
* This file is part of Kodi - https://kodi.tv
*
* SPDX-License-Identifier: GPL-2.0-or-later
* See LICENSES/README.md for more information.
*/
#pragma once
#include "addons/Scraper.h"
#include "settings/dialogs/GUIDialogSettingsManualBase.h"
#include <map>
#include <utility>
namespace VIDEO
{
struct SScanSettings;
}
class CFileItemList;
class CGUIDialogContentSettings : public CGUIDialogSettingsManualBase
{
public:
CGUIDialogContentSettings();
// specialization of CGUIWindow
bool HasListItems() const override { return true; }
CONTENT_TYPE GetContent() const { return m_content; }
void SetContent(CONTENT_TYPE content);
void ResetContent();
const ADDON::ScraperPtr& GetScraper() const { return m_scraper; }
void SetScraper(ADDON::ScraperPtr scraper) { m_scraper = std::move(scraper); }
void SetScanSettings(const VIDEO::SScanSettings &scanSettings);
bool GetScanRecursive() const { return m_scanRecursive; }
bool GetUseDirectoryNames() const { return m_useDirectoryNames; }
bool GetContainsSingleItem() const { return m_containsSingleItem; }
bool GetExclude() const { return m_exclude; }
bool GetNoUpdating() const { return m_noUpdating; }
bool GetUseAllExternalAudio() const { return m_allExternalAudio; }
static bool Show(ADDON::ScraperPtr& scraper, CONTENT_TYPE content = CONTENT_NONE);
static bool Show(ADDON::ScraperPtr& scraper, VIDEO::SScanSettings& settings, CONTENT_TYPE content = CONTENT_NONE);
protected:
// specializations of CGUIWindow
void OnInitWindow() override;
// implementations of ISettingCallback
void OnSettingChanged(const std::shared_ptr<const CSetting>& setting) override;
void OnSettingAction(const std::shared_ptr<const CSetting>& setting) override;
// specialization of CGUIDialogSettingsBase
bool AllowResettingSettings() const override { return false; }
bool Save() override;
void SetupView() override;
// specialization of CGUIDialogSettingsManualBase
void InitializeSettings() override;
private:
void SetLabel2(const std::string &settingid, const std::string &label);
void ToggleState(const std::string &settingid, bool enabled);
using CGUIDialogSettingsManualBase::SetFocus;
void SetFocusToSetting(const std::string& settingid);
/*!
* @brief The currently selected content type
*/
CONTENT_TYPE m_content = CONTENT_NONE;
/*!
* @brief The selected content type at dialog creation
*/
CONTENT_TYPE m_originalContent = CONTENT_NONE;
/*!
* @brief The currently selected scraper
*/
ADDON::ScraperPtr m_scraper;
bool m_showScanSettings = false;
bool m_scanRecursive = false;
bool m_useDirectoryNames = false;
bool m_containsSingleItem = false;
bool m_exclude = false;
bool m_noUpdating = false;
bool m_allExternalAudio = false;
};
|