Overte C++ Documentation
AddressBarDialog.h
1 //
2 // AddressBarDialog.h
3 // interface/src/ui
4 //
5 // Created by Bradley Austin Davis on 2015/04/14
6 // Copyright 2015 High Fidelity, Inc.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 #pragma once
13 #ifndef hifi_AddressBarDialog_h
14 #define hifi_AddressBarDialog_h
15 
16 #include <OffscreenQmlDialog.h>
17 #include <NetworkingConstants.h>
18 #include <MetaverseAPI.h>
19 
20 class AddressBarDialog : public OffscreenQmlDialog {
21  Q_OBJECT
22  HIFI_QML_DECL
23  Q_PROPERTY(bool backEnabled READ backEnabled NOTIFY backEnabledChanged)
24  Q_PROPERTY(bool forwardEnabled READ forwardEnabled NOTIFY forwardEnabledChanged)
25  Q_PROPERTY(bool useFeed READ useFeed WRITE setUseFeed NOTIFY useFeedChanged)
26  Q_PROPERTY(QString metaverseServerUrl READ metaverseServerUrl CONSTANT)
27 
28 public:
29  AddressBarDialog(QQuickItem* parent = nullptr);
30  bool backEnabled() { return _backEnabled; }
31  bool forwardEnabled() { return _forwardEnabled; }
32  bool useFeed() { return _useFeed; }
33  void setUseFeed(bool useFeed) { if (_useFeed != useFeed) { _useFeed = useFeed; emit useFeedChanged(); } }
34  QString metaverseServerUrl() { return MetaverseAPI::getCurrentMetaverseServerURL().toString(); }
35 
36 signals:
37  void backEnabledChanged();
38  void forwardEnabledChanged();
39  void useFeedChanged();
40  void hostChanged();
41 
42 protected:
43  void displayAddressOfflineMessage();
44  void displayAddressNotFoundMessage();
45 
46  Q_INVOKABLE void loadAddress(const QString& address, bool fromSuggestions = false);
47  Q_INVOKABLE void loadHome();
48  Q_INVOKABLE void loadBack();
49  Q_INVOKABLE void loadForward();
50  Q_INVOKABLE void observeShownChanged(bool visible);
51 
52  bool _backEnabled;
53  bool _forwardEnabled;
54  bool _useFeed { false };
55 };
56 
57 #endif