Skip to content

Commit

Permalink
Add checkbox to disable GIF looping (#152)
Browse files Browse the repository at this point in the history
  • Loading branch information
yonihemi authored and sindresorhus committed Oct 25, 2019
1 parent 8f7808b commit 92bcd09
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 38 deletions.
1 change: 1 addition & 0 deletions Gifski/Constants.swift
Expand Up @@ -12,6 +12,7 @@ extension NSColor {
extension Defaults.Keys {
static let outputQuality = Key<Double>("outputQuality", default: 1)
static let successfulConversionsCount = Key<Int>("successfulConversionsCount", default: 0)
static let loopGif = Key<Bool>("loopGif", default: true)
}

struct Constants {
Expand Down
9 changes: 6 additions & 3 deletions Gifski/EditVideoViewController.swift
Expand Up @@ -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!
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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() {
Expand Down

0 comments on commit 92bcd09

Please sign in to comment.