kodi
GUIDialogNetworkSetup.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 "settings/dialogs/GUIDialogSettingsManualBase.h"
12 
14 {
15 public:
17  struct Protocol
18  {
19  bool supportPath;
22  bool supportPort;
25  std::string type;
26  int label;
27  std::string addonId;
28  };
29 
31  ~CGUIDialogNetworkSetup(void) override;
32  bool OnMessage(CGUIMessage& message) override;
33  bool OnBack(int actionID) override;
34  void OnInitWindow() override;
35  void OnDeinitWindow(int nextWindowID) override;
36 
37  static bool ShowAndGetNetworkAddress(std::string &path);
38 
39  std::string ConstructPath() const;
40  bool SetPath(const std::string &path);
41  bool IsConfirmed() const override { return m_confirmed; }
42 
43 protected:
44  // implementations of ISettingCallback
45  void OnSettingChanged(const std::shared_ptr<const CSetting>& setting) override;
46  void OnSettingAction(const std::shared_ptr<const CSetting>& setting) override;
47 
48  // specialization of CGUIDialogSettingsBase
49  bool AllowResettingSettings() const override { return false; }
50  bool Save() override { return true; }
51  void SetupView() override;
52 
53  // specialization of CGUIDialogSettingsManualBase
54  void InitializeSettings() override;
55 
56  void OnProtocolChange();
57  void OnServerBrowse();
58  void OnOK();
59  void OnCancel() override;
60  void UpdateButtons();
61  void Reset();
62 
63  void UpdateAvailableProtocols();
64 
65  int m_protocol;
66  std::vector<Protocol> m_protocols;
67  std::string m_server;
68  std::string m_path;
69  std::string m_username;
70  std::string m_password;
71  std::string m_port;
72 
73  bool m_confirmed;
74 };
int label
String ID to use as label in dialog.
Definition: GUIDialogNetworkSetup.h:26
std::string addonId
Addon identifier, leaved empty if inside Kodi.
Definition: GUIDialogNetworkSetup.h:27
bool supportPassword
Protocol supports passwords.
Definition: GUIDialogNetworkSetup.h:21
std::string type
URL type for protocol.
Definition: GUIDialogNetworkSetup.h:25
bool supportPath
Protocol has path in addition to server name.
Definition: GUIDialogNetworkSetup.h:19
std::vector< Protocol > m_protocols
List of available protocols.
Definition: GUIDialogNetworkSetup.h:66
A structure encapsulating properties of a supported protocol.
Definition: GUIDialogNetworkSetup.h:17
void OnInitWindow() override
Called on window open.
Definition: GUIDialogNetworkSetup.cpp:143
int defaultPort
Default port to use for protocol.
Definition: GUIDialogNetworkSetup.h:24
void OnSettingAction(const std::shared_ptr< const CSetting > &setting) override
The given setting has been activated.
Definition: GUIDialogNetworkSetup.cpp:112
Definition: GUIMessage.h:365
bool supportUsername
Protocol uses logins.
Definition: GUIDialogNetworkSetup.h:20
bool supportPort
Protocol supports port customization.
Definition: GUIDialogNetworkSetup.h:22
void OnSettingChanged(const std::shared_ptr< const CSetting > &setting) override
The value of the given setting has changed.
Definition: GUIDialogNetworkSetup.cpp:83
bool supportBrowsing
Protocol supports server browsing.
Definition: GUIDialogNetworkSetup.h:23
Definition: GUIDialogNetworkSetup.h:13
int m_protocol
Currently selected protocol.
Definition: GUIDialogNetworkSetup.h:65
Definition: GUIDialogSettingsManualBase.h:37