Further changes to address bar

This commit is contained in:
Niraj Venkat 2015-06-18 17:35:50 -07:00
parent 55b6efb1e9
commit 894a245318
3 changed files with 38 additions and 29 deletions

View file

@ -31,11 +31,6 @@ DialogContainer {
property int maximumY: parent ? parent.height - height : 0 property int maximumY: parent ? parent.height - height : 0
function myQmlFunction(msg) {
console.log("Got message:", msg)
return "some return value"
}
AddressBarDialog { AddressBarDialog {
id: addressBarDialog id: addressBarDialog
@ -54,7 +49,7 @@ DialogContainer {
Image { Image {
id: backArrow id: backArrow
source: "../images/left-arrow.svg" source: addressBarDialog.backEnabled ? "../images/left-arrow.svg" : "../images/redarrow.svg"
anchors { anchors {
fill: parent fill: parent
@ -72,18 +67,22 @@ DialogContainer {
} }
} }
//onBackEnabledChanged: { parent.source: "../images/redarrow.svg" }
/*
Connections { Connections {
target: addressBarDialog target: backArrow
onGoBackPossible: { onBackState: {
console.log("BACK") parent.source: "../images/redarrow.svg"
} }
} }*/
} }
Image { Image {
id: forwardArrow id: forwardArrow
source: "../images/darkgreyarrow.svg" source: addressBarDialog.forwardEnabled ? "../images/darkgreyarrow.svg" : "../images/redarrow.svg"
anchors { anchors {
fill: parent fill: parent
@ -101,12 +100,15 @@ DialogContainer {
} }
} }
//onForwardEnabledChanged: { parent.source: "../images/redarrow.svg" }
/*
Connections { Connections {
target: addressBarDialog target: forwardArrow
onGoForwardPossible: { onForwardState: {
console.log("FORWARD") parent.source: "../images/redarrow.svg"
} }
} }*/
} }
TextInput { TextInput {

View file

@ -16,6 +16,8 @@
#include "AddressManager.h" #include "AddressManager.h"
HIFI_QML_DEF(AddressBarDialog) HIFI_QML_DEF(AddressBarDialog)
Q_PROPERTY(bool backEnabled READ backEnabled CHANGED backEnabledChanged)
Q_PROPERTY(bool forwardEnabled READ forwardEnabled CHANGED forwardEnabledChanged)
AddressBarDialog::AddressBarDialog(QQuickItem* parent) : OffscreenQmlDialog(parent) { AddressBarDialog::AddressBarDialog(QQuickItem* parent) : OffscreenQmlDialog(parent) {
auto addressManager = DependencyManager::get<AddressManager>(); auto addressManager = DependencyManager::get<AddressManager>();
@ -24,6 +26,8 @@ AddressBarDialog::AddressBarDialog(QQuickItem* parent) : OffscreenQmlDialog(pare
connect(addressManager.data(), &AddressManager::lookupResultsFinished, this, &AddressBarDialog::hide); connect(addressManager.data(), &AddressManager::lookupResultsFinished, this, &AddressBarDialog::hide);
connect(addressManager.data(), &AddressManager::goBackPossible, this, &AddressBarDialog::changeBackAlpha); connect(addressManager.data(), &AddressManager::goBackPossible, this, &AddressBarDialog::changeBackAlpha);
connect(addressManager.data(), &AddressManager::goForwardPossible, this, &AddressBarDialog::changeForwardAlpha); connect(addressManager.data(), &AddressManager::goForwardPossible, this, &AddressBarDialog::changeForwardAlpha);
_backEnabled = false;
_forwardEnabled = false;
} }
void AddressBarDialog::hide() { void AddressBarDialog::hide() {
@ -33,25 +37,19 @@ void AddressBarDialog::hide() {
void AddressBarDialog::changeBackAlpha(bool isPossible) { void AddressBarDialog::changeBackAlpha(bool isPossible) {
if (isPossible) qDebug() << "Back is possible"; if (isPossible) qDebug() << "Back is possible";
else qDebug() << "Back is not possible"; else qDebug() << "Back is not possible";
if (isPossible != _backEnabled) {
_backEnabled = isPossible;
emit backEnabledChanged();
}
} }
void AddressBarDialog::changeForwardAlpha(bool isPossible) { void AddressBarDialog::changeForwardAlpha(bool isPossible) {
if (isPossible) qDebug() << "Forward is possible"; if (isPossible) qDebug() << "Forward is possible";
else qDebug() << "Forward is not possible"; else qDebug() << "Forward is not possible";
if (isPossible != _forwardEnabled) {
QQmlEngine engine; _forwardEnabled = isPossible;
QQmlComponent component(&engine, "AddressBarDialog.qml"); emit forwardEnabledChanged();
QObject *object = component.create(); }
qDebug() << "Current parent's child : " << ((QQuickItem*)parent())->children()[0]->objectName();
QVariant returnedValue;
QVariant msg = "Hello from C++";
QMetaObject::invokeMethod(object, "myQmlFunction",
Q_RETURN_ARG(QVariant, returnedValue),
Q_ARG(QVariant, msg));
qDebug() << "QML function returned:" << returnedValue.toString();
delete object;;
} }
void AddressBarDialog::loadAddress(const QString& address) { void AddressBarDialog::loadAddress(const QString& address) {

View file

@ -21,6 +21,12 @@ class AddressBarDialog : public OffscreenQmlDialog
public: public:
AddressBarDialog(QQuickItem* parent = nullptr); AddressBarDialog(QQuickItem* parent = nullptr);
bool backEnabled() { return _backEnabled; }
bool forwardEnabled() { return _forwardEnabled; }
signals:
void backEnabledChanged();
void forwardEnabledChanged();
protected: protected:
void displayAddressOfflineMessage(); void displayAddressOfflineMessage();
@ -32,6 +38,9 @@ protected:
Q_INVOKABLE void loadAddress(const QString& address); Q_INVOKABLE void loadAddress(const QString& address);
Q_INVOKABLE void loadBack(); Q_INVOKABLE void loadBack();
Q_INVOKABLE void loadForward(); Q_INVOKABLE void loadForward();
bool _backEnabled;
bool _forwardEnabled;
}; };
#endif #endif