Browse Source

workaround for exchange bug

pull/2/head
Skycoder42 7 years ago
parent
commit
b84ea3b2a1
No known key found for this signature in database GPG Key ID: 8E01AD9EF0578D2B
  1. 20
      src/mvvmdatasynccore/networkexchangeviewmodel.cpp
  2. 5
      src/mvvmdatasynccore/networkexchangeviewmodel.h
  3. 2
      src/mvvmdatasynccore/networkexchangeviewmodel_p.h
  4. 3
      src/mvvmdatasyncwidgets/networkexchangewindow.cpp

20
src/mvvmdatasynccore/networkexchangeviewmodel.cpp

@ -64,9 +64,14 @@ QString NetworkExchangeViewModel::deviceName() const
QString(); QString();
} }
bool NetworkExchangeViewModel::isActive() const
{
return d->exchangeManager && d->active; //... d->exchangeManager->isActive();
}
bool NetworkExchangeViewModel::active() const bool NetworkExchangeViewModel::active() const
{ {
return d->exchangeManager && d->exchangeManager->isActive(); return isActive();
} }
ExchangeDevicesModel *NetworkExchangeViewModel::deviceModel() const ExchangeDevicesModel *NetworkExchangeViewModel::deviceModel() const
@ -115,11 +120,14 @@ void NetworkExchangeViewModel::setDeviceName(QString deviceName)
void NetworkExchangeViewModel::setActive(bool active) void NetworkExchangeViewModel::setActive(bool active)
{ {
if(active != this->active()) { if(active != isActive()) {
if(active) if(active)
d->exchangeManager->startExchange(d->port); d->active = d->exchangeManager->startExchange(d->port);
else else {
d->exchangeManager->stopExchange(); d->exchangeManager->stopExchange();
d->active = false;
}
emit activeChanged(d->active, {});
} }
} }
@ -140,8 +148,8 @@ void NetworkExchangeViewModel::onInit(const QVariantHash &params)
this, &NetworkExchangeViewModel::newUserData); this, &NetworkExchangeViewModel::newUserData);
connect(d->exchangeManager, &UserExchangeManager::exchangeError, connect(d->exchangeManager, &UserExchangeManager::exchangeError,
this, &NetworkExchangeViewModel::exchangeError); this, &NetworkExchangeViewModel::exchangeError);
connect(d->exchangeManager, &UserExchangeManager::activeChanged, // connect(d->exchangeManager, &UserExchangeManager::activeChanged,
this, PSIGARG(&NetworkExchangeViewModel::activeChanged, bool)); // this, PSIGARG(&NetworkExchangeViewModel::activeChanged, bool));
emit userExchangeManagerChanged(d->exchangeManager, {}); emit userExchangeManagerChanged(d->exchangeManager, {});
emit deviceNameChanged(deviceName(), {}); emit deviceNameChanged(deviceName(), {});

5
src/mvvmdatasynccore/networkexchangeviewmodel.h

@ -26,7 +26,7 @@ class Q_MVVMDATASYNCCORE_EXPORT NetworkExchangeViewModel : public ViewModel
//! The name of your current device //! The name of your current device
Q_PROPERTY(QString deviceName READ deviceName WRITE setDeviceName NOTIFY deviceNameChanged) Q_PROPERTY(QString deviceName READ deviceName WRITE setDeviceName NOTIFY deviceNameChanged)
//! Start or stop the network exchange //! 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 //! The devices model to be used to display found exchange devices
Q_PROPERTY(ExchangeDevicesModel* deviceModel READ deviceModel CONSTANT) Q_PROPERTY(ExchangeDevicesModel* deviceModel READ deviceModel CONSTANT)
@ -55,7 +55,8 @@ public:
//! @readAcFn{NetworkExchangeViewModel::deviceName} //! @readAcFn{NetworkExchangeViewModel::deviceName}
QString deviceName() const; QString deviceName() const;
//! @readAcFn{NetworkExchangeViewModel::active} //! @readAcFn{NetworkExchangeViewModel::active}
bool active() const; bool isActive() const;
Q_DECL_DEPRECATED bool active() const;
//! @readAcFn{NetworkExchangeViewModel::deviceModel} //! @readAcFn{NetworkExchangeViewModel::deviceModel}
ExchangeDevicesModel* deviceModel() const; ExchangeDevicesModel* deviceModel() const;
//! @readAcFn{NetworkExchangeViewModel::sortedModel} //! @readAcFn{NetworkExchangeViewModel::sortedModel}

2
src/mvvmdatasynccore/networkexchangeviewmodel_p.h

@ -20,6 +20,8 @@ public:
QSortFilterProxyModel *sortedModel; QSortFilterProxyModel *sortedModel;
quint16 port = QtDataSync::UserExchangeManager::DataExchangePort; quint16 port = QtDataSync::UserExchangeManager::DataExchangePort;
QHash<quint32, QtDataSync::UserInfo> activeExports; QHash<quint32, QtDataSync::UserInfo> activeExports;
bool active = false; //TODO remove once fixed in datasync
}; };
} }

3
src/mvvmdatasyncwidgets/networkexchangewindow.cpp

@ -20,8 +20,7 @@ NetworkExchangeWindow::NetworkExchangeWindow(ViewModel *viewModel, QWidget *pare
Binding::TwoWay, Binding::TwoWay,
nullptr, "editingFinished()"); nullptr, "editingFinished()");
bind(d->viewModel, "active", bind(d->viewModel, "active",
d->ui->exchangeCheckBox, "checked", d->ui->exchangeCheckBox, "checked");
Binding::OneWayToViewModel);
d->ui->treeView->setModel(d->viewModel->sortedModel()); d->ui->treeView->setModel(d->viewModel->sortedModel());
} }

Loading…
Cancel
Save