Skip to content

Commit

Permalink
Part: split DlgImportExportStep into sub-widgets in order to be used …
Browse files Browse the repository at this point in the history
…independently
  • Loading branch information
wwmayer committed Oct 5, 2022
1 parent e0aa237 commit d9d8134
Show file tree
Hide file tree
Showing 10 changed files with 572 additions and 188 deletions.
6 changes: 6 additions & 0 deletions src/Mod/Part/Gui/CMakeLists.txt
Expand Up @@ -49,7 +49,9 @@ set(PartGui_UIC_SRCS
Mirroring.ui
DlgBooleanOperation.ui
DlgExportStep.ui
DlgExportHeaderStep.ui
DlgExtrusion.ui
DlgImportStep.ui
DlgFilletEdges.ui
DlgImportExportIges.ui
DlgImportExportStep.ui
Expand Down Expand Up @@ -104,12 +106,16 @@ SET(PartGui_SRCS
DlgExportStep.cpp
DlgExportStep.h
DlgExportStep.ui
DlgExportHeaderStep.ui
DlgExtrusion.cpp
DlgExtrusion.h
DlgExtrusion.ui
DlgFilletEdges.cpp
DlgFilletEdges.h
DlgFilletEdges.ui
DlgImportStep.cpp
DlgImportStep.h
DlgImportStep.ui
DlgImportExportIges.ui
DlgImportExportStep.ui
DlgPartBox.ui
Expand Down
68 changes: 68 additions & 0 deletions src/Mod/Part/Gui/DlgExportHeaderStep.ui
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PartGui::DlgExportHeaderStep</class>
<widget class="QWidget" name="PartGui::DlgExportHeaderStep">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>445</width>
<height>149</height>
</rect>
</property>
<property name="windowTitle">
<string>STEP</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="1" column="0">
<widget class="QGroupBox" name="groupBoxHeader">
<property name="toolTip">
<string>If not empty, field contents will be used in the STEP file header.</string>
</property>
<property name="title">
<string>Header</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Company</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEditCompany"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Author</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEditAuthor"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Product</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEditProduct"/>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>lineEditCompany</tabstop>
<tabstop>lineEditAuthor</tabstop>
<tabstop>lineEditProduct</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>
77 changes: 57 additions & 20 deletions src/Mod/Part/Gui/DlgExportStep.cpp
Expand Up @@ -38,6 +38,7 @@

#include "DlgExportStep.h"
#include "ui_DlgExportStep.h"
#include "ui_DlgExportHeaderStep.h"


using namespace PartGui;
Expand All @@ -54,22 +55,11 @@ DlgExportStep::DlgExportStep(QWidget* parent)
ui->comboBoxSchema->setItemData(3, QByteArray("AP214IS"));
ui->comboBoxSchema->setItemData(4, QByteArray("AP242DIS"));

ui->lineEditProduct->setReadOnly(true);

// https://tracker.dev.opencascade.org/view.php?id=25654
ui->checkBoxPcurves->setToolTip(tr("This parameter indicates whether parametric curves (curves in parametric space of surface)\n"
"should be written into the STEP file. This parameter can be set to off in order to minimize\n"
"the size of the resulting STEP file."));

QRegExp rx;
rx.setPattern(QString::fromLatin1("[\\x00-\\x7F]+"));
QRegExpValidator* companyValidator = new QRegExpValidator(ui->lineEditCompany);
companyValidator->setRegExp(rx);
ui->lineEditCompany->setValidator(companyValidator);
QRegExpValidator* authorValidator = new QRegExpValidator(ui->lineEditAuthor);
authorValidator->setRegExp(rx);
ui->lineEditAuthor->setValidator(authorValidator);

Part::OCAF::ImportExportSettings settings;
ui->checkBoxExportHiddenObj->setChecked(settings.getExportHiddenObject());
ui->checkBoxExportLegacy->setChecked(settings.getExportLegacy());
Expand Down Expand Up @@ -99,10 +89,6 @@ void DlgExportStep::saveSettings()
QByteArray schema = ui->comboBoxSchema->itemData(ui->comboBoxSchema->currentIndex()).toByteArray();
settings.setScheme(schema);

// header info
settings.setCompany(ui->lineEditCompany->text().toLatin1());
settings.setAuthor(ui->lineEditAuthor->text().toLatin1());

// (h)STEP of Import module
ui->checkBoxExportHiddenObj->onSave();
ui->checkBoxExportLegacy->onSave();
Expand All @@ -124,11 +110,6 @@ void DlgExportStep::loadSettings()
if (index >= 0)
ui->comboBoxSchema->setCurrentIndex(index);

// header info
ui->lineEditCompany->setText(QString::fromStdString(settings.getCompany()));
ui->lineEditAuthor->setText(QString::fromStdString(settings.getAuthor()));
ui->lineEditProduct->setText(QString::fromStdString(settings.getProductName()));

// (h)STEP of Import module
ui->checkBoxExportHiddenObj->onRestore();
ui->checkBoxExportLegacy->onRestore();
Expand Down Expand Up @@ -159,6 +140,62 @@ void DlgExportStep::changeEvent(QEvent *e)

// ----------------------------------------------------------------------------

DlgExportHeaderStep::DlgExportHeaderStep(QWidget* parent)
: PreferencePage(parent)
, ui(new Ui_DlgExportHeaderStep)
{
ui->setupUi(this);

ui->lineEditProduct->setReadOnly(true);

QRegExp rx;
rx.setPattern(QString::fromLatin1("[\\x00-\\x7F]+"));
QRegExpValidator* companyValidator = new QRegExpValidator(ui->lineEditCompany);
companyValidator->setRegExp(rx);
ui->lineEditCompany->setValidator(companyValidator);
QRegExpValidator* authorValidator = new QRegExpValidator(ui->lineEditAuthor);
authorValidator->setRegExp(rx);
ui->lineEditAuthor->setValidator(authorValidator);
}

DlgExportHeaderStep::~DlgExportHeaderStep()
{
}

void DlgExportHeaderStep::saveSettings()
{
Part::STEP::ImportExportSettings settings;

// header info
settings.setCompany(ui->lineEditCompany->text().toLatin1());
settings.setAuthor(ui->lineEditAuthor->text().toLatin1());
}

void DlgExportHeaderStep::loadSettings()
{
Part::STEP::ImportExportSettings settings;

// header info
ui->lineEditCompany->setText(QString::fromStdString(settings.getCompany()));
ui->lineEditAuthor->setText(QString::fromStdString(settings.getAuthor()));
ui->lineEditProduct->setText(QString::fromStdString(settings.getProductName()));
}

/**
* Sets the strings of the subwidgets using the current language.
*/
void DlgExportHeaderStep::changeEvent(QEvent *e)
{
if (e->type() == QEvent::LanguageChange) {
ui->retranslateUi(this);
}
else {
QWidget::changeEvent(e);
}
}

// ----------------------------------------------------------------------------

TaskExportStep::TaskExportStep(QWidget* parent)
: QDialog(parent)
, ui(new DlgExportStep(this))
Expand Down
25 changes: 25 additions & 0 deletions src/Mod/Part/Gui/DlgExportStep.h
Expand Up @@ -40,6 +40,8 @@ struct StepSettings
bool keepPlacement = false;
};

// ----------------------------------------------------------------------------

class Ui_DlgExportStep;
class DlgExportStep : public Gui::Dialog::PreferencePage
{
Expand All @@ -61,6 +63,29 @@ class DlgExportStep : public Gui::Dialog::PreferencePage
std::unique_ptr<Ui_DlgExportStep> ui;
};

// ----------------------------------------------------------------------------

class Ui_DlgExportHeaderStep;
class DlgExportHeaderStep : public Gui::Dialog::PreferencePage
{
Q_OBJECT

public:
explicit DlgExportHeaderStep(QWidget* parent = nullptr);
~DlgExportHeaderStep() override;

void saveSettings() override;
void loadSettings() override;

protected:
void changeEvent(QEvent *e) override;

private:
std::unique_ptr<Ui_DlgExportHeaderStep> ui;
};

// ----------------------------------------------------------------------------

class PartGuiExport TaskExportStep : public QDialog
{
Q_OBJECT
Expand Down
60 changes: 1 addition & 59 deletions src/Mod/Part/Gui/DlgExportStep.ui
Expand Up @@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>445</width>
<height>426</height>
<height>278</height>
</rect>
</property>
<property name="windowTitle">
Expand Down Expand Up @@ -155,61 +155,6 @@ it inside the Placement property.</string>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="groupBoxHeader">
<property name="toolTip">
<string>If not empty, field contents will be used in the STEP file header.</string>
</property>
<property name="title">
<string>Header</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Company</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEditCompany"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Author</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEditAuthor"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Product</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEditProduct"/>
</item>
</layout>
</widget>
</item>
<item row="3" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>82</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
Expand All @@ -223,9 +168,6 @@ it inside the Placement property.</string>
<tabstop>comboBoxUnits</tabstop>
<tabstop>checkBoxPcurves</tabstop>
<tabstop>checkBoxExportHiddenObj</tabstop>
<tabstop>lineEditCompany</tabstop>
<tabstop>lineEditAuthor</tabstop>
<tabstop>lineEditProduct</tabstop>
</tabstops>
<resources/>
<connections/>
Expand Down

0 comments on commit d9d8134

Please sign in to comment.