示例#1
0
/*
   Saves every checked UAVObjet in the list to Flash
 */
void ImportSummaryDialog::doTheSaving()
{
    int itemCount = 0;
    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
    UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
    UAVObjectUtilManager *utilManager  = pm->getObject<UAVObjectUtilManager>();

    connect(utilManager, SIGNAL(saveCompleted(int, bool)), this, SLOT(updateSaveCompletion()));

    for (int i = 0; i < ui->importSummaryList->rowCount(); i++) {
        QCheckBox *box = dynamic_cast<QCheckBox *>(ui->importSummaryList->cellWidget(i, 0));
        if (box->isChecked()) {
            ++itemCount;
        }
    }
    if (itemCount == 0) {
        return;
    }
    ui->progressBar->setMaximum(itemCount + 1);
    ui->progressBar->setValue(1);
    for (int i = 0; i < ui->importSummaryList->rowCount(); i++) {
        QString uavObjectName = ui->importSummaryList->item(i, 1)->text();
        QCheckBox *box = dynamic_cast<QCheckBox *>(ui->importSummaryList->cellWidget(i, 0));
        if (box->isChecked()) {
            UAVObject *obj = objManager->getObject(uavObjectName);
            utilManager->saveObjectToSD(obj);
            this->repaint();
        }
    }

    ui->saveToFlash->setEnabled(false);
    ui->closeButton->setEnabled(false);
}
void ConfigTaskWidget::saveObjectToSD(UAVObject *obj)
{
    // saveObjectToSD is now handled by the UAVUtils plugin in one
    // central place (and one central queue)
    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
    UAVObjectUtilManager* utilMngr = pm->getObject<UAVObjectUtilManager>();
    utilMngr->saveObjectToSD(obj);
}