diff --git a/src/mvvmdatasynccore/networkexchangeviewmodel.cpp b/src/mvvmdatasynccore/networkexchangeviewmodel.cpp index 60b97ab..7331e6d 100644 --- a/src/mvvmdatasynccore/networkexchangeviewmodel.cpp +++ b/src/mvvmdatasynccore/networkexchangeviewmodel.cpp @@ -64,9 +64,14 @@ QString NetworkExchangeViewModel::deviceName() const QString(); } +bool NetworkExchangeViewModel::isActive() const +{ + return d->exchangeManager && d->active; //... d->exchangeManager->isActive(); +} + bool NetworkExchangeViewModel::active() const { - return d->exchangeManager && d->exchangeManager->isActive(); + return isActive(); } ExchangeDevicesModel *NetworkExchangeViewModel::deviceModel() const @@ -115,11 +120,14 @@ void NetworkExchangeViewModel::setDeviceName(QString deviceName) void NetworkExchangeViewModel::setActive(bool active) { - if(active != this->active()) { + if(active != isActive()) { if(active) - d->exchangeManager->startExchange(d->port); - else + d->active = d->exchangeManager->startExchange(d->port); + else { d->exchangeManager->stopExchange(); + d->active = false; + } + emit activeChanged(d->active, {}); } } @@ -140,8 +148,8 @@ void NetworkExchangeViewModel::onInit(const QVariantHash ¶ms) this, &NetworkExchangeViewModel::newUserData); connect(d->exchangeManager, &UserExchangeManager::exchangeError, this, &NetworkExchangeViewModel::exchangeError); - connect(d->exchangeManager, &UserExchangeManager::activeChanged, - this, PSIGARG(&NetworkExchangeViewModel::activeChanged, bool)); +// connect(d->exchangeManager, &UserExchangeManager::activeChanged, +// this, PSIGARG(&NetworkExchangeViewModel::activeChanged, bool)); emit userExchangeManagerChanged(d->exchangeManager, {}); emit deviceNameChanged(deviceName(), {}); diff --git a/src/mvvmdatasynccore/networkexchangeviewmodel.h b/src/mvvmdatasynccore/networkexchangeviewmodel.h index 1a878bd..4449b02 100644 --- a/src/mvvmdatasynccore/networkexchangeviewmodel.h +++ b/src/mvvmdatasynccore/networkexchangeviewmodel.h @@ -26,7 +26,7 @@ class Q_MVVMDATASYNCCORE_EXPORT NetworkExchangeViewModel : public ViewModel //! The name of your current device Q_PROPERTY(QString deviceName READ deviceName WRITE setDeviceName NOTIFY deviceNameChanged) //! Start or stop the network exchange - Q_PROPERTY(bool active READ active WRITE setActive NOTIFY activeChanged) + Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) //! The devices model to be used to display found exchange devices Q_PROPERTY(ExchangeDevicesModel* deviceModel READ deviceModel CONSTANT) @@ -55,7 +55,8 @@ public: //! @readAcFn{NetworkExchangeViewModel::deviceName} QString deviceName() const; //! @readAcFn{NetworkExchangeViewModel::active} - bool active() const; + bool isActive() const; + Q_DECL_DEPRECATED bool active() const; //! @readAcFn{NetworkExchangeViewModel::deviceModel} ExchangeDevicesModel* deviceModel() const; //! @readAcFn{NetworkExchangeViewModel::sortedModel} diff --git a/src/mvvmdatasynccore/networkexchangeviewmodel_p.h b/src/mvvmdatasynccore/networkexchangeviewmodel_p.h index 0cf175c..bf4efee 100644 --- a/src/mvvmdatasynccore/networkexchangeviewmodel_p.h +++ b/src/mvvmdatasynccore/networkexchangeviewmodel_p.h @@ -20,6 +20,8 @@ public: QSortFilterProxyModel *sortedModel; quint16 port = QtDataSync::UserExchangeManager::DataExchangePort; QHash activeExports; + + bool active = false; //TODO remove once fixed in datasync }; } diff --git a/src/mvvmdatasyncwidgets/networkexchangewindow.cpp b/src/mvvmdatasyncwidgets/networkexchangewindow.cpp index f7b94a9..666222b 100644 --- a/src/mvvmdatasyncwidgets/networkexchangewindow.cpp +++ b/src/mvvmdatasyncwidgets/networkexchangewindow.cpp @@ -20,8 +20,7 @@ NetworkExchangeWindow::NetworkExchangeWindow(ViewModel *viewModel, QWidget *pare Binding::TwoWay, nullptr, "editingFinished()"); bind(d->viewModel, "active", - d->ui->exchangeCheckBox, "checked", - Binding::OneWayToViewModel); + d->ui->exchangeCheckBox, "checked"); d->ui->treeView->setModel(d->viewModel->sortedModel()); }