From e6c8ffe793d20f8d2d959b74ae62f15886c5e3cb Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Fri, 7 Jun 2019 14:25:34 +0200 Subject: [PATCH] Add loaded state --- src/qt/main.qml | 1 + src/qt/oboy.cpp | 10 ++++++++-- src/qt/oboy.h | 8 ++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/qt/main.qml b/src/qt/main.qml index 0f523b7..168b195 100644 --- a/src/qt/main.qml +++ b/src/qt/main.qml @@ -57,6 +57,7 @@ ApplicationWindow { MainForm { anchors.fill: parent openButton.onClicked: fileDialog.open() + openButton.text: oboy.loaded ? "Loaded" : "Open ROM" } MessageDialog { diff --git a/src/qt/oboy.cpp b/src/qt/oboy.cpp index 09d8ded..0575eee 100644 --- a/src/qt/oboy.cpp +++ b/src/qt/oboy.cpp @@ -62,7 +62,13 @@ bool OBoy::load(const QString &path) ocaml_path = caml_copy_string_of_os(ba.data()); - const bool success = Bool_val(caml_callback(*closure_f, ocaml_path)); + _loaded = Bool_val(caml_callback(*closure_f, ocaml_path)); + this->loadedChanged(_loaded); CAMLdrop; - return success; + return _loaded; +} + +bool OBoy::loaded() const +{ + return _loaded; } diff --git a/src/qt/oboy.h b/src/qt/oboy.h index 5a67932..0f9c852 100644 --- a/src/qt/oboy.h +++ b/src/qt/oboy.h @@ -7,10 +7,18 @@ class OBoy : public QObject Q_OBJECT Q_PROPERTY(QString name READ name CONSTANT) Q_PROPERTY(QString version READ version CONSTANT) + Q_PROPERTY(bool loaded READ loaded NOTIFY loadedChanged) public: explicit OBoy(QObject *parent = nullptr); QString name() const; QString version() const; + bool loaded() const; Q_INVOKABLE bool load(const QString &path); + +signals: + void loadedChanged(bool loaded); + +private: + bool _loaded = false; };