|
|
|
|
@ -50,11 +50,17 @@ struct PrintSettingsView: View { |
|
|
|
|
Toggle(isOn: $generator.includeBracket, label: { |
|
|
|
|
Text("Tableau") |
|
|
|
|
}) |
|
|
|
|
.onChange(of: generator.includeBracket) { oldValue, newValue in |
|
|
|
|
if newValue == false { |
|
|
|
|
generator.includeLoserBracket = newValue |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Toggle(isOn: $generator.includeLoserBracket, label: { |
|
|
|
|
Text("Tableau des matchs de classements") |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
.disabled(generator.includeBracket == false) |
|
|
|
|
|
|
|
|
|
if tournament.groupStages().isEmpty == false { |
|
|
|
|
Toggle(isOn: $generator.includeGroupStage, label: { |
|
|
|
|
Text("Poules") |
|
|
|
|
@ -62,71 +68,69 @@ struct PrintSettingsView: View { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if generator.includeBracket { |
|
|
|
|
Section { |
|
|
|
|
Picker(selection: $generator.zoomLevel) { |
|
|
|
|
Text("1 page").tag(nil as Optional<CGFloat>) |
|
|
|
|
Text("50%").tag(2.0 as Optional<CGFloat>) |
|
|
|
|
Text("100%").tag(1.0 as Optional<CGFloat>) |
|
|
|
|
} label: { |
|
|
|
|
Text("Zoom") |
|
|
|
|
} |
|
|
|
|
.onChange(of: generator.zoomLevel) { |
|
|
|
|
if generator.zoomLevel == nil { |
|
|
|
|
generator.landscape = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if generator.zoomLevel != nil { |
|
|
|
|
Toggle(isOn: $generator.landscape, label: { |
|
|
|
|
Text("Format paysage") |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
HStack { |
|
|
|
|
Text("Nombre de page A4 à imprimer") |
|
|
|
|
Spacer() |
|
|
|
|
Text(generator.estimatedPageCount.formatted()) |
|
|
|
|
Section { |
|
|
|
|
Picker(selection: $generator.zoomLevel) { |
|
|
|
|
Text("1 page").tag(nil as Optional<CGFloat>) |
|
|
|
|
Text("50%").tag(2.0 as Optional<CGFloat>) |
|
|
|
|
Text("100%").tag(1.0 as Optional<CGFloat>) |
|
|
|
|
} label: { |
|
|
|
|
Text("Zoom") |
|
|
|
|
} |
|
|
|
|
.onChange(of: generator.zoomLevel) { |
|
|
|
|
if generator.zoomLevel == nil { |
|
|
|
|
generator.landscape = false |
|
|
|
|
} |
|
|
|
|
} header: { |
|
|
|
|
Text("Tableau principal") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if generating == false { |
|
|
|
|
RowButtonView("Générer le PDF", systemImage: "printer") { |
|
|
|
|
await MainActor.run() { |
|
|
|
|
self.generating = true |
|
|
|
|
} |
|
|
|
|
generator.preparePDF { result in |
|
|
|
|
switch result { |
|
|
|
|
case .success(true): |
|
|
|
|
if generator.includeGroupStage && generator.groupStageIsReady == false && tournament.groupStages().isEmpty == false { |
|
|
|
|
self.prepareGroupStage = true |
|
|
|
|
self.generationGroupStageId = UUID() |
|
|
|
|
} else { |
|
|
|
|
self.presentShareView = true |
|
|
|
|
self.generating = false |
|
|
|
|
} |
|
|
|
|
case .success(false): |
|
|
|
|
print("didn't save pdf") |
|
|
|
|
break |
|
|
|
|
case .failure(let error): |
|
|
|
|
print(error) |
|
|
|
|
break |
|
|
|
|
if generator.zoomLevel != nil { |
|
|
|
|
Toggle(isOn: $generator.landscape, label: { |
|
|
|
|
Text("Format paysage") |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
HStack { |
|
|
|
|
Text("Nombre de page A4 à imprimer") |
|
|
|
|
Spacer() |
|
|
|
|
Text(generator.estimatedPageCount.formatted()) |
|
|
|
|
} |
|
|
|
|
} header: { |
|
|
|
|
Text("Tableau principal") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if generating == false { |
|
|
|
|
RowButtonView("Générer le PDF", systemImage: "printer") { |
|
|
|
|
await MainActor.run() { |
|
|
|
|
self.generating = true |
|
|
|
|
} |
|
|
|
|
generator.preparePDF { result in |
|
|
|
|
switch result { |
|
|
|
|
case .success(true): |
|
|
|
|
if generator.includeGroupStage && generator.groupStageIsReady == false && tournament.groupStages().isEmpty == false { |
|
|
|
|
self.prepareGroupStage = true |
|
|
|
|
self.generationGroupStageId = UUID() |
|
|
|
|
} else { |
|
|
|
|
self.presentShareView = true |
|
|
|
|
self.generating = false |
|
|
|
|
} |
|
|
|
|
case .success(false): |
|
|
|
|
print("didn't save pdf") |
|
|
|
|
break |
|
|
|
|
case .failure(let error): |
|
|
|
|
print(error) |
|
|
|
|
break |
|
|
|
|
} |
|
|
|
|
self.prepareGroupStage = false |
|
|
|
|
self.generationId = UUID() |
|
|
|
|
} |
|
|
|
|
.disabled(generator.includeBracket == false && generator.includeGroupStage == false && generator.includeLoserBracket == false) |
|
|
|
|
} else { |
|
|
|
|
LabeledContent { |
|
|
|
|
ProgressView() |
|
|
|
|
} label: { |
|
|
|
|
Text("Préparation du PDF") |
|
|
|
|
} |
|
|
|
|
.id(generationId) |
|
|
|
|
self.prepareGroupStage = false |
|
|
|
|
self.generationId = UUID() |
|
|
|
|
} |
|
|
|
|
.disabled(generator.includeBracket == false && generator.includeGroupStage == false) |
|
|
|
|
} else { |
|
|
|
|
LabeledContent { |
|
|
|
|
ProgressView() |
|
|
|
|
} label: { |
|
|
|
|
Text("Préparation du PDF") |
|
|
|
|
} |
|
|
|
|
.id(generationId) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Section { |
|
|
|
|
|