Resolved issue #865. New feature. Dynamic Way to define Material in piece label.
--HG-- branch : develop
This commit is contained in:
parent
9da4cbb329
commit
2c7b21b98d
|
@ -51,6 +51,7 @@
|
||||||
- [#826] New Feature. Add and remove items to groups from the context menu.
|
- [#826] New Feature. Add and remove items to groups from the context menu.
|
||||||
- Mouse double click zoom fit best current pattern piece.
|
- Mouse double click zoom fit best current pattern piece.
|
||||||
- [#862] Force Valentina to immediately terminate if a pattern contains a parsing warning.
|
- [#862] Force Valentina to immediately terminate if a pattern contains a parsing warning.
|
||||||
|
- [#865] New feature. Dynamic Way to define Material in piece label.
|
||||||
|
|
||||||
# Version 0.5.1 (unreleased)
|
# Version 0.5.1 (unreleased)
|
||||||
- [#683] Tool Seam allowance's dialog is off screen on small resolutions.
|
- [#683] Tool Seam allowance's dialog is off screen on small resolutions.
|
||||||
|
|
4
dist/OBS_debian/debian.valentina.1
vendored
4
dist/OBS_debian/debian.valentina.1
vendored
|
@ -1,6 +1,6 @@
|
||||||
.\" Manpage for valentina.
|
.\" Manpage for valentina.
|
||||||
.\" Contact dismine@gmail.com to correct errors.
|
.\" Contact dismine@gmail.com to correct errors.
|
||||||
.TH valentina 1 "13 July, 2018" "valentina man page"
|
.TH valentina 1 "18 July, 2018" "valentina man page"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Valentina \- Pattern making program.
|
Valentina \- Pattern making program.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -112,6 +112,8 @@ The path to output destination folder. By default the directory at which the app
|
||||||
.RB "Set size value a pattern file, that was opened with multisize measurements " "(export mode)" ". Valid values: 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56cm."
|
.RB "Set size value a pattern file, that was opened with multisize measurements " "(export mode)" ". Valid values: 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56cm."
|
||||||
.IP "-e, --gheight <The height value>"
|
.IP "-e, --gheight <The height value>"
|
||||||
.RB "Set height value a pattern file, that was opened with multisize measurements (" "export mode" "). Valid values: 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200cm."
|
.RB "Set height value a pattern file, that was opened with multisize measurements (" "export mode" "). Valid values: 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200cm."
|
||||||
|
.IP "--userMaterial <User material>"
|
||||||
|
.RB "Use this option to override user material defined in pattern. The value must be in form <number>@<user matrial name>. The number should be in range from 1 to 20. For example, 1@Fabric2. The key can be used multiple times. Has no effect in GUI mode."
|
||||||
.IP "-p, --pageformat <Template number>"
|
.IP "-p, --pageformat <Template number>"
|
||||||
.RB "Number corresponding to layout page template (default = 0, " "export mode" "):"
|
.RB "Number corresponding to layout page template (default = 0, " "export mode" "):"
|
||||||
.RS
|
.RS
|
||||||
|
|
4
dist/debian/valentina.1
vendored
4
dist/debian/valentina.1
vendored
|
@ -1,6 +1,6 @@
|
||||||
.\" Manpage for valentina.
|
.\" Manpage for valentina.
|
||||||
.\" Contact dismine@gmail.com to correct errors.
|
.\" Contact dismine@gmail.com to correct errors.
|
||||||
.TH valentina 1 "13 July, 2018" "valentina man page"
|
.TH valentina 1 "18 July, 2018" "valentina man page"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Valentina \- Pattern making program.
|
Valentina \- Pattern making program.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -112,6 +112,8 @@ The path to output destination folder. By default the directory at which the app
|
||||||
.RB "Set size value a pattern file, that was opened with multisize measurements " "(export mode)" ". Valid values: 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56cm."
|
.RB "Set size value a pattern file, that was opened with multisize measurements " "(export mode)" ". Valid values: 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56cm."
|
||||||
.IP "-e, --gheight <The height value>"
|
.IP "-e, --gheight <The height value>"
|
||||||
.RB "Set height value a pattern file, that was opened with multisize measurements (" "export mode" "). Valid values: 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200cm."
|
.RB "Set height value a pattern file, that was opened with multisize measurements (" "export mode" "). Valid values: 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200cm."
|
||||||
|
.IP "--userMaterial <User material>"
|
||||||
|
.RB "Use this option to override user material defined in pattern. The value must be in form <number>@<user matrial name>. The number should be in range from 1 to 20. For example, 1@Fabric2. The key can be used multiple times. Has no effect in GUI mode."
|
||||||
.IP "-p, --pageformat <Template number>"
|
.IP "-p, --pageformat <Template number>"
|
||||||
.RB "Number corresponding to layout page template (default = 0, " "export mode" "):"
|
.RB "Number corresponding to layout page template (default = 0, " "export mode" "):"
|
||||||
.RS
|
.RS
|
||||||
|
|
8
scripts/man2pdf.sh
Executable file
8
scripts/man2pdf.sh
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Use to conver man pages to pdf
|
||||||
|
|
||||||
|
# usage:
|
||||||
|
# $ ./man2pdf.sh
|
||||||
|
|
||||||
|
man -t ../dist/debian/valentina.1 | ps2pdf - valentina.pdf
|
||||||
|
man -t ../dist/debian/tape.1 | ps2pdf - tape.pdf
|
|
@ -138,6 +138,16 @@ void VCommandLine::InitOptions(VCommandLineOptions &options, QMap<QString, int>
|
||||||
.arg(VMeasurement::WholeListHeights(Unit::Cm).join(", ")),
|
.arg(VMeasurement::WholeListHeights(Unit::Cm).join(", ")),
|
||||||
translate("VCommandLine", "The height value")));
|
translate("VCommandLine", "The height value")));
|
||||||
|
|
||||||
|
optionsIndex.insert(LONG_OPTION_USER_MATERIAL, index++);
|
||||||
|
options.append(new QCommandLineOption(QStringList() << LONG_OPTION_USER_MATERIAL,
|
||||||
|
translate("VCommandLine",
|
||||||
|
"Use this option to override user material defined in pattern. The "
|
||||||
|
"value must be in form <number>@<user matrial name>. The number "
|
||||||
|
"should be in range from 1 to %1. For example, 1@Fabric2. The key "
|
||||||
|
"can be used multiple times. Has no effect in GUI mode.")
|
||||||
|
.arg(userMaterialPlaceholdersQuantity),
|
||||||
|
translate("VCommandLine", "User material")));
|
||||||
|
|
||||||
//=================================================================================================================
|
//=================================================================================================================
|
||||||
optionsIndex.insert(LONG_OPTION_PAGETEMPLATE, index++);
|
optionsIndex.insert(LONG_OPTION_PAGETEMPLATE, index++);
|
||||||
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_PAGETEMPLATE << LONG_OPTION_PAGETEMPLATE,
|
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_PAGETEMPLATE << LONG_OPTION_PAGETEMPLATE,
|
||||||
|
@ -796,6 +806,37 @@ QString VCommandLine::OptExportFMTo() const
|
||||||
return parser.value(*optionsUsed.value(optionsIndex.value(LONG_OPTION_CSVEXPORTFM)));
|
return parser.value(*optionsUsed.value(optionsIndex.value(LONG_OPTION_CSVEXPORTFM)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QMap<int, QString> VCommandLine::OptUserMaterials() const
|
||||||
|
{
|
||||||
|
QMap<int, QString> userMaterials;
|
||||||
|
const QStringList values = parser.values(*optionsUsed.value(optionsIndex.value(LONG_OPTION_USER_MATERIAL)));
|
||||||
|
for(auto &value : values)
|
||||||
|
{
|
||||||
|
const QStringList parts = value.split('@');
|
||||||
|
if (parts.size() != 2)
|
||||||
|
{
|
||||||
|
qCritical() << translate("VCommandLine", "Invalid user material '%1'. Separator is missing.").arg(value)
|
||||||
|
<< "\n";
|
||||||
|
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ok = false;
|
||||||
|
const int number = parts.first().toInt(&ok);
|
||||||
|
|
||||||
|
if (not ok or number < 1 or number > userMaterialPlaceholdersQuantity)
|
||||||
|
{
|
||||||
|
qCritical() << translate("VCommandLine", "Invalid user material '%1'. Wrong material number.").arg(value)
|
||||||
|
<< "\n";
|
||||||
|
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
userMaterials.insert(number, parts.last());
|
||||||
|
}
|
||||||
|
|
||||||
|
return userMaterials;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QStringList VCommandLine::OptInputFileNames() const
|
QStringList VCommandLine::OptInputFileNames() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -100,6 +100,9 @@ public:
|
||||||
//@brief returns the destination path for export final measurements or empty string if not set
|
//@brief returns the destination path for export final measurements or empty string if not set
|
||||||
QString OptExportFMTo() const;
|
QString OptExportFMTo() const;
|
||||||
|
|
||||||
|
//@brief returns list of user defined materials
|
||||||
|
QMap<int, QString> OptUserMaterials() const;
|
||||||
|
|
||||||
//generator creation is moved here ... because most options are for it only, so no need to create extra getters...
|
//generator creation is moved here ... because most options are for it only, so no need to create extra getters...
|
||||||
//@brief creates VLayoutGenerator
|
//@brief creates VLayoutGenerator
|
||||||
VLayoutGeneratorPtr DefaultGenerator() const;
|
VLayoutGeneratorPtr DefaultGenerator() const;
|
||||||
|
|
|
@ -5425,6 +5425,8 @@ void MainWindow::ProcessCMD()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qApp->SetUserMaterials(cmd->OptUserMaterials());
|
||||||
|
|
||||||
const bool loaded = LoadPattern(args.first(), cmd->OptMeasurePath());
|
const bool loaded = LoadPattern(args.first(), cmd->OptMeasurePath());
|
||||||
|
|
||||||
if (not loaded)
|
if (not loaded)
|
||||||
|
|
|
@ -236,6 +236,30 @@ void GatherTokens(QSet<QString> &tokens, const QList<QString> &tokenList)
|
||||||
{
|
{
|
||||||
tokens = tokens.unite(tokenList.toSet());
|
tokens = tokens.unite(tokenList.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief AdjustMaterials help function that combine user materials from pattern and cli.
|
||||||
|
* @param materials materials from pattern
|
||||||
|
* @return combined list
|
||||||
|
*/
|
||||||
|
QMap<int, QString> AdjustMaterials(QMap<int, QString> materials)
|
||||||
|
{
|
||||||
|
const QMap<int, QString> cliMaterials = qApp->GetUserMaterials();
|
||||||
|
QMap<int, QString>::const_iterator i = cliMaterials.constBegin();
|
||||||
|
while (i != cliMaterials.constEnd())
|
||||||
|
{
|
||||||
|
if (not materials.contains(i.key()))
|
||||||
|
{
|
||||||
|
qWarning() << QObject::tr("User material number %1 was not defined in this pattern.").arg(i.key());
|
||||||
|
}
|
||||||
|
|
||||||
|
materials.insert(i.key(), i.value());
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
|
||||||
|
return materials;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1445,7 +1469,7 @@ QMap<int, QString> VAbstractPattern::GetPatternMaterials() const
|
||||||
patternMaterials = GetMaterials(list.at(0).toElement());
|
patternMaterials = GetMaterials(list.at(0).toElement());
|
||||||
}
|
}
|
||||||
|
|
||||||
return patternMaterials;
|
return AdjustMaterials(patternMaterials);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -98,6 +98,8 @@ const QString SINGLE_OPTION_GRADATIONSIZE = QStringLiteral("x");
|
||||||
const QString LONG_OPTION_GRADATIONHEIGHT = QStringLiteral("gheight");
|
const QString LONG_OPTION_GRADATIONHEIGHT = QStringLiteral("gheight");
|
||||||
const QString SINGLE_OPTION_GRADATIONHEIGHT = QStringLiteral("e");
|
const QString SINGLE_OPTION_GRADATIONHEIGHT = QStringLiteral("e");
|
||||||
|
|
||||||
|
const QString LONG_OPTION_USER_MATERIAL = QStringLiteral("userMaterial");
|
||||||
|
|
||||||
const QString LONG_OPTION_IGNORE_MARGINS = QStringLiteral("ignoremargins");
|
const QString LONG_OPTION_IGNORE_MARGINS = QStringLiteral("ignoremargins");
|
||||||
const QString SINGLE_OPTION_IGNORE_MARGINS = QStringLiteral("i");
|
const QString SINGLE_OPTION_IGNORE_MARGINS = QStringLiteral("i");
|
||||||
|
|
||||||
|
@ -126,6 +128,10 @@ const QString LONG_OPTION_TILED_PDF_BOTTOM_MARGIN = QStringLiteral("tiledbmargin
|
||||||
const QString LONG_OPTION_TILED_PDF_LANDSCAPE = QStringLiteral("tiledLandscape");
|
const QString LONG_OPTION_TILED_PDF_LANDSCAPE = QStringLiteral("tiledLandscape");
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief AllKeys return list with all command line keys (short and long forms). Used for testing on conflicts.
|
||||||
|
* @return list with all command line keys
|
||||||
|
*/
|
||||||
QStringList AllKeys()
|
QStringList AllKeys()
|
||||||
{
|
{
|
||||||
QStringList list;
|
QStringList list;
|
||||||
|
@ -150,8 +156,10 @@ QStringList AllKeys()
|
||||||
<< LONG_OPTION_GAPWIDTH << SINGLE_OPTION_GAPWIDTH
|
<< LONG_OPTION_GAPWIDTH << SINGLE_OPTION_GAPWIDTH
|
||||||
<< LONG_OPTION_GROUPPING << SINGLE_OPTION_GROUPPING
|
<< LONG_OPTION_GROUPPING << SINGLE_OPTION_GROUPPING
|
||||||
<< LONG_OPTION_TEST << SINGLE_OPTION_TEST
|
<< LONG_OPTION_TEST << SINGLE_OPTION_TEST
|
||||||
|
<< LONG_OPTION_PENDANTIC
|
||||||
<< LONG_OPTION_GRADATIONSIZE << SINGLE_OPTION_GRADATIONSIZE
|
<< LONG_OPTION_GRADATIONSIZE << SINGLE_OPTION_GRADATIONSIZE
|
||||||
<< LONG_OPTION_GRADATIONHEIGHT << SINGLE_OPTION_GRADATIONHEIGHT
|
<< LONG_OPTION_GRADATIONHEIGHT << SINGLE_OPTION_GRADATIONHEIGHT
|
||||||
|
<< LONG_OPTION_USER_MATERIAL
|
||||||
<< LONG_OPTION_IGNORE_MARGINS << SINGLE_OPTION_IGNORE_MARGINS
|
<< LONG_OPTION_IGNORE_MARGINS << SINGLE_OPTION_IGNORE_MARGINS
|
||||||
<< LONG_OPTION_LEFT_MARGIN << SINGLE_OPTION_LEFT_MARGIN
|
<< LONG_OPTION_LEFT_MARGIN << SINGLE_OPTION_LEFT_MARGIN
|
||||||
<< LONG_OPTION_RIGHT_MARGIN << SINGLE_OPTION_RIGHT_MARGIN
|
<< LONG_OPTION_RIGHT_MARGIN << SINGLE_OPTION_RIGHT_MARGIN
|
||||||
|
|
|
@ -95,6 +95,8 @@ extern const QString SINGLE_OPTION_GRADATIONSIZE;
|
||||||
extern const QString LONG_OPTION_GRADATIONHEIGHT;
|
extern const QString LONG_OPTION_GRADATIONHEIGHT;
|
||||||
extern const QString SINGLE_OPTION_GRADATIONHEIGHT;
|
extern const QString SINGLE_OPTION_GRADATIONHEIGHT;
|
||||||
|
|
||||||
|
extern const QString LONG_OPTION_USER_MATERIAL;
|
||||||
|
|
||||||
extern const QString LONG_OPTION_IGNORE_MARGINS;
|
extern const QString LONG_OPTION_IGNORE_MARGINS;
|
||||||
extern const QString SINGLE_OPTION_IGNORE_MARGINS;
|
extern const QString SINGLE_OPTION_IGNORE_MARGINS;
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,7 @@ VAbstractApplication::VAbstractApplication(int &argc, char **argv)
|
||||||
sceneView(nullptr),
|
sceneView(nullptr),
|
||||||
doc(nullptr),
|
doc(nullptr),
|
||||||
m_customerName(),
|
m_customerName(),
|
||||||
|
m_userMaterials(),
|
||||||
openingPattern(false)
|
openingPattern(false)
|
||||||
{
|
{
|
||||||
QString rules;
|
QString rules;
|
||||||
|
|
|
@ -118,6 +118,9 @@ public:
|
||||||
|
|
||||||
static QString ClearMessage(QString msg);
|
static QString ClearMessage(QString msg);
|
||||||
|
|
||||||
|
QMap<int, QString> GetUserMaterials() const;
|
||||||
|
void SetUserMaterials(const QMap<int, QString> &userMaterials);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QUndoStack *undoStack;
|
QUndoStack *undoStack;
|
||||||
|
|
||||||
|
@ -152,6 +155,8 @@ private:
|
||||||
VAbstractPattern *doc;
|
VAbstractPattern *doc;
|
||||||
QString m_customerName;
|
QString m_customerName;
|
||||||
|
|
||||||
|
QMap<int, QString> m_userMaterials;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief openingPattern true when we opening pattern. If something will be wrong in formula this help understand if
|
* @brief openingPattern true when we opening pattern. If something will be wrong in formula this help understand if
|
||||||
* we can allow user use Undo option.
|
* we can allow user use Undo option.
|
||||||
|
@ -185,6 +190,18 @@ inline void VAbstractApplication::SetPatternPath(const QString &value)
|
||||||
patternFilePath = value;
|
patternFilePath = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
inline QMap<int, QString> VAbstractApplication::GetUserMaterials() const
|
||||||
|
{
|
||||||
|
return m_userMaterials;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
inline void VAbstractApplication::SetUserMaterials(const QMap<int, QString> &userMaterials)
|
||||||
|
{
|
||||||
|
m_userMaterials = userMaterials;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline QString VAbstractApplication::LocaleToString(const T &value)
|
inline QString VAbstractApplication::LocaleToString(const T &value)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user