diff --git a/Gifski/Constants.swift b/Gifski/Constants.swift index 618f1349..4fc62d73 100644 --- a/Gifski/Constants.swift +++ b/Gifski/Constants.swift @@ -12,6 +12,7 @@ extension NSColor { extension Defaults.Keys { static let outputQuality = Key("outputQuality", default: 1) static let successfulConversionsCount = Key("successfulConversionsCount", default: 0) + static let loopGif = Key("loopGif", default: true) } struct Constants { diff --git a/Gifski/EditVideoViewController.swift b/Gifski/EditVideoViewController.swift index ae762525..a66949ad 100644 --- a/Gifski/EditVideoViewController.swift +++ b/Gifski/EditVideoViewController.swift @@ -21,6 +21,7 @@ final class EditVideoViewController: NSViewController { @IBOutlet private var frameRateSlider: NSSlider! @IBOutlet private var frameRateLabel: NSTextField! @IBOutlet private var qualitySlider: NSSlider! + @IBOutlet private var loopCheckbox: NSButton! @IBOutlet private var widthTextField: IntTextField! @IBOutlet private var heightTextField: IntTextField! @@ -65,7 +66,8 @@ final class EditVideoViewController: NSViewController { timeRange: timeRange, quality: Defaults[.outputQuality], dimensions: resizableDimensions.changed(dimensionsType: .pixels).currentDimensions.value, - frameRate: frameRateSlider.integerValue + frameRate: frameRateSlider.integerValue, + loopGif: Defaults[.loopGif] ) let convert = ConversionViewController(conversion: conversion) @@ -97,7 +99,8 @@ final class EditVideoViewController: NSViewController { dimensionsTypeDropdown.nextKeyView = frameRateSlider widthTextField.nextKeyView = heightTextField heightTextField.nextKeyView = dimensionsTypeDropdown - qualitySlider.nextKeyView = cancelButton + qualitySlider.nextKeyView = loopCheckbox + loopCheckbox.nextKeyView = cancelButton tooltip.show(from: widthTextField, preferredEdge: .maxX) predefinedSizesDropdown.focus() @@ -326,7 +329,7 @@ final class EditVideoViewController: NSViewController { let dimensions = resizableDimensions.changed(dimensionsType: .pixels).currentDimensions.value var fileSize = (Double(dimensions.width) * Double(dimensions.height) * frameCount) / 3 fileSize = fileSize * (qualitySlider.doubleValue + 1.5) / 2.5 - estimatedSizeLabel.stringValue = "Estimated size: " + formatter.string(fromByteCount: Int64(fileSize)) + estimatedSizeLabel.stringValue = "Estimated File Size: " + formatter.string(fromByteCount: Int64(fileSize)) } private func updateDimensionsDisplay() { diff --git a/Gifski/EditVideoViewController.xib b/Gifski/EditVideoViewController.xib index 1cb8b151..c2706bd9 100644 --- a/Gifski/EditVideoViewController.xib +++ b/Gifski/EditVideoViewController.xib @@ -1,8 +1,8 @@ - + - + @@ -14,6 +14,7 @@ + @@ -49,16 +50,16 @@ - + - + - + - + @@ -66,7 +67,7 @@ - + @@ -79,7 +80,7 @@ - + @@ -90,7 +91,7 @@ - + @@ -98,7 +99,7 @@ - + @@ -109,7 +110,7 @@ - + @@ -117,7 +118,7 @@ - + @@ -143,8 +144,7 @@ - - + @@ -163,13 +163,13 @@ - + - + - + @@ -181,14 +181,14 @@ - + - + @@ -199,21 +199,28 @@ - + - - - + @@ -221,16 +228,15 @@ - - - + + @@ -247,10 +253,10 @@ - +