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