MCPcopy Create free account
hub / github.com/XRay3D/GERBER_X3 / saveSelectedGCodeFiles

Method saveSelectedGCodeFiles

GGEasy/mainwindow.cpp:607–689  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

605}
606
607void MainWindow::saveSelectedGCodeFiles()
608{
609 qDebug();
610 if (m_project->pinsPlacedMessage())
611 return;
612
613 mvector<GCode::File*> gcFiles(m_project->files<GCode::File>());
614 for (size_t i = 0; i < gcFiles.size(); ++i) {
615 if (!gcFiles[i]->itemGroup()->isVisible())
616 gcFiles.remove(i--);
617 }
618
619 using Key = std::pair<size_t, Side>;
620 using GcFiles = QList<GCode::File*>;
621
622 std::map<Key, GcFiles> gcFilesMap;
623 for (GCode::File* file : gcFiles)
624 gcFilesMap[{ file->getTool().hash2(), file->side() }].append(file);
625
626 for (const auto& [key, files] : gcFilesMap) {
627 if (files.size() < 2) {
628 for (GCode::File* file : files) {
629 QString name(GCode::GCUtils::getLastDir().append(file->shortName()));
630 if (!name.endsWith(GCode::Settings::fileExtension()))
631 name += QStringList({ "_TS", "_BS" })[file->side()];
632
633 name = QFileDialog::getSaveFileName(nullptr,
634 QObject::tr("Save GCode file"),
635 name,
636 QObject::tr("GCode (*.%1)").arg(GCode::Settings::fileExtension()));
637
638 if (name.isEmpty())
639 return;
640 file->save(name);
641 file->itemGroup()->setVisible(false);
642 }
643 } else {
644 QString name(GCode::GCUtils::getLastDir().append(files.first()->getTool().nameEnc()));
645 if (!name.endsWith(GCode::Settings::fileExtension()))
646 name += QStringList({ "_TS", "_BS" })[files.first()->side()];
647
648 name = QFileDialog::getSaveFileName(nullptr,
649 QObject::tr("Save GCode file"),
650 name,
651 QObject::tr("GCode (*.%1)").arg(GCode::Settings::fileExtension()));
652
653 if (name.isEmpty())
654 return;
655 mvector<QString> sl;
656
657 sl.push_back(tr(";\tContains files:"));
658 for (auto file : files)
659 sl.push_back(";\t" + file->shortName());
660 for (auto file : files) {
661 file->itemGroup()->setVisible(false);
662 file->initSave();
663 if (file == files.front())
664 file->statFile();

Callers

nothing calls this directly

Calls 15

pinsPlacedMessageMethod · 0.80
sizeMethod · 0.80
hash2Method · 0.80
getToolMethod · 0.80
shortNameMethod · 0.80
isEmptyMethod · 0.80
nameEncMethod · 0.80
initSaveMethod · 0.80
statFileMethod · 0.80
addInfoMethod · 0.80
genGcodeAndTileMethod · 0.80
endFileMethod · 0.80

Tested by

no test coverage detected