summaryrefslogtreecommitdiffstats
path: root/util/gradientgen
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2018-06-27 15:40:19 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2018-06-27 15:40:03 +0000
commit465098088e3dd9bb14e884351f15cffd1471fe2c (patch)
tree87d8e25b48d18cfea0ef05f8604593fecc1f2860 /util/gradientgen
parentfc926985a102e26869ad98abb697e801aef72bd0 (diff)
Harden logic for converting from CSS gradients to QGradient
Some of the gradients from https://webgradients.com/ are not minified completely, so we need to be a bit more lenient when converting them to the internal format used by QGradient. Change-Id: I47466b6a77abd6d2fefc1326fbf6ba5713dd74cb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'util/gradientgen')
-rwxr-xr-xutil/gradientgen/gradientgen.js17
1 files changed, 12 insertions, 5 deletions
diff --git a/util/gradientgen/gradientgen.js b/util/gradientgen/gradientgen.js
index ff256d16d6..2c0539c759 100755
--- a/util/gradientgen/gradientgen.js
+++ b/util/gradientgen/gradientgen.js
@@ -44,7 +44,7 @@ if (argc < 3) {
}
const filename = process.argv[argc - 1];
-const mode = argc > 3 ? process.argv[argc - 2] : '';
+const mode = argc > 3 ? process.argv[argc - 2] : 'json';
fs.readFile(filename, (err, css) => {
postcss([minifyGradients]).process(css)
@@ -99,15 +99,22 @@ fs.readFile(filename, (err, css) => {
const end = { x: 0.5 + x, y: 0.5 + y };
let stops = []
+
+ let lastPosition = 0;
args.slice(1).forEach((arg, index) => {
- let [color, stop = !index ? '0%' : '100%'] = arg;
- stop = parseInt(stop) / 100;
+ let [color, position = !index ? '0%' : '100%'] = arg;
+ position = parseInt(position) / 100;
+ if (position < lastPosition)
+ position = lastPosition;
+ lastPosition = position;
color = parseColor(color).hex;
color = parseInt(color.slice(1), 16)
- stops.push({ color, stop })
+ stops.push({ color, position })
});
gradients[gradients.length - 1] = { start, end, stops };
+ if (mode == 'debug')
+ console.log(name, args, gradients[gradients.length - 1])
});
enums.push(name);
@@ -117,7 +124,7 @@ fs.readFile(filename, (err, css) => {
});
// Done walking declarations
- if (mode != 'enums')
+ if (mode == 'json')
console.log(JSON.stringify(gradients, undefined, 4));
});
});