MCPcopy Create free account
hub / github.com/PlotJuggler/PlotJuggler / getSaveFileNameWithOptions

Method getSaveFileNameWithOptions

pj_widgets/src/FileDialog.cpp:239–276  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

237}
238
239FileDialog::SaveResult FileDialog::getSaveFileNameWithOptions(
240 QWidget* parent, const QString& caption, const QString& dir, const QString& filter, const QString& default_suffix,
241 const std::vector<ExtraOption>& extras) {
242 FileDialog dlg(parent);
243 if (!caption.isEmpty()) {
244 dlg.setDialogTitle(caption);
245 }
246 dlg.setAcceptMode(QFileDialog::AcceptSave);
247 dlg.setFileMode(QFileDialog::AnyFile);
248 if (!dir.isEmpty()) {
249 dlg.setDirectory(dir);
250 }
251 if (!filter.isEmpty()) {
252 dlg.setNameFilter(filter);
253 }
254 if (!default_suffix.isEmpty()) {
255 dlg.setDefaultSuffix(default_suffix);
256 }
257 auto boxes = dlg.embedExtras(extras);
258
259 SaveResult result;
260 result.option_states.assign(extras.size(), false);
261 for (std::size_t i = 0; i < extras.size(); ++i) {
262 result.option_states[i] = extras[i].default_checked;
263 }
264
265 if (dlg.exec() != QDialog::Accepted) {
266 return result; // empty path; option_states left at defaults
267 }
268 const QStringList selected = dlg.selectedFiles();
269 if (!selected.isEmpty()) {
270 result.path = selected.first();
271 }
272 for (std::size_t i = 0; i < boxes.size(); ++i) {
273 result.option_states[i] = boxes[i]->isChecked();
274 }
275 return result;
276}
277
278} // namespace PJ

Callers

nothing calls this directly

Calls 11

setDialogTitleMethod · 0.80
setAcceptModeMethod · 0.80
setFileModeMethod · 0.80
setDirectoryMethod · 0.80
setNameFilterMethod · 0.80
setDefaultSuffixMethod · 0.80
embedExtrasMethod · 0.80
selectedFilesMethod · 0.80
isEmptyMethod · 0.45
sizeMethod · 0.45
isCheckedMethod · 0.45

Tested by

no test coverage detected