ExPMImport.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. include("scripts/EAction.js");
  2. include("scripts/simple.js");
  3. include("scripts/simple_create.js");
  4. include("scripts/Common/DrawPM.js")
  5. /**
  6. * \ingroup ecma_misc_examples_ioexamples
  7. * \class ExTxtImport
  8. * This action reads an XML file and outputs information to stderr.
  9. * This can be used as starting point for XML importers.
  10. */
  11. function ExPMImport(guiAction) {
  12. EAction.call(this, guiAction);
  13. this.ratio = 1.0;
  14. }
  15. ExPMImport.prototype = new EAction();
  16. ExPMImport.includeBasePath = includeBasePath;
  17. ExPMImport.prototype.beginEvent = function () {
  18. EAction.prototype.beginEvent.call(this);
  19. var appWin = EAction.getMainWindow();
  20. if (RSettings.getStringValue("OpenProject/Current", "") == "") {
  21. QMessageBox.critical(appWin, qsTr("提示"), qsTr("请先选择工程路径"));
  22. return;
  23. }
  24. var lastOpenFileDir = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
  25. EAction.handleUserMessage("current project:" + lastOpenFileDir);
  26. var filterAll = qsTr("平面文件") + " (*.pm);";
  27. var fileDialog = new QFileDialog(appWin, qsTr("请选择平面文件"), lastOpenFileDir, "");
  28. fileDialog.setNameFilters([filterAll]);
  29. fileDialog.selectNameFilter(filterAll);
  30. fileDialog.setOption(QFileDialog.DontUseNativeDialog, getDontUseNativeDialog());
  31. fileDialog.fileMode = QFileDialog.ExistingFiles;
  32. if (!fileDialog.exec()) {
  33. destr(fileDialog);
  34. EAction.activateMainWindow();
  35. this.terminate();
  36. return;
  37. }
  38. var files = fileDialog.selectedFiles();
  39. if (files.length === 0) {
  40. destr(fileDialog);
  41. EAction.activateMainWindow();
  42. this.terminate();
  43. return;
  44. }
  45. destr(fileDialog);
  46. EAction.activateMainWindow();
  47. try {
  48. for (var i = 0; i < files.length; i++) {
  49. var filePM = new DrawPM(files[i], this.ratio, 1);
  50. // applyDrawing在前 saveFileCSV在后
  51. filePM.applyDrawing();
  52. filePM.saveFileCSV();
  53. var tmp = RSettings.getStringValue("OpenDisplayFile/PMFile", "");
  54. RSettings.setValue("OpenDisplayFile/PMFile", tmp + "," + files[i]);
  55. }
  56. } catch (error) {
  57. EAction.handleUserMessage("load PM file, ERROR: " + error.toString());
  58. }
  59. };
  60. ExPMImport.prototype.slotRatioButtonclicked = function (v) {
  61. qDebug(v);
  62. this.ratio = v;
  63. this.applyOperation();
  64. };