Command line options for dealing with margins.
--HG-- branch : feature
This commit is contained in:
parent
01a23b5e08
commit
39f7994f1b
|
@ -63,6 +63,21 @@ const static auto SINGLE_OPTION_GRADATIONSIZE = QStringLiteral("x");
|
||||||
const static auto LONG_OPTION_GRADATIONHEIGHT = QStringLiteral("gheight");
|
const static auto LONG_OPTION_GRADATIONHEIGHT = QStringLiteral("gheight");
|
||||||
const static auto SINGLE_OPTION_GRADATIONHEIGHT = QStringLiteral("e");
|
const static auto SINGLE_OPTION_GRADATIONHEIGHT = QStringLiteral("e");
|
||||||
|
|
||||||
|
const static auto LONG_OPTION_IGNORE_MARGINS = QStringLiteral("ignoremargins");
|
||||||
|
const static auto SINGLE_OPTION_IGNORE_MARGINS = QStringLiteral("i");
|
||||||
|
|
||||||
|
const static auto LONG_OPTION_LEFT_MARGIN = QStringLiteral("lmargin");
|
||||||
|
const static auto SINGLE_OPTION_LEFT_MARGIN = QStringLiteral("L");
|
||||||
|
|
||||||
|
const static auto LONG_OPTION_RIGHT_MARGIN = QStringLiteral("rmargin");
|
||||||
|
const static auto SINGLE_OPTION_RIGHT_MARGIN = QStringLiteral("R");
|
||||||
|
|
||||||
|
const static auto LONG_OPTION_TOP_MARGIN = QStringLiteral("tmargin");
|
||||||
|
const static auto SINGLE_OPTION_TOP_MARGIN = QStringLiteral("T");
|
||||||
|
|
||||||
|
const static auto LONG_OPTION_BOTTOM_MARGIN = QStringLiteral("bmargin");
|
||||||
|
const static auto SINGLE_OPTION_BOTTOM_MARGIN = QStringLiteral("B");
|
||||||
|
|
||||||
#define translate(context, source) QCoreApplication::translate((context), (source))
|
#define translate(context, source) QCoreApplication::translate((context), (source))
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -169,6 +184,43 @@ void VCommandLine::InitOptions(VCommandLineOptions &options, QMap<QString, int>
|
||||||
.arg(LONG_OPTION_PAGETEMPLATE) + VDomDocument::UnitsHelpString(),
|
.arg(LONG_OPTION_PAGETEMPLATE) + VDomDocument::UnitsHelpString(),
|
||||||
translate("VCommandLine", "The measure unit")));
|
translate("VCommandLine", "The measure unit")));
|
||||||
|
|
||||||
|
optionsIndex.insert(LONG_OPTION_IGNORE_MARGINS, index++);
|
||||||
|
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_IGNORE_MARGINS << LONG_OPTION_IGNORE_MARGINS,
|
||||||
|
translate("VCommandLine",
|
||||||
|
"Ignore margins printing (export mode). Set all margins to 0.")));
|
||||||
|
|
||||||
|
optionsIndex.insert(LONG_OPTION_LEFT_MARGIN, index++);
|
||||||
|
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_LEFT_MARGIN << LONG_OPTION_LEFT_MARGIN,
|
||||||
|
translate("VCommandLine",
|
||||||
|
"Page left margin in current units like 3.0 (export mode). If "
|
||||||
|
"not set will be used value from default printer. Or 0 if none "
|
||||||
|
"printers was found."),
|
||||||
|
("The left margin")));
|
||||||
|
|
||||||
|
optionsIndex.insert(LONG_OPTION_RIGHT_MARGIN, index++);
|
||||||
|
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_RIGHT_MARGIN << LONG_OPTION_RIGHT_MARGIN,
|
||||||
|
translate("VCommandLine",
|
||||||
|
"Page right margin in current units like 3.0 (export mode). If "
|
||||||
|
"not set will be used value from default printer. Or 0 if none "
|
||||||
|
"printers was found."),
|
||||||
|
("The right margin")));
|
||||||
|
|
||||||
|
optionsIndex.insert(LONG_OPTION_TOP_MARGIN, index++);
|
||||||
|
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_TOP_MARGIN << LONG_OPTION_TOP_MARGIN,
|
||||||
|
translate("VCommandLine",
|
||||||
|
"Page top margin in current units like 3.0 (export mode). If "
|
||||||
|
"not set will be used value from default printer. Or 0 if none "
|
||||||
|
"printers was found."),
|
||||||
|
("The top margin")));
|
||||||
|
|
||||||
|
optionsIndex.insert(LONG_OPTION_BOTTOM_MARGIN, index++);
|
||||||
|
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_BOTTOM_MARGIN << LONG_OPTION_BOTTOM_MARGIN,
|
||||||
|
translate("VCommandLine",
|
||||||
|
"Page bottom margin in current units like 3.0 (export mode). If "
|
||||||
|
"not set will be used value from default printer. Or 0 if none "
|
||||||
|
"printers was found."),
|
||||||
|
("The bottom margin")));
|
||||||
|
|
||||||
//=================================================================================================================
|
//=================================================================================================================
|
||||||
optionsIndex.insert(LONG_OPTION_ROTATE, index++);
|
optionsIndex.insert(LONG_OPTION_ROTATE, index++);
|
||||||
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_ROTATE << LONG_OPTION_ROTATE,
|
options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_ROTATE << LONG_OPTION_ROTATE,
|
||||||
|
@ -278,6 +330,54 @@ VLayoutGeneratorPtr VCommandLine::DefaultGenerator() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
//just anonymous namespace ...don' like to have a,b,c,d everywhere defined
|
||||||
|
bool a = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_LEFT_MARGIN)));
|
||||||
|
bool b = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_PAGEUNITS)));
|
||||||
|
|
||||||
|
if ((a || b) && !(a && b))
|
||||||
|
{
|
||||||
|
qCritical() << translate("VCommandLine", "Left margin must be used together with page units.") << "\n";
|
||||||
|
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
//just anonymous namespace ...don' like to have a,b,c,d everywhere defined
|
||||||
|
bool a = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_RIGHT_MARGIN)));
|
||||||
|
bool b = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_PAGEUNITS)));
|
||||||
|
|
||||||
|
if ((a || b) && !(a && b))
|
||||||
|
{
|
||||||
|
qCritical() << translate("VCommandLine", "Right margin must be used together with page units.") << "\n";
|
||||||
|
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
//just anonymous namespace ...don' like to have a,b,c,d everywhere defined
|
||||||
|
bool a = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_TOP_MARGIN)));
|
||||||
|
bool b = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_PAGEUNITS)));
|
||||||
|
|
||||||
|
if ((a || b) && !(a && b))
|
||||||
|
{
|
||||||
|
qCritical() << translate("VCommandLine", "Top margin must be used together with page units.") << "\n";
|
||||||
|
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
//just anonymous namespace ...don' like to have a,b,c,d everywhere defined
|
||||||
|
bool a = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_BOTTOM_MARGIN)));
|
||||||
|
bool b = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_PAGEUNITS)));
|
||||||
|
|
||||||
|
if ((a || b) && !(a && b))
|
||||||
|
{
|
||||||
|
qCritical() << translate("VCommandLine", "Bottom margin must be used together with page units.") << "\n";
|
||||||
|
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int rotateDegree = OptRotation();
|
int rotateDegree = OptRotation();
|
||||||
diag.SetRotate(rotateDegree != 0 );
|
diag.SetRotate(rotateDegree != 0 );
|
||||||
|
|
||||||
|
@ -336,6 +436,48 @@ VLayoutGeneratorPtr VCommandLine::DefaultGenerator() const
|
||||||
diag.SetSaveLength(parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_SAVELENGTH))));
|
diag.SetSaveLength(parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_SAVELENGTH))));
|
||||||
diag.SetGroup(OptGroup());
|
diag.SetGroup(OptGroup());
|
||||||
|
|
||||||
|
if (parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_IGNORE_MARGINS))))
|
||||||
|
{
|
||||||
|
diag.SetIgnoreAllFields(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QMarginsF margins = diag.GetFields();
|
||||||
|
|
||||||
|
{
|
||||||
|
const QCommandLineOption *option = optionsUsed.value(optionsIndex.value(LONG_OPTION_LEFT_MARGIN));
|
||||||
|
if (parser.isSet(*option))
|
||||||
|
{
|
||||||
|
margins.setLeft(Pg2Px(parser.value(*option), diag));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const QCommandLineOption *option = optionsUsed.value(optionsIndex.value(LONG_OPTION_RIGHT_MARGIN));
|
||||||
|
if (parser.isSet(*option))
|
||||||
|
{
|
||||||
|
margins.setRight(Pg2Px(parser.value(*option), diag));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const QCommandLineOption *option = optionsUsed.value(optionsIndex.value(LONG_OPTION_TOP_MARGIN));
|
||||||
|
if (parser.isSet(*option))
|
||||||
|
{
|
||||||
|
margins.setTop(Pg2Px(parser.value(*option), diag));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const QCommandLineOption *option = optionsUsed.value(optionsIndex.value(LONG_OPTION_BOTTOM_MARGIN));
|
||||||
|
if (parser.isSet(*option))
|
||||||
|
{
|
||||||
|
margins.setBottom(Pg2Px(parser.value(*option), diag));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diag.SetFields(margins);
|
||||||
|
}
|
||||||
|
|
||||||
diag.DialogAccepted(); // filling VLayoutGenerator
|
diag.DialogAccepted(); // filling VLayoutGenerator
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user