ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
dxfProfilesExportDlg.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #include "dxfProfilesExportDlg.h"
9 
10 #include "ecvFileUtils.h"
11 
12 // Qt
13 #include <QFileDialog>
14 #include <QFileInfo>
15 #include <QSettings>
16 
17 // System
18 #include <assert.h>
19 
21  : QDialog(parent, Qt::Tool), Ui::DxfProfilesExportDlg() {
22  setupUi(this);
23 
24  connect(vertBrowseToolButton, &QAbstractButton::clicked, this,
26  connect(horizBrowseToolButton, &QAbstractButton::clicked, this,
28  connect(buttonBox, &QDialogButtonBox::accepted, this,
30 
32 }
33 
35  QSettings settings;
36  settings.beginGroup("DxfProfilesExportDialog");
37 
38  const QString defaultVertProfile(ecvFileUtils::defaultDocPath() +
39  "/vert_profiles.dxf");
40  const QString defaultHorizProfile(ecvFileUtils::defaultDocPath() +
41  "/horiz_profiles.dxf");
42 
43  // read parameters
44  bool vertEnabled = settings.value("vertExportGroup", true).toBool();
45  bool horizEnabled = settings.value("horizExportGroup", true).toBool();
46  QString vertPath =
47  settings.value("vertExportPath", defaultVertProfile).toString();
48  QString horizPath =
49  settings.value("horizExportPath", defaultHorizProfile).toString();
50  QString vertTitle =
51  settings.value("vertTitle", vertTitleLineEdit->text()).toString();
52  QString horizTitle =
53  settings.value("horizTitle", horizTitleLineEdit->text()).toString();
54  QString theoTitle =
55  settings.value("legendTheoTitle", theoNameLineEdit->text())
56  .toString();
57  QString realTitle =
58  settings.value("legendRealTitle", realNameLineEdit->text())
59  .toString();
60  int angularSteps =
61  settings.value("angularSteps", angularStepsSpinBox->value())
62  .toInt();
63  int heightSteps =
64  settings.value("heightSteps", heightStepsSpinBox->value()).toInt();
65  double devScale =
66  settings.value("devScale", devValuesScaleDoubleSpinBox->value())
67  .toDouble();
68  QString scaledDevUnits =
69  settings.value("scaledDevUnits", scaledDevUnitsLineEdit->text())
70  .toString();
71  int precision =
72  settings.value("precision", precisionSpinBox->value()).toInt();
73  int magnifyCoef =
74  settings.value("magnifyCoef", magnifyCoefSpinBox->value()).toInt();
75 
76  // apply parameters
77  vertProfilesGroupBox->setChecked(vertEnabled);
78  horizProfilesGroupBox->setChecked(horizEnabled);
79  vertOutputFileLineEdit->setText(vertPath);
80  horizOutputFileLineEdit->setText(horizPath);
81  vertTitleLineEdit->setText(vertTitle);
82  horizTitleLineEdit->setText(horizTitle);
83  theoNameLineEdit->setText(theoTitle);
84  realNameLineEdit->setText(realTitle);
85  angularStepsSpinBox->setValue(angularSteps);
86  heightStepsSpinBox->setValue(heightSteps);
87  devValuesScaleDoubleSpinBox->setValue(devScale);
88  scaledDevUnitsLineEdit->setText(scaledDevUnits);
89  precisionSpinBox->setValue(precision);
90  magnifyCoefSpinBox->setValue(magnifyCoef);
91 
92  settings.endGroup();
93 }
94 
96  QSettings settings;
97  settings.beginGroup("DxfProfilesExportDialog");
98 
99  // write parameters
100  settings.setValue("vertExportGroup", vertProfilesGroupBox->isChecked());
101  settings.setValue("horizExportGroup", horizProfilesGroupBox->isChecked());
102  if (vertProfilesGroupBox->isChecked())
103  settings.setValue("vertExportPath", vertOutputFileLineEdit->text());
104  if (horizProfilesGroupBox->isChecked())
105  settings.setValue("horizExportPath", horizOutputFileLineEdit->text());
106  settings.setValue("vertTitle", vertTitleLineEdit->text());
107  settings.setValue("horizTitle", horizTitleLineEdit->text());
108  settings.setValue("legendTheoTitle", theoNameLineEdit->text());
109  settings.setValue("legendRealTitle", realNameLineEdit->text());
110  settings.setValue("angularSteps", angularStepsSpinBox->value());
111  settings.setValue("heightSteps", heightStepsSpinBox->value());
112  settings.setValue("devScale", devValuesScaleDoubleSpinBox->value());
113  settings.setValue("scaledDevUnits", scaledDevUnitsLineEdit->text());
114  settings.setValue("precision", precisionSpinBox->value());
115  settings.setValue("magnifyCoef", magnifyCoefSpinBox->value());
116 
117  settings.endGroup();
118 }
119 
121  QString filter("Vertical profiles (*.dxf)");
122 
123  // open file loading dialog
124  QString filename = QFileDialog::getSaveFileName(
125  0, "Select output file", vertOutputFileLineEdit->text(), filter);
126 
127  if (filename.isEmpty()) return;
128 
129  vertOutputFileLineEdit->setText(filename);
130 }
131 
133  return vertProfilesGroupBox->isChecked() ? vertOutputFileLineEdit->text()
134  : QString();
135 }
136 
138  QString filter("Horizontal profiles (*.dxf)");
139 
140  // open file loading dialog
141  QString filename = QFileDialog::getSaveFileName(
142  0, "Select output file", horizOutputFileLineEdit->text(), filter);
143 
144  if (filename.isEmpty()) return;
145 
146  horizOutputFileLineEdit->setText(filename);
147 }
148 
150  return horizProfilesGroupBox->isChecked() ? horizOutputFileLineEdit->text()
151  : QString();
152 }
std::string filename
Dialog for export multiple 2D profiles in a single DXF file (qSRA plugin)
void acceptAndSaveSettings()
Saves dialog state to persistent settings.
void browseHorizFile()
Called when the horiz. 'browse' tool button is pressed.
DxfProfilesExportDlg(QWidget *parent=0)
Default constructor.
QString getHorizFilename() const
Returns horiz. profiles output filename (on completion)
void browseVertFile()
Called when the vert. 'browse' tool button is pressed.
void initFromPersistentSettings()
Inits dialog state from persistent settings.
QString getVertFilename() const
Returns vert. profiles output filename (on completion)
QString defaultDocPath()
Shortcut for getting the documents location path.
Definition: ecvFileUtils.h:30