1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-18 08:54:15 +01:00

Forgot a small change to make sure that in case the request times out, we get an error.

This commit is contained in:
elafargue 2011-04-26 00:53:37 +02:00
parent ce6987ffab
commit 921fe640a8
2 changed files with 22 additions and 0 deletions

View File

@ -121,6 +121,7 @@ void ConfigPlugin::eraseAllSettings()
if (msgBox.exec() != QMessageBox::Ok)
return;
settingsErased = false;
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager * objMngr = pm->getObject<UAVObjectManager>();
Q_ASSERT(objMngr);
@ -132,9 +133,27 @@ void ConfigPlugin::eraseAllSettings()
data.Selection = ObjectPersistence::SELECTION_ALLSETTINGS;
objper->setData(data);
objper->updated();
QTimer::singleShot(1500,this,SLOT(eraseFailed()));
}
void ConfigPlugin::eraseFailed()
{
if (settingsErased)
return;
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager * objMngr = pm->getObject<UAVObjectManager>();
Q_ASSERT(objMngr);
ObjectPersistence* objper = dynamic_cast<ObjectPersistence*>( objMngr->getObject(ObjectPersistence::NAME));
disconnect(objper, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(eraseDone(UAVObject *)));
QMessageBox msgBox;
msgBox.setText(tr("Error trying to erase settings."));
msgBox.setInformativeText(tr("Power-cycle your board. Settings might be inconsistent."));
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.setDefaultButton(QMessageBox::Ok);
msgBox.exec();
}
void ConfigPlugin::eraseDone(UAVObject * obj)
{
QMessageBox msgBox;
@ -147,6 +166,7 @@ void ConfigPlugin::eraseDone(UAVObject * obj)
disconnect(objper, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(eraseDone(UAVObject *)));
if (obj->getField("Operation")->getValue().toString().compare(QString("Completed")) == 0) {
settingsErased = true;
msgBox.setText(tr("Settings erased."));
msgBox.setInformativeText(tr("Please now power-cycle your board to complete reset."));
} else {

View File

@ -57,10 +57,12 @@ private slots:
void onAutopilotConnect();
void onAutopilotDisconnect();
void eraseDone(UAVObject *);
void eraseFailed();
private:
ConfigGadgetFactory *cf;
Core::Command* cmd;
bool settingsErased;
};