Пример #1
0
void SaveMaskCommand::onExecute(Context* context)
{
  const ContextReader reader(context);
  const Document* document(reader.document());
  std::string filename = "default.msk";
  int ret;

  for (;;) {
    filename = app::show_file_selector("Save .msk File", filename, "msk");
    if (filename.empty())
      return;

    /* does the file exist? */
    if (exists(filename.c_str())) {
      /* ask if the user wants overwrite the file? */
      ret = ui::Alert::show("Warning<<File exists, overwrite it?<<%s||&Yes||&No||&Cancel",
                            get_filename(filename.c_str()));
    }
    else
      break;

    /* "yes": we must continue with the operation... */
    if (ret == 1)
      break;
    /* "cancel" or <esc> per example: we back doing nothing */
    else if (ret != 2)
      return;

    /* "no": we must back to select other file-name */
  }

  if (save_msk_file(document->mask(), filename.c_str()) != 0)
    ui::Alert::show("Error<<Error saving .msk file<<%s||&Close", filename.c_str());
}
Пример #2
0
void SaveMaskCommand::onExecute(Context* context)
{
  const ContextReader reader(context);
  const Doc* document(reader.document());

  base::paths exts = { "msk" };
  base::paths selFilename;
  if (!app::show_file_selector(
        "Save .msk File", "default.msk", exts,
        FileSelectorType::Save, selFilename))
    return;

  std::string filename = selFilename.front();

  if (save_msk_file(document->mask(), filename.c_str()) != 0)
    ui::Alert::show(fmt::format(Strings::alerts_error_saving_file(), filename));
}