示例#1
0
static void
OnInsertInTaskClicked(gcc_unused WndButton &button)
{
  switch (insert_in_task(*selected_waypoint)) {
  case SUCCESS:
    protected_task_manager.task_save_default();
    wf->SetModalResult(mrOK);
    break;

  case UNMODIFIED:
  case INVALID:
    MessageBoxX(_("Task would not be valid after the change."), _("Error"),
                MB_OK | MB_ICONEXCLAMATION);
    break;
  }
}
示例#2
0
static task_edit_result
insert_in_task(const Waypoint &wp)
{
  assert(protected_task_manager != NULL);
  ProtectedTaskManager::ExclusiveLease task_manager(*protected_task_manager);
  TaskEvents task_events;
  GlidePolar glide_polar(task_manager->get_glide_polar());
  OrderedTask *task = task_manager->clone(task_events,
                                          XCSoarInterface::SettingsComputer(),
                                          glide_polar);

  task_edit_result result = insert_in_task(task, wp);
  if (result == SUCCESS)
    task_manager->commit(*task);

  delete task;
  return result;
}