User defined materials are now remembered and can also be deleted in preferences dialog
--HG-- branch : feature
This commit is contained in:
parent
b0532e6fb9
commit
86f24bf0e5
|
@ -43,6 +43,7 @@
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QDirIterator>
|
#include <QDirIterator>
|
||||||
#include <QFormLayout>
|
#include <QFormLayout>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
ConfigurationPage::ConfigurationPage(QWidget *parent)
|
ConfigurationPage::ConfigurationPage(QWidget *parent)
|
||||||
|
@ -77,7 +78,9 @@ ConfigurationPage::ConfigurationPage(QWidget *parent)
|
||||||
sendGroup(nullptr),
|
sendGroup(nullptr),
|
||||||
description(nullptr),
|
description(nullptr),
|
||||||
drawGroup(nullptr),
|
drawGroup(nullptr),
|
||||||
toolBarGroup(nullptr)
|
toolBarGroup(nullptr),
|
||||||
|
userMaterialsGroup(nullptr),
|
||||||
|
userMaterialClearButton(nullptr)
|
||||||
{
|
{
|
||||||
QGroupBox *saveGroup = SaveGroup();
|
QGroupBox *saveGroup = SaveGroup();
|
||||||
QGroupBox *langGroup = LangGroup();
|
QGroupBox *langGroup = LangGroup();
|
||||||
|
@ -85,6 +88,7 @@ ConfigurationPage::ConfigurationPage(QWidget *parent)
|
||||||
QGroupBox *sendGroup = SendGroup();
|
QGroupBox *sendGroup = SendGroup();
|
||||||
QGroupBox *drawGroup = DrawGroup();
|
QGroupBox *drawGroup = DrawGroup();
|
||||||
QGroupBox *toolBarGroup = ToolBarGroup();
|
QGroupBox *toolBarGroup = ToolBarGroup();
|
||||||
|
QGroupBox *userMatGroup = UserMaterialGroup();
|
||||||
|
|
||||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||||
mainLayout->addWidget(saveGroup);
|
mainLayout->addWidget(saveGroup);
|
||||||
|
@ -93,6 +97,7 @@ ConfigurationPage::ConfigurationPage(QWidget *parent)
|
||||||
mainLayout->addWidget(sendGroup);
|
mainLayout->addWidget(sendGroup);
|
||||||
mainLayout->addWidget(drawGroup);
|
mainLayout->addWidget(drawGroup);
|
||||||
mainLayout->addWidget(toolBarGroup);
|
mainLayout->addWidget(toolBarGroup);
|
||||||
|
mainLayout->addWidget(userMatGroup);
|
||||||
mainLayout->addStretch(1);
|
mainLayout->addStretch(1);
|
||||||
setLayout(mainLayout);
|
setLayout(mainLayout);
|
||||||
}
|
}
|
||||||
|
@ -161,6 +166,16 @@ void ConfigurationPage::LabelLangChanged()
|
||||||
labelLangChanged = true;
|
labelLangChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void ConfigurationPage::ClearUserDefinedMaterials()
|
||||||
|
{
|
||||||
|
VSettings* pSet = qApp->ValentinaSettings();
|
||||||
|
pSet->ClearUserDefinedMaterial();
|
||||||
|
pSet->sync();
|
||||||
|
QString qsMsg = tr("All user defined materials have been deleted!");
|
||||||
|
QMessageBox::information(this, QApplication::applicationName(), qsMsg);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QGroupBox *ConfigurationPage::SaveGroup()
|
QGroupBox *ConfigurationPage::SaveGroup()
|
||||||
{
|
{
|
||||||
|
@ -381,6 +396,21 @@ QGroupBox *ConfigurationPage::ToolBarGroup()
|
||||||
return toolBarGroup;
|
return toolBarGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QGroupBox *ConfigurationPage::UserMaterialGroup()
|
||||||
|
{
|
||||||
|
userMaterialsGroup = new QGroupBox(tr("User defined materials"));
|
||||||
|
userMaterialClearButton = new QPushButton(tr("Delete all"));
|
||||||
|
connect(userMaterialClearButton, &QPushButton::clicked, this, &ConfigurationPage::ClearUserDefinedMaterials);
|
||||||
|
|
||||||
|
QHBoxLayout* pLayout = new QHBoxLayout;
|
||||||
|
pLayout->addWidget(userMaterialClearButton);
|
||||||
|
pLayout->addStretch(1);
|
||||||
|
|
||||||
|
userMaterialsGroup->setLayout(pLayout);
|
||||||
|
return userMaterialsGroup;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void ConfigurationPage::SystemChanged()
|
void ConfigurationPage::SystemChanged()
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,6 +38,7 @@ class QSpinBox;
|
||||||
class QComboBox;
|
class QComboBox;
|
||||||
class QGroupBox;
|
class QGroupBox;
|
||||||
class QLabel;
|
class QLabel;
|
||||||
|
class QPushButton;
|
||||||
|
|
||||||
class ConfigurationPage : public QWidget
|
class ConfigurationPage : public QWidget
|
||||||
{
|
{
|
||||||
|
@ -50,6 +51,7 @@ public slots:
|
||||||
void SystemChanged();
|
void SystemChanged();
|
||||||
void UnitChanged();
|
void UnitChanged();
|
||||||
void LabelLangChanged();
|
void LabelLangChanged();
|
||||||
|
void ClearUserDefinedMaterials();
|
||||||
protected:
|
protected:
|
||||||
virtual void changeEvent(QEvent* event) Q_DECL_OVERRIDE;
|
virtual void changeEvent(QEvent* event) Q_DECL_OVERRIDE;
|
||||||
private:
|
private:
|
||||||
|
@ -90,12 +92,16 @@ private:
|
||||||
QGroupBox *drawGroup;
|
QGroupBox *drawGroup;
|
||||||
QGroupBox *toolBarGroup;
|
QGroupBox *toolBarGroup;
|
||||||
|
|
||||||
|
QGroupBox *userMaterialsGroup;
|
||||||
|
QPushButton* userMaterialClearButton;
|
||||||
|
|
||||||
QGroupBox *SaveGroup() Q_REQUIRED_RESULT;
|
QGroupBox *SaveGroup() Q_REQUIRED_RESULT;
|
||||||
QGroupBox *LangGroup() Q_REQUIRED_RESULT;
|
QGroupBox *LangGroup() Q_REQUIRED_RESULT;
|
||||||
QGroupBox *PMSystemGroup() Q_REQUIRED_RESULT;
|
QGroupBox *PMSystemGroup() Q_REQUIRED_RESULT;
|
||||||
QGroupBox *SendGroup() Q_REQUIRED_RESULT;
|
QGroupBox *SendGroup() Q_REQUIRED_RESULT;
|
||||||
QGroupBox *DrawGroup() Q_REQUIRED_RESULT;
|
QGroupBox *DrawGroup() Q_REQUIRED_RESULT;
|
||||||
QGroupBox *ToolBarGroup() Q_REQUIRED_RESULT;
|
QGroupBox *ToolBarGroup() Q_REQUIRED_RESULT;
|
||||||
|
QGroupBox *UserMaterialGroup() Q_REQUIRED_RESULT;
|
||||||
void SetLabelComboBox(const QStringList &list);
|
void SetLabelComboBox(const QStringList &list);
|
||||||
|
|
||||||
void RetranslateUi();
|
void RetranslateUi();
|
||||||
|
|
|
@ -75,6 +75,7 @@ const QString VCommonSettings::SettingGeneralToolbarsState = QString
|
||||||
const QString VCommonSettings::SettingPreferenceDialogSize = QStringLiteral("preferenceDialogSize");
|
const QString VCommonSettings::SettingPreferenceDialogSize = QStringLiteral("preferenceDialogSize");
|
||||||
const QString VCommonSettings::SettingLatestSkippedVersion = QStringLiteral("lastestSkippedVersion");
|
const QString VCommonSettings::SettingLatestSkippedVersion = QStringLiteral("lastestSkippedVersion");
|
||||||
const QString VCommonSettings::SettingDateOfLastRemind = QStringLiteral("dateOfLastRemind");
|
const QString VCommonSettings::SettingDateOfLastRemind = QStringLiteral("dateOfLastRemind");
|
||||||
|
const QString VCommonSettings::SettingUserDefinedMaterials = QStringLiteral("configuration/userDefinedMaterials");
|
||||||
|
|
||||||
static const QString commonIniFilename = QStringLiteral("common");
|
static const QString commonIniFilename = QStringLiteral("common");
|
||||||
|
|
||||||
|
@ -469,3 +470,24 @@ void VCommonSettings::SetDateOfLastRemind(const QDate &date)
|
||||||
settings.setValue(SettingDateOfLastRemind, date);
|
settings.setValue(SettingDateOfLastRemind, date);
|
||||||
settings.sync();
|
settings.sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QStringList VCommonSettings::GetUserDefinedMaterials() const
|
||||||
|
{
|
||||||
|
return value(SettingUserDefinedMaterials).toStringList();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VCommonSettings::AddUserDefinedMaterial(QString qsMaterial)
|
||||||
|
{
|
||||||
|
QStringList qsl = GetUserDefinedMaterials();
|
||||||
|
qsl << qsMaterial;
|
||||||
|
setValue(SettingUserDefinedMaterials, qsl);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VCommonSettings::ClearUserDefinedMaterial()
|
||||||
|
{
|
||||||
|
QStringList qsl;
|
||||||
|
setValue(SettingUserDefinedMaterials, qsl);
|
||||||
|
}
|
||||||
|
|
|
@ -118,6 +118,10 @@ public:
|
||||||
QDate GetDateOfLastRemind() const;
|
QDate GetDateOfLastRemind() const;
|
||||||
void SetDateOfLastRemind(const QDate &date);
|
void SetDateOfLastRemind(const QDate &date);
|
||||||
|
|
||||||
|
QStringList GetUserDefinedMaterials() const;
|
||||||
|
void AddUserDefinedMaterial(QString qsMaterial);
|
||||||
|
void ClearUserDefinedMaterial();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VCommonSettings)
|
Q_DISABLE_COPY(VCommonSettings)
|
||||||
|
|
||||||
|
@ -146,6 +150,7 @@ private:
|
||||||
static const QString SettingPreferenceDialogSize;
|
static const QString SettingPreferenceDialogSize;
|
||||||
static const QString SettingLatestSkippedVersion;
|
static const QString SettingLatestSkippedVersion;
|
||||||
static const QString SettingDateOfLastRemind;
|
static const QString SettingDateOfLastRemind;
|
||||||
|
static const QString SettingUserDefinedMaterials;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VCOMMONSETTINGS_H
|
#endif // VCOMMONSETTINGS_H
|
||||||
|
|
|
@ -602,3 +602,4 @@ void VSettings::SetMultiplier(quint8 value)
|
||||||
{
|
{
|
||||||
setValue(SettingMultiplier, value);
|
setValue(SettingMultiplier, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,13 @@ DialogDetail::DialogDetail(const VContainer *data, const quint32 &toolId, QWidge
|
||||||
{
|
{
|
||||||
ui.comboBoxMaterial->addItem(m_qslMaterials[i], i);
|
ui.comboBoxMaterial->addItem(m_qslMaterials[i], i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QStringList qsl = qApp->Settings()->GetUserDefinedMaterials();
|
||||||
|
for (int i = 0; i < qsl.count(); ++i)
|
||||||
|
{
|
||||||
|
ui.comboBoxMaterial->addItem(qsl[i], int(MaterialType::mtUserDefined));
|
||||||
|
}
|
||||||
|
|
||||||
m_qslPlacements << tr("None") << tr("Cut on fold");
|
m_qslPlacements << tr("None") << tr("Cut on fold");
|
||||||
ui.comboBoxPlacement->addItems(m_qslPlacements);
|
ui.comboBoxPlacement->addItems(m_qslPlacements);
|
||||||
|
|
||||||
|
@ -142,6 +149,7 @@ DialogDetail::DialogDetail(const VContainer *data, const quint32 &toolId, QWidge
|
||||||
connect(ui.pushButtonCancel, &QPushButton::clicked, this, &DialogDetail::Cancel);
|
connect(ui.pushButtonCancel, &QPushButton::clicked, this, &DialogDetail::Cancel);
|
||||||
connect(ui.pushButtonRemove, &QPushButton::clicked, this, &DialogDetail::Remove);
|
connect(ui.pushButtonRemove, &QPushButton::clicked, this, &DialogDetail::Remove);
|
||||||
connect(ui.listWidgetMCP, &QListWidget::itemClicked, this, &DialogDetail::SetEditMode);
|
connect(ui.listWidgetMCP, &QListWidget::itemClicked, this, &DialogDetail::SetEditMode);
|
||||||
|
connect(ui.comboBoxMaterial, &QComboBox::currentTextChanged, this, &DialogDetail::MaterialChanged);
|
||||||
SetAddMode();
|
SetAddMode();
|
||||||
|
|
||||||
ui.tabWidget->setCurrentIndex(0);
|
ui.tabWidget->setCurrentIndex(0);
|
||||||
|
@ -243,15 +251,32 @@ void DialogDetail::UpdateList()
|
||||||
void DialogDetail::AddUpdate()
|
void DialogDetail::AddUpdate()
|
||||||
{
|
{
|
||||||
MaterialCutPlacement mcp;
|
MaterialCutPlacement mcp;
|
||||||
|
QStringList qslUserMaterials = qApp->Settings()->GetUserDefinedMaterials();
|
||||||
|
|
||||||
mcp.m_qsMaterialUserDef = ui.comboBoxMaterial->currentText();
|
mcp.m_qsMaterialUserDef = ui.comboBoxMaterial->currentText();
|
||||||
int i = ui.comboBoxMaterial->currentData().toInt();
|
int i = ui.comboBoxMaterial->currentData().toInt();
|
||||||
if (mcp.m_qsMaterialUserDef == m_qslMaterials[i])
|
if (i < m_qslMaterials.count() && mcp.m_qsMaterialUserDef == m_qslMaterials[i])
|
||||||
{
|
{
|
||||||
mcp.m_eMaterial = MaterialType(i);
|
mcp.m_eMaterial = MaterialType(i);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mcp.m_eMaterial = MaterialType::mtUserDefined;
|
mcp.m_eMaterial = MaterialType::mtUserDefined;
|
||||||
|
// check if we have new user defined material
|
||||||
|
bool bFound = false;
|
||||||
|
for (int i = 0; i < qslUserMaterials.count() && bFound == false; ++i)
|
||||||
|
{
|
||||||
|
if (mcp.m_qsMaterialUserDef == qslUserMaterials[i])
|
||||||
|
{
|
||||||
|
bFound = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bFound == false)
|
||||||
|
{
|
||||||
|
qApp->Settings()->AddUserDefinedMaterial(mcp.m_qsMaterialUserDef);
|
||||||
|
qApp->Settings()->sync();
|
||||||
|
ui.comboBoxMaterial->addItem(mcp.m_qsMaterialUserDef, int(MaterialType::mtUserDefined));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mcp.m_iCutNumber = ui.spinBoxCutNumber->value();
|
mcp.m_iCutNumber = ui.spinBoxCutNumber->value();
|
||||||
|
@ -315,6 +340,12 @@ void DialogDetail::NameDetailChanged()
|
||||||
CheckState();
|
CheckState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogDetail::MaterialChanged()
|
||||||
|
{
|
||||||
|
ui.pushButtonAdd->setEnabled(ui.comboBoxMaterial->currentText().isEmpty() == false);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief NewItem add new object (point, arc, spline or spline path) to list
|
* @brief NewItem add new object (point, arc, spline or spline path) to list
|
||||||
|
@ -789,11 +820,20 @@ void DialogDetail::SetEditMode()
|
||||||
MaterialCutPlacement mcp = m_conMCP.at(iR);
|
MaterialCutPlacement mcp = m_conMCP.at(iR);
|
||||||
if (mcp.m_eMaterial == MaterialType::mtUserDefined)
|
if (mcp.m_eMaterial == MaterialType::mtUserDefined)
|
||||||
{
|
{
|
||||||
ui.comboBoxMaterial->setCurrentText(mcp.m_qsMaterialUserDef);
|
int iRow = qApp->Settings()->GetUserDefinedMaterials().indexOf(mcp.m_qsMaterialUserDef);
|
||||||
|
if (iRow >= 0)
|
||||||
|
{
|
||||||
|
ui.comboBoxMaterial->setCurrentIndex(iRow + m_qslMaterials.count());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui.comboBoxMaterial->setCurrentText(m_qslMaterials[int(mcp.m_eMaterial)]);
|
ui.comboBoxMaterial->setCurrentText(mcp.m_qsMaterialUserDef);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//ui.comboBoxMaterial->setCurrentText(m_qslMaterials[int(mcp.m_eMaterial)]);
|
||||||
|
ui.comboBoxMaterial->setCurrentIndex(int(mcp.m_eMaterial));
|
||||||
}
|
}
|
||||||
ui.spinBoxCutNumber->setValue(mcp.m_iCutNumber);
|
ui.spinBoxCutNumber->setValue(mcp.m_iCutNumber);
|
||||||
ui.comboBoxPlacement->setCurrentIndex(int(mcp.m_ePlacement));
|
ui.comboBoxPlacement->setCurrentIndex(int(mcp.m_ePlacement));
|
||||||
|
|
|
@ -84,6 +84,7 @@ protected slots:
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void NameDetailChanged();
|
void NameDetailChanged();
|
||||||
|
void MaterialChanged();
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/** @brief ui keeps information about user interface */
|
/** @brief ui keeps information about user interface */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user