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()); }
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)); }