Rework applying initial settings
This commit is contained in:
parent
576f6a616f
commit
8fad10a2d1
1 changed files with 24 additions and 14 deletions
|
@ -64,7 +64,7 @@ Page {
|
|||
visible: printer.attrs.hasOwnProperty("printer-uuid")
|
||||
onClicked: {
|
||||
var tmp = jobParams;
|
||||
// Support varies between formats and values varies between documents, would be confusing to save
|
||||
// Varies between documents, would be confusing to save
|
||||
tmp["page-ranges"] = undefined;
|
||||
db.setJobSettings(printer.attrs["printer-uuid"].value, selectedFileType, JSON.stringify(tmp))
|
||||
}
|
||||
|
@ -101,8 +101,18 @@ Page {
|
|||
function isValid(name) {
|
||||
return printer.attrs.hasOwnProperty(name+"-supported");
|
||||
}
|
||||
function getInitialChoice(name) {
|
||||
return jobParams.hasOwnProperty(name) ? jobParams[name].value : undefined
|
||||
function setInitialChoice(setting) {
|
||||
if(jobParams.hasOwnProperty(setting.name))
|
||||
{
|
||||
if(setting.valid)
|
||||
{
|
||||
setting.choice = jobParams[setting.name].value;
|
||||
}
|
||||
else
|
||||
{ // Clear jobParams of invalid settings
|
||||
jobParams[setting.name] = undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
function getChoices(name) {
|
||||
return isValid(name) ? printer.attrs[name+"-supported"].value : [];
|
||||
|
@ -117,48 +127,48 @@ Page {
|
|||
name: "sides"
|
||||
prettyName: qsTr("Sides")
|
||||
valid: utils.isValid(name)
|
||||
choice: utils.getInitialChoice(name)
|
||||
choices: utils.getChoices(name)
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
mime_type: selectedFileType
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
ChoiceSetting {
|
||||
tag: IppMsg.Keyword
|
||||
name: "media"
|
||||
prettyName: qsTr("Print media")
|
||||
valid: utils.isValid(name)
|
||||
choice: utils.getInitialChoice(name)
|
||||
choices: utils.getChoices(name)
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
mime_type: selectedFileType
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
IntegerSetting {
|
||||
tag: IppMsg.Integer
|
||||
name: "copies"
|
||||
prettyName: qsTr("Copies")
|
||||
valid: utils.isValid(name)
|
||||
choice: utils.getInitialChoice(name)
|
||||
low: valid ? printer.attrs[name+"-supported"].value.low : 0
|
||||
high: valid ? printer.attrs[name+"-supported"].value.high : 0
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
ChoiceSetting {
|
||||
tag: IppMsg.Keyword
|
||||
name: "multiple-document-handling"
|
||||
prettyName: qsTr("Collated copies")
|
||||
valid: utils.isValid(name)
|
||||
choice: utils.getInitialChoice(name)
|
||||
choices: utils.getChoices(name)
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
mime_type: selectedFileType
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
RangeSetting {
|
||||
tag: IppMsg.IntegerRange
|
||||
|
@ -166,82 +176,82 @@ Page {
|
|||
prettyName: qsTr("Page range")
|
||||
valid: (utils.isValid(name) || ConvertChecker.pdf) &&
|
||||
(selectedFileType == "application/pdf" || Mimer.isOffice(selectedFileType))
|
||||
choice: utils.getInitialChoice(name)
|
||||
|
||||
property var pdfpages: ConvertChecker.pdfPages(selectedFile)
|
||||
high: pdfpages == 0 ? 65535 : pdfpages
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
ChoiceSetting {
|
||||
tag: IppMsg.Keyword
|
||||
name: "print-color-mode"
|
||||
prettyName: qsTr("Color mode")
|
||||
valid: utils.isValid(name)
|
||||
choice: utils.getInitialChoice(name)
|
||||
choices: utils.getChoices(name)
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
mime_type: selectedFileType
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
ChoiceSetting {
|
||||
tag: IppMsg.Enum
|
||||
name: "print-quality"
|
||||
prettyName: qsTr("Quality")
|
||||
choice: utils.getInitialChoice(name)
|
||||
valid: utils.isValid(name)
|
||||
choices: utils.getChoices(name)
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
mime_type: selectedFileType
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
ChoiceSetting {
|
||||
tag: IppMsg.Resolution
|
||||
name: "printer-resolution"
|
||||
prettyName: qsTr("Resolution")
|
||||
valid: utils.isValid(name)
|
||||
choice: utils.getInitialChoice(name)
|
||||
choices: utils.getChoices(name)
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
mime_type: selectedFileType
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
ChoiceSetting {
|
||||
tag: IppMsg.MimeMediaType
|
||||
name: "document-format"
|
||||
prettyName: qsTr("Transfer format")
|
||||
valid: utils.isValid(name)
|
||||
choice: utils.getInitialChoice(name)
|
||||
choices: utils.getChoices(name)
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
mime_type: selectedFileType
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
ChoiceSetting {
|
||||
tag: IppMsg.Keyword
|
||||
name: "media-source"
|
||||
prettyName: qsTr("Media source")
|
||||
valid: utils.isValid(name)
|
||||
choice: utils.getInitialChoice(name)
|
||||
choices: utils.getChoices(name)
|
||||
default_choice: utils.getDefaultChoice(name)
|
||||
mime_type: selectedFileType
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
MediaColSetting {
|
||||
tag: IppMsg.BeginCollection
|
||||
name: "media-col"
|
||||
prettyName: qsTr("Zero margins")
|
||||
valid: false
|
||||
choice: utils.getInitialChoice(name)
|
||||
printer: page.printer
|
||||
|
||||
onChoiceChanged: page.choiceMade(this)
|
||||
Component.onCompleted: utils.setInitialChoice(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue