mirror of
https://github.com/mifi/lossless-cut.git
synced 2024-11-21 18:02:35 +01:00
Add trash source function
This commit is contained in:
parent
5bce03e29b
commit
3e3f046685
249
package-lock.json
generated
249
package-lock.json
generated
@ -4,10 +4,45 @@
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@sindresorhus/df": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sindresorhus/df/-/df-2.1.0.tgz",
|
||||
"integrity": "sha1-0gjPJ+BvC7R20U197M19cm6ao4k=",
|
||||
"requires": {
|
||||
"execa": "^0.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"execa": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.2.2.tgz",
|
||||
"integrity": "sha1-4urUcsLDGq1vc/GslW7vReEjIMs=",
|
||||
"requires": {
|
||||
"cross-spawn-async": "^2.1.1",
|
||||
"npm-run-path": "^1.0.0",
|
||||
"object-assign": "^4.0.1",
|
||||
"path-key": "^1.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz",
|
||||
"integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=",
|
||||
"requires": {
|
||||
"path-key": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"path-key": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz",
|
||||
"integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "8.10.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.17.tgz",
|
||||
"integrity": "sha512-3N3FRd/rA1v5glXjb90YdYUa+sOB7WrkU2rAhKZnF4TKD86Cym9swtulGuH0p9nxo7fP5woRNa8b0oFTpCO1bg=="
|
||||
"version": "8.10.29",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.29.tgz",
|
||||
"integrity": "sha512-zbteaWZ2mdduacm0byELwtRyhYE40aK+pAanQk415gr1eRuu67x7QGOLmn8jz5zI8LDK7d0WI/oT6r5Trz4rzQ=="
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
@ -151,7 +186,6 @@
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
|
||||
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"array-uniq": "^1.0.1"
|
||||
}
|
||||
@ -159,8 +193,7 @@
|
||||
"array-uniq": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
|
||||
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
|
||||
"dev": true
|
||||
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
|
||||
},
|
||||
"array-unique": {
|
||||
"version": "0.2.1",
|
||||
@ -182,8 +215,7 @@
|
||||
"arrify": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
|
||||
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
||||
"dev": true
|
||||
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
|
||||
},
|
||||
"asap": {
|
||||
"version": "2.0.6",
|
||||
@ -1466,6 +1498,15 @@
|
||||
"which": "^1.2.9"
|
||||
}
|
||||
},
|
||||
"cross-spawn-async": {
|
||||
"version": "2.2.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz",
|
||||
"integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=",
|
||||
"requires": {
|
||||
"lru-cache": "^4.0.0",
|
||||
"which": "^1.2.8"
|
||||
}
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
|
||||
@ -1607,6 +1648,30 @@
|
||||
"repeating": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"dir-glob": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
|
||||
"integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
|
||||
"requires": {
|
||||
"arrify": "^1.0.1",
|
||||
"path-type": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"path-type": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
|
||||
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
|
||||
"requires": {
|
||||
"pify": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"pify": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
|
||||
}
|
||||
}
|
||||
},
|
||||
"doctrine": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
|
||||
@ -1635,9 +1700,9 @@
|
||||
}
|
||||
},
|
||||
"electron": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-2.0.1.tgz",
|
||||
"integrity": "sha512-piSwY2P7L6NWx672MNdSvtGPdQP/mhwAg8ICN6ofTTItPkd7D6kNHBPkq+DXwZcXVH1EifYR9yD/l3Xw1haVpQ==",
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-2.0.9.tgz",
|
||||
"integrity": "sha512-xRefYuz6C65ahX8vDwIJxr1Y5ffFa106dugZEbl23yLKfrAG01lh5csBJ9hJwCBPLHp2zj/9PGoJ8dt5zlzOvQ==",
|
||||
"requires": {
|
||||
"@types/node": "^8.0.24",
|
||||
"electron-download": "^3.0.1",
|
||||
@ -1901,6 +1966,11 @@
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"escape-string-applescript": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-applescript/-/escape-string-applescript-2.0.0.tgz",
|
||||
"integrity": "sha1-dgvKg4Zo5Aj+XuUs5CyvfLRsUnM="
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
@ -3922,8 +3992,7 @@
|
||||
"ignore": {
|
||||
"version": "3.3.7",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
|
||||
"integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA=="
|
||||
},
|
||||
"imurmurhash": {
|
||||
"version": "0.1.4",
|
||||
@ -4639,6 +4708,23 @@
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz",
|
||||
"integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg=="
|
||||
},
|
||||
"mount-point": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mount-point/-/mount-point-3.0.0.tgz",
|
||||
"integrity": "sha1-Zly57evoDREOZY21bDHQrvUaj5c=",
|
||||
"requires": {
|
||||
"@sindresorhus/df": "^1.0.1",
|
||||
"pify": "^2.3.0",
|
||||
"pinkie-promise": "^2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sindresorhus/df": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@sindresorhus/df/-/df-1.0.1.tgz",
|
||||
"integrity": "sha1-xptm9S9vzdKHyAffIQMF2694UA0="
|
||||
}
|
||||
}
|
||||
},
|
||||
"mousetrap": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.1.tgz",
|
||||
@ -4668,6 +4754,11 @@
|
||||
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
||||
"dev": true
|
||||
},
|
||||
"nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
|
||||
@ -4810,8 +4901,7 @@
|
||||
"os-homedir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
|
||||
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
|
||||
"dev": true
|
||||
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
|
||||
},
|
||||
"os-locale": {
|
||||
"version": "1.4.0",
|
||||
@ -4882,14 +4972,12 @@
|
||||
"p-map": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
|
||||
"integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA=="
|
||||
},
|
||||
"p-try": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
|
||||
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
|
||||
"dev": true
|
||||
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
|
||||
},
|
||||
"parse-glob": {
|
||||
"version": "3.0.4",
|
||||
@ -5570,6 +5658,47 @@
|
||||
"glob": "^7.0.5"
|
||||
}
|
||||
},
|
||||
"run-applescript": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-3.2.0.tgz",
|
||||
"integrity": "sha512-Ep0RsvAjnRcBX1p5vogbaBdAGu/8j/ewpvGqnQYunnLd9SM0vWcPJewPKNnWFggf0hF0pwIgwV5XK7qQ7UZ8Qg==",
|
||||
"requires": {
|
||||
"execa": "^0.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"requires": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
}
|
||||
},
|
||||
"execa": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
|
||||
"integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
|
||||
"requires": {
|
||||
"cross-spawn": "^6.0.0",
|
||||
"get-stream": "^3.0.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"npm-run-path": "^2.0.0",
|
||||
"p-finally": "^1.0.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"get-stream": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
|
||||
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
"run-async": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
|
||||
@ -5634,6 +5763,19 @@
|
||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
||||
"requires": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
|
||||
},
|
||||
"shelljs": {
|
||||
"version": "0.7.8",
|
||||
"resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
|
||||
@ -5661,8 +5803,7 @@
|
||||
"slash": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
|
||||
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
|
||||
"dev": true
|
||||
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
|
||||
},
|
||||
"slice-ansi": {
|
||||
"version": "0.0.4",
|
||||
@ -5981,6 +6122,42 @@
|
||||
"punycode": "^1.4.1"
|
||||
}
|
||||
},
|
||||
"trash": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/trash/-/trash-4.3.0.tgz",
|
||||
"integrity": "sha512-f36TKwIaBiXm63xSrn8OTNghg5CYHBsFVJvcObMo76LRpgariuRi2CqXQHw1VzfeximD0igdGaonOG6N760BtQ==",
|
||||
"requires": {
|
||||
"escape-string-applescript": "^2.0.0",
|
||||
"fs-extra": "^0.30.0",
|
||||
"globby": "^7.1.1",
|
||||
"p-map": "^1.2.0",
|
||||
"p-try": "^1.0.0",
|
||||
"pify": "^3.0.0",
|
||||
"run-applescript": "^3.0.0",
|
||||
"uuid": "^3.1.0",
|
||||
"xdg-trashdir": "^2.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"globby": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
|
||||
"integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
|
||||
"requires": {
|
||||
"array-union": "^1.0.1",
|
||||
"dir-glob": "^2.0.0",
|
||||
"glob": "^7.1.2",
|
||||
"ignore": "^3.3.5",
|
||||
"pify": "^3.0.0",
|
||||
"slash": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"pify": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
|
||||
}
|
||||
}
|
||||
},
|
||||
"traverse": {
|
||||
"version": "0.3.9",
|
||||
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
|
||||
@ -6178,6 +6355,36 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"xdg-basedir": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
|
||||
"integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=",
|
||||
"requires": {
|
||||
"os-homedir": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"xdg-trashdir": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/xdg-trashdir/-/xdg-trashdir-2.1.1.tgz",
|
||||
"integrity": "sha512-KcVhPaOu2ZurYNHSRTf1+ZHORkTZGCQ+u0JHN17QixRISJq4pXOnjt/lQcehvtHL5QAKhSzKgyjrcNnPdkPBHA==",
|
||||
"requires": {
|
||||
"@sindresorhus/df": "^2.1.0",
|
||||
"mount-point": "^3.0.0",
|
||||
"pify": "^2.2.0",
|
||||
"user-home": "^2.0.0",
|
||||
"xdg-basedir": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"user-home": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
|
||||
"integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
|
||||
"requires": {
|
||||
"os-homedir": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "8.2.2",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
|
||||
|
@ -53,7 +53,7 @@
|
||||
"dependencies": {
|
||||
"bluebird": "^3.4.6",
|
||||
"classnames": "^2.2.5",
|
||||
"electron": "^2.0.1",
|
||||
"electron": "^2.0.9",
|
||||
"electron-default-menu": "^1.0.0",
|
||||
"electron-is-dev": "^0.1.2",
|
||||
"execa": "^0.5.0",
|
||||
@ -69,6 +69,7 @@
|
||||
"react-hammerjs": "^0.5.0",
|
||||
"read-chunk": "^2.0.0",
|
||||
"strong-data-uri": "^1.0.4",
|
||||
"trash": "^4.3.0",
|
||||
"which": "^1.2.11"
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ const Mousetrap = require('mousetrap');
|
||||
const _ = require('lodash');
|
||||
const Hammer = require('react-hammerjs');
|
||||
const path = require('path');
|
||||
const trash = require('trash');
|
||||
|
||||
const React = require('react');
|
||||
const ReactDOM = require('react-dom');
|
||||
@ -78,53 +79,45 @@ function withBlur(cb) {
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
const localState = {
|
||||
working: false,
|
||||
filePath: '', // Setting video src="" prevents memory leak in chromium
|
||||
html5FriendlyPath: undefined,
|
||||
playing: false,
|
||||
currentTime: undefined,
|
||||
duration: undefined,
|
||||
cutStartTime: 0,
|
||||
cutStartTimeManual: undefined,
|
||||
cutEndTime: undefined,
|
||||
cutEndTimeManual: undefined,
|
||||
fileFormat: undefined,
|
||||
rotation: 360,
|
||||
cutProgress: undefined,
|
||||
};
|
||||
|
||||
const globalState = {
|
||||
stripAudio: false,
|
||||
includeAllStreams: false,
|
||||
captureFormat: 'jpeg',
|
||||
customOutDir: undefined,
|
||||
keyframeCut: false,
|
||||
};
|
||||
|
||||
class App extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
const localState = {
|
||||
working: false,
|
||||
filePath: '', // Setting video src="" prevents memory leak in chromium
|
||||
html5FriendlyPath: undefined,
|
||||
playing: false,
|
||||
currentTime: undefined,
|
||||
duration: undefined,
|
||||
cutStartTime: 0,
|
||||
cutStartTimeManual: undefined,
|
||||
cutEndTime: undefined,
|
||||
cutEndTimeManual: undefined,
|
||||
fileFormat: undefined,
|
||||
rotation: 360,
|
||||
cutProgress: undefined,
|
||||
};
|
||||
|
||||
const globalState = {
|
||||
stripAudio: false,
|
||||
includeAllStreams: false,
|
||||
captureFormat: 'jpeg',
|
||||
customOutDir: undefined,
|
||||
keyframeCut: false,
|
||||
};
|
||||
|
||||
this.state = {
|
||||
...localState,
|
||||
...globalState,
|
||||
};
|
||||
|
||||
const resetState = () => {
|
||||
const video = getVideo();
|
||||
video.currentTime = 0;
|
||||
video.playbackRate = 1;
|
||||
this.setState(localState);
|
||||
};
|
||||
|
||||
const load = (filePath, html5FriendlyPath) => {
|
||||
console.log('Load', { filePath, html5FriendlyPath });
|
||||
if (this.state.working) return alert('I\'m busy');
|
||||
|
||||
resetState();
|
||||
|
||||
setFileNameTitle();
|
||||
this.resetState();
|
||||
|
||||
this.setState({ working: true });
|
||||
|
||||
@ -259,6 +252,14 @@ class App extends React.Component {
|
||||
this.setState({ rotation });
|
||||
}
|
||||
|
||||
resetState() {
|
||||
const video = getVideo();
|
||||
video.currentTime = 0;
|
||||
video.playbackRate = 1;
|
||||
this.setState(localState);
|
||||
setFileNameTitle();
|
||||
}
|
||||
|
||||
toggleCaptureFormat() {
|
||||
const isPng = this.state.captureFormat === 'png';
|
||||
this.setState({ captureFormat: isPng ? 'jpeg' : 'png' });
|
||||
@ -314,6 +315,15 @@ class App extends React.Component {
|
||||
});
|
||||
}
|
||||
|
||||
async deleteSourceClick() {
|
||||
if (this.state.working || !confirm('Are you sure you want to move the source file to trash?')) return;
|
||||
const { filePath } = this.state;
|
||||
|
||||
this.setState({ working: true });
|
||||
await trash(filePath);
|
||||
this.resetState();
|
||||
}
|
||||
|
||||
async cutClick() {
|
||||
if (this.state.working) return alert('I\'m busy');
|
||||
|
||||
@ -526,6 +536,12 @@ class App extends React.Component {
|
||||
aria-hidden="true"
|
||||
onClick={() => this.cutClick()}
|
||||
/>
|
||||
<i
|
||||
title="Delete source file"
|
||||
className="button fa fa-trash"
|
||||
aria-hidden="true"
|
||||
onClick={() => this.deleteSourceClick()}
|
||||
/>
|
||||
<i
|
||||
title="Set cut end to current position"
|
||||
className="button fa fa-angle-right"
|
||||
|
Loading…
Reference in New Issue
Block a user