Compare commits

...

3108 Commits

Author SHA1 Message Date
ee57bba4af notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 01:57:16 +03:00
498796e311 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 01:29:58 +03:00
27ffd2a243 gnumake...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 01:13:59 +03:00
a39f9530a0 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 01:08:18 +03:00
a7013814e5 added gnumake...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 01:06:17 +03:00
b7b955660a added infozip to path...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 01:01:59 +03:00
55fc1e743a add infozip to macos...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 00:59:53 +03:00
af61bd1ed2 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 00:56:47 +03:00
55dd723e97 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 00:52:08 +03:00
42b4b6c680 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 00:50:02 +03:00
b035aebec1 added gnu-sed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 00:49:12 +03:00
6edb15e1d2 added arm64...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 00:44:12 +03:00
3fe668ea1d starting work on macos builds
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-18 00:38:08 +03:00
fd52cba3d5 preparing for a real build -- version tags...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-17 20:11:58 +03:00
2d5d81b9d6 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 19:53:53 +03:00
a503e9d45f better automation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 19:49:27 +03:00
9b8f0ec4c6 some tooling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 19:35:22 +03:00
7327ffa19a cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 19:18:08 +03:00
ce87a1a48e removed zipnote dependency...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 19:09:04 +03:00
bf3faba50c zipnote fails under windows -- have a hunch of the reason, if it is correct I'll have to walk away for a bit ;)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 18:15:56 +03:00
b2c51bda01 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 18:07:40 +03:00
39cb6d1a9c tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 17:59:26 +03:00
d1a2c902bf tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 17:51:07 +03:00
5af64caa08 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 17:46:23 +03:00
aeca88b1c5 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 16:07:30 +03:00
910a5eb929 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 16:04:58 +03:00
8442a9ef4f tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 16:02:30 +03:00
66b75a9eae tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 16:01:24 +03:00
cfe2ca04d8 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 15:58:33 +03:00
17529b543b tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 15:56:05 +03:00
9066a9d11c tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 15:48:14 +03:00
24a7c2ecf8 testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 15:20:29 +03:00
96d544e314 testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:51:07 +03:00
5f58815eba testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:47:48 +03:00
0bc22d62a5 testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:38:56 +03:00
faa2400a80 testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:35:36 +03:00
70a91ec0b6 removed macos for now...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:24:58 +03:00
875478746e more tweaking/fixing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:22:08 +03:00
ca7d393f2c fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:20:18 +03:00
a0a8de4864 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:19:20 +03:00
40943b1015 multiple build targets...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:11:01 +03:00
1ba32c0ecd testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 14:01:10 +03:00
02cd936cb4 release fix + trying minimal build env...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 13:55:42 +03:00
9c7f66093b releases not yet working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 13:49:38 +03:00
a95bc1499a added release (test)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 13:43:43 +03:00
b92064ce95 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 13:24:47 +03:00
8ec1541253 npx still failing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 13:22:26 +03:00
171f09c750 fixing npx...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 13:16:11 +03:00
a81de15687 fixing npx...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 13:12:47 +03:00
f3e7007d5c ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 13:03:30 +03:00
0d9cb95817 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 12:51:50 +03:00
e6d0c5dddd added electron to os...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 12:48:59 +03:00
bb0bb2f8fd npm up
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 12:42:02 +03:00
d802c93ad5 fix
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-10-16 12:32:24 +03:00
e49327e1b8
working on build workflow 2025-10-16 12:23:08 +03:00
a17fe070b7 fix
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-09-16 12:26:16 +03:00
b5ff27b7d3 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-08-24 00:39:21 +03:00
01d746e30f npm up + package naming update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-08-23 15:44:39 +03:00
7d51f55a65 minor aesthetic tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-08-23 15:10:04 +03:00
e910f45ccf bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-07-16 13:55:01 +03:00
e826b5881a tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-06-29 21:06:04 +03:00
6abcecb10b reworked how args are handled...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-06-27 19:14:11 +03:00
8b643b0b36 now targets ar properly searched...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-06-25 07:21:03 +03:00
28f455a732 added %C as shorthand for common '%(..)c%(..)f'...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-06-18 16:31:03 +03:00
a832589dcf ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-06-17 04:44:26 +03:00
3f841c109a cleanup + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-06-17 04:39:51 +03:00
83623ac722 added output conflict counter -- not used yet...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-06-17 04:37:14 +03:00
26ce1512b2 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-06-15 14:42:44 +03:00
a34762510a Merge branch 'master' of github.com:flynx/ImageGrid 2025-05-08 12:55:27 +03:00
b9100e5798 better progress display...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-05-08 12:55:10 +03:00
bc61774548 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-05-02 19:37:28 +03:00
17ccaa7a1b minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-04-24 17:37:37 +03:00
ae15cda923 minor tweak + npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-04-24 16:52:23 +03:00
ef0a40ec33 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-04-15 03:25:37 +03:00
d6dc9fc4b6 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-04-09 01:33:41 +03:00
e698f3c6f5 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-04-08 22:49:09 +03:00
06244ddbbe now export history items are unique...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-04-07 15:38:41 +03:00
42ead16808 added export of current image...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-04-07 04:18:30 +03:00
f312eee12f enabled btrfs snapshot creation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-03-14 06:07:39 +03:00
69bc6ccc2b now compression reports progress...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-03-13 01:09:59 +03:00
586e8758b4 dates...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-02-09 00:51:55 +03:00
ecc7b929e9 args...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-02-05 23:41:14 +03:00
d6abf65df9 added basic snapshot management....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-02-02 18:18:27 +03:00
5e695db2a3 cleanup and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-02-02 15:03:23 +03:00
3d20c135c5 Merge branch 'master' of github.com:flynx/ImageGrid 2025-02-02 14:52:20 +03:00
e28367db0d ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-02-02 14:52:15 +03:00
9fe6678b95 refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-02-01 20:23:52 +03:00
c928e4767a refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-01-31 22:22:39 +03:00
f76f04118c ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-01-29 02:40:55 +03:00
3c836d2741 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-01-28 21:22:57 +03:00
9144e371f9 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-01-28 21:17:18 +03:00
90a62f8584 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-01-28 18:05:34 +03:00
f6f719c11e added conversion to subvolume...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-01-28 03:17:32 +03:00
1b7d46781e experimenting with btrfs snapshots...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2025-01-28 02:33:28 +03:00
1eac481159 regression bug fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-11-07 14:00:50 +03:00
a07a69c0f5 updated style...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-10-30 17:17:08 +03:00
f93a44bd93 updated style + minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-10-30 16:35:10 +03:00
801777234f minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-10-30 12:59:55 +03:00
27aef3db40 dos linefeeds converted to unix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-10-27 11:01:12 +03:00
e1e4324f90 minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-08-26 10:39:52 +03:00
bb3f3f2ea0 added gif support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-08-26 10:22:33 +03:00
9425b3ccc1 a better name...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-07-28 11:27:06 +03:00
c138a278e2 better defaults generation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-07-21 15:26:04 +03:00
1598873ff9 added naimation generator helper...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-07-21 14:28:19 +03:00
6abd1ed3e0 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-06-27 16:13:17 +03:00
ebb6d282f1 added xmp sidecar support when reading all metadata...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-06-27 15:53:34 +03:00
78891e7d22 Merge branch 'master' of github.com:flynx/ImageGrid 2024-06-17 23:46:58 +03:00
02003b3b14 Merge branch 'master' of github.com:flynx/ImageGrid 2024-05-27 02:48:41 +03:00
d08da5c92d docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-05-26 23:48:08 +03:00
d699e22970 updated the shabang...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-05-25 18:48:30 +03:00
eb0b1c68d6 added basic spec ref...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-05-25 17:39:58 +03:00
a4dac81edd added base arcive readme...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-05-25 17:34:37 +03:00
69b4bb195a docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-04-04 18:42:18 +03:00
5f867f97e5 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-04-03 16:27:31 +03:00
7253cd5246 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-04-02 18:42:38 +03:00
8e3be4cfc5 adding support for raw exif source...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-04-01 14:33:43 +03:00
78a8b763ec docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-29 22:11:18 +03:00
5ab2115d5e docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-18 19:38:37 +03:00
17a419f3d2 notes + file format...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-17 23:25:55 +03:00
b3b1d4b6dc ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-14 22:31:52 +03:00
2c9c0b07ec docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-13 11:36:02 +03:00
aaa2e21241 Merge branch 'master' of github.com:flynx/ImageGrid 2024-03-13 11:33:12 +03:00
8bdf587622 typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-13 11:32:54 +03:00
0598eab77d docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-12 22:42:08 +03:00
513690dd3b docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-11 19:08:05 +03:00
01e3f6272d fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-10 12:11:52 +03:00
ca8314ed39 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-10 12:10:39 +03:00
c167638271 refactoring + docs..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-10 02:32:39 +03:00
786feb8def minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-09 15:04:49 +03:00
79e6fe4eb4 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-08 16:54:37 +03:00
23509bacc1 better UX...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-08 05:58:12 +03:00
77677ea1dd made verification optional (default: on)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-08 05:51:35 +03:00
21e7bae205 copy verefictaion now should work...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-07 11:51:30 +03:00
ebbc553576 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-06 16:53:07 +03:00
f857c6e456 a bit more paranoid virification...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-06 16:47:11 +03:00
97de482afa some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-06 09:39:50 +03:00
c586c36877 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-06 08:57:21 +03:00
3a332225a0 typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-05 02:23:58 +03:00
12a024dac2 remove empty error log...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-04 04:39:45 +03:00
9264d26598 addig btrfs compression support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-03 11:31:43 +03:00
cfc97f1ea8 added error logging...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-03 02:46:29 +03:00
2c35c9077b thinking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-02 12:00:11 +03:00
530e288108 prep work...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-03-01 15:13:42 +03:00
e36b8200d1 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-02-29 15:42:27 +03:00
4c76bb0ffa better archiver handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-02-26 17:25:41 +03:00
7046e88ad8 fixed image copy bug... need to test if this is linux-specific...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-02-16 16:47:13 +03:00
4dad475e8c bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-02-16 13:35:22 +03:00
17ca0c5519 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-02-16 13:35:00 +03:00
bc43cf7614 added explict path source...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-02-12 12:38:49 +03:00
aa306798fc tweaks and notes for NixOS -- not done yet...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-01-30 15:55:52 +03:00
943f8f3291 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-11-12 02:34:45 +03:00
a4f3e2b2d6 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-11-12 02:34:33 +03:00
2e85c0c0be notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-10-05 16:40:30 +03:00
90c08f63eb npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-09-02 17:07:31 +03:00
4a0bf2a55b ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-31 13:31:23 +03:00
b8f46586b5 minor bugfix....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-29 21:32:48 +03:00
94794f0743 minor bugfix..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-29 11:39:13 +03:00
d50c266085 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-27 02:14:10 +03:00
bca082630d Merge branch 'master' of github.com:flynx/ImageGrid 2023-08-26 17:25:39 +03:00
4c43a86375 preparing test infrastructure....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-26 17:25:18 +03:00
1226908868 Merge branch 'master' of github.com:flynx/ImageGrid 2023-08-22 20:20:39 +03:00
5652e6979d ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-22 20:20:24 +03:00
20fb42aa4c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-21 20:45:35 +03:00
1748a26e61 tweaks + made docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-20 22:42:44 +03:00
e1cc61010f cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-20 22:37:26 +03:00
a2e6b44856 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-20 22:29:08 +03:00
516ca931c4 added CLI install to Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-20 22:25:30 +03:00
33b120d430 tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-19 00:09:51 +03:00
5324401d50 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-19 00:05:24 +03:00
f65eb0c3c3 fixed overlay background blur...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-18 19:34:15 +03:00
a8a126793c Merge branch 'master' of github.com:flynx/ImageGrid 2023-08-12 11:03:57 +03:00
403f1779c4 a bug fixed + better defaults...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-12 11:03:36 +03:00
85592e297a added target os/arch to npm install...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-11 21:42:30 +03:00
b7d355329f minor refactoring + prep for making new index (tree) from gui
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-11 14:46:10 +03:00
f19894bf39 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-08 22:16:25 +03:00
55c80011f5 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-07-28 23:35:11 +03:00
623689f592 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-07-27 13:10:02 +03:00
a74d745dc1 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-07-26 22:07:30 +03:00
c5623e8bb4
minor tweaks... 2023-07-25 13:53:59 +03:00
3bb4e51d42 a quality of life improvement in scripts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-07-06 18:28:27 +03:00
6aa2abed1a added .editorconfig
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-06-12 12:36:35 +03:00
7b529d40c7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-30 12:07:34 +03:00
7b7f680e36 added splash screen timeout...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-29 20:22:00 +03:00
ca3ca35b84 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-28 15:10:14 +03:00
4fa4a48deb notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-27 09:06:26 +03:00
4c6a84b8fd ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-26 17:41:26 +03:00
bf02d1a765 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-25 22:33:46 +03:00
141e2e8295 added a tool to track stray globals...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-24 01:54:55 +03:00
14a0d3c3ba bugfix + cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-23 18:36:53 +03:00
00e36efce2 really odd "error"...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-23 17:20:32 +03:00
e3b634817f testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-23 16:23:40 +03:00
f6af695418 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-22 23:13:23 +03:00
8137c5eb59 minor bugfix -- needs more testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-21 23:37:46 +03:00
c2e239bb8a notes + testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-21 21:56:47 +03:00
9d2698f06e Merge branch 'master' of github.com:flynx/ImageGrid 2023-05-21 19:43:44 +03:00
1f7357ba41 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-21 19:43:29 +03:00
dde38b7c6d Merge branch 'master' of github.com:flynx/ImageGrid 2023-05-19 12:10:04 +03:00
297f958e07 cleanup formatting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-18 23:09:28 +03:00
334cc66f6f more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-16 23:41:13 +03:00
d9a4322115 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-15 22:28:12 +03:00
8678d79424 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-14 23:16:20 +03:00
71dc5687e3 better defaults...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-13 07:26:59 +03:00
285c0b8b94 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-13 07:21:26 +03:00
f4cf1d2ee7 experimenting with image gaps...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-13 07:19:16 +03:00
ea433bee78 tweaking css...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-13 07:03:40 +03:00
bc77ed039f tweaking....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-12 05:05:09 +03:00
d85cbe95e6 Merge branch 'master' of github.com:flynx/ImageGrid 2023-05-11 01:50:22 +03:00
dcfd7d2561 migrating away from less...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-11 01:50:10 +03:00
12adbfbbdd removing dependency on less... (not done yet)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-10 19:17:23 +03:00
214c8d62c0 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-10 14:29:59 +03:00
f2306bb23b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-10 14:24:08 +03:00
dee6bb7396 updated style...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-10 14:07:18 +03:00
0646305311 migrating away from less...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-09 03:17:31 +03:00
b09644716d notes..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-09 01:07:36 +03:00
3fd43123ba finished migration to new glob...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-08 21:39:10 +03:00
250869530f updated and migrated file.js
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-08 20:43:05 +03:00
69bbc872c6 still migrating to new glob...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-07 01:23:48 +03:00
cf048fb3cf migrated dir walker to new glob...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-06 23:37:36 +03:00
246f00e5b1 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-04 19:06:05 +03:00
14efd4204b grouped dependencies for simpler review...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-04-30 00:32:26 +03:00
71cb6fc9e7 egrep -> grep -E and fgrep -> grep -F
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-03-19 01:25:22 +03:00
70fad75e40 minor Makefile tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-02-09 14:13:30 +03:00
22f018a095 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-02-09 05:48:17 +03:00
42e927ce71 typo fix
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-02-08 14:32:43 +03:00
ada096caa5 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-31 16:55:35 +03:00
c26657df8b added stub for ig gid=IMAGE command...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-30 04:24:55 +03:00
8326efd989 minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-30 04:10:25 +03:00
53970b2d91 added ig repair (stub) and working on progress...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-30 04:00:40 +03:00
bd85e5f6c3 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-29 14:00:02 +03:00
3ea3639cb6 added $ ig do=CODE command...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-29 13:57:19 +03:00
6655907afd added ig repl banner...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-29 12:26:23 +03:00
cdd6689f22 added better scripting support for ig repl...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-29 02:16:34 +03:00
cb6b45182f npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-28 11:56:44 +03:00
ad6a0f8090 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-28 02:54:06 +03:00
bcf3cf2741 bumped version...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-28 02:44:58 +03:00
b5c5330857 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-28 02:32:06 +03:00
2ec32b861e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-27 23:09:19 +03:00
dae13d71e0 started working on an old bug....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-27 04:08:48 +03:00
fe6bdf65e5 more work on cli...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-25 03:34:03 +03:00
feb62c9dd8 npm update + minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-25 01:36:49 +03:00
af0206224a npm up
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-21 23:36:05 +03:00
a119f4c5e6 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-20 13:32:57 +03:00
9a700da5f8 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-19 23:48:35 +03:00
13be69fcdf fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-18 18:30:33 +03:00
087c5f35c6 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-18 18:29:44 +03:00
3a30991d87 adde npm-dev make target...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-18 17:42:15 +03:00
e96aff481e cleanup and some polish...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-18 01:04:42 +03:00
3ef431eae4 added ig info...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-18 00:07:29 +03:00
9af38ed5a0 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-17 19:28:46 +03:00
6b4dfe0320 more work on ig ls...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-17 19:26:46 +03:00
04936a20e7 added "ig ls" action...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-17 18:39:44 +03:00
321a434554 added collection handling to cli...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-17 17:57:29 +03:00
f74fb5893b started moving away from legacy buildcache command -- process-archive.sh now will use ig by default.
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-17 00:09:51 +03:00
542c5a04e3 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-01-16 03:23:09 +03:00
7792cb31ed notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-11-07 03:06:49 +03:00
296885c1eb mostly updated, updating less and electron will break things...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-11-07 03:03:15 +03:00
4c20dfe2e9 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-11-07 03:00:10 +03:00
ee6fb5f7be npm update (partial)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-11-07 02:33:19 +03:00
0ad024d8bb added preview list updating to menu...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-08-12 21:16:48 +03:00
3ee97573c0 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-08-02 18:08:00 +03:00
aee341f035 upm update + minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-08-02 18:04:06 +03:00
21b143a06e npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-07-16 16:41:51 +03:00
2742ffdc9a minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-07-07 22:22:36 +03:00
86057761c7 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-07-06 00:41:40 +03:00
2fd6ec969f more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-06-30 15:28:36 +03:00
4b21ab209b minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-06-30 15:19:49 +03:00
af43329c66 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-06-30 15:09:57 +03:00
bd21d14226 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-06-30 15:00:35 +03:00
8229616ad7 tweaking the desktop file...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-06-30 14:56:16 +03:00
53fe308fe8 tweaking Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-06-30 14:09:52 +03:00
678aef7809 added basic .desktop support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-06-30 02:07:38 +03:00
36e4debfaa tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-04-13 13:54:35 +03:00
fc7724bbd9 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-30 13:34:54 +03:00
3ebe8fdc55 Merge branch 'master' of github.com:flynx/ImageGrid 2022-03-29 01:18:08 +03:00
6c5852af5c npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-29 01:01:03 +03:00
1a0c03ee03 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-29 00:58:27 +03:00
ba1d3a803f cleanup and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-28 14:15:07 +03:00
0bfea89db7 another tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-28 11:14:16 +03:00
7062e5c39e tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-28 11:02:44 +03:00
e0776e0106 added .desktop template...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-28 10:59:17 +03:00
0a79cf2176 started work on linux desktop integration...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-27 15:02:30 +03:00
2676f92536 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-26 13:43:10 +03:00
0bae8a9aec notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-25 22:30:52 +03:00
f7d6637627 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-24 15:16:32 +03:00
4a2daa3c55 Makefile doc cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-23 00:22:59 +03:00
054f3c8120 now first run warnings are going to stderr...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-22 11:32:10 +03:00
a9f5f76959 updated make docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-22 00:11:34 +03:00
a94b9e4981 minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-21 10:23:33 +03:00
1ce773fb93 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-21 04:37:42 +03:00
369c00e1c1 added initial run warning to makefile
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-21 04:35:08 +03:00
2ca1c03824 added option to hide minimize button...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-21 00:20:11 +03:00
b21a7a719c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-20 12:34:42 +03:00
571c2a2399 updated make docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-20 12:28:30 +03:00
5d753eeff3 chmod -x ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-20 12:12:52 +03:00
9975e6864d minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-20 09:27:35 +03:00
8cff0ed702 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-19 03:18:51 +03:00
b4fe7db680 reworked the patching process + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-19 02:25:17 +03:00
fbe7ff0288 reworked patching of requirejs (HACK)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-18 19:44:48 +03:00
11c91cf0e9 make docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-18 19:18:37 +03:00
1a5c385946 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-17 21:48:33 +03:00
b106e4c82f notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-16 23:57:31 +03:00
16571ecfcb notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-14 13:09:49 +03:00
3926336526 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-11 16:03:03 +03:00
4f29d88cd3 notes......
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-10 23:24:33 +03:00
ce46a9496d more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-09 15:51:43 +03:00
78b4f86f0b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-08 23:23:50 +03:00
873545bc42 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-07 06:11:16 +03:00
6a2dc412bc notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-06 02:44:13 +03:00
edada77b92 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-03-01 23:47:56 +03:00
b9b3a37547 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-28 03:07:10 +03:00
f8a5a9daf1 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-26 22:30:48 +03:00
a76f38b1b3 typo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-25 22:57:18 +03:00
f1db4ac9eb tweaking undo api...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-24 03:52:39 +03:00
71849ae9b3 added nested undo... (experimental)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-24 03:24:07 +03:00
af109c13f8 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-24 00:02:20 +03:00
e7b0c67ef1 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-22 02:15:37 +03:00
09b48e1d0b experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-21 06:26:35 +03:00
d3b1af198a patching up code style...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-21 00:29:09 +03:00
c42db539a1 Merge branch 'master' of github.com:flynx/ImageGrid 2022-02-21 00:25:22 +03:00
3a9a177bc3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-21 00:25:16 +03:00
3888a5079a minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-20 12:51:06 +03:00
8488a4f126 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-20 12:39:36 +03:00
1222f14740 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-20 12:19:44 +03:00
2e6f860de5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-20 10:28:23 +03:00
eed4f4afdf .redo(..) now mostly works... need more testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-19 02:25:11 +03:00
03abe6c011 making undo/redo more consistent (not done yet)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-18 01:27:41 +03:00
4c8ce37618 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-18 01:26:50 +03:00
0b2196b1b7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-18 00:29:05 +03:00
17ca051367 reworking undo/redo and journaling mchanics...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-17 17:47:05 +03:00
3c2106b8e8 reworking undo/redo and parts of journalling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-17 01:25:32 +03:00
4cfd21c4a3 added save points to journal...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-17 00:13:41 +03:00
bc25606027 experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-16 22:43:17 +03:00
d911c7190e started integrating the 'saved' event...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-15 09:55:47 +03:00
8f39d3bbc3 updated core.js' style...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-14 17:00:10 +03:00
a9f6e8f9a5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-14 14:21:00 +03:00
85551e07d0 experimenting whit save protocol...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-13 10:47:39 +03:00
32bdf0c33d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-12 13:08:27 +03:00
1ce86fd88d ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-11 17:17:59 +03:00
00b2664fed notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-10 06:19:52 +03:00
d3b513a417 Merge branch 'master' of github.com:flynx/ImageGrid 2022-02-09 17:10:01 +03:00
06d60a9109 extending undo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-09 17:09:53 +03:00
b4eb5e3101 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-09 16:59:44 +03:00
076685c3fa notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-08 15:23:01 +03:00
67e246e14a notes and started on persistent journal...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-08 00:52:39 +03:00
f3f6c820db minor tweaking, docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-07 14:15:43 +03:00
33d4b2ec12 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-07 13:38:55 +03:00
7009f72a41 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-07 13:26:56 +03:00
a3ccb3a65a some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-07 03:29:45 +03:00
b384d1f879 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-07 03:27:06 +03:00
48551ba39a updating journal code...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-07 03:23:30 +03:00
de7c09f377 Merge branch 'master' of github.com:flynx/ImageGrid 2022-02-06 22:04:55 +03:00
92a092ac73 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-06 12:00:45 +03:00
73fb56a585 tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-05 15:04:34 +03:00
6232cc58ad made the make docs a bit more friendly...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-04 23:51:42 +03:00
a1a9a4d481 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-03 13:22:59 +03:00
6ff53e913d playing with rependencies...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-02 20:20:47 +03:00
5bdc27986e updated docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-02 20:05:05 +03:00
7abece217e working on initial make...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-01 00:52:15 +03:00
e2d854058b trying to make the Make file simpler to use...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-02-01 00:41:54 +03:00
e8e59ce5cc merge...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-31 20:58:52 +03:00
e3fb0ab5d1 tweking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-31 20:57:04 +03:00
a335e1be96 initial build process cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-31 20:53:18 +03:00
6e56333d49 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-31 02:33:35 +03:00
eb5cb0f23d minot tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-31 02:25:19 +03:00
2fdd3ef57a minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-31 02:16:56 +03:00
85a382dfaf a fix to a fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-31 02:11:40 +03:00
f4b3b91028 fixed slideshow pause button visibility...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-31 01:46:14 +03:00
2b78fd375c cleaned out legacy build stuff + tweaked splashscreen closing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-30 00:27:07 +03:00
c8c4a95015 tweaking Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-30 00:12:19 +03:00
6306a48f0e some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-29 00:34:49 +03:00
903cec53c0 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-28 21:58:56 +03:00
25f895aaf0 cleanup and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-28 21:55:53 +03:00
1ef859573e now version can be set in package.json and is propagated automatically...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-28 21:41:06 +03:00
20ded309fe hack + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-28 02:37:38 +03:00
8c62d1d222 now paths should work without issues on both U*NX systems and Windows...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-27 17:24:08 +03:00
5390001e5c bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-27 17:12:52 +03:00
a1e24d84cb updated app buttons...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-27 11:15:21 +03:00
a805b30e8a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-27 01:50:17 +03:00
eb589f4eb9 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-26 22:45:41 +03:00
6f77e6116b moving to electron 14+, jumping through hoops...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-26 22:19:42 +03:00
0a85322798 started moving to v14 of electron...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-26 00:41:39 +03:00
2d7c1d20bc ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-25 15:00:53 +03:00
1c66014642 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-25 14:59:56 +03:00
b09a8ad194 minor update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2022-01-25 14:59:13 +03:00
207623b3b5 makefile docs + added version target...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-11-27 12:54:27 +03:00
df1c389333 notes -- working on updating to the latest electron (and other libs)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-10-14 19:13:52 +03:00
817dc61c9b now devtools will launch when IMAGEGRID_DEBUG env var is set...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-10-13 23:27:42 +03:00
c22641b39a npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-07-27 10:18:11 +03:00
620a77e9c1 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-07-22 22:50:22 +03:00
5c672d02f5 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-07-08 19:58:20 +03:00
a8d722e07f minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-06-15 14:28:22 +03:00
0d268054d6 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-05-20 09:25:08 +03:00
47abbf6300 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-05-15 14:50:54 +03:00
25154c4363 now devtools will open undocked on new installs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-05-02 23:27:09 +03:00
45a620545d npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-04-27 17:14:19 +03:00
34376878a9 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-04-26 17:19:38 +03:00
cd3f502f31 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-04-20 11:05:05 +03:00
270cfa364e bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-04-15 21:33:43 +03:00
a26cbf1228 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-30 01:07:57 +03:00
316ab5cc4b ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-29 23:54:29 +03:00
bbf952d662 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-27 23:05:41 +03:00
cfe1882df5 added exifreader...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-26 15:12:48 +03:00
cd4a5105e8 Merge branch 'master' of github.com:flynx/ImageGrid 2021-03-23 00:34:56 +03:00
cebba0420a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-22 23:33:49 +03:00
0b2edb2954 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-20 23:48:25 +03:00
c063fa56c4 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-18 19:31:26 +03:00
aed1e0206d Merge branch 'master' of github.com:flynx/ImageGrid 2021-03-17 01:36:14 +03:00
06298e0641 commented out old .makePreviews(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-16 23:35:19 +03:00
c841aa65f3 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-15 23:55:58 +03:00
ee0453c3d7 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-14 15:37:41 +03:00
bd73391161 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-13 23:19:12 +03:00
2a6514801f notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-12 23:08:38 +03:00
88d0f6d237 Merge branch 'master' of github.com:flynx/ImageGrid 2021-03-11 23:03:41 +03:00
664361cf29 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-11 23:03:31 +03:00
0c21c587b8 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-09 23:55:36 +03:00
6d7d6b5cd3 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-08 22:59:48 +03:00
85950eeb13 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-07 13:03:18 +03:00
f03a73bcec ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-06 02:22:40 +03:00
b1230735eb npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-05 03:15:21 +03:00
16b254b172 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-04 22:44:06 +03:00
928c325d2a tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-03 01:38:51 +03:00
993efe9e23 some cleanup + tweaking crop/collection button highlighing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-03 01:31:11 +03:00
de5fbc29c3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-02 23:44:38 +03:00
30e2af325c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-03-01 02:01:37 +03:00
be6ab4dfca bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-28 04:16:55 +03:00
3b4aefffd1 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-27 15:14:26 +03:00
a8bb3e3d76 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-26 09:28:14 +03:00
3e3cd7665f now new collections are added to top of list by default (+option)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-25 16:03:33 +03:00
83404e9714 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-24 22:39:09 +03:00
90d0fe6b31 Merge branch 'master' of github.com:flynx/ImageGrid 2021-02-23 04:03:42 +03:00
952fc89425 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-23 04:03:35 +03:00
d97c85e334 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-22 23:51:41 +03:00
5186c8890f bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-21 12:50:33 +03:00
2ea570ec7a minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-20 23:25:08 +03:00
c25e160510 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-19 13:49:40 +03:00
e5ef898989 refactoring and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-18 12:31:17 +03:00
fdbb3f6e24 minor bugfix..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-17 05:19:48 +03:00
8c0b00452d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-16 23:53:02 +03:00
fcf10a8724 npm update..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-15 22:30:41 +03:00
a20759e2f0 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-14 02:43:37 +03:00
c3fc43453e cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-13 23:22:18 +03:00
f51cfed35c fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-12 14:39:45 +03:00
efb0c247ae moved link detach responsebility to the link itself...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-11 02:43:24 +03:00
2680a6160a cleanup and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-10 00:50:31 +03:00
10df416043 reworked index checking + done some work on links...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-09 03:14:40 +03:00
8f7e18c945 moving to new implementation of .checkIndex(..), still need testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-08 18:46:04 +03:00
98d87b612c tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-07 22:20:00 +03:00
5955743c77 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-06 05:35:27 +03:00
6be15ca2ff refactored ._checkIndex(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-06 05:32:15 +03:00
26650d63fe testing ._checkIndex(..), tweaks, and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-06 04:34:48 +03:00
6d678abd87 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-05 19:44:15 +03:00
8e11308ed6 moving .checkIndex(..) to queue...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-04 16:14:32 +03:00
0e0fbcb7e3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-03 03:45:49 +03:00
22c3fed074 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-02 04:22:14 +03:00
fc670efc14 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-02-01 18:04:29 +03:00
3f1ce3a9e7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-31 03:13:33 +03:00
fb3edf92e8 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-30 23:42:39 +03:00
55c119c98b notes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-29 23:12:00 +03:00
833d03c977 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-28 23:49:33 +03:00
6a8205c32e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-27 16:22:24 +03:00
c2dcdc5420 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-26 01:30:27 +03:00
1d553ec2ef added some context isolation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-25 01:05:01 +03:00
16d4d26870 tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-25 00:52:25 +03:00
b7b4bc7aef another minor fix -- a bit off today, am I?
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-24 20:56:07 +03:00
96e234cbfe minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-24 20:53:58 +03:00
6235e85f4f experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-24 20:51:33 +03:00
f7db0fc878 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-24 18:19:09 +03:00
883a5f2c29 nom update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-24 00:55:08 +03:00
c4ee08d410 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-23 23:31:53 +03:00
58912ebcf5 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-22 17:32:28 +03:00
a90b1a23a9 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-22 17:27:53 +03:00
c79e0575d2 updated license dates...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-22 03:09:57 +03:00
532d40ebfd refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-22 03:08:12 +03:00
835fc0492d fixed a load bug that could lead to inconsistently versioned indexes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-22 02:58:34 +03:00
3c6eddb6f4 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-21 22:44:38 +03:00
ba2a4656b2 detected the source of the inconsistent format bug, need to devise a good fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-21 22:40:06 +03:00
f16d352237 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-20 16:35:49 +03:00
ed52f7dc33 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-19 03:57:15 +03:00
cd2dabac38 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-19 03:28:29 +03:00
a6dac37f01 Merge branch 'master' of github.com:flynx/ImageGrid 2021-01-18 01:08:30 +03:00
ee76e4eece found minor bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-17 23:06:36 +03:00
0bb281c7dd cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-16 13:11:48 +03:00
492f98b78d cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-15 23:21:02 +03:00
1096395509 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-14 23:52:37 +03:00
41415238e0 notes....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-13 18:22:56 +03:00
d6ade16950 bugfix in queue handlers....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-12 05:15:25 +03:00
8820613fda more notes....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-12 04:41:49 +03:00
b03efce6b0 ....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-11 21:16:27 +03:00
98a3669d83 more notes....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-09 03:17:49 +03:00
21e1cf95df notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-08 03:33:15 +03:00
d64bb75342 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-07 13:23:53 +03:00
7fbcecc883 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2021-01-03 15:58:37 +03:00
f099aa68e0 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-30 16:54:23 +03:00
d42cd430f9 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-29 02:49:07 +03:00
17176f0aa3 fixed issue...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-28 06:41:06 +03:00
9689707990 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-28 05:24:51 +03:00
08d78a3978 bugfix (temporary?)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-27 20:42:45 +03:00
1bcf4b5e93 some cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-27 12:07:48 +03:00
d5689162ff fixed several issues with waveforms...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-27 02:24:15 +03:00
acebbf51ff fixed scrollbars (mostly) in ff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-26 19:30:26 +03:00
e04e050f18 fixed a bug in progress + working on .linked...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-26 19:04:47 +03:00
d74486f95c minor tweaking and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-26 04:06:22 +03:00
91bf825bc3 more docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-25 06:00:51 +03:00
d2decf9eaa docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-24 02:15:53 +03:00
f17280597e experimenting with gradual loading of features in cli...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-23 20:02:37 +03:00
98bc9ecc24 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-23 00:12:32 +03:00
4e1f9fbf56 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-23 00:01:09 +03:00
643a6d0eb9 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-22 19:22:35 +03:00
75c78bf72a time remaining in progress now seems to work...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-22 18:48:00 +03:00
5acd8d2afc added remaining time to progress (experimental)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-22 18:25:14 +03:00
9878b72a1e experimenting with contexts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-22 05:18:33 +03:00
0019c77445 fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-21 05:29:17 +03:00
b2ba27d82f reworked metadata caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-21 03:41:11 +03:00
af3f85ae4c experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-20 06:12:47 +03:00
b84c0229dd experimenting with different types of clones...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-19 14:59:34 +03:00
c024867d80 experimenting and some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-17 23:19:42 +03:00
f05b8d74d2 several tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-17 20:14:39 +03:00
c750895a4a cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-17 18:59:29 +03:00
9c72528908 queue actions seem to be almost done -- still need pretty printing to be pretty ;)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-17 18:57:14 +03:00
9d17474e3d some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-17 01:55:23 +03:00
ecb9d83af8 working on queue/task...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-16 22:40:10 +03:00
1824eeddb2 ironing out issues with chained queueus...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-16 03:50:06 +03:00
00988feb36 Merge branch 'master' of github.com:flynx/ImageGrid 2020-12-15 05:36:46 +03:00
701a26919f nested queues...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-15 05:36:37 +03:00
4f3476ec1a made scope test optional...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-15 05:08:06 +03:00
cdbdf130de some book-keeping + global scope leaks cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-14 20:06:58 +03:00
f7d345b4ea a bit better arg handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-13 04:12:12 +03:00
aaecdfa1e3 reworked module import...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-12 22:41:49 +03:00
6659614212 cleaned up app entry points...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-12 09:29:57 +03:00
af6f9e535f removed pouchdb for now...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-12 05:16:27 +03:00
6714b0037a updated makefaile web target...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-12 05:13:02 +03:00
111bd361f5 book-keeping and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-12 04:55:35 +03:00
b38712e574 fixed Makefile version handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-11 06:34:48 +03:00
ec301c6fa4 reworked svg filters, some tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-11 06:24:22 +03:00
6b88e8f596 removed unused code...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-11 00:04:07 +03:00
8b71280823 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-10 23:55:56 +03:00
e020cc64e1 more tweaking of cli...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-10 21:59:15 +03:00
0f10178948 several fixes and tweaks + cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-10 19:13:48 +03:00
7db2efd948 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-10 06:44:47 +03:00
afef0a36d4 working on CLI...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-10 06:05:02 +03:00
fbadbfe55e more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-09 19:02:31 +03:00
fb7e4ac063 cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-09 18:17:23 +03:00
04420b7a3b fixed an issue with running ig from outside of the project dir...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-09 06:55:42 +03:00
8e139a80e1 added cli progress reporting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-09 06:27:11 +03:00
040f3a7e3a working on logging in cli...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-09 03:53:57 +03:00
dafeedbaaf fixed bug that made sorting seem chaotic...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-09 03:53:33 +03:00
d2a5e3c15e bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-08 20:07:49 +03:00
d19b678b37 finally moved the CLI to argv.js... still not done
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-08 18:35:50 +03:00
2a5e490117 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-08 02:35:06 +03:00
5406c071a9 notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-07 03:00:20 +03:00
e4ad465eb0 migrated .makePreviews(..) to queue + minor tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-06 19:09:06 +03:00
f0b954ffff minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-06 05:48:31 +03:00
7750620935 now progress bar will not show for tasks too small...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-06 05:34:28 +03:00
9f4b877e37 migrated .makeResizedImage(..) to queue...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-06 04:39:42 +03:00
10c966f387 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-05 04:02:33 +03:00
0b4395bbb9 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-05 03:43:57 +03:00
5a60a2810e refactoring and cleaning up core.js a bit...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-05 03:40:55 +03:00
8a02178a24 fixed last of the task/queue issues, now should be fully usable...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-05 03:26:42 +03:00
00a72832b0 better queue name in docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-04 14:38:16 +03:00
1f941854d6 reworked closing of a shared progress bar...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-04 06:48:59 +03:00
f9930bf6b9 fixed a couple of issues...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-04 06:16:54 +03:00
4414bd0e7a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-04 05:22:57 +03:00
007e29dda3 minor tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-03 20:58:39 +03:00
c9eb5b9bd1 added better sync mode...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-03 20:51:54 +03:00
610f71f452 experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-03 05:19:50 +03:00
f850d2df18 reworked core.debounce(..) + moved to actions.debounce(..) for status bar updates...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-03 04:03:20 +03:00
7122c619f4 reworked queued action + now .cacheMetadata(..) is queued...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-02 18:49:45 +03:00
71b9b444cb added queue handler actions + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-02 06:12:39 +03:00
2a75ed6530 now .readMetadata() is implemented via core.tasks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-02 04:48:05 +03:00
fa8b6d57cd cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-02 03:45:23 +03:00
5ed2c02032 now .images itself is iterable...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-02 03:40:34 +03:00
dfa9693c58 added queues to core.js + .images.iter()...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-12-02 03:32:53 +03:00
dc1bd9a6f8 more docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-30 05:21:23 +03:00
18846406ed added doc to .cache(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-30 05:14:37 +03:00
bc96a4df59 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-29 16:52:22 +03:00
4a3b5f5f0b added shift to top/bottom actions + minor refactoring of base feature -- not done yet...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-28 03:18:11 +03:00
1eebfe3020 minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-28 00:10:37 +03:00
d77c01e63e reworked system caches...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-27 23:11:10 +03:00
026ff53ab2 Merge branch 'master' of github.com:flynx/ImageGrid 2020-11-27 19:25:00 +03:00
92aa68fec8 added status bar index caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-27 19:24:49 +03:00
66e87ee33a several performance hotspots removed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-27 15:40:21 +03:00
be9bb9126b minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-27 06:30:28 +03:00
84809a0e24 add sync/async mode pass through for tasks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-27 02:33:46 +03:00
7f086b289b new task manager working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-27 01:25:31 +03:00
d59b62c39f simplification...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-26 21:11:58 +03:00
fd0edaf437 tweaking + npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-26 01:21:40 +03:00
e9a3192335 reworked core.Tasks, almost ready to remove legacy code...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-26 00:44:46 +03:00
d3e54c83ac minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-23 16:31:16 +03:00
8bb6bd8686 fixed bug with copy image path...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-23 16:19:12 +03:00
a43422566e tweaking + npm pupdate...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-23 03:08:47 +03:00
1303d70774 cleanup and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-21 04:15:33 +03:00
e8f5399fa1 added log/progress example + some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-21 01:48:57 +03:00
d7b77a0492 tweaks and npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-20 04:21:11 +03:00
0eb201fb06 cleanup and minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-15 02:28:58 +03:00
95e0e9c77a sidetracked a bit...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-12 17:01:25 +03:00
d7d6857dae tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-12 05:18:28 +03:00
e73d2eb65e npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-10 18:36:05 +03:00
2830e68d8e minor tweak + npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-10 18:00:14 +03:00
bc7ee310c5 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-10 17:48:44 +03:00
0a3140f888 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-08 18:13:40 +03:00
9831b863ea working on tasks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-06 05:17:39 +03:00
d5771925c4 several fixes + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-06 02:25:55 +03:00
baa1b06dce reworked long action abort... the results still need some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-05 22:46:27 +03:00
da63da2f2c reworked caching metadata...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-05 06:31:13 +03:00
4cd1da4060 docs, notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-04 18:02:27 +03:00
06fa563d04 reworked image copy to take account image orientation (working around webkit bug)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-04 17:36:13 +03:00
409e82cb26 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-03 04:57:07 +03:00
49245ba9d1 reworked metadata caching + updated peer feature (not done yet)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-03 04:49:56 +03:00
f9398462c8 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-02 17:11:42 +03:00
e6243fdd3e lots of tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-02 06:06:42 +03:00
933b763944 lots of tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-02 05:33:29 +03:00
3249dcbf77 reworking metadata caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-02 03:16:01 +03:00
c4c7c78019 more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-01 15:27:53 +03:00
e620063915 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-01 15:25:50 +03:00
32f9d5450e moving to new .makePreview(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-11-01 15:24:22 +03:00
65ddabb7d9 experimenting with simpler .makePreviews(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-31 05:10:51 +03:00
1849e63b63 added export mode UI (not fully working yet) + some cleanup and minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-31 02:44:11 +03:00
d4ca5ba455 added transform support for exporting + tweaks and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-31 02:10:27 +03:00
5c73431299 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-30 19:24:38 +03:00
669ee51297 .makeResizedImages(..) mostly works correctly, still missing transforms + UI...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-30 19:16:42 +03:00
a34591065a added image resizing to export, still needs UI and details...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-30 18:13:53 +03:00
43f0499843 investigating a bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-30 03:42:58 +03:00
f93c3a31a2 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-29 15:34:14 +03:00
d6f2346462 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-28 17:47:26 +03:00
0b583e5e1d minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-28 17:43:21 +03:00
34236bf334 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-27 01:23:48 +03:00
cc1c81747a tweaks to menues...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-26 17:51:12 +03:00
a948275934 added image copy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-26 17:30:47 +03:00
f14cb36aa0 cleanup and doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-25 02:18:42 +03:00
67e414358c added 'sort as current' method/action...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-25 02:00:14 +03:00
c05970bde5 fixed sort via collection...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-24 14:52:39 +03:00
34395a9145 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-23 06:12:17 +03:00
32bc16c9da added .sortAsCollection(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-23 06:03:53 +03:00
1c200f0129 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-19 04:59:34 +03:00
67bbf58ec2 added support for creating ribbons from xmp ratings (i.e. supportign Sony a9* ratings)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-19 04:33:47 +03:00
48753d7c7b minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-19 02:15:13 +03:00
5ce56e02c3 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-12 02:20:48 +03:00
375cde19c0 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-11 23:42:17 +03:00
40e22c54df now last exported preset is selected on dialog load...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-11 14:56:14 +03:00
1853b36540 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-11 04:42:37 +03:00
6dc70ea7c9 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-10 05:53:26 +03:00
f434e5af5f several fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-07 21:24:18 +03:00
dc2d302406 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-05 19:56:10 +03:00
0c5c58a09d add edit hotkey to export presets...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-05 19:49:28 +03:00
9f5d1d5539 fixed several bugs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-05 17:03:43 +03:00
ca34894f22 export presets mostly done, still need testing and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-05 16:03:22 +03:00
2629c25406 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-05 03:58:36 +03:00
b23e9777b7 migrated some code to ig-types...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-05 03:58:03 +03:00
7e2714198e implemented a basic UniqueKeyMap(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-04 01:45:51 +03:00
7846f31c59 reworking item indexing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-03 22:13:15 +03:00
18b09f05c0 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-02 17:45:39 +03:00
f75a392e39 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-10-01 22:38:12 +03:00
a575b45784 notes and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-30 05:02:28 +03:00
df2316e54b notes, testing and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-30 04:51:10 +03:00
1f1a1cae7e export presets mostly feature complete, now for testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-30 01:25:38 +03:00
2f7348e3a3 fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-29 05:18:53 +03:00
c584ec1c46 enabled history, still not final...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-29 03:19:15 +03:00
cffc66e191 lots of small stuff + now ordering and deleting presets works... need more testing
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-29 03:05:02 +03:00
8b5a3aee83 preset list mostly done, getting ready to add presets and preset history...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-29 00:54:39 +03:00
23a1b3818d some refactoring (not fully happy with the style yet) and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-28 17:42:19 +03:00
c32144bee7 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-27 03:41:22 +03:00
078c977ad3 export mostly working, now to the presets...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-27 02:49:10 +03:00
532702ee80 mostly done with migration, need testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-26 21:32:06 +03:00
1126cf979b started migration to new export config format -- export partially broken...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-26 20:58:06 +03:00
35fff006fc ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-25 19:28:54 +03:00
642d9bf29b minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-24 20:36:09 +03:00
5ef2cd18af refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-23 21:11:19 +03:00
ffe8c86a12 working on export presets...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-22 18:23:19 +03:00
90f00b5a83 started work on export history/presets...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-21 20:06:38 +03:00
3963da3630 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-16 01:53:13 +03:00
810a1f7110 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-15 17:02:24 +03:00
280da1469a some cleanup + added more docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-15 15:27:56 +03:00
29c23355eb notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-10 03:06:10 +03:00
6db5d0c4f8 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-09 22:14:52 +03:00
505a228a03 Merge branch 'master' of github.com:flynx/ImageGrid 2020-09-09 22:02:41 +03:00
dab43d0aa0 added [].first() and [].last() ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-09 22:02:15 +03:00
0c66d67597 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-08 23:18:50 +03:00
3d67cc740a cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-07 22:13:25 +03:00
74483c0b70 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-06 00:47:45 +03:00
16e4cb681b Makefile cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-05 07:11:24 +03:00
8658298936 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-04 17:40:26 +03:00
96293b0b20 Merge branch 'master' of github.com:flynx/ImageGrid 2020-09-03 02:31:54 +03:00
f2cbd7f00f minor doc tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-03 02:24:18 +03:00
1c99626fec minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-02 04:16:10 +03:00
6b5813e45e added auto-generated make docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-02 04:10:50 +03:00
a97ac88bed minor tweak + now firefox unbroken...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-02 01:40:26 +03:00
ea20634cd7 more doc updates...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-09-01 03:59:39 +03:00
69f2d8942c updated doc/ ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-31 17:37:06 +03:00
98a46abf87 minor tweaks + started documenting external hacks in a centralized manner...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-31 17:19:20 +03:00
2a95e75a55 more fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-31 00:02:33 +03:00
cd0ff92fa8 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-30 23:22:09 +03:00
8bb284332d added a stub/fix for chrome messing up colors in full-screen...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-30 23:20:34 +03:00
e17b6363ce moved to electron v9, still have issues with RequireJS and electron v10...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-30 20:10:12 +03:00
f3255921fd fixed bug in requirejs defaults and moved to electron v7...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-30 19:55:01 +03:00
bdef19ccf8 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-30 19:20:20 +03:00
47434442e3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-29 05:33:45 +03:00
dbf4b60d52 tweaking makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-29 01:37:24 +03:00
447bd2dfc9 added .gitignore back...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-28 17:39:50 +03:00
5f47d6da7b restructured the repo moving the legacy out of the way...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-28 17:32:02 +03:00
cf0d6cf6b4 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-27 17:12:12 +03:00
240502edd2 Merge branch 'master' of github.com:flynx/ImageGrid 2020-08-27 17:09:50 +03:00
7f6d8a89cc tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-27 17:09:04 +03:00
afe1fc9505 updated to latest working electron...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-27 17:07:57 +03:00
68dd2b2c67 npm update + preparing for the move to ig-argv...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-23 10:43:07 +03:00
3dbe0430e3 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-13 15:12:37 +03:00
323e1a9277 updated legacy scripts in package.json
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-13 14:53:23 +03:00
3a0b8609ad
Merge pull request #4 from wotori/bug/font_path
fix font path
2020-08-13 14:38:05 +03:00
Dmitry Sobolev
d15a3ef824 fix font path 2020-08-13 14:18:48 +03:00
354b130fc0 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-08-03 10:29:24 +03:00
c93d069006 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-14 04:31:02 +03:00
096f13f30d npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-13 19:55:11 +03:00
540de10ea0 added partial progress to sort -- still not final...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-12 18:11:49 +03:00
170cfc7242 fixed sort with overflow -- did not acount for min/max gap with overflow...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-11 21:17:04 +03:00
47a56706bc minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-11 18:21:06 +03:00
0f23ba8a15 cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-10 18:58:22 +03:00
8efdcbd3eb minor fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-10 04:07:45 +03:00
4f08c68179 moved to a new version of electron + npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-09 02:25:15 +03:00
6b8f9f7c4f reqorked logging and progress indication...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-09 02:19:43 +03:00
e115fb2f99 ui typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-07 16:35:43 +03:00
155419a544 minor fixup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-05 17:20:22 +03:00
cd08827c8c moved Object.prototype.run(..) to its own package...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-07-03 00:26:43 +03:00
595db957d3 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-06-24 02:26:40 +03:00
0918cb7371 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-06-23 22:54:40 +03:00
e0a4508f22 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-06-20 03:48:18 +03:00
f2fb2c481d cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-06-09 16:48:23 +03:00
329a8b4fd5 minor fix + some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-06-06 14:58:08 +03:00
5c804ff64d tweaaks + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-31 20:12:58 +03:00
1d649283cf refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-31 17:53:14 +03:00
65eaddb321 some tweaking + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-31 17:28:46 +03:00
10435aa078 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-25 21:36:31 +03:00
ee46e4b0da minor tweaks + npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-24 00:42:38 +03:00
57ca7f769b minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-22 01:57:46 +03:00
672bd773a6 a better cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-21 19:28:28 +03:00
b810a47fbb some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-21 19:05:48 +03:00
8e9aa684ab ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-21 05:20:32 +03:00
b21cf47b23 added optional timeout to status-bar info + now announcing image filters...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-21 05:19:54 +03:00
8b98cacfd3 reworked image load error handling... still not done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-21 04:29:44 +03:00
ba775c15ea added defaults for missing and placeholder images... not happy with them yet...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-21 03:37:50 +03:00
f249c0cf01 added placeholder to images...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-21 03:00:52 +03:00
94dc2c24d5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-21 03:00:00 +03:00
41191e7db8 minor typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-20 20:49:08 +03:00
131e1ebd92 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-20 20:40:51 +03:00
78cb4bdff8 action .mode -> .browseMode, reworked .sync(..) (ctrl_R)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-20 20:31:19 +03:00
d912ce2ebe experiemnting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-20 02:49:26 +03:00
631a612541 tweaking the keyboard...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-20 02:32:02 +03:00
511422f8d9 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-19 21:26:41 +03:00
b52c3c2c0b minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-19 04:51:43 +03:00
ed61746a64 added placeholder image + added index cleanup action -- not sure if I'll keep it in (or enabled)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-17 22:49:17 +03:00
8149fcf41a settings and minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-17 18:59:20 +03:00
1427a327eb tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-17 18:27:03 +03:00
f0a6b5cb8f added orientation button to waveform...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-17 04:41:27 +03:00
1fdcef47cb cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-17 03:46:57 +03:00
3321eccb87 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-17 01:38:26 +03:00
9b138999e5 not waveforms respect image rotation/flip...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-17 00:32:59 +03:00
790f0b5b95 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-16 17:56:13 +03:00
55b9e8d811 several bugfixes and late migrations to new object.js
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-16 17:55:41 +03:00
b0f52c82f1 added histogram/waveform components...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-15 21:23:13 +03:00
9f4a378cc3 added experimental histogram/waveform to metadata view...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-15 16:46:36 +03:00
e1aecdfcf4 experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-14 22:02:51 +03:00
44a143c130 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-13 20:26:36 +03:00
5568f07ee9 migration to new object.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-11 20:39:36 +03:00
a64f9d63e4 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-08 18:38:43 +03:00
608a6303fb npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-07 03:25:04 +03:00
2db4d84607 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-03 21:27:49 +03:00
064eed381d npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-02 21:03:12 +03:00
0c3ad4efb2 tweaks and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-01 04:14:22 +03:00
e90f5f9b64 added experemental .setup(..)/.cleanup(..) events -- not triggered yet...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-01 03:57:06 +03:00
a283958a49 added browser fullscreen + some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-01 03:52:27 +03:00
594f0cbd8e added browser fullscreen button -- not yet finished...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-05-01 02:49:43 +03:00
c5aa63af3c npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-30 02:32:01 +03:00
559fedc965 minor fixes..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-27 16:57:23 +03:00
0f3561a7e2 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-27 16:57:13 +03:00
1fc380721f npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-27 01:37:46 +03:00
10a7df2a85 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-27 01:18:46 +03:00
1a2864cbc7 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-24 16:21:47 +03:00
2b8f60bd8f npm update + minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-23 18:58:09 +03:00
2211d2d23a npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-19 01:51:18 +03:00
bcc1ace919 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-17 17:44:03 +03:00
84907d9d3b npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-16 01:46:15 +03:00
6b31359dbd npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-12 02:04:15 +03:00
a43c8cb23e updated todo/plan...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-11 18:37:16 +03:00
241da95cc1 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-11 01:43:34 +03:00
fed5f32723 bugfix, reworked timestamps and minor tweaks
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-11 01:09:49 +03:00
ddfdb66206 added log rotation....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-10 23:05:16 +03:00
be163d3a12 reworked logging and progress...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-10 19:10:21 +03:00
e1ccbb6e72 notes....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-09 23:34:28 +03:00
d88cf94c6a npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-08 16:01:11 +03:00
8f7c14dd92 .makePreview(..) reporting modes done +minor bugfixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-07 18:13:52 +03:00
0e026c2f86 working on preview erporting options...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-07 17:50:22 +03:00
e86a471e63 todo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-06 23:53:57 +03:00
accca62fb2 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-05 22:26:17 +03:00
83a5362128 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-04 23:54:31 +03:00
95e3894e4e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-03 23:28:44 +03:00
b0507242fb minor prototyping...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-02 23:06:02 +03:00
3ed3db026f ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-04-01 23:03:09 +03:00
f067aa3222 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-31 21:45:02 +03:00
718c746068 added crop before/after...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-30 14:53:40 +03:00
9f8564494c Merge branch 'master' of github.com:flynx/ImageGrid 2020-03-29 00:10:28 +03:00
9b64aa0b33 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-28 23:08:55 +03:00
471a20fbd0 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-27 01:18:47 +03:00
086d023b22 notes and planning...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-26 16:10:44 +03:00
5995d460df experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-25 19:00:38 +03:00
47e7e85582 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-24 17:46:23 +03:00
7b1f8ac1cb ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-23 23:38:30 +03:00
a3e8872f9f refactoring....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-22 03:13:57 +03:00
f01d8195a9 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-21 23:22:12 +03:00
cc68b6dbd5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-20 22:24:23 +03:00
4af7ae94e9 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-19 23:13:01 +03:00
7ce10df9c2 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-18 18:57:11 +03:00
5fb9b0950c npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-17 01:34:16 +03:00
20bb124696 rethinking the arch...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-16 23:49:19 +03:00
6a59eae3d7 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-15 23:16:52 +03:00
6225f7ce70 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-14 14:37:00 +03:00
e6866f934b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-13 15:27:59 +03:00
a67da43f4e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-12 23:51:48 +03:00
a0bb0ba7f6 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-11 04:22:09 +03:00
8c4561aa6b migrating experimental stuff to browse2...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-10 04:37:27 +03:00
b2c97162f2 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-09 17:24:13 +03:00
ffb7142cc3 Merge branch 'master' of github.com:flynx/ImageGrid 2020-03-08 17:34:30 +03:00
047cead873 started porting experiments to browse2.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-08 17:34:15 +03:00
c08f60756d Merge branch 'master' of github.com:flynx/ImageGrid 2020-03-07 02:24:45 +03:00
cc7350df11 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-06 22:23:35 +03:00
ef4c199f8e thoughts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-05 16:38:37 +03:00
41097ce198 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-04 23:35:21 +03:00
cbed3a691b Merge branch 'master' of github.com:flynx/ImageGrid 2020-03-03 23:38:26 +03:00
48be4f94e4 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-03 23:38:12 +03:00
1fd2c7dbbe minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-02 17:12:47 +03:00
a07b004425 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-03-01 23:19:34 +03:00
da208c6946 Merge branch 'master' of github.com:flynx/ImageGrid 2020-02-29 03:58:36 +03:00
4fc06455e4 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-28 22:57:15 +03:00
eddcf6661c ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-27 18:18:33 +03:00
500e80226e Merge branch 'master' of github.com:flynx/ImageGrid 2020-02-26 00:24:28 +03:00
9ff485e3d0 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-25 22:23:14 +03:00
303020c367 testing... seems that we possibly need a rethink...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-24 23:36:16 +03:00
7c6799f7ba Merge branch 'master' of github.com:flynx/ImageGrid 2020-02-23 03:50:25 +03:00
03d8931a3a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-22 19:48:55 +03:00
d8660c2136 tweaking/planning...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-21 18:27:13 +03:00
6b30cb7f9c experimenting with lister dialogs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-20 18:01:01 +03:00
f057f3583b getting ready to start refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-19 18:51:24 +03:00
ca9b1fbe15 notes... ready to start experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-18 15:32:22 +03:00
1370eaa416 Merge branch 'master' of github.com:flynx/ImageGrid 2020-02-17 00:54:50 +03:00
3079f1b67d ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-16 22:41:35 +03:00
fffdf3a72e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-15 22:26:33 +03:00
5d87fa8ea3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-14 20:35:57 +03:00
391837ea95 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-13 15:42:18 +03:00
18bf00644f notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-12 16:12:34 +03:00
068f1f160a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-11 15:39:16 +03:00
2a880f1c17 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-10 15:42:10 +03:00
fc7dba5b5f ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-09 15:53:32 +03:00
02edcfc050 Merge branch 'master' of github.com:flynx/ImageGrid 2020-02-08 00:10:10 +03:00
383dad8aa5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-07 23:08:44 +03:00
9df71d0c65 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-06 15:37:18 +03:00
cf412acff2 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-05 16:05:13 +03:00
587d1932ac notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-04 19:28:12 +03:00
dcd138e7bb notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-03 23:47:27 +03:00
89077a9915 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-02 05:38:03 +03:00
f44d998f00 cleaenup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-02 05:33:47 +03:00
2eb9718fdb partial bug-fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-02 05:32:31 +03:00
8ee0cb3d7b found the bug in the upstream code...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-02 00:47:05 +03:00
5b8c70f469 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-01 23:22:18 +03:00
aed1b8b000 Merge branch 'master' of github.com:flynx/ImageGrid 2020-02-01 00:07:39 +03:00
e0afa5b2e4 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-02-02 23:31:56 +03:00
cb7e8b796d testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-30 01:22:19 +03:00
813dd1fd4b typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-29 17:18:21 +03:00
341974fcc9 testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-29 17:17:37 +03:00
32a3e1f26c investigating bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-28 16:52:46 +03:00
3d081b3902 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-27 23:35:51 +03:00
3de91bdbed notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-26 05:06:02 +03:00
6419a83617 notes and some testing, still buggy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-25 03:21:45 +03:00
fc88967873 testing a different way to handle callbacks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-24 18:10:53 +03:00
7d3d7a1ff3 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-23 16:23:14 +03:00
c1dd4b92ec Merge branch 'master' of github.com:flynx/ImageGrid 2020-01-22 05:23:25 +03:00
e1d786a2fc ..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-22 05:23:12 +03:00
7de446931c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-21 22:20:06 +03:00
ef51f339be notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-20 17:27:12 +03:00
3144076a3e ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-19 18:23:39 +03:00
a6090eef38 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-18 05:38:22 +03:00
d637b00c16 merge...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-18 00:26:38 +03:00
146480c668 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-17 23:23:55 +03:00
bc3e7c9946 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-16 09:28:46 +03:00
b162bbacb0 refactoring and experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-15 02:31:55 +03:00
487eb5c167 refactoring from elements...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-14 21:29:50 +03:00
509924db53 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-14 18:41:22 +03:00
abb20706ae notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-13 18:53:26 +03:00
f8fb4514a4 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-12 10:11:10 +03:00
e8950cebe8 fixes and cleanup....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-11 23:48:36 +03:00
0a71d011f5 minor cleanup....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-10 23:24:18 +03:00
a20727d29d make notes....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-09 02:02:40 +03:00
cff0c6ad32 Merge branch 'master' of github.com:flynx/ImageGrid 2020-01-08 00:14:53 +03:00
13c40e7663 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-08 00:14:39 +03:00
5c14b583b9 Merge branch 'master' of github.com:flynx/ImageGrid 2020-01-08 00:13:50 +03:00
6e4de4051c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-07 23:12:58 +03:00
f6f5c3ca8e type fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-06 19:57:17 +03:00
3629745220 updated Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-06 19:46:18 +03:00
97af3938bd ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-05 23:37:49 +03:00
2f3224feb8 minor tweaks and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-04 06:49:33 +03:00
23c375de2a added sync-flash.sh config file (currently disabled)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-04 05:38:15 +03:00
9619b1d389 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-03 23:59:20 +03:00
171c5280b5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-02 05:28:09 +03:00
2b72774128 doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2020-01-01 23:55:30 +03:00
bc4c8cb5a5 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-31 19:52:32 +03:00
f3ebc4c9f4 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-31 19:47:25 +03:00
d32b0debf1 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-31 04:26:55 +03:00
b36e46afcf typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-30 05:26:10 +03:00
06834f5a8b minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-30 05:21:41 +03:00
0d0074e0ff more menu cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-30 05:16:11 +03:00
862de7ecbf several fixes and updates...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-30 01:55:34 +03:00
029a74bad3 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-30 00:41:35 +03:00
0bd10ddcca cleaned up package.josn...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-29 20:40:30 +03:00
77842b8a04 added ribbon merging operations.... (experimental)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-29 18:59:27 +03:00
d12a6196cb Merge branch 'master' of github.com:flynx/ImageGrid 2019-12-26 00:31:26 +03:00
82db314b47 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-25 23:29:39 +03:00
ca6253115c cleanup and notes/docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-24 19:39:33 +03:00
6e4c8e18d5 make.field(..) refining + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-23 19:11:45 +03:00
d976860a68 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-23 06:46:50 +03:00
acda574fad some tests....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-22 04:04:20 +03:00
249fa17cef revisions and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-22 04:01:14 +03:00
c2c9af5310 added callback to make.batch(..) -- still needs testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-22 02:26:36 +03:00
a1ba3afa15 Merge branch 'master' of github.com:flynx/ImageGrid 2019-12-22 00:49:02 +03:00
747c2e995b minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-22 00:48:35 +03:00
242b3fb904 Merge branch 'master' of github.com:flynx/ImageGrid 2019-12-21 23:47:31 +03:00
765bd8b99a ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-21 23:47:22 +03:00
5865acdfc6 tweaking .batch(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-20 16:56:24 +03:00
c0dd13342a adding make.batch(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-19 18:44:52 +03:00
7ff66bff49 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-18 18:28:00 +03:00
ee39977ee9 Merge branch 'master' of github.com:flynx/ImageGrid 2019-12-17 23:50:55 +03:00
5d0959afa4 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-17 23:50:33 +03:00
30947b5dff notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-16 16:27:48 +03:00
7d41078ddd notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-15 23:06:18 +03:00
6847926441 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-14 20:24:25 +03:00
7f8fe20fdd notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-13 16:08:50 +03:00
092b6fe8e0 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-12 23:08:30 +03:00
34ccac61ef notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-11 16:49:26 +03:00
15bbce5162 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-10 15:09:25 +03:00
5d1c53593c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-09 04:45:38 +03:00
0ffcda0e4e tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-08 02:45:33 +03:00
0ead526ea9 the sub-context experiment finally working... still thinking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-07 01:12:15 +03:00
16ecebb1c0 cleanup and rethinking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-06 20:48:24 +03:00
aa3d5ac3b6 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-05 01:40:51 +03:00
bbd6969dab notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-04 23:26:07 +03:00
45e6b320b9 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-03 16:21:37 +03:00
b4b34a6969 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-02 15:04:41 +03:00
3491f64c17 experimenting with make(..) contexts as means of ogranizing make functions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-12-01 18:00:41 +03:00
b9d310724e tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-30 04:56:55 +03:00
1409d8df4b expermenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-29 15:33:48 +03:00
80722e92c4 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-28 13:46:09 +03:00
39c79f917f notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-27 16:52:11 +03:00
633328b21c ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-26 04:58:17 +03:00
7210075ae4 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-25 18:09:19 +03:00
069e52e919 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-24 02:21:17 +03:00
0ace8dd7aa experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-23 16:40:08 +03:00
1fd1211f41 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-22 16:09:25 +03:00
d7bcf1cd0a more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-21 15:54:16 +03:00
630a7fa3cb notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-20 05:38:50 +03:00
f8a030d709 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-19 08:35:55 +03:00
cc502c8f72 cleanup + rethinking the editor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-18 05:22:57 +03:00
32204666ec moved most of the waveform experiment and preparing to lib-ify...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-17 06:15:41 +03:00
7aa071eb08 ig-image-graph experiment seems to be feature complete...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-17 01:50:23 +03:00
b19b8c22b5 experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-16 15:55:58 +03:00
c9e1f8d3e6 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-16 01:00:07 +03:00
e115636088 added waveform graph modes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-15 18:25:09 +03:00
bfcd295127 started lib-ifying the graphs experiment...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-15 17:14:55 +03:00
a03b20490d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-15 02:43:19 +03:00
75ddc73ba6 slideshow cleanup done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-14 15:06:34 +03:00
3c9b552c39 minor tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-14 06:36:14 +03:00
59ef1fffb2 moved tests/examples to examples.js + started migrating slideshow dialogs to new uiversal dialog...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-14 03:29:30 +03:00
d356483226 more work on the universal editor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-14 00:18:24 +03:00
4921924840 added basic fields to universal editor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-13 22:23:21 +03:00
672e309171 docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-12 01:24:22 +03:00
8b014c0e5b basic editor dialog now working, still needs fields...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-11 04:18:04 +03:00
e65a1be292 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-10 00:58:05 +03:00
f4b47c3555 experimenting with editor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-09 03:37:13 +03:00
45538694a7 typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-08 21:49:03 +03:00
e8d5efb8fd some cleanup + started an experiment with a universal editor constructor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-08 21:23:50 +03:00
8321d233b3 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-07 16:23:07 +03:00
1ef77f9f28 license text fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-06 03:38:29 +03:00
f028689caf notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-05 14:56:19 +03:00
7e09763694 updated makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-04 06:34:01 +03:00
e64ff7513a reworked sort...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-04 04:27:10 +03:00
e498ce3471 added license date...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-03 20:08:44 +03:00
fe7f502af9 added license...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-03 19:38:15 +03:00
bd54ac6f56 moved to new sharp API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-03 18:32:49 +03:00
3d306a982c found a bug in .exportIndex(..), partially fixed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-02 04:05:51 +03:00
ce1e3375a7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-11-01 02:15:54 +03:00
0a5b5fac0f cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-31 23:51:05 +03:00
aaa77d7eeb notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-30 01:43:07 +03:00
e5488e9b27 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-29 16:00:17 +03:00
eec7bf1839 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-28 20:42:11 +03:00
ff53da1554 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-27 16:52:09 +03:00
fc02dd19f8 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-26 01:12:05 +03:00
b7792c4929 cleanup + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-25 16:23:20 +03:00
132ba9a220 restructured v-block menu...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-25 01:25:48 +03:00
59d28d01ac cleanup, refactoring and added marking of virtual blocks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-24 04:40:45 +03:00
568757f9f1 rewritten part of the crop mechanics...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-23 16:12:53 +03:00
73ce4f4a30 added v-block cropping...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-23 16:05:39 +03:00
d6b64b2708 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-22 04:53:08 +03:00
739fe4972c v-block menues and some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-21 11:37:16 +03:00
e1bc176567 typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-20 10:25:50 +03:00
0b60d6679b refining virtual block actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-20 10:20:47 +03:00
527e5e9784 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-19 00:39:50 +03:00
49c1dd33f4 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-18 04:49:12 +03:00
c9e6763598 rethinking parts of export...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-17 14:02:23 +03:00
e4474ab0cb notes + doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-16 00:37:52 +03:00
2b5fccd184 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-15 05:45:47 +03:00
f4a11b8d7d merge...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-15 00:49:06 +03:00
b97f69eb96 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-15 00:47:42 +03:00
8617174ecd notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-14 22:46:10 +03:00
b6ea15a8ca bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-13 22:05:50 +03:00
ce3e7232fa docs and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-13 13:49:02 +03:00
e181bb2982 added title field to virtual blocks + some refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-13 13:37:45 +03:00
52a972715f cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-13 05:35:29 +03:00
122baa837d removed a non-necessary feature...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-13 05:28:03 +03:00
5203db794d some tweaking, notes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-13 04:51:29 +03:00
e44d2573cc added export of virtual blocks (now feature complete) + backup and clearing of ecport target dir...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-13 04:33:36 +03:00
47f5bf9937 added virtiual block editor + some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-12 06:38:48 +03:00
f636a5379e renamed stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-12 03:34:19 +03:00
9f0e59c913 minor stuff + cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-11 18:03:02 +03:00
8fa53d4767 reworked metadata view, now a bit more consize...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-11 15:19:03 +03:00
2499326d03 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-11 01:28:19 +03:00
ea7d01e87e minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-11 01:02:22 +03:00
e93b800127 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 20:30:00 +03:00
a412354c0c minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 19:43:56 +03:00
0a040acf3c minor tweaking
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 19:40:55 +03:00
41211aed68 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 18:04:04 +03:00
ed58ff4cc8 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 18:01:55 +03:00
6ed2d1ebd5 more work on metadata view, still dealing with problems...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 16:54:50 +03:00
8c7e8e08f3 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 06:09:27 +03:00
dfd96f892b reworked metadata UI...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 06:07:17 +03:00
6146f41967 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-10 00:35:53 +03:00
5014052c82 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-09 03:39:20 +03:00
2b239c6dc3 minor fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-09 03:25:53 +03:00
12c5ac8693 sorking on virtual blocks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-09 03:04:46 +03:00
6bb4232086 experimenting with virtual images...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-08 01:54:18 +03:00
48a87e7724 all inpit options are now flat copied...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-07 16:16:12 +03:00
b2826fe58d ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-06 19:33:11 +03:00
bd634c023e docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-05 03:53:42 +03:00
f8c1538126 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-04 13:20:57 +03:00
2b49e37dc8 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-03 17:56:28 +03:00
a7977554dc Merge branch 'master' of github.com:flynx/ImageGrid 2019-10-02 02:57:18 +03:00
6a34d36503 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-02 02:57:10 +03:00
c09b055ee5 Merge branch 'master' of github.com:flynx/ImageGrid 2019-10-02 02:55:55 +03:00
8b89a2c450 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-10-01 02:55:32 +03:00
0c720efc47 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-29 20:03:45 +03:00
4ac4880f3a updated docs for main scripts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-28 17:31:01 +03:00
a4611a8b25 oops, forgot to add a very usefull script...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-27 22:24:08 +03:00
7356491b1d reworked permissions and added compression....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-27 22:18:59 +03:00
47a92dd0a0 added source size indication when copying + prep for compression integration...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-27 21:03:22 +03:00
85f5078fa6 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-26 01:51:11 +03:00
a4bf20ccc3 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-25 01:06:40 +03:00
19abb66d73 even more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-24 01:53:58 +03:00
3f8985a8f4 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-23 01:42:41 +03:00
28fc726f94 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-22 04:17:28 +03:00
e13984fca2 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-21 19:55:10 +03:00
f3c3393f4b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-20 03:10:49 +03:00
cdce5e9503 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-20 02:38:57 +03:00
21649b9173 now .update(..) supports modes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-19 02:27:20 +03:00
65ad9a2f3f refactoring + experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-18 21:50:20 +03:00
ffb5cfb59e cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-18 18:03:46 +03:00
36df133917 bugfixes and cleanup... still needs revision
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-18 17:23:11 +03:00
4a8539bfce made devtools startup timeout configurable...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-18 03:52:22 +03:00
0c85d026fa removed unconditional devtools start...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-18 03:32:47 +03:00
b0f8605886 more debugging...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-18 02:43:03 +03:00
8a23bee799 located a new bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-17 17:16:36 +03:00
78802f36da fixed several bugs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-17 17:05:47 +03:00
7d521bdf14 reworking render....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-17 03:51:02 +03:00
d0dad4811a ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-16 17:06:39 +03:00
48ed38ebc0 notes and bug descritions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-15 15:35:12 +03:00
a1e8b37142 refactored renderers, cleanup and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-15 14:46:14 +03:00
6eb7e8b810 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-15 04:06:43 +03:00
a083ffe0fc minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-14 04:28:35 +03:00
9f8d3e7156 working on partial render...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-14 03:56:35 +03:00
89f6c7db27 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-13 21:01:49 +03:00
88536cc2c3 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-12 17:38:25 +03:00
720ee5f5bc notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-11 16:29:13 +03:00
6bb254d6a6 now we update only the affected elements...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-10 03:27:19 +03:00
ff28293b87 fixes and hacks -- everything seems to be working (with some hacks) but rethinking how we re-render dom...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-10 02:58:44 +03:00
eec609c763 tweaking and fixing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-09 23:07:50 +03:00
08d781cde0 cleanup and minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-09 17:21:07 +03:00
21f440ed3b refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-09 15:28:50 +03:00
e88edd4164 fixed options problems...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-09 02:57:46 +03:00
8553ca8594 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-08 05:09:16 +03:00
68fd915a84 migrated the html renderer to new arch, still needs testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-07 01:41:20 +03:00
91cd10fada notes and minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-06 01:44:17 +03:00
eae2e6feb7 more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-06 01:33:32 +03:00
ca7d6cdff6 cleaned out redundant text browser...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-06 01:16:37 +03:00
a3bfda9a29 added support for .walk(..)'ing custom lists of elements...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-06 01:14:30 +03:00
904d00d16d cleanup and refactoring....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-06 00:37:08 +03:00
69ff309718 cleanup, refactoring and revision...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-06 00:14:09 +03:00
906c9ff4d6 better inlined block handling in .render2(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-05 06:53:41 +03:00
c1c50fa765 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-04 15:11:58 +03:00
a1d0943d64 reworked .render2(..) to support sections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-03 13:42:27 +03:00
f5a1ccce77 sorted out indexing and paths in .render2(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-02 19:53:38 +03:00
4c44cf7e8b experimenting with rendering...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-02 17:44:05 +03:00
f9379618ca notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-09-01 02:00:41 +03:00
200485f5ed typo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-31 16:28:06 +03:00
10f413a819 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-31 01:14:07 +03:00
1f746c2a41 some tweaking and bugfixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-30 22:53:41 +03:00
bfbe66ed99 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-30 22:38:05 +03:00
8e565bdad2 fixed most of the issues with .walk2(..), preparing for the move/cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-30 22:23:52 +03:00
d74482e037 experimenting with different approches to render...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-30 18:32:23 +03:00
031c179e4d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-29 18:43:15 +03:00
d68deceb4a working on .render(...)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-28 05:34:09 +03:00
b0d4dd112f cleanup and preparing for final migration to new .walk(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-27 19:39:07 +03:00
a018660bd9 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-26 19:24:54 +03:00
ea6a1e5479 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-26 04:39:41 +03:00
34350199b9 done .search2(..), still needs a revision...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-25 18:10:57 +03:00
fb35be5404 added sync children processing to .walk2(..), only .search(..) seems to be left...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-25 05:12:19 +03:00
20e6aed9c2 tweaking + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-25 02:30:23 +03:00
c045d67a89 more work on .walk2(..) and friends...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-25 00:24:09 +03:00
7a56564835 .walk2(..) refining...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-24 18:39:37 +03:00
2bd7aa5c5b .walk2(..) almost done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-24 17:32:03 +03:00
f41791c810 minor simplification...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-23 17:20:18 +03:00
689297d967 added section support + working on essential option support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-23 17:00:55 +03:00
33ef833a31 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-23 06:28:17 +03:00
2fc4cffa85 .walk2(..) mostly done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-23 06:24:17 +03:00
ac89db2c83 bare .walk2(..) working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-22 17:57:29 +03:00
d47af07fd9 experimenting with iteration...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-22 15:45:06 +03:00
8079465018 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-21 02:59:45 +03:00
2cbbc57118 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-20 16:27:12 +03:00
977a06b093 experimening with item update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-19 18:34:06 +03:00
77ba1e2497 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-18 23:49:33 +03:00
554a341526 experimenting with render...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-17 05:03:04 +03:00
2ad3ccdd7e experimenting with render...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-16 19:10:03 +03:00
c26ee4e20c Merge branch 'master' of github.com:flynx/ImageGrid 2019-08-15 17:09:12 +03:00
d60d2e30c2 cleaning out legacy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-14 17:08:33 +03:00
151b28f48e cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-13 18:57:36 +03:00
6593461c19 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-12 14:15:54 +03:00
e4078b7378 Merge branch 'master' of github.com:flynx/ImageGrid 2019-08-11 23:53:15 +03:00
6d309f91a1 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-11 23:52:58 +03:00
54165fca7d Merge branch 'master' of github.com:flynx/ImageGrid 2019-08-10 16:40:25 +03:00
88cff84d0d preparing for move to css vars...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-10 16:40:07 +03:00
d9dd64e014 updated scripts with the current versions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-09 19:59:49 +03:00
400a1e7044 Merge branch 'master' of github.com:flynx/ImageGrid 2019-08-08 04:19:10 +03:00
2b793990cf fixed typo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-08 04:18:43 +03:00
0445f0f447 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-07 01:01:57 +03:00
c7f139249b cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-06 19:50:07 +03:00
b9f30d7a40 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-05 17:30:39 +03:00
8be7058c76 testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-04 17:12:24 +03:00
38f6edb08b notes..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-03 16:40:09 +03:00
04df218ee9 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-02 16:09:48 +03:00
499c04a2c4 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-01 19:21:33 +03:00
ea773dafd4 reworked slideshow pausing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-08-01 18:45:29 +03:00
618a872c02 still unraveling scroll-position issue...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-31 01:02:15 +03:00
2abc7ea087 started unraveling scroll-position issue...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-30 16:18:31 +03:00
09daaf0e28 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-29 17:10:02 +03:00
b46f0d164e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-29 03:11:16 +03:00
2c05f20643 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-28 03:24:14 +03:00
5fc0ce1d1c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-27 18:46:48 +03:00
9ec2f8e733 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-26 20:29:21 +03:00
2cb9a0706e cleanup and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-25 18:22:37 +03:00
058e88aa57 added ready timeout...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-25 18:07:38 +03:00
cc9d4995b1 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-25 01:53:39 +03:00
a3f4454222 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-24 17:16:59 +03:00
42b1616504 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-23 05:10:15 +03:00
b4a4bb068e some refactoring... still thinking about it
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-22 18:12:47 +03:00
6289076a73 basic scroll position is maintained, still buggy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-22 01:12:37 +03:00
ad6cdac1da cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-21 00:04:12 +03:00
0641dad600 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-20 15:31:55 +03:00
277a21d1e5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-20 15:20:11 +03:00
29288efff2 several minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-19 15:19:52 +03:00
cffc892aff working on scroll offset...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-19 14:53:26 +03:00
c9de5e4b72 minor bugfix + some tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-18 15:22:12 +03:00
ee4b7331e3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-17 16:48:11 +03:00
ed01425b83 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-17 02:37:37 +03:00
1ba1d883be fixed object.js dependencies...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-17 00:07:24 +03:00
e9dc3eb9e6 moved to new object.js
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-17 00:01:09 +03:00
89cd1e4473 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-16 19:11:57 +03:00
fcdb14ac49 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-16 19:11:41 +03:00
b7121808cb refactored .make(..) and Items (Make(..))
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-16 18:52:18 +03:00
4fac28a8a9 docs, cleanup and minor tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-16 17:09:27 +03:00
a3298d13a9 notes and minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-15 15:00:07 +03:00
1da1cb8114 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-14 10:58:24 +03:00
de3d2de868 docs, notes and some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-13 00:02:15 +03:00
236f748eda added .options.renderUnique...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-12 23:04:10 +03:00
b77f678805 adding .options.renderUnique...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-12 22:38:22 +03:00
75548691d5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-11 02:46:00 +03:00
9c5e7cf227 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-10 14:26:01 +03:00
3beea76118 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-10 04:42:06 +03:00
f764914927 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-09 18:25:15 +03:00
37b8ce1257 experimenting with css...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-08 05:41:58 +03:00
45a3ce44fd npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-07 17:37:05 +03:00
67d4d2420b bugfix + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-06 18:48:57 +03:00
0838c313e3 more experementing... feeling that the thing is getting a bit too complicated...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-06 17:50:59 +03:00
ca81c5053e refactoring, docs and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-06 03:33:21 +03:00
3f1288cc04 bugfix + tweaking and experementing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-06 02:45:57 +03:00
2c43cd5fc4 minor fixes and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-05 22:16:33 +03:00
572a5f1376 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-05 22:09:15 +03:00
e037755d0f still experimenting with views/clones...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-05 21:49:36 +03:00
495054309f npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-05 21:48:56 +03:00
751038ad1d some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-04 19:17:01 +03:00
515796fc05 experimenting with the concatinative model...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-04 18:57:43 +03:00
5bf1e40d2e notes and some minor experimentation....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-03 03:56:14 +03:00
0384afebee minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-02 02:10:03 +03:00
bffb03b92c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-02 02:04:05 +03:00
181fde2731 lots of tweaks and some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-01 23:48:23 +03:00
e4a8c6bb57 tweaking and fixing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-01 20:37:24 +03:00
bf73a289c2 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-01 20:20:30 +03:00
cde9596299 potentially fixed section focus issues...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-01 20:13:20 +03:00
bf5fc8202e added button key shorthand + some tweaking + bugs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-01 19:33:40 +03:00
3634d40252 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-01 04:47:31 +03:00
2028adef0e notes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-01 04:03:38 +03:00
90f8f91aa4 reworked .update(..) handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-07-01 03:22:40 +03:00
1023468aa7 added .options.updateMaxDelay + some docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-30 23:10:32 +03:00
20f78d1393 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-30 20:12:00 +03:00
c9f30c2234 docs and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-30 19:19:26 +03:00
d431807da0 minor tweaking / cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-30 02:21:05 +03:00
819f3cafe9 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-30 02:15:35 +03:00
4b934c52c9 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-30 02:10:30 +03:00
91e6e497d8 focus issues mostly worked out but not quite fully...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-30 01:42:41 +03:00
e3e3c175cb fighting section focus handling... sections keep resisting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-30 00:55:20 +03:00
eb668c5bdf refactoring default section + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-29 21:34:42 +03:00
af73385a87 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-29 20:11:15 +03:00
944243ea4b added basic footer...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-29 16:09:32 +03:00
0e7ee0af2a more fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-29 07:34:01 +03:00
f3c432c5d1 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-29 07:23:08 +03:00
35a8a69f8f minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-29 07:12:09 +03:00
4e86290ec4 added secion construction and rendering...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-29 07:11:30 +03:00
3c7de1f2c3 reworked generating sections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-29 01:20:02 +03:00
9c6f39ea9f added .source to iteration options
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-28 18:05:03 +03:00
cf510bf6b3 .make(..) now makes the header, next introduce header (as option) to item access and rendering...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-28 17:48:02 +03:00
7aef4d6537 preparing for header work...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-27 03:33:57 +03:00
fa1b936b57 experimenting with headers...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-27 03:09:55 +03:00
aba9bb75da notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-27 02:39:33 +03:00
10f6cbf651 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-26 19:41:42 +03:00
4b1c5d2e45 tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-26 12:53:55 +03:00
9c9962c21a minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-25 17:46:53 +03:00
69aafbf131 added .options.focusDisabled and most of support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-25 17:41:12 +03:00
3e40a31673 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-25 03:34:29 +03:00
3724bce522 refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-24 15:57:40 +03:00
350d39bd89 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-24 05:38:05 +03:00
3093e0e684 bugfix + some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-24 05:13:49 +03:00
15ca09fed0 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-23 21:18:43 +03:00
1f6ac64bae some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-23 19:56:07 +03:00
893741b98f cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-23 17:32:14 +03:00
65fb923216 minor refactoring
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-23 17:06:51 +03:00
fb36d3660f notes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-23 05:07:06 +03:00
9c0f48ea3b refactored item rendering + features and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-23 04:45:31 +03:00
c1eac80503 working on item buttons...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-23 00:14:45 +03:00
e1535bc1ba now all button components are extensible...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-22 18:24:43 +03:00
e278fa737c notes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-22 18:06:39 +03:00
584f8dee65 tweaking buttons...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-22 06:03:44 +03:00
74ad368a30 tweaked navigation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-22 02:25:17 +03:00
7e35bd48d9 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-22 02:14:24 +03:00
a49b02406c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-21 04:24:14 +03:00
66df691aad ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-20 22:06:52 +03:00
5d8b79f8cc notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-19 15:23:54 +03:00
2ee6d87147 removed jQuery dependency...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-19 03:08:58 +03:00
f12b357b28 some cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-19 02:34:23 +03:00
14b3d7aed7 since FF impulitely complains when we are asking permission pulitely, we are not longer asking for permission, it's quieter this way...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-19 02:06:30 +03:00
1b98cddc2a notes and minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-19 01:58:08 +03:00
f69837c625 tweaking cut/compy/paste + added menu handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-19 01:14:35 +03:00
ccd141efef reworked item button actions + added copy/paste of item paths (hackish)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-19 00:31:12 +03:00
bc14c0af00 now .keyPress(..) works correcly + minor tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-18 20:58:40 +03:00
5571860d80 .update(..) now has flood protection + an odd thing happened in partial .render(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-17 05:20:00 +03:00
0527983e49 cleanup and minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-17 03:12:24 +03:00
d5a0aa8368 losts of tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-17 02:50:49 +03:00
584f47c0c7 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-17 00:33:44 +03:00
7f48f8460d cleanup and some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-16 22:45:00 +03:00
2b483b4019 cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-16 21:20:34 +03:00
fc8c745ac3 added item keyboard shortcuts + cleanup and some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-16 21:14:23 +03:00
5d35ae1fb0 Merge branch 'master' of github.com:flynx/ImageGrid 2019-06-16 02:55:33 +03:00
94ed307353 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-16 02:55:27 +03:00
c84a56d3a6 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-15 19:12:45 +03:00
3624e63743 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-15 18:49:41 +03:00
538216cfb9 more refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-15 18:43:26 +03:00
f200d24f56 refactored out some redundency in event code... (not done yet)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-15 18:11:22 +03:00
4e5a6409bb notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-14 16:14:07 +03:00
c73dd6265a notes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-13 03:05:44 +03:00
cebfe2be47 added .load(..) and lots of tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-13 02:54:41 +03:00
8ca86babb5 refactoring, cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-12 21:45:51 +03:00
877740182b added page up/down actions + tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-12 18:20:32 +03:00
29f2639000 fixes, tweaks and one hack...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-12 04:44:17 +03:00
d4233aaf07 tweaking scrolbars + found bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-11 17:28:38 +03:00
9f463dbe40 removed a pesky bug class...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-11 15:44:10 +03:00
de606c2ec6 testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-11 00:52:26 +03:00
282fda76b1 several bug fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-10 17:18:55 +03:00
fd35af5bfc added .enable(..)/.disable(..) events + fixed .blur(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-10 04:07:55 +03:00
270118aa80 minor doc tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-10 00:54:12 +03:00
b75bb062c1 removed bug-inducing comment...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-09 13:58:37 +03:00
0e5bbce913 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-08 20:45:50 +03:00
344647c846 cleanup + minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-07 03:09:07 +03:00
1d59795ab9 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-07 02:56:01 +03:00
65988fa5c4 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-06 17:16:36 +03:00
ff8050a62a ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-05 23:12:26 +03:00
53732b5c97 tweaking and bug squashing (not done)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-04 19:50:52 +03:00
d978475c24 css tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-04 15:47:41 +03:00
15bccab8bc notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-04 15:26:28 +03:00
35f91f6642 minor refactoring, tweaking and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-04 04:28:08 +03:00
878c866f3f working on DOM navigation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-04 02:55:53 +03:00
14e711400a started work on keyboard event support -- basic support now done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-03 19:22:01 +03:00
d3b155f5c0 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-03 00:06:45 +03:00
3c447bb475 added blank elements...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-02 22:57:15 +03:00
56187f5f18 found a potential bug (thinking) + notes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-02 21:53:20 +03:00
ace3bd2b52 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-02 21:16:23 +03:00
410d3bb745 notes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-02 18:19:55 +03:00
4ae0323eb2 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-02 17:59:30 +03:00
2f5144f2d8 added partial rendering...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-02 17:36:04 +03:00
1b46c45918 added event default action + some tweaking....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-06-01 00:39:29 +03:00
556533ae7a added basic cache management + some tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-31 00:07:36 +03:00
3794fbb048 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-30 20:00:09 +03:00
56cb5fa405 cleanup and some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-30 19:44:22 +03:00
62245eea34 refactored .make(..) and item id's...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-30 16:51:10 +03:00
21106d854c revising item ID generation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-29 16:27:14 +03:00
852c343ee4 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-29 02:41:17 +03:00
cbb792431f minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-28 03:56:40 +03:00
d4477ff01c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 20:10:56 +03:00
1397d100f1 fixed a several of issues with focus/next/prev and disabled items...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 20:09:56 +03:00
129c3fea8f another bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 19:33:49 +03:00
952cfe7031 fixed a couple of bugs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 19:16:51 +03:00
f53afb410c minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 17:36:57 +03:00
8d6378d316 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 05:09:01 +03:00
e8670825cd minor tweaking/refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 01:49:47 +03:00
146b059938 refactoring + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 01:40:04 +03:00
ff12cc297b started binding DOM events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-27 01:00:48 +03:00
4aec844167 fixes and some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-26 21:56:49 +03:00
822ffdc5fa cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-26 20:20:18 +03:00
6c37374657 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-26 19:24:58 +03:00
a3f6a211e4 expand/collapse events + item event filters...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-26 19:23:40 +03:00
46f70b184d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-26 18:55:24 +03:00
af686c3e56 added state/event togglers... (not sure about implementation)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-26 18:30:31 +03:00
9499108401 added item event default getter...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-26 03:38:38 +03:00
6f2a15fa2d notes and experiments...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-25 12:51:32 +03:00
9b3a5007f3 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-24 00:18:53 +03:00
f8244c51d6 cleanp and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-23 19:43:01 +03:00
11d4db7732 tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-23 19:41:07 +03:00
9d80b05d75 cleanup + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-23 16:21:08 +03:00
5203f32bda reworked the event system...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-23 16:07:57 +03:00
c5ea87c015 notes
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-23 04:20:59 +03:00
2e8150c5bb fixed a glob default change causing searches to fail on not being able to stat some abstract file in the tree...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-22 23:28:38 +03:00
07a6be21d5 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-22 16:12:24 +03:00
cab5b5b385 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-21 04:27:12 +03:00
6bc4c2fb94 added .events, still tihnking about propper event propagation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-20 13:53:54 +03:00
d793b03134 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-19 15:38:36 +03:00
786fc542ea notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-19 14:11:58 +03:00
863e72f533 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-18 03:28:53 +03:00
4527758a76 added string path handling for queries...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-18 03:23:43 +03:00
abbe36c8c5 tweaking path querieng...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-18 03:15:03 +03:00
c2f1412f84 resolved the chicken-vs-egg issue with events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-18 02:58:38 +03:00
5a83e76010 removed a not so obvious in some cases option for .off(..) call...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-18 01:53:28 +03:00
d4bbbe2315 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-17 19:56:57 +03:00
82f2a60dfc added tagged handler support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-17 19:53:33 +03:00
9b40429482 updated docs and defaults....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-16 05:34:44 +03:00
2491ca08a4 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-16 05:06:44 +03:00
a2a475cbad added ribbon number and level dir to export path pattern + removed level dir field from export dialog (experiment)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-16 05:00:15 +03:00
17c6f64c86 several fixes and tweaks to the event system...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-15 21:45:20 +03:00
fd078cbac0 fixed an issue with makeItemEventMethod(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-14 16:36:28 +03:00
94e2537891 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-14 03:55:35 +03:00
e7444df938 reworked the basic select/focus events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-13 18:58:17 +03:00
adc25ca1a9 updated .focused / .selected props, still need to do events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-13 14:39:58 +03:00
bc483edb26 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-13 02:55:33 +03:00
608ccab2c6 started work on basic focus navigation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-12 13:56:33 +03:00
e33206de20 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-12 12:59:48 +03:00
ad5ff5b43c cleanup and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-11 15:03:12 +03:00
087c4a4ccc added tests/docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-11 14:54:48 +03:00
dcfd4d33c5 minor refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-11 05:24:36 +03:00
51369ab05a minor tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-11 04:44:50 +03:00
0d0baf39b4 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-11 03:05:16 +03:00
e7ba8fa505 finished move to .walk2(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-11 03:02:42 +03:00
03685c643c tweaks and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-11 00:14:10 +03:00
d1746ce0d0 fixed .reveal(..) + added a special (fast) case for branch searching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-10 21:07:17 +03:00
d1ca404feb bugfix + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-09 02:28:06 +03:00
db078e072a tweaks fixes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-09 00:20:11 +03:00
9740958eed reworked .get(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-08 04:14:29 +03:00
7f85fa4543 more cleanup and some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-07 19:56:46 +03:00
9ba2d231a7 more cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-07 19:19:23 +03:00
99eba83adf cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-07 19:09:05 +03:00
3e264b88c1 fixed indexing issues...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-07 18:17:03 +03:00
29b4b4930f ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-07 17:35:09 +03:00
e67f52e2d8 found a really odd bug, investigating...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-06 19:21:22 +03:00
ad47d8036c refactoring .walk(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-06 16:57:06 +03:00
fa40e6a2cf notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-06 03:42:19 +03:00
486f951b71 reworked .walk2(..) to include one common use case + some docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-06 03:34:40 +03:00
9e7c25ed47 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-05 17:20:06 +03:00
77fc5445db updated make docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-05 16:01:03 +03:00
461ac40509 cleaned out a not so well thought out experiment...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-05 14:23:09 +03:00
5ce24233ab experimenting with walker construction...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-04 21:07:30 +03:00
4b8b3dd64d fixed docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-04 17:57:22 +03:00
406c8506aa docs, tweaks and some questions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-04 17:56:02 +03:00
c4c5488e60 updated to new electron version...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-04 17:08:40 +03:00
6e05be9fee updated generic-walk + .walk2(..) now fully works...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-04 15:46:04 +03:00
dffd66a8ae .walk2(..) done -- needs testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-04 04:46:29 +03:00
bed990372b testing generic-walk...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-03 19:43:22 +03:00
a200c41684 npm tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-03 17:22:30 +03:00
524dc3c3bf cleanup and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-03 03:25:57 +03:00
36c4202e23 added offset support in .get('next'/'prev', ..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-02 18:18:13 +03:00
d6c50e5921 cleanup and added keyword support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-02 04:25:58 +03:00
c647547433 docs and minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-02 00:29:09 +03:00
d64b658e52 removed preact from the build...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-01 20:08:31 +03:00
5f70d0f83b ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-05-01 13:59:26 +03:00
5f740adc2a expanded .search(..), still not final...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-30 17:24:04 +03:00
0e21955601 minor tweaks, still reevaluating .search(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-30 03:37:06 +03:00
a80f3ad69a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-29 16:21:54 +03:00
1cfe064c03 simplify and rethink...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-29 04:21:44 +03:00
e718df1bea cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-28 18:44:02 +03:00
ce221b4b34 still working on exiting out of .walk(..) prematurely...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-28 03:16:06 +03:00
ec2101bf4a fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-28 02:38:54 +03:00
b8f20d5d7a tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-27 20:59:56 +03:00
e1235b2dd1 minor fixes + experimenting with search....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-27 17:02:36 +03:00
8c7f20a946 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-27 04:24:34 +03:00
24745ffda3 experimenting with .search(..) -- .get(..) alternative based on .walk(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-27 04:15:03 +03:00
dd03da42f6 tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-26 02:28:58 +03:00
9e79b6a0b1 minor tweaks and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-25 19:42:12 +03:00
e5556fb34b some more tweaking and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-25 18:05:17 +03:00
f61297a84f some tweaking and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-25 17:50:32 +03:00
1deb1e939f refactored .walk(..) order and index manipulation + fixes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-25 17:40:28 +03:00
0a5e6617c3 bugfixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-25 03:25:03 +03:00
e994566c3c minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 18:58:16 +03:00
2251f1f079 minor refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 17:01:57 +03:00
993fa97aa8 more refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 16:15:41 +03:00
08850cfd5c cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 16:12:11 +03:00
98412ab28c moved things to their logical locations...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 16:10:26 +03:00
0ef0630463 transfered .map(..) docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 16:04:25 +03:00
f5afa85978 moved to the new .walk(..) API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 15:51:41 +03:00
00d6bc2098 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 15:11:29 +03:00
3a1e5b5784 .render2(..) is done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 15:07:21 +03:00
09e4cb26ad .render2() almost working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 04:17:07 +03:00
74bbd02a87 seem to have fixed the index issue in .walk(..) and friends...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 03:23:20 +03:00
5b7bbe1faf notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-24 01:05:01 +03:00
a26ba942cf adding item count to .walk(..), not yet counting correctly...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-23 23:34:23 +03:00
af1a315d6e docs, cleanup and minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-22 02:30:53 +03:00
e510ca7428 .walk(..) mostly works + .render2text(..) for testing + started work on .render2(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-22 02:16:30 +03:00
ed0c942676 .walk(..) experiment almost done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-21 16:54:19 +03:00
b5cf08f12e bugfix and some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-20 17:08:10 +03:00
3259870fb9 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-19 13:49:07 +03:00
349cefa28a revised make docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-18 17:12:00 +03:00
00b65621d1 fixed a legacy keyboard config bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-17 02:40:25 +03:00
cb6329a9de minor menu restructure...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-17 02:32:41 +03:00
9719df1316 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-17 01:36:05 +03:00
5e00e7164c added base path to export dialog...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-16 19:47:27 +03:00
39754e2ec0 cleaned up some UI legace from the export interface...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-16 19:03:42 +03:00
dd9759035f now exporting image size limiting works...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-15 15:44:28 +03:00
1191d49b21 Merge branch 'master' of github.com:flynx/ImageGrid 2019-04-15 03:23:13 +03:00
12b8fa5b76 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-15 01:47:09 +03:00
1eafd9f1dc notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-14 14:47:27 +03:00
fa3f86cebc notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-13 09:44:10 +03:00
c9423b32e6 added first modal open/close events and now we pause the slideshow on modal stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-12 01:23:22 +03:00
7c0a63e836 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-11 03:26:26 +03:00
de430ebef8 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-11 02:52:16 +03:00
0821d0099e minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-10 04:49:35 +03:00
9e91723f36 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-09 02:59:20 +03:00
9b930a38b1 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-08 20:36:08 +03:00
d4ddffc3f7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-07 14:50:18 +03:00
bffc2d32ac small tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-06 14:53:10 +03:00
69c27e21c6 more notes and docs for an edge case...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-05 02:04:03 +03:00
d8cdb6de04 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-04 20:13:02 +03:00
29cd9bc780 docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-03 03:53:26 +03:00
a310ab8309 typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-02 15:46:12 +03:00
bbc9130bd6 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-04-01 11:26:49 +03:00
6962d7c9a6 added cpu core counting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-31 16:11:04 +03:00
8240771409 several fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-31 16:04:34 +03:00
a30f80b49d updated archive processing defaults...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-31 15:35:19 +03:00
2339c615a0 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-30 08:53:13 +03:00
1050b733e2 tweaking makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-29 04:50:52 +03:00
648fe7f001 tweaking the dependency checking scheme in Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-29 04:45:52 +03:00
4483c1bec6 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-29 04:26:13 +03:00
4a84920329 more notes....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-29 03:19:16 +03:00
b499255a7c updated archive management scripts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-28 02:16:33 +03:00
6caf422ce7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-27 14:59:21 +03:00
0c41adf6d5 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-26 13:13:39 +03:00
7de518d06b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-25 21:32:30 +03:00
08480124ef notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-24 03:11:55 +03:00
71e2806917 reworked .map(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-23 16:30:31 +03:00
12efd8870c ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-23 03:33:37 +03:00
fe5db799d7 minor update to bring up a legacy script to modern spec...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-22 04:01:55 +03:00
7d85cfb0e0 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-21 12:54:55 +03:00
7422b7f0d3 preparing to fold .render(..) and .map(..) together (they are too similar)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-20 19:13:38 +03:00
e414ad3eb3 added option to reverse .map(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-20 16:54:22 +03:00
133dddd84c tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-20 02:00:43 +03:00
cc90252c3f added .indexOf(..) and .pathOf(..), some tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-20 01:50:48 +03:00
7e4d976b2a tweaking + preparing for work on navigation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-19 04:51:22 +03:00
d18ade0149 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-18 06:26:48 +03:00
0d68432ed3 tweaking .find(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-18 03:58:23 +03:00
d2d2dbe8a3 tweaking .focused and friends...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-18 02:45:56 +03:00
46931af4da added .reveal(..) + tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-17 23:30:27 +03:00
566f833ae6 added a compeating implementation of .get(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-17 21:54:26 +03:00
5543233e56 notes and cleanup, still buggy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-16 02:57:23 +03:00
292ba4bf2e fixed main functionality of .get(..), still needs work...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-15 14:26:53 +03:00
d731b03514 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-15 04:21:33 +03:00
14055acf26 tweaking and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-14 17:03:46 +03:00
b95aeb0b24 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-14 00:45:33 +03:00
5608a1c3f2 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-13 06:23:51 +03:00
9de887fd9b renamed .iter(..) to .map(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-12 23:03:53 +03:00
db4758bddc minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-12 20:29:00 +03:00
8022c49f8a more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-12 20:23:45 +03:00
bed106a484 tweaking output...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-12 20:08:43 +03:00
8592b34e8c tweaking Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-12 19:53:41 +03:00
b996a7e772 updated make help to include actual help...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-12 19:46:24 +03:00
02c6cdd79b added help target and moved the relevant docs to the actual targets...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-12 19:26:37 +03:00
15545f181c reworked the iterator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-12 16:05:51 +03:00
79dc989832 added path to iterator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-11 20:49:19 +03:00
90afd124e9 added a stub recursive iterator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-11 20:03:05 +03:00
b77bbb4e52 working on item access...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-11 19:40:41 +03:00
616d22a30f ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-10 01:47:28 +03:00
7f3a974cf6 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-08 18:26:38 +03:00
db78c9b951 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-07 18:15:25 +03:00
da4946b2fc some tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-06 22:13:07 +03:00
2479cde562 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-06 16:06:48 +03:00
c4e087cfe1 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-06 15:38:37 +03:00
2ffcd1c848 some cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-06 15:25:58 +03:00
e896cc0640 tweaking and revising...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-05 18:15:49 +03:00
430687a844 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-04 16:42:22 +03:00
ef1e9188d8 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-03 20:33:48 +03:00
b4a9b1c29c element access and revising the key/id API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-02 20:38:08 +03:00
daf5e96951 working on the event system...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-02 17:29:26 +03:00
9dde5d0326 restructured the id generation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-02 01:50:04 +03:00
6b86b7c7b5 notes, cleanup and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-01 02:14:11 +03:00
3523b8b61e minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-03-01 00:40:16 +03:00
1064cb79b3 tweaking id management...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-28 20:30:41 +03:00
fa4c7737f9 reworked id management...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-28 20:26:22 +03:00
1edd5decc4 minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-28 20:13:01 +03:00
b99a152175 notes and minr tweaking....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-27 06:52:10 +03:00
fa61d33f67 added default/shorthand elements...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-27 06:47:41 +03:00
ea8209c1f4 preparing to add default elements...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-27 03:35:03 +03:00
14d548d3ab some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-26 04:40:38 +03:00
1721639b3f added stub event object...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-26 04:20:05 +03:00
201f87ba52 added basic event infrastructure...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-26 04:13:00 +03:00
eb2de5361d fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-26 01:38:47 +03:00
75f3db6828 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-25 03:34:21 +03:00
5268a7d179 minor rearranging...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-24 14:51:35 +03:00
c0e982a33c ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-24 12:45:56 +03:00
1e3884d8a8 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-23 22:06:42 +03:00
dfa9a741a9 added stub events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-23 06:38:46 +03:00
9402c16739 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-23 04:00:56 +03:00
60850313ed minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-22 09:18:37 +03:00
01cc2c2726 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-21 13:52:31 +03:00
28a5bdc600 tweaking + testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-20 17:11:34 +03:00
0e569b6261 cleaning up make(..) api...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-20 16:56:36 +03:00
07d6e8dba9 notes and minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-20 16:30:40 +03:00
fe1eb53780 fixed duplicate filename handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-19 16:33:14 +03:00
c3d6031ab0 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-18 03:36:53 +03:00
4239b7a439 fixed an issue with copying overflowing filenames...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-18 03:29:36 +03:00
98d34f72c3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-17 04:48:34 +03:00
8bd86afd82 Merge branch 'master' of github.com:flynx/ImageGrid 2019-02-16 04:25:45 +03:00
32c983f28c added .item_index, thinking of how to maintain a list...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-16 04:25:16 +03:00
9fb74ad548 make docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-15 18:55:12 +03:00
86b1793572 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-15 17:39:44 +03:00
ea6209316e ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-14 02:24:36 +03:00
12fe2b11a4 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-13 16:11:14 +03:00
b60bb38fbe tweaking events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-12 05:19:57 +03:00
a314131066 docs and minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-12 02:34:11 +03:00
6c8c0ea3b3 cleanup and some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-11 22:06:36 +03:00
0414b40ff6 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-10 20:06:36 +03:00
afd63c1d49 a minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-10 19:28:10 +03:00
af95ea973d Merge branch 'master' of github.com:flynx/ImageGrid 2019-02-10 18:27:16 +03:00
52691cbe17 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-10 18:27:08 +03:00
836a37d5bf more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-10 18:09:08 +03:00
676e3c6440 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-10 17:48:10 +03:00
8ebc8aa31d now reusing the terminating handler...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-10 17:44:42 +03:00
09ce8a4073 organized the dom hierarchy (not final), started work on interactions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-10 03:02:08 +03:00
f17030a5db minor tweaks and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-09 03:42:34 +03:00
e03749131c cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-09 02:20:31 +03:00
c3acf39c0b tweaking and experimenting....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-09 01:39:13 +03:00
edcfa129fc more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-08 21:21:36 +03:00
0ec9de15a1 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-08 13:04:08 +03:00
8c69e7497f CSS + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-08 03:21:50 +03:00
a25b47b7d9 a more compatible DOM structure...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-07 01:30:30 +03:00
f129191366 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-06 02:58:55 +03:00
7529109a16 added preliminary ribbon title support in CSS...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-06 02:53:42 +03:00
50f7c6f6e8 started work on the DOM render...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-05 22:12:33 +03:00
0d997f451c fixed most of the issues with lists of made items, still not final...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-05 18:25:23 +03:00
e3729835fa cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-05 18:11:36 +03:00
bb244a53af refactoring (not done yet)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-04 14:18:00 +03:00
1d5745f0f1 preparing for a refactoring run...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-03 14:46:47 +03:00
867f9ea3b4 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-02 18:45:14 +03:00
a6eebf4aae refatoring and simplification...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-02-01 06:08:48 +03:00
08d5d4bad9 another minor rework of the API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-31 07:49:50 +03:00
fd2d757d75 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-30 06:04:55 +03:00
91a1e0aa34 added .renderSubListHeader(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-30 06:02:01 +03:00
241468f387 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-30 05:51:18 +03:00
517672994d notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-29 04:35:39 +03:00
a2f7687335 added a text renderer for general testing and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-28 18:10:01 +03:00
c0d70b385a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-28 07:21:32 +03:00
a26ea4dc0f notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-27 16:22:44 +03:00
befeab2011 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-26 22:34:56 +03:00
cf26b84076 working on the API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-26 21:32:14 +03:00
000379b656 still thinking about the general architecture...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-26 20:09:36 +03:00
edf96ccb5c tweaking and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-26 04:48:36 +03:00
8385f58747 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-26 04:38:11 +03:00
7b60f4d326 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-25 20:21:12 +03:00
21ebcb2b58 notes and some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-24 06:12:04 +03:00
3ae2014338 split the base make/update/render API and DOM stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-24 05:56:37 +03:00
893d6a731f started API redesign...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-24 05:32:21 +03:00
4e9f339544 still thinking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-23 05:45:50 +03:00
61d829afcd ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-22 07:10:49 +03:00
5fa5eed740 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-21 05:29:26 +03:00
993753db45 preparing to start work on browse2.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-20 05:39:47 +03:00
99e78ff65b cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-19 18:20:06 +03:00
5c8c25188c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-18 05:04:00 +03:00
eb800f9c70 added starting of ui from cli, still hackish...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-17 17:51:26 +03:00
c0ecc7df80 notes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-16 01:57:15 +03:00
c885e0855c minor tweaking + Makefile update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-15 06:51:15 +03:00
15c6cabe5c cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-15 06:20:24 +03:00
a2bcc3744b fixed a problem with window geometry setup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-15 06:10:25 +03:00
d8570aed9c updated electron...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-15 04:51:23 +03:00
53fa09caf4 some minor tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-15 02:32:35 +03:00
586467f157 reworked app geometry handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-15 02:25:00 +03:00
008f36aa2f minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-14 20:52:27 +03:00
3cb8b35132 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-14 10:17:58 +03:00
55f800202e now spash screen version is taken from the actual version.js
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-13 08:33:03 +03:00
f23dc1f780 now splash screen can be disabled...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-13 08:04:29 +03:00
e0b91abcb1 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-13 07:14:01 +03:00
2e9a9e267f added splash screen...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-13 07:09:00 +03:00
b5f28773dd cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-12 00:06:48 +03:00
20d0ed8741 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-11 04:17:47 +03:00
7747229c18 reworking chunk processing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-11 04:08:00 +03:00
65399792a1 added chunked iterators to util.js + some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-10 06:15:35 +03:00
bc29081b9d docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-09 08:29:53 +03:00
5ce352d915 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-08 23:08:33 +03:00
e917c151fe added changes setting to .checkIndex()
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-07 09:41:37 +03:00
45c54f931b .checkIndex() mostly done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-07 09:35:37 +03:00
530102521f working on .checkIndex(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-07 08:02:02 +03:00
9f2357952d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-06 03:57:03 +03:00
f7cc2ba306 added option to hide dod files in the fs browser...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-05 19:47:26 +03:00
62a9b43fe5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-05 05:52:36 +03:00
5a09543384 minor tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-04 03:13:43 +03:00
717a58b5b3 revising docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-04 03:02:45 +03:00
f8f7f59495 updated docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-03 19:18:21 +03:00
f3d7472cd4 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-03 01:53:10 +03:00
38505aa948 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-02 05:51:04 +03:00
c0ca5bc13e tweaking .direction
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-02 05:47:21 +03:00
74f83dd637 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-01 19:36:08 +03:00
b6e2847fda docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2019-01-01 02:25:03 +03:00
79b8758997 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-31 22:19:44 +03:00
443742de16 cleanup and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-31 22:09:59 +03:00
1e238e8efe added comment editing to changes dialog...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-31 04:38:38 +03:00
83a16f6e55 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-31 03:30:30 +03:00
2234c8dff1 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-31 02:14:22 +03:00
be6fd5f14f refactored .translateTag(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-31 02:10:26 +03:00
012e2a377e cleaned up .normalize(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-31 01:54:44 +03:00
fbbb9a9b13 shaved off some more general case complexity of the .toggle(..)/.tags(..) flow...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-30 02:43:23 +03:00
e58f6d2166 refactoring .toggle(..) (boosted by about 30%-40%)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-30 02:12:12 +03:00
cbe97eba60 tweaking defaults + cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-30 00:06:14 +03:00
2b9234a2d3 minor cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-29 23:55:34 +03:00
c05d713aa5 refactored .untag(..) and .replace(..) + some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-29 23:31:42 +03:00
8d0fbc3e40 refactored tag normalization and basic API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-29 23:30:54 +03:00
f6ad09987d reworked .untag2(..), still thinking about it...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-29 19:33:40 +03:00
a967ef014f minor bugfix... 2018-12-29 17:22:47 +03:00
f5f62ccf77 started work on unifying .tags(..) and .removeTag(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-29 03:57:57 +03:00
642b3d3113 tweaks and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-28 16:32:45 +03:00
c168b22e38 some minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-28 06:49:05 +03:00
b7a8f1a784 minor tweaks and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-28 06:30:11 +03:00
846f9a3b4c refactoring and simplification + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-28 06:11:23 +03:00
5b7b7f9257 changing the .match(..) defaults...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-28 04:39:07 +03:00
d816c3eaf4 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-28 01:22:59 +03:00
9481e5a15a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-27 06:18:54 +03:00
345ace8714 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-27 04:27:57 +03:00
5aedf7ac30 lots of fixes to .match(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-27 04:17:11 +03:00
7022eb93b7 squashed all known bugs in tags+collections....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-27 01:51:48 +03:00
55f5dd171b cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-27 01:18:01 +03:00
ffd5e3b4c1 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-27 00:43:23 +03:00
3e6453253c more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-26 05:30:03 +03:00
382de1db79 more cleanup and optional defaults...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-26 05:21:25 +03:00
3400c3ab34 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-26 04:57:49 +03:00
02eb0d0d44 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-26 02:30:21 +03:00
7f4fd26509 refactoring, hooks and some fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-26 02:19:20 +03:00
9f11fa834b added .replace(..) and .replaceValues(..) + some tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-26 00:15:45 +03:00
b5f4a08cdf refactoring and cleanup + minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-25 16:41:02 +03:00
1c390e570a doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-25 15:42:42 +03:00
2f7bb422f2 added dict serialization...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-25 15:41:28 +03:00
095aa58ee0 added cleanup to dict handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-25 01:25:52 +03:00
1851a4943d cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-25 00:22:27 +03:00
36ac03d34f some tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-24 22:14:15 +03:00
e4a11221e9 updated object.js + refactored tags and tag dict...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-24 21:50:37 +03:00
baec933d89 added tag dict translation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-24 18:00:37 +03:00
bd97721bbc added experimental tag dict...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-24 17:44:31 +03:00
e6f1f9e416 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-24 04:39:52 +03:00
88f1d0bc0e some cleanup + added .sortViaOrder(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-24 01:11:26 +03:00
b6e12a804e fixed several .order_index related issues...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-24 00:52:54 +03:00
85a4f3df0a working on a bug related to .order_index...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-23 14:58:00 +03:00
d701cdb85b docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-22 16:48:32 +03:00
70dcb5aafa bugfix + notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-22 02:52:17 +03:00
fbcc0b358a reworked and cleaned up .match(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-22 02:13:32 +03:00
4a91709ffb prep for refactoring of .match(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-21 18:59:59 +03:00
7c123bdcca fixing regexp errors and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-21 18:41:32 +03:00
170b77981f notes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-21 18:34:43 +03:00
8f4c03cfdd mixed a stupid bug... (RegExp state)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-21 18:30:08 +03:00
adee84763e tweaking cli...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-20 15:28:24 +03:00
755a2696ed some more tweaking of the CLI...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-20 15:07:42 +03:00
d50f5c9c0e twaked dependencies and some minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-20 04:40:30 +03:00
0548f0f9b3 split util.js into a generic and DOM modules...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-20 01:16:05 +03:00
98f1979146 Merge branch 'master' of github.com:flynx/ImageGrid 2018-12-19 23:20:50 +03:00
29afd17e3b ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-19 23:20:44 +03:00
fb1e73a475 more fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-19 23:12:06 +03:00
d21dc57f9c typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-19 20:59:46 +03:00
5192c429ab cleanup
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-19 17:40:20 +03:00
a47556b991 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-19 17:39:54 +03:00
2e81b0407e minor cleanup..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-19 04:42:27 +03:00
bc9962bc64 reworked deffinitions again...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-18 16:33:48 +03:00
fb9570c175 referted back and made a mixed definition implementation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-18 14:23:08 +03:00
7784794e45 now support recursive deffinitions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-18 04:05:34 +03:00
7722b881ff minor refactoring and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-18 00:17:21 +03:00
6ecc5bf150 docs..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-17 19:44:40 +03:00
8c58a825d1 reworked .aliases into .definitions and added them to matching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-17 19:38:12 +03:00
d0a89fc507 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-17 03:24:22 +03:00
c1b1efd4d8 notes + tweaking + a substantial performance fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-16 05:00:11 +03:00
3dbb59c1e6 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-16 04:43:45 +03:00
f3dc41130b added special tag ahndling + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-16 04:01:46 +03:00
851dcbe1ae bugfix, doc, notes and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-16 03:14:49 +03:00
1667632227 refactoring + a several util methods in tags.js
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-16 02:54:32 +03:00
158da70086 added support for leading/trailing '/' in tag matching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-15 22:45:19 +03:00
7327520c0f reworked .direction processing fixing a long standing bug + undo for .setBaseRibbon(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-15 21:50:24 +03:00
59d82686c8 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-15 18:48:25 +03:00
fead30ce3d optimized out a braindead pice of code (wonder who wrote it) +40% speed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-14 23:45:11 +03:00
c187f40653 cleanup, tweaks and optimizations...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-14 16:31:42 +03:00
8085cbe12a added .showTree(..) action...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-14 03:44:39 +03:00
98f1f7fde2 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-14 02:46:05 +03:00
9ece16bb5b cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-13 22:59:06 +03:00
38c155de0c more cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-13 22:49:38 +03:00
e0bdcfd33a minor refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-13 22:31:54 +03:00
3d5f428ce8 added path searching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-13 18:36:58 +03:00
f237adc073 cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-13 03:27:23 +03:00
15f8f12b90 added tag editing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-13 02:51:44 +03:00
47c5c04956 minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-12 20:18:41 +03:00
21ce93f7b7 refactoring -- split out comments...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-12 16:33:24 +03:00
6264eb2934 refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-12 16:13:32 +03:00
f89a4ce170 added .togglePersistent(..) + experimenting with special tags...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-12 00:53:17 +03:00
a19391d085 reworking cli...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-11 17:18:02 +03:00
11490cc358 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-11 01:12:15 +03:00
23aeaffe5d more refining the query language + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-10 22:19:04 +03:00
ec42cf7899 refining the query language + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-10 21:37:14 +03:00
76d0b50b0d refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-10 19:47:45 +03:00
709d50f0f6 .search(..) done -- finally figured out the propper way to cheat ;)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-10 19:37:45 +03:00
9543319a31 working on fuzzy searching tags...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-10 17:56:20 +03:00
fca01b2699 working on text search in tags...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-09 08:44:54 +03:00
b48441e2cc ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-09 08:44:10 +03:00
4f48d98809 fixed a typo in the format...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-09 08:43:30 +03:00
228c5a1dc2 experimenting with text tag search...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-08 17:52:03 +03:00
74517e5c03 tweaking tag sorting in cloud...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-08 16:21:18 +03:00
cbf420cbc4 tweaking tag ui...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-07 12:12:35 +03:00
26f9c46105 rethinking the fs module...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-07 02:28:33 +03:00
64095d10b5 more post-tag-migration fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-06 16:10:20 +03:00
b6e0867f44 minor ui tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-06 05:48:19 +03:00
c07dc3cfa1 added basic image placeholders (svg)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-06 04:25:46 +03:00
ee2e4c65d0 preparing for cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-06 03:04:58 +03:00
a6ec9330d5 minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-06 02:54:18 +03:00
0a8af5628a seem to have ironed out most of the issues, still in testing mode...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-06 02:44:46 +03:00
3eecbd6484 new tags + migrated most of the code.... collection loading still broken...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-06 00:59:05 +03:00
2a99cd9889 preparing to move to new tags (data format 3.1)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-05 18:15:37 +03:00
9993323d5c bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-05 14:47:06 +03:00
dd17b53a88 bugfix + docs and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-04 02:27:40 +03:00
757c76b6aa tweaking tag patterns and API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-03 21:21:44 +03:00
e77bca2712 notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-03 17:21:01 +03:00
9e4ba0c86e removed .tagged(..) + tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-02 02:02:20 +03:00
7426177b05 Merge branch 'master' of github.com:flynx/ImageGrid 2018-12-02 01:48:56 +03:00
2a74b95ff5 re-did .tagged(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-02 01:48:41 +03:00
9fbc8ad8c8 merged .tagged(..) and .tags(..), still needs thought..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-01 19:30:10 +03:00
67901ddc56 started new tags integration (experementing)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-01 14:39:59 +03:00
fcd670cf8b updated menu ordering (not final)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-01 14:38:11 +03:00
6324b0e83f added tag serialization...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-12-01 01:38:28 +03:00
b4c61e3633 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 22:16:23 +03:00
8c2cbf8333 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 21:36:09 +03:00
292d3cb85d fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 21:34:00 +03:00
fe43c62eeb minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 21:27:31 +03:00
a7d1488fe7 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 21:08:58 +03:00
c061f834f0 added string query support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 20:57:09 +03:00
e54ce63dff minor fix + added .hasTag(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 18:55:02 +03:00
2288835f5a extended query language + docs..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 17:56:24 +03:00
cad5d21697 added tag querying.... (not checked to be optimal)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-30 17:12:27 +03:00
96594be0db added vim-like fast jumping between current and last index (ctrl-6 / ctrl-^)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-29 13:27:59 +03:00
38b43cef81 experimenting with v8-compile-cache -- buggy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-29 04:59:50 +03:00
405c6da334 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-29 04:59:17 +03:00
298d325012 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-28 14:00:45 +03:00
ab43d7348b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-27 03:17:31 +03:00
aec843a571 Merge branch 'master' of github.com:flynx/ImageGrid 2018-11-26 22:23:45 +03:00
5437d8f0de starting work on .query(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-26 22:23:19 +03:00
a8081f3a7c some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-26 21:30:00 +03:00
3ba75223ba typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-26 20:38:23 +03:00
12d2815345 added .match(tag) and fixed * support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-26 14:08:19 +03:00
210ad80c3d started real work on tags...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-26 01:01:50 +03:00
a0767d3c11 cleaned up the alias code...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-25 17:13:34 +03:00
9728c97ad2 added aliases....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-25 03:29:21 +03:00
fdb80358b0 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-24 14:06:01 +03:00
804623b1ac ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-23 15:05:26 +03:00
b13206c533 cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-22 03:31:56 +03:00
22733f9045 playing with tag api...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-21 20:43:19 +03:00
a5e7e423c3 added tag normalization...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-20 01:30:46 +03:00
b4b143f5be playing with tags api...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-19 03:15:58 +03:00
db672e66c0 experimenting with tags (as a seporate module)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-18 18:41:47 +03:00
c38e157840 tiny tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-17 21:37:47 +03:00
c36fc7cca9 more menu tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-16 04:13:24 +03:00
58ddd97a69 tweaking the crop/tag menu...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-16 04:08:00 +03:00
f41d77a022 added 'loaded' mode to image index status indicator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-16 01:39:29 +03:00
98bff54606 added better tag sorting and some tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-15 19:00:16 +03:00
6cd18e0eff refactored out manual flattening to .flat(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-15 00:42:16 +03:00
9cb7bd589a added crop via tags dialog + some refactoring and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-15 00:32:43 +03:00
c9d3ad1736 working on the tag system...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-14 15:53:02 +03:00
84f737e554 added Array.prototype.flat(..) plyfill...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-14 15:18:06 +03:00
16b5e1d2a2 fixed a couple of spots missed on the args2array(..) refactoring session...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-14 14:46:50 +03:00
39ab5a6ee9 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-13 04:24:07 +03:00
299732762f refactored out args2array(..) and its derivatives...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-12 23:04:00 +03:00
fe389e6465 now Esc clears preview filters + minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-11 00:52:39 +03:00
62546edf36 added a correct way to use svg filters but it does not work from file: in Chrome...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-10 04:41:11 +03:00
50dbb406ea added edge detect filter...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-10 04:01:53 +03:00
420765823f some fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-09 05:39:51 +03:00
700e953026 moved marking from 'selected' to 'marked' tag + added tag cloud...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-08 21:10:58 +03:00
5cfc23b159 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-07 23:24:09 +03:00
6d7570713b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-06 04:24:22 +03:00
e9ba660fe6 more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-05 01:29:06 +03:00
2a56f82eec cleanup and stype fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-05 01:08:06 +03:00
1c507a8915 fixed a bug + doc revision...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-04 15:08:30 +03:00
2199acc88d docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-03 11:22:44 +03:00
b438d901de notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-02 12:23:43 +03:00
9122c93000 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-11-01 16:40:44 +03:00
67ae7218af bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-31 14:52:39 +03:00
9bc64d73b3 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-31 01:41:42 +03:00
ae2e9cdfc5 upgraded electron + npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-30 14:34:13 +03:00
2ac7223d54 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-30 13:34:06 +03:00
24bb04536c moved .sortImages(..) docs to action doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-29 17:10:05 +03:00
fc2ee83e66 cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-28 15:39:32 +03:00
e84afb1f32 re-did the sort doc doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-28 01:07:00 +03:00
0283beddf6 re-did the sort doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-28 01:03:21 +03:00
d02d7c8564 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-27 15:35:44 +03:00
2e99122684 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-26 14:03:32 +03:00
17570a0e8b fixed a couple of bugs and reworked slideshow control...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-26 13:59:53 +03:00
2a9a398734 npm update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-25 17:42:23 +03:00
adf094cbec minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-25 16:39:43 +03:00
098715bbae sort doca update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-24 01:05:12 +03:00
4ee2094be5 reworked sorting... still needs thought...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-23 11:48:15 +03:00
d5f6faf60e notes and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-23 09:52:31 +03:00
76cbfd80a2 new sort now online, still needs testing and revision...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-22 11:47:10 +03:00
d554876f4c reworking sort... (not done yet)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-22 11:20:13 +03:00
e289890eea notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-21 08:58:31 +03:00
3f6bf906b8 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-20 05:34:24 +03:00
ed8e0cde48 almost ready to implement sort aliases...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-19 10:49:20 +03:00
5e998a3622 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-18 12:31:40 +03:00
9ad010f231 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-17 12:46:53 +03:00
1020ac363a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-16 15:03:51 +03:00
09196e8c03 minor fixup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-15 16:54:22 +03:00
ac5b947973 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-14 14:50:42 +03:00
fd4eb40307 removed a side-effect bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-10-05 17:35:54 +03:00
3134485376 started experimenting with diff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-24 02:59:30 +03:00
aca16767ce tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-22 20:59:52 +03:00
c407ddd658 cleanup + minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-21 16:42:49 +03:00
2fa1e5a510 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-20 05:25:15 +03:00
a5aec38bcb reworked history length handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-19 15:54:21 +03:00
ab0e429189 bugfix... (not final)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-19 03:34:57 +03:00
8905152126 minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-02 00:12:08 +03:00
d3a457131c docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-01 23:59:28 +03:00
4b65f4ee25 reworked debounce functionality...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-01 23:45:00 +03:00
afae3656f8 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-01 23:44:35 +03:00
50e523718f moved .debounce(..) to core + some refactoring and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-01 20:19:12 +03:00
ac20bb957e fixed a bug in truncating url history -- now pinned items should never be implicitly removed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-01 18:09:29 +03:00
b4ba458b62 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-01 02:20:08 +03:00
66a21fa5d9 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-09-01 02:07:30 +03:00
1eb393cf37 added click debounce...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-31 17:23:33 +03:00
a2848932b9 some tweaking + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-31 17:11:35 +03:00
3de5dae2b9 added debounce code to the key list editor
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-31 15:19:35 +03:00
ea8fdcf557 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-31 13:24:30 +03:00
8ff734bf65 added key-speciffic debounce support (see: 'Enter' kandling)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-31 01:59:01 +03:00
aa0760fcb9 added debounce to toggleSingleImage when triggered from the keyboard...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-30 16:07:11 +03:00
37e81b0cdf npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-30 14:05:55 +03:00
2528ba313d added Array.emap(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-21 14:31:19 +03:00
2bf500f6e7 unified a pice of code between object.js and core.js + npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-21 02:30:25 +03:00
6bebc1a7a2 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-20 16:21:45 +03:00
defefa47a1 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-20 16:21:26 +03:00
cfb52584da minor update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-20 16:15:04 +03:00
b36716c1ad fixed a bug in Array.unique(..) (lib/util.js)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-08-08 03:55:38 +03:00
db5e7083a7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-06-08 14:11:24 +03:00
c35543e52f minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-06-06 04:27:11 +03:00
dceaf5a2a4 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-06-03 02:33:59 +03:00
3705bf0531 added path support to keyboard actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-06-02 22:24:31 +03:00
c46b7121d2 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-05-24 12:55:47 +03:00
6f49a438db ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-05-19 23:45:41 +03:00
9428a8745c making keyboard.js depend less on jQuery...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-05-18 00:10:06 +03:00
1e095bf53a minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-05-13 00:37:40 +03:00
c3a9f9f488 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-05-12 15:20:10 +03:00
421c4e96aa added ntfs compression support, still not sure about defaults...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-05-12 13:47:59 +03:00
f974cbc10f added archive compression support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-05-12 09:19:28 +03:00
dba81145b0 fixed a bug in fonts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-29 18:19:58 +03:00
f64769ab68 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-24 16:38:12 +03:00
3aa45cd30d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-21 15:14:41 +03:00
40a1af8ba0 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-18 17:13:16 +03:00
6f8c74b21e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-17 21:47:12 +03:00
2b185e2ee4 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-16 00:46:26 +03:00
08839257c0 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-15 13:09:43 +03:00
e05228b674 more tweaking the chnages browser...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-14 15:17:42 +03:00
8d1556d123 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-13 17:32:53 +03:00
296384ffae ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-12 22:59:22 +03:00
5a3b3e735d experementing with changes browser...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-12 01:40:26 +03:00
15711beb16 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-11 03:30:09 +03:00
5c3374fca5 wrapping action caching in a set of actions, still not done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-10 17:05:59 +03:00
43b82d1910 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-09 04:58:26 +03:00
15dca8755c minor cleanup....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-08 11:20:04 +03:00
67151cce42 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-07 14:17:32 +03:00
28fd7a2e7e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-06 04:43:43 +03:00
592e13d4e7 a bit more refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-05 02:49:04 +03:00
f2233c93cf some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-05 02:35:17 +03:00
e7520bab88 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-05 02:34:32 +03:00
c3a4d9adf4 minor cache fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-04 00:01:09 +03:00
da5048b971 more speedup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-03 02:24:07 +03:00
a04ac505c5 further optimizing and some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-03 00:07:38 +03:00
0c1f110f50 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-02 18:03:35 +03:00
18b24613ac notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-04-01 12:57:21 +03:00
39f2b03e0d now .makeEditable(..) seems done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-31 15:24:42 +03:00
90e1e1b595 some tweaking and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-30 14:50:22 +03:00
5801803a73 tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-30 14:24:05 +03:00
19b1a9b2c4 reworking multiline mode in editable field...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-30 12:58:23 +03:00
dd8fc05f13 tweaks and fixes to aliases...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-29 14:48:30 +03:00
958cae1e1b minor tweaks and fixes to the alias feature...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-29 13:49:20 +03:00
b236545451 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-29 01:48:59 +03:00
30a7c3ce83 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-28 02:38:15 +03:00
0f003f71dd notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-27 12:05:20 +03:00
7e13cb5c6e bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 20:24:12 +03:00
5afcdfb9c4 notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 20:02:58 +03:00
f5ffc93fcd rewritten data.join(..), now it works correctly...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 19:54:02 +03:00
3c18655767 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 18:05:53 +03:00
c77c450aa1 updated actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 13:28:40 +03:00
e64d002ad8 fixed menu browseMode caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 13:28:25 +03:00
fb0fed655d refactored marks/kb...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 13:27:23 +03:00
582c95d3d9 removed a stray console.log(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 04:03:20 +03:00
96f05d342c bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 03:19:49 +03:00
92c90fa466 minor refactoring and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-26 01:10:32 +03:00
b5403e5542 better dir hiding -- still not full-proof...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-25 12:33:48 +03:00
53f6e7c1f3 a better minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-25 01:48:20 +03:00
4a9994822f minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-25 01:22:56 +03:00
29ed4a312d cleanup and minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-25 00:14:01 +03:00
97f0cd3b1a more refactoring....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-24 19:13:59 +03:00
41cf0fd5d2 most of the refactoring of .browseActions(..) is done, still have some things to work out...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-24 16:00:06 +03:00
d4d49d95d0 started refactoring .browseActions(..) for better testability...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-24 14:27:10 +03:00
b5517eac85 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-23 02:22:42 +03:00
534a801f76 more optimizations...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-23 00:47:39 +03:00
e836eee6e3 some drastic speedups... (not done yet)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-22 02:46:42 +03:00
b5e0b03491 several fixes to Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-22 00:04:24 +03:00
7bdfa7fe62 fixes, cleanup and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-21 17:34:26 +03:00
acaf471f49 fixed bug with app buttons and mark indicator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-20 17:01:51 +03:00
26a5a6ba43 reworked the blink mechanics...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-20 12:46:16 +03:00
3e1aeb3f7b added blinking indicators and hidden statusbar mode...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-20 04:25:22 +03:00
05fa1d376c some work on supporting firefox event habbits...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-19 01:42:36 +03:00
93dbd67da9 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-18 01:11:02 +03:00
ae748a66a1 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-17 03:40:44 +03:00
48b6104b59 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-16 07:05:30 +03:00
085af98af5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-15 10:26:35 +03:00
61e0ae2f33 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-14 05:36:43 +03:00
f2206e7c15 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-12 00:50:35 +03:00
79da053c9b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-11 00:37:17 +03:00
2db7b5c4d8 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-10 01:19:33 +03:00
6284b82a97 fixed portability issue in Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-09 18:34:44 +03:00
6f60d79b6a some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-09 17:51:27 +03:00
f6d999b09e added (E)dit action to keyboard binding viewer + minor refactroing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-09 15:13:36 +03:00
680d080830 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-09 03:34:12 +03:00
8bdeae183c mugfix in keyboard handler...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-08 13:34:54 +03:00
9b8746d41f added puppeteer experiment (for use in generating doc screenshots + testing)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-07 04:15:27 +03:00
63a890a877 some cleanup, notes + added ig.attached DOM event...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-06 02:37:32 +03:00
2733416cd4 added dom events on start/ready/stop...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-06 02:26:38 +03:00
8e34c76fb7 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-05 00:39:13 +03:00
050c11e72b experimenting with store...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-04 10:41:51 +03:00
81d4efff98 added config handling methods...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-03 01:31:08 +03:00
be09f42314 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-03 00:29:13 +03:00
8320494490 tweaking the api + some cleanup... still thinking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-02 04:03:43 +03:00
6709499554 done the base new store API... does not feel right, rethinking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-02 00:35:36 +03:00
00afa9cb45 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-03-01 03:17:48 +03:00
af5634e897 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-28 07:42:21 +03:00
1051704194 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-27 15:39:17 +03:00
f6ba8d7358 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-26 04:24:37 +03:00
2b71d071b5 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-25 03:28:42 +03:00
6886cb9117 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-24 13:55:31 +03:00
48d1093fd5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-23 04:47:38 +03:00
af776f40d8 started refactoring the store API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-21 06:54:11 +03:00
d88e7072bd tweaking and getting ready for refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-20 01:00:41 +03:00
7a70c77d9b more exploring with store API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-19 00:08:31 +03:00
2f14d723b2 reworked localStorage/sessionStorage store backend, still not content with the HL API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-18 15:02:45 +03:00
dacdb01bbe tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-18 03:24:07 +03:00
ff1e1627cc adding queries to store API (in progress)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-18 00:57:28 +03:00
80d7fbd4ad fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-17 04:45:45 +03:00
b3be3ee4ec working on store API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-17 04:41:07 +03:00
df2b3108c6 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-16 01:25:21 +03:00
40a4d61a3e more work on store...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-15 06:41:54 +03:00
0cfa03c057 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-15 02:05:24 +03:00
35a7a16539 moved to new store for config...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-14 16:49:44 +03:00
1949aa884f added timer actions/events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-14 11:27:45 +03:00
ec988de624 added user-event actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-13 01:14:35 +03:00
e09e7191f3 moved timers to core + some minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-12 01:35:35 +03:00
29c701e999 some experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-11 02:55:28 +03:00
debf550b0a more core timers...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-10 01:25:15 +03:00
93f4126567 started work on core timers...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-09 02:31:12 +03:00
b1276c4770 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-08 02:11:19 +03:00
80a3e1e6dd notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-07 02:18:19 +03:00
dd91172b92 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-06 02:44:48 +03:00
14d053d874 added storage mode...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-05 09:30:36 +03:00
771b9c9be3 working on store api...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-04 06:23:31 +03:00
1c8a26dfea minor cleanup..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-03 02:19:40 +03:00
5f9213462c tweaking nw build...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-02 04:00:49 +03:00
a337fd5861 cleaned up caps indicator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-01 19:51:00 +03:00
43c881075c npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-02-01 04:12:43 +03:00
b9013b20da notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-31 05:02:13 +03:00
6c10c01036 fix..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-30 06:39:45 +03:00
e1615cc7df fixing nw runtime compatibility...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-30 06:36:48 +03:00
51b3f4eba3 more work on the makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-30 03:44:48 +03:00
27289405fe fixed a long sanding bug....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-29 04:33:08 +03:00
740ce3dc26 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-29 02:47:10 +03:00
d1162a171a minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-28 03:24:19 +03:00
6a15dccca3 added missing files...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-28 02:53:03 +03:00
ff509e17ac ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-27 07:06:57 +03:00
921c4d826a minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-26 05:33:41 +03:00
c4318ca7f1 npm update
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-25 00:17:28 +03:00
7202073b4e more work on nw build...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-24 21:50:04 +03:00
ae2be01c8a fixed nw build package.json, still have some dependency issues/bugs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-24 06:38:01 +03:00
1cd8171b0a started work on nw build...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-24 06:16:33 +03:00
45cb279a4f minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-23 05:56:02 +03:00
ca36eef78d cleanup and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-22 05:29:35 +03:00
947afd3f38 makefile deploy now seems to work ok..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-22 04:54:33 +03:00
2ecc8dbc21 now makefile can run...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-22 04:16:56 +03:00
8db38b9e94 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-21 06:07:29 +03:00
d7740bfd7a makefile tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-21 04:28:31 +03:00
43f412f26e reworked first load logic...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-20 03:55:28 +03:00
543ce468e5 added timestamp option to dist version...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-20 01:14:59 +03:00
9f1fe87509 updated the cache mechanics a bit more + don't show progress if things go fast enough...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-20 01:13:41 +03:00
8b2a135b9d updated attr/action pre-caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-19 01:21:56 +03:00
a6d31b4042 added attr/action caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-18 09:43:38 +03:00
9c9553bb16 added caching api to core...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-18 09:16:46 +03:00
66aea36685 fixed settings icon for mac (still need to change the icon)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-18 07:21:19 +03:00
4b364b3f2a replaced the utf gear icon with a material icon as the utf version is does not seem to be available on mac + preparing to make json stringification async...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-18 05:04:42 +03:00
1f8723a0b7 started refactoring config API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-17 06:28:09 +03:00
9fdd3d373e minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-17 05:27:09 +03:00
5fa6adbab0 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-17 05:13:11 +03:00
aab21de923 more tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-17 03:58:13 +03:00
7abd1b0f4e more tweaking of crop example ui...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-17 03:32:52 +03:00
81e375d1cc minor fixes to the image crop experiemnt...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-17 03:09:22 +03:00
0888315038 more experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-16 03:07:53 +03:00
20cdb5841c minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-16 02:08:46 +03:00
1c6a0f1edd make docs + experementing with image crop ui...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-16 01:14:38 +03:00
d32d0d56f0 more small fixes and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-15 08:20:05 +03:00
06a39a2e42 lots of minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-15 03:59:53 +03:00
031168bb2f some cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-14 22:23:51 +03:00
892e908594 experimenting with version number tracking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-14 02:09:04 +03:00
e144c2c0cf some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-13 05:19:45 +03:00
1394578088 more cleanup, docs and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-13 01:59:52 +03:00
d498bd6263 Makefile cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-12 21:59:08 +03:00
fb75df00d1 added version info to makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-12 20:43:16 +03:00
9ad1a3d3a7 reworked/fixed the build chain in Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-12 05:56:34 +03:00
b0872ba3b2 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-12 01:46:16 +03:00
8e04595035 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-11 19:58:24 +03:00
a443965d71 still reworking makefile for better support of other builds...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-11 18:31:48 +03:00
638650f97e cleanup and some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-11 06:55:54 +03:00
e7f28012a6 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-11 04:17:35 +03:00
c5b25b566f now sharp works in built app
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-11 04:04:22 +03:00
48f08aee09 added dependency checking and a dist-in-place target...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-11 03:06:27 +03:00
f7ab39dbb9 added and tested an alternative build path to Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-11 02:03:39 +03:00
c29da0f60c added a rule to update archives in-place...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-10 22:54:55 +03:00
12a82bd7e1 minor tweaks + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-10 05:18:46 +03:00
da9cb5ad81 updated make doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-10 04:24:55 +03:00
e973404c7d added electron-rebuild to makefile....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 23:26:00 +03:00
5bb6f2a72c another fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 22:29:00 +03:00
c4319647c6 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 22:17:33 +03:00
1ebdbde2f7 now mac builds should be supported by the makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 22:06:57 +03:00
78157ce3e5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 21:49:23 +03:00
149e0e4e71 an odd fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 21:47:31 +03:00
a54755b5f0 a less minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 21:40:56 +03:00
7274a5bcfc minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 21:32:11 +03:00
9fe6d51226 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 06:44:26 +03:00
48d489686f now makefile detects arch...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 03:28:06 +03:00
25dbde80ad ironed out most of the windows/linux electron build compatibility stuff in the makefile, now need osX hardware ;)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 03:00:33 +03:00
b501bb0c7c minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 02:36:02 +03:00
5ec5075caf tweaking the makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-09 02:27:54 +03:00
5ce232875e now Makefile works on both linux/windows with one minor pitfal -- electron does not run on non-GUI boxes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-08 22:08:16 +03:00
2312b8ceae added build date back to build...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-08 08:23:02 +03:00
db5dd026ea fixed Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-08 07:57:39 +03:00
fcf64c8f3e odd things happening with Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-08 07:46:38 +03:00
fa0df0c5d9 more work on Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-08 07:29:33 +03:00
1b7288a4cf more tweaking of makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-08 06:39:10 +03:00
e57cfeed90 refactored Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-08 05:42:12 +03:00
69c86cc8dd removed some bloat from package.json...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-07 23:08:23 +03:00
4b3d3a43dd minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-07 03:11:18 +03:00
1bf2d55e8a minor UI tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-06 01:23:41 +03:00
ed605fe5d8 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-05 05:20:36 +03:00
5b902cd94c some ui cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-04 07:42:09 +03:00
ff05a7dc2e cleaned up a minor leak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-04 02:53:40 +03:00
b21e15fb23 fixed an old bug in history dialog...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-03 18:06:46 +03:00
db57d389fd tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-03 05:37:13 +03:00
dfa7eb486d minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-03 05:09:14 +03:00
6725f2fab1 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-03 05:06:00 +03:00
fbebdd035f notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-02 07:47:09 +03:00
cd559642f6 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-01-01 03:14:04 +03:00
804f7a73a2 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-31 06:37:07 +03:00
559a7a9564 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-31 06:19:30 +03:00
8a6659383d working on .uncollect(..) undo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-30 05:44:50 +03:00
c428d9c4dc minor bugfixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-30 02:31:03 +03:00
a94cffa212 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-30 01:44:35 +03:00
c2bccd8ae8 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-29 23:06:55 +03:00
bead309555 added undo to .addToCrop(..) + notes, tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-29 18:33:59 +03:00
4553a25f2f fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-29 02:33:22 +03:00
419ac81cb3 .removeFromCrop(..) seems to be working -- needs more testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-28 06:15:16 +03:00
e854c49741 making add/remove from crop equally expressive for undo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-28 05:02:13 +03:00
d28401a2ec notes and experiments...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-28 04:05:25 +03:00
744620f79d minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-27 05:34:51 +03:00
2ed85ab4b3 some more refactoring and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-27 03:03:57 +03:00
26129e8efc some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-26 05:50:29 +03:00
f4ad8d562a some experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-25 07:19:33 +03:00
c143cb7eec fixed fonts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-25 05:50:45 +03:00
dd65fcbb72 minor refactorng and moving stuff around...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-25 05:00:46 +03:00
ba5072c02e some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-24 07:33:31 +03:00
a0f08b9531 some refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-24 07:14:57 +03:00
2557947a15 some minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-24 06:48:59 +03:00
4ebdf562dd notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-24 01:54:13 +03:00
30ccbe3295 minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-23 22:10:26 +03:00
087ed2d4e7 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-23 03:00:47 +03:00
330bd865e1 more refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-23 02:55:54 +03:00
050164f1a5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-23 01:27:25 +03:00
64d8273529 some tweaking and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-23 01:16:59 +03:00
45eadeff76 refactored collections UI + added several convinience actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-23 01:08:49 +03:00
7a66aa6c07 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-22 05:53:01 +03:00
90671920da minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-21 06:04:58 +03:00
fe0aeb51e9 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-20 06:35:55 +03:00
9ddc29275e experimenting with gen2 of browse.js
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-20 04:39:03 +03:00
9992121be7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-20 04:29:10 +03:00
cdc8076385 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-19 06:00:14 +03:00
3c74080224 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-19 05:45:29 +03:00
f23858233a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-18 17:57:38 +03:00
d706042f51 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-17 04:45:04 +03:00
4c209d6d10 new examples...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-17 04:30:50 +03:00
3955ba8b97 some bookkeeping...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-17 04:30:29 +03:00
b38aec0ad7 experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-16 19:43:42 +03:00
fa5b112542 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-15 15:40:31 +03:00
ab69925510 tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-15 04:59:01 +03:00
a3f5248b4c reworked .collect(..) and .joinCollect(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-14 23:37:43 +03:00
3465334e7a several fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-13 17:14:58 +03:00
f80c5143ac cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-13 06:17:10 +03:00
7c6cc73bee some refactoring (.collection_order)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-12 17:50:11 +03:00
54aef8ec16 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-12 03:50:42 +03:00
17a3ea4930 refactoring and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-12 03:40:46 +03:00
119b4d39f2 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-11 20:57:39 +03:00
812e547c12 added support for loading collections in .browseImageCollections(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-11 20:49:05 +03:00
6dc1a52109 now editible lists support item editing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-11 18:49:21 +03:00
d5cf7500c4 notes and minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-11 05:02:59 +03:00
9e0d463633 cleanup and some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-11 04:40:35 +03:00
98cb2ff535 added a menu/action to exit collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-10 00:02:56 +03:00
cac15fb4ba some refactoring and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-09 22:01:32 +03:00
d48f1b5511 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-09 17:56:01 +03:00
b31bf29321 fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-09 17:47:54 +03:00
ea842217ab cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-09 03:26:44 +03:00
1c9b160e7a cleanup and refactroing of meta-features...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-09 03:14:36 +03:00
ca9c39293d several fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-09 01:39:06 +03:00
80f579e31c ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-08 00:25:47 +03:00
a54fe183f6 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-07 04:27:01 +03:00
27ab1018de minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-06 00:36:21 +03:00
ecbcfabb64 minor fix and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-05 19:49:59 +03:00
a6052978a8 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-05 06:52:51 +03:00
cc5db0aecc minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-05 06:44:13 +03:00
b9ce00ab56 when adding stuff to collections the last used collection is now selected + tweaking + cleanup + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-05 05:48:22 +03:00
c81acad83a cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-05 00:40:31 +03:00
fddb35b9c7 now we can rename collections (still needs cleanup)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-04 19:17:42 +03:00
5264e5cd3a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-03 15:33:38 +03:00
71be1ccd68 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-03 00:30:42 +03:00
b37daed8be now collections are both saved and loaded (lazily)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-02 22:12:47 +03:00
bd07af3ba0 fixed a .loadImages(..) sync bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-02 18:33:37 +03:00
0e14635281 updated journalling -- needs testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-02 04:04:10 +03:00
d183e7621c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-02 03:45:53 +03:00
b6817b7e3b added .addToCrop(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-12-01 20:59:58 +03:00
6b752b099e preparing for some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-29 17:29:43 +03:00
7f724a5727 added highlight filter...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-28 07:12:49 +03:00
27845d02da added slideshow hold + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-27 07:22:08 +03:00
a8e095c09d slideshow fixes + button...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-27 01:20:35 +03:00
904abeed68 added slideshow pause + soem tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-26 07:56:26 +03:00
abd8ce9c23 updated deps...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-23 18:38:03 +03:00
5cb9edb0d6 added archive tempalte...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-22 22:38:20 +03:00
792ad8cc08 added archive tree diff script...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-22 22:34:35 +03:00
b43d425ebc fixed several defaults bugs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-22 07:26:28 +03:00
0336afda01 moved examples to examples.js
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-21 13:52:31 +03:00
456faa8028 more work on doc generatiors...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-20 03:58:48 +03:00
1533380936 added example toggler, docs + toggler code lister...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-20 03:19:54 +03:00
30be5132e6 added Toggler example...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-19 05:14:52 +03:00
924f88fdae lots of minor tweaks and some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-19 01:01:44 +03:00
5b4c7353ef more work on filenames...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-17 18:00:34 +03:00
0d3ea59f40 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-17 02:50:05 +03:00
3efc6fb05e reworked filename handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-17 02:45:44 +03:00
71c4259746 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-15 01:11:18 +03:00
f8dfa167c9 added docs to export pattern...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-14 00:13:47 +03:00
acc6d6f60c bugfixes and export filename info...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-13 23:38:16 +03:00
f98ebe8b76 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-11 03:07:50 +03:00
1b67a5ec27 now naming conflicts are resolved, not sure about pattern yet...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-11 01:11:11 +03:00
1ef218f681 adding image name conflict resolution...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-10 22:39:20 +03:00
01997d9bb1 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-08 06:09:49 +03:00
708922cd7e started work on image cropping...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-06 18:32:29 +03:00
33ee63cafa docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-05 01:05:40 +03:00
d1c3a8c65a moved the examples to a separate module...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-04 17:56:14 +03:00
86f75e1b68 some work on splashscreen mechanics...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-03 03:22:02 +03:00
a3f5579faa electron-related tweaking and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-03 02:12:38 +03:00
45a3b937be fixed electron closing without saving settings...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-02 21:18:30 +03:00
1ff105bcfc tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-01 05:57:01 +03:00
82886db092 now all targets start correctly...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-01 05:46:39 +03:00
d456103823 fixed loading in electron, still need to merge the requirejs config (ui.js, cfg/..) and html...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-11-01 04:53:36 +03:00
47066f5da0 adde package-lock.josn, not yet sure if I'll need it...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-28 23:58:49 +03:00
dcdd78489c tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-18 13:11:54 +03:00
28fac49755 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-17 03:24:14 +03:00
afcdea9feb cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-16 22:23:20 +03:00
05a86cf36a some exploring....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-16 22:22:41 +03:00
a9be1b04fb ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-15 04:52:46 +03:00
81f7b053eb minor fix in introspection...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-14 14:00:57 +03:00
5a1202fad9 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-13 18:01:32 +03:00
be5beb7962 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-12 23:17:49 +03:00
4c84dae3ed cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-11 00:55:39 +03:00
aa73283a1d some more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-09 18:17:50 +03:00
979d8667e8 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-09 17:54:14 +03:00
c8cddf8ae5 minor tweak + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-09 04:05:18 +03:00
a6a7b16dba minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-08 18:51:44 +03:00
4debb96942 work on async collection loading...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-08 18:49:19 +03:00
66c09861c6 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-07 21:11:39 +03:00
f4e5189b35 some tweaking and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-06 17:43:02 +03:00
38e725a0fb more work on the electron runtime... still runs a bit funny
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-05 02:01:54 +03:00
20bc6e5dd3 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-04 18:20:44 +03:00
3bc744e524 more work on the electron layer...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-04 18:17:01 +03:00
70b65d034f started work on Electron runtime...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-04 17:07:22 +03:00
6b16ce2cc3 reworked the .runtime feature detection (now Electron works, though with an odd bug)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-04 08:08:40 +03:00
9a0649a9b1 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-03 17:07:34 +03:00
7c310272ed now space in browse acts more naturally...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-03 13:50:33 +03:00
eb31e84d71 fixed a really odd bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-03 04:34:19 +03:00
dc510d4ae8 tweaking and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-03 03:55:16 +03:00
6759c38567 fixed a really odd bug -- seems like I just sat on the keyboard...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-03 03:25:54 +03:00
0dbe559a0d cleanup and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-02 18:02:37 +03:00
97fa7e7f36 some cleanup and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-02 16:08:42 +03:00
627f971e22 refactoring, notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-02 02:49:53 +03:00
ec748636f2 storing collections in index done, still needs testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-02 01:35:09 +03:00
dd0b7f0842 cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-01 15:44:18 +03:00
50b0c4e153 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-01 04:05:16 +03:00
931374641f saving collections almost done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-10-01 03:36:04 +03:00
7f52830f61 refactoring collection serialization...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-30 01:00:11 +03:00
46dc51076f some fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-28 03:57:54 +03:00
b800342d72 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-27 05:18:03 +03:00
a516adc396 preparing for some refactoring on collection serialization...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-26 17:40:15 +03:00
56063274aa minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-25 18:46:56 +03:00
9ba099f79d added collection rename + minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-24 18:42:03 +03:00
2827e9e679 cleanup, fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-24 04:42:14 +03:00
5c78c95297 bugfixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-24 04:26:37 +03:00
e508f9848a refactoring browse.js + lots of bugfixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-24 02:17:44 +03:00
7e50cf2591 some bugfixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-23 20:06:20 +03:00
c5d54d8f7d ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-22 13:35:41 +03:00
0b120a1189 now changes are maintained across collections, still need to account for lots of details whe saving...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-21 01:20:08 +03:00
fbc8e686a2 minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-20 17:24:36 +03:00
ba32b2cce2 more work on collection changes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-19 01:37:31 +03:00
af10366c22 some refactorng + work on saving collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-18 18:32:34 +03:00
cabb03362a bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-18 14:50:15 +03:00
564f2bd144 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-18 14:07:30 +03:00
7182cf3396 started work on saving collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-17 04:11:58 +03:00
03df38478c added gid handling to collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-16 21:17:50 +03:00
782b05ee96 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-16 20:45:30 +03:00
3b7beab501 made browse.Items.EditableList(..) more uniform (changes the input on exit only) + added state merge handling + some fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-16 18:11:07 +03:00
b1ecd237cb notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-15 05:31:32 +03:00
fcaa38a6dd fixed how menu button is handled...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-11 16:24:27 +03:00
427d17b6c8 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-10 05:17:05 +03:00
e07e627351 added context menu help to .browseActions(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-09 19:04:34 +03:00
a2cd1c3557 cleanup and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-09 16:35:18 +03:00
8f8ed2d6c9 some tweaking docs and minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-09 13:48:10 +03:00
24f8cbbcec some refactoring and generalization...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-09 04:46:59 +03:00
754094e6b3 more tweaking + some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-09 01:40:31 +03:00
70aa79d80b added default collections + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-09 01:22:30 +03:00
e63041c570 fixes and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-09 00:32:26 +03:00
f0a032979c some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-08 22:29:45 +03:00
f2019c85aa added ability to remove images from crop (experimental) + some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-08 22:03:16 +03:00
2a22cd975c cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-08 21:32:52 +03:00
4a77371662 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-08 18:52:51 +03:00
65cef61880 added toggler state list to .showDoc(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-06 19:25:17 +03:00
e879072675 added secondary (contextmenu) action to buttons...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-06 16:02:29 +03:00
e61403a06b added browse mode to relevant mark/bookmark/collection actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-06 07:59:28 +03:00
17546ea8d8 more work on collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-06 07:20:31 +03:00
f0df4183c7 bugfix + F8 to add image to collection...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-06 06:37:40 +03:00
592d3a68d8 notes + update...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-06 06:15:43 +03:00
c6414e7841 minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-05 05:36:35 +03:00
71ac19f5a0 some work on auto-collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-05 01:37:19 +03:00
91b8d0bce0 some refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-04 22:53:29 +03:00
830e1f9cc5 experementing with image rendering, still odd with chrome...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-03 05:26:24 +03:00
d157c9083f docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-03 03:44:09 +03:00
04ab5a09e3 more docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-03 03:37:11 +03:00
0314bbc5b2 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-03 03:29:51 +03:00
9d0d1a9654 some docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-03 03:07:51 +03:00
6292c6fe42 minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-03 03:04:38 +03:00
7863efebb8 cleanup + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-02 21:27:17 +03:00
463eb0918a fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-02 21:15:57 +03:00
c825cb050c reworked collection handlers, added auto-collection-tags, tweaks, fixes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-02 20:58:49 +03:00
b48e31f37d notes, docs and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-01 19:36:51 +03:00
526830156a some cleanup, nots and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-01 17:05:51 +03:00
be4777d384 moved tag handling to a separate feature + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-01 16:43:17 +03:00
71bcd1cd0a more cleanup + finished migrating tag handling out...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-01 05:35:45 +03:00
1dfbdb2f83 refactored tag handling to a set of separate handlers...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-09-01 05:04:38 +03:00
930f791d6c notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-31 18:26:46 +03:00
e132e7ee17 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-31 18:24:01 +03:00
32197fac12 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-31 17:12:59 +03:00
6299bb5fc0 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-31 15:30:15 +03:00
7cd7265b2b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-30 17:14:55 +03:00
6cbf121cc9 several fixes + started work on local tags...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-30 17:11:45 +03:00
a8aaa01a24 added config toggler...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-30 13:09:54 +03:00
9cc62b7aa3 more refactoring, cleanup and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-30 00:27:43 +03:00
4fa38da17c refactoring imagegrid/data + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-30 00:13:38 +03:00
9b4dc520fe bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-29 21:19:13 +03:00
267d5f705b lots of minor chnages, fixes and cleanup + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-29 20:59:00 +03:00
76cb68a725 tweaking and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-28 05:43:37 +03:00
8f17dff5c7 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-28 01:14:11 +03:00
6f388e30df cleanup, tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-28 00:50:37 +03:00
4d169b91b4 fixed .clone(..) + some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-27 22:17:47 +03:00
6b15446bcc collections are not separate from crops + some refactoring and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-27 21:28:02 +03:00
4fe084948d tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-27 16:09:09 +03:00
fbb8860a49 more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-27 13:15:08 +03:00
9517f90f1e cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-27 13:07:21 +03:00
46b5622d84 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-27 01:01:07 +03:00
e8194e6965 now focus handling/locking is global...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-26 23:58:52 +03:00
984de33b1e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-26 05:29:47 +03:00
595e3499fe added collection sorting + some tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-26 02:57:49 +03:00
27fd29fa7e docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-25 23:15:07 +03:00
01dfa8dfad adde .focused ui prop and now click/menu events use it...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-25 22:31:46 +03:00
bcf19a035b minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-25 01:29:15 +03:00
eea835f065 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-24 16:00:02 +03:00
2d86b1bfef docs + tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-24 01:14:36 +03:00
e8c26df382 reworked click and menu events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-23 22:54:15 +03:00
c21b2965ef docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-23 20:11:42 +03:00
e01e6229de minor fix + some tweaking and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-23 19:57:46 +03:00
e0d3fabaa0 added patterns and fixed several bugs in .browseActions(..) and related config...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-23 19:52:17 +03:00
ee455bb41c tweaking + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-23 01:38:46 +03:00
948607690c more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-22 18:13:41 +03:00
861cef15b8 reworked collections to use the full .data.order...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-22 16:12:47 +03:00
4d26fca249 reworked ui logic of image collections list...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-22 02:11:23 +03:00
f85d1db130 tweaking sort + some fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-21 20:29:17 +03:00
ff2ace4c89 fixed bug in sort...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-21 16:35:49 +03:00
3baf918f50 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-21 16:33:38 +03:00
e95a8e7b61 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-20 12:34:59 +03:00
2d93ef3f48 added current collection indication in lists + serialization...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-19 02:01:20 +03:00
845843c17f added sort with overflow...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-19 01:01:28 +03:00
9e18c06806 more cleanup + fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-18 04:15:42 +03:00
74304d36f5 more cleanup of collections + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-18 01:19:55 +03:00
9bf7c97890 experimenting with collections + some fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-17 19:53:53 +03:00
a953a3817c notes
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-17 16:41:56 +03:00
1762192352 fixed a bug in keyboard and browse EditableList(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-17 15:40:51 +03:00
a145667637 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-17 15:14:52 +03:00
186a45140a fixed bug in make.EditableList(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-17 15:13:35 +03:00
a12f3b5c81 bug in make.List(..) ???
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-16 14:47:30 +03:00
764e78b4f4 updated alias dialog...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-16 14:40:17 +03:00
3e8d0a6bba minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-16 14:23:34 +03:00
824ca10aef working on collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-16 05:41:49 +03:00
1c9805f05c experimenting with collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-15 16:53:55 +03:00
4f6ec238d7 started work on collections...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-15 16:45:42 +03:00
e23fefa0c5 investigating a possible bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-13 02:24:51 +03:00
2af5afae01 minor stuff + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-12 14:29:17 +03:00
7af8217a3c some tweaking and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-11 02:50:18 +03:00
fdab009bd1 more work on alias ui...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-10 14:09:01 +03:00
bf2f485ff7 alias ui mostly done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-10 03:28:10 +03:00
c074793aef working on alias ui...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-09 15:36:03 +03:00
17d0046fb5 minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-08 18:41:38 +03:00
1a0d70b91d started work on alias ui...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-06 12:50:38 +03:00
bc6387af42 now loading aliases on start...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-04 09:52:45 +03:00
ea39e62329 updated aliases...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-04 09:43:54 +03:00
00ec10a335 added persistent aliases...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-04 04:28:29 +03:00
3d81db1bc2 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-08-03 20:45:42 +03:00
9b88fdfbea minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-30 13:04:11 +03:00
c1b59a7dac some tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-30 01:07:47 +03:00
831e82a28a experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-29 21:39:47 +03:00
6f8ef29f2e experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-28 17:55:09 +03:00
35256b47e7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-27 11:38:05 +03:00
05c6e5c0c7 experimenting with preact render + electron backend...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-26 21:10:28 +03:00
458a67b4b4 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-25 12:00:48 +03:00
bd9027094b some refactoring + bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-23 23:03:19 +03:00
58ca38619d some refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-23 16:58:31 +03:00
dd24e9f9c3 revised some marks browse ui stuff + added several new marks-related actions + fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-23 16:38:03 +03:00
54dcae7f29 more experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-22 01:54:04 +03:00
cf1f51bde1 experimenting with infinite scroll -- made it a bit more generic...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-21 21:19:35 +03:00
6b85163603 more experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-17 01:43:14 +03:00
18723d5717 more experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-16 23:51:28 +03:00
245429db3e experimenting with infinite native scroll...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-16 23:18:19 +03:00
11b6fd41d3 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-15 23:40:28 +03:00
a1bff2168e tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-14 04:26:46 +03:00
5191f8908e more work on docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-13 18:50:01 +03:00
ee941f327f notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-12 16:51:33 +03:00
9ea7f416de more work on feature docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-11 01:05:39 +03:00
9af9dcdc5f minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-10 02:48:39 +03:00
b1684c2d90 added feature doc viewer + action code view...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-09 16:46:11 +03:00
fee35dca32 added graphviz graph generator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-08 00:08:33 +03:00
642611f537 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-06 02:24:36 +03:00
cf29dae56d updated dependencies...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-02 19:52:00 +03:00
4de04fc1c3 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-02 16:45:02 +03:00
716af4ca50 added ui-introspection + some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-02 16:42:28 +03:00
3079786663 minor tweaks + work on preact render...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-07-02 04:36:39 +03:00
b0590c95d5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-29 17:14:46 +03:00
e53e991a2e some cleanup and minor house keeping...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-28 16:18:08 +03:00
911615ea44 resumed experiments on react/preact renderers...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-28 03:51:50 +03:00
8d4b8d282c cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-27 01:38:57 +03:00
563b16f93a ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-26 22:11:41 +03:00
dba46d5148 cleanup and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-25 08:59:01 +03:00
1993856936 cleanup and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-25 08:54:00 +03:00
306a55e2be cleanup and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-24 02:09:18 +03:00
8be7c7cd00 moving to ig-features v3...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-22 16:11:17 +03:00
7a065d7778 drag and drop not working and a feature...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-17 06:43:43 +03:00
82fa9d290b drag and drop now working, still a prototype...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-17 06:33:47 +03:00
a45fa6d20b added virtual dom experiemnt....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-16 19:50:00 +03:00
4db5f608dd edded experimental drag and drop images to UI -- needs more thought...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-16 19:41:27 +03:00
6bf5296918 minor bugfix -- now ribbon gids can be used in url-hash and in .current or .focusImage(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-15 06:29:22 +03:00
90276c7529 started work on new dependency planirization algorithm...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-07 02:36:20 +03:00
7848f3a4fd notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-06-06 21:36:17 +03:00
a6417bdf77 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-28 04:04:16 +03:00
899e42473e ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-27 06:50:29 +03:00
8eefbf5b6e started cleaning up the blank render...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-26 17:40:53 +03:00
041c6e3099 working on a blank render feature...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-26 04:13:08 +03:00
883ec67d42 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-25 16:28:56 +03:00
f1ef560a76 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-23 23:06:39 +03:00
1acd6ed183 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-22 05:19:15 +03:00
c48753f75f some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-21 15:24:06 +03:00
664dd7c83e added a feature for tests...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-21 00:21:32 +03:00
1deb302729 minor tweak/fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-20 05:32:44 +03:00
d3511f1f82 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-20 05:28:19 +03:00
5cee39ed70 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-20 04:52:10 +03:00
a01f4a049e added vim-like home/end bindings...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-20 04:39:52 +03:00
ab7f0a77e6 cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-20 03:59:11 +03:00
055775fc2b refactoring ribbons...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-19 23:13:03 +03:00
60dbd82309 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-18 03:33:37 +03:00
0ac1d5a523 some refactoring and preparing for more...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-17 04:53:00 +03:00
5762735766 more tweaking and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-16 22:23:52 +03:00
e785f82833 minor fix + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-16 21:11:23 +03:00
1678298443 more notes -- praparing for next stage refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-16 02:06:09 +03:00
72dd13a80b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-16 01:56:56 +03:00
3810dccfda added renderer template + more cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-16 01:46:51 +03:00
d9b3942469 cleanup, docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-16 01:28:09 +03:00
32fc5dc9b4 cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-16 01:03:26 +03:00
22627468eb refactoring of the ui/render/access -- started split of viewer into a renderer and viewer actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-16 00:26:37 +03:00
796bd4d8cb starting refactoring of the ui/render/access...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-15 17:26:30 +03:00
edde747468 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-14 14:50:53 +03:00
0f2aab4da3 some refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-14 02:29:47 +03:00
adc727c75d some refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-14 00:06:55 +03:00
5e4000715b minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-13 22:24:42 +03:00
eaea7d0c0f tweaking makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-13 17:47:40 +03:00
d33c3d5b70 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-12 04:21:35 +03:00
1ddaf62b73 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-11 17:37:44 +03:00
4f84e31a83 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-11 16:36:38 +03:00
3d08ecc22c ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-11 05:22:04 +03:00
d1c6ce7757 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-10 05:56:19 +03:00
28295aa865 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-09 04:51:21 +03:00
0cd4f3ab1a minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-09 04:32:42 +03:00
46b7114062 now marks are compatible with virtual dom...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-09 03:15:11 +03:00
f97fb827ae notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-07 18:39:19 +03:00
5e0598b1c1 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-06 20:55:01 +03:00
6771972adc some more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-05 03:23:16 +03:00
f96a9cf171 some testing + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-05 03:17:07 +03:00
2c56caf2e1 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-04 16:01:42 +03:00
31b9e86964 cleanup and more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-04 02:42:52 +03:00
c22c34a49a cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-04 02:27:31 +03:00
7c890a1657 refactored ribbon alignment...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-04 02:24:41 +03:00
1b6fb7a7d1 more fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-04 01:09:32 +03:00
f1c3e58465 minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-04 00:58:08 +03:00
b16a804958 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-04 00:48:39 +03:00
43e7990143 refactored current marker + experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-04 00:46:11 +03:00
5dfff9413c minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-03 15:25:44 +03:00
04ebffbfa0 some more refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-02 15:04:59 +03:00
9ce4e3c0c4 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-02 14:57:25 +03:00
e60f0568d6 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-02 14:28:38 +03:00
155253f259 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-02 00:12:37 +03:00
8bbc8084c7 more simplification, nav seems to be working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-01 17:28:10 +03:00
abae6bb3a5 more cleanup, tweaking and experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-05-01 03:34:57 +03:00
3e9774742b more cleanup, tweaking and experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-30 20:07:55 +03:00
626001b90b added offset calculation + more experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-30 01:02:03 +03:00
08193fd17f cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-29 14:20:27 +03:00
fa1b7312ba still experementing + bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-28 22:38:31 +03:00
80505f1563 still thinking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-28 05:51:55 +03:00
507cb3df5a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-27 17:55:27 +03:00
288b72a048 some more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-27 17:46:25 +03:00
7ff46d2b2c tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-27 17:37:28 +03:00
273c053f10 experementing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-27 03:01:21 +03:00
67fb0db945 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-26 02:42:46 +03:00
0e7c3a32fd experementing with virtual-dom...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-26 00:32:22 +03:00
0edc34f470 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-25 17:20:45 +03:00
5342d3e7ca minor fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-25 17:10:40 +03:00
7cb1bd7c4b experementing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-25 16:48:58 +03:00
3fa4d22446 experementing with protocols + experimenting with wheel event...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-25 03:33:28 +03:00
31f51ff6ac experementing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-24 14:34:09 +03:00
f903d71382 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-23 16:11:23 +03:00
3ab6b48d2e experementing in makeing .ribbons.updateImage(..) faster...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-23 02:03:33 +03:00
1790267ff5 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-22 19:21:58 +03:00
d4becb9b5e tweaking and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-22 07:06:14 +03:00
d0f0894da2 notes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-22 06:36:30 +03:00
b2c9a5cb34 reworked keyboard to support better searching for keys + added capslock state support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-22 06:20:12 +03:00
c64fe92afe tweaking + notes..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-21 14:52:58 +03:00
dad312daa4 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-20 17:53:43 +03:00
800cc11c7a tweaked timeouts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-20 16:04:33 +03:00
127fad78b5 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-20 04:00:28 +03:00
53c1614c82 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-20 03:46:35 +03:00
12267b7be8 tweaking and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-20 01:44:04 +03:00
a9cf6f39b6 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-19 21:39:25 +03:00
81e66be661 testing and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-19 14:20:38 +03:00
41b429f370 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-19 14:03:35 +03:00
ce7cfaaacc notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-19 14:00:47 +03:00
38f26e0c28 more tweaking and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-19 00:25:52 +03:00
2d19efaef7 some refactoring, tweaking and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-18 23:15:48 +03:00
c455c21230 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-18 11:38:28 +03:00
7179d57046 new partial ribbons mostly done and mostly working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-18 01:53:21 +03:00
1a30e1113e new partial ribbons partially done and partially working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-17 19:27:25 +03:00
ff0b180548 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-17 01:17:25 +03:00
9e71da0f4e started work on new ribbon update strategy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-16 18:35:28 +03:00
9329bc8115 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-13 17:28:20 +03:00
d6d3a608a5 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-10 14:46:31 +03:00
40bb5eef87 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-09 12:51:35 +03:00
40c0fa9eef ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-09 01:22:02 +03:00
bdc005fe9d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-05 18:48:24 +03:00
cbd6275db3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-05 18:46:58 +03:00
44e59e2c8d fixing typo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-05 18:11:57 +03:00
baf062fd03 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-04 13:21:12 +03:00
a5bbae8ae8 minor changes to defaults...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-03 11:02:55 +03:00
2b0ae5c167 some refactoring + fixed ribbon-wide marking undo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-02 06:13:57 +03:00
c5997171e9 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-02 05:47:57 +03:00
4d242f3cc8 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-04-01 02:18:45 +03:00
bb7be3e83f docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-31 15:41:30 +03:00
4e9c33ec09 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-30 14:16:31 +03:00
804fe63040 added undo to marks/bookmarks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-30 14:07:50 +03:00
d524366e3e bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-30 00:40:53 +03:00
1319db7119 cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 21:12:00 +03:00
bb8752815c bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 21:09:28 +03:00
9acb16dc3a found a bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 21:04:12 +03:00
0618653f75 marking blocks now works...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 20:21:26 +03:00
28734c5ee0 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 19:56:28 +03:00
b06127acf5 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 18:58:35 +03:00
45515c2e34 shifting marked up/down no works + added undo...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 18:55:02 +03:00
ed68854c80 cleanup + fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 18:10:45 +03:00
b5d11192ac started work on shifting marked up/down...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 17:22:58 +03:00
0cba7dc760 some minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-29 17:22:35 +03:00
50823e69a0 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-28 07:54:24 +03:00
42a141ba40 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-27 02:07:25 +03:00
63ae9cc3b9 added preview filters...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-26 18:56:17 +03:00
b2c436ede2 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-25 03:06:41 +03:00
9ea3f79903 bug fixed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-24 17:34:42 +03:00
dcf13b6797 starting hunting for a bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-24 16:57:31 +03:00
04305cb5c0 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-23 13:47:27 +03:00
41f55f2bd8 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-22 19:49:02 +03:00
7647458381 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-21 13:02:37 +03:00
86a1f8bfae notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-20 16:20:02 +03:00
bd7aaf0a68 fixed a bug in keyboard.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-19 02:02:16 +03:00
ad82c98a91 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-18 13:53:48 +03:00
8e42e768b3 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-17 11:55:59 +03:00
251268f8be minor slideshow tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-16 14:42:09 +03:00
aafe5690a0 done refactoring last fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-15 03:55:36 +03:00
3f752c7425 started fixing a minor bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-14 03:11:31 +03:00
72cc52ee36 more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-13 01:31:21 +03:00
0ba25ee2d4 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-12 02:59:31 +03:00
2a355d390e ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-11 04:52:30 +03:00
2ffce0d69e minor tweaks n' notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-10 04:45:25 +03:00
2680b74450 split the imageClick event into imageClick (image) and imageBlockClick (block) events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-09 03:44:09 +03:00
185ea478bb added image click event + click/tap current image to toggle single image (experimental)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-09 02:35:28 +03:00
0489315a40 now brows wrap around stops repeat...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 21:26:37 +03:00
852769acea refactoring -- now pausing of repeating key handling is a keyboard feature...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 21:07:29 +03:00
6a8c5fb561 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 20:22:40 +03:00
59dc0d01c5 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 20:05:49 +03:00
1c29da7ee7 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 19:35:33 +03:00
d1caf1a0d6 now loading self-corrects data...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 19:34:49 +03:00
11bbbf4458 more minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 06:26:23 +03:00
689ff3e831 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 06:20:27 +03:00
aefac98381 some cleanup and scafolding...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 06:18:47 +03:00
82821a2bb0 started an experiment with a different approach to partial ribbons...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-08 06:12:25 +03:00
92c54cafad ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-07 06:06:47 +03:00
8c3819bfbf ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-06 16:22:50 +03:00
520fe25116 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-05 06:31:20 +03:00
04a1802e1a some automation + cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-05 06:30:17 +03:00
e5f19dfdf3 some cleanup + minor tweak to .json(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-04 05:35:04 +03:00
ee8df1330f bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-04 04:20:05 +03:00
d726d8d2a6 finished .peerCall(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-03 17:13:45 +03:00
034121a105 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-02 16:34:13 +03:00
e6fa2ca17a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-02 06:10:10 +03:00
d3baa143ee event more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 04:35:01 +03:00
e19b3e3466 more notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 04:31:09 +03:00
e0eb20f29b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 04:28:37 +03:00
544604a2bc added promise result support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 04:26:10 +03:00
11aa8be206 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 04:22:42 +03:00
5787941bf2 basic child-process peer stuff working, still playing with peer API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 00:44:10 +03:00
bf6ff1c549 fixed stub logger... need to unify loggers (feature?)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 00:05:10 +03:00
161f2f3ca5 added dependency on ui to fail-safe-devtools...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 00:02:56 +03:00
fa1a6a0f2b minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-03-01 00:01:15 +03:00
d2beb3b8fd added logger messages, still not sure about API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-28 05:36:02 +03:00
16debe3cf4 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-27 03:20:51 +03:00
2c36fc11d3 tweaks and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-26 01:33:14 +03:00
f4631e561f notes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-25 01:23:07 +03:00
328541a27b added cooperative promises...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-24 23:15:03 +03:00
5f610ca091 experimenting with peer protocol/api...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-24 19:47:04 +03:00
f1a23fda6d some refactoring + bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-23 03:28:44 +03:00
98f0e129b5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 17:49:31 +03:00
256513abb7 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 17:47:49 +03:00
3a2c8e0bf9 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 17:46:40 +03:00
8bde82dd7b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 17:06:12 +03:00
05d1e0944e notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 17:05:12 +03:00
c8662ac9af notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 05:13:39 +03:00
d76acff7c8 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 05:10:50 +03:00
3fb1bce368 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 05:07:07 +03:00
9fbe7512a4 added child-process-peer...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 05:02:13 +03:00
577c514ba2 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 04:59:47 +03:00
80e25fe45c minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-22 04:54:31 +03:00
fa7befd9ed notes + minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-21 06:56:05 +03:00
75f146c6e1 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-20 04:27:09 +03:00
e391375049 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-19 06:22:32 +03:00
07d3ca21ef working on the peer api...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-19 05:55:53 +03:00
4b32f370ba moved from direct IPC to peer archetecture, still playing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-18 06:02:33 +03:00
ab72b0d6f2 started work on IPC...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-18 04:50:20 +03:00
53e1b73607 docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-17 06:57:32 +03:00
80dc0869c4 minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-17 06:33:37 +03:00
587b5eaa34 docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-16 06:39:23 +03:00
1c58bdc9e3 fixed a bug with loading + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-16 02:24:23 +03:00
6358945168 done refactoring output format construction (need to revise)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 23:20:06 +03:00
dec295fd05 cleanup and more refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 08:04:20 +03:00
bfd7f1ad70 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 07:50:02 +03:00
9415271d2b notes and preparing to refactor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 05:43:39 +03:00
8e2c6945d8 file store format construction and loading framework is working, still need to refactor legacy code...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 05:35:28 +03:00
3aa03faea6 moving to new read/write format...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 05:21:28 +03:00
84b02c8f7a added 'full' support to all .prepareIndexForWrite(..) implementers...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 04:45:55 +03:00
3deb743692 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 04:40:43 +03:00
1a626b4f5a notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 04:24:12 +03:00
70a5d4fe26 tweaked the loader -- needs refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 04:21:40 +03:00
f204503464 started tuning the order saving and caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 03:28:18 +03:00
9eaad5e6e8 tweaked animations and some minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-15 02:11:09 +03:00
ff7e86f0b1 now sort order can be cached (safe to remove) or saved...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-14 00:23:41 +03:00
c48529693b sort save/cache refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-13 20:54:15 +03:00
d98b13f004 sort caching almost done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-13 06:56:08 +03:00
a3a633096c chnages not generic...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-13 05:47:14 +03:00
f5b9687d3f started work on sort order caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-12 21:10:05 +03:00
b888d279ea cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-11 06:28:56 +03:00
c13f0b3054 sligtly de-dumbefied file.loadIndex(..) which should significintly speed up some paths loading (still needs work)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-11 04:40:22 +03:00
6d2da52b4e cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-11 03:34:41 +03:00
10738a754b found and seem to have fixed a fantom bug)))
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-10 02:19:19 +03:00
8c53b856d0 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-09 16:50:26 +03:00
ea15988234 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-09 16:44:09 +03:00
009943e793 notes and some tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-09 02:11:28 +03:00
405a3886b4 more fixes and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 23:13:51 +03:00
13c81f276e cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 23:03:00 +03:00
b4c7fe4499 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 22:59:16 +03:00
1f38835e45 moved to new history dialog, appears to be working, need more testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 22:08:04 +03:00
09c33e6f1a minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 07:12:12 +03:00
ed9ed63e21 docs + cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 07:08:36 +03:00
cb839de7ef bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 06:59:57 +03:00
8da34990b5 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 06:24:56 +03:00
de6850bc36 notes and cleanup....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 05:35:11 +03:00
48f88faa85 no duplicate buttons...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 05:30:18 +03:00
e4282bc4f5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 04:13:24 +03:00
6db23078e7 docs + cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 03:16:40 +03:00
018f4aafd0 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 03:01:44 +03:00
9e46e7dbab bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 02:58:02 +03:00
277f5c25e5 added auto-grouping...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 02:51:40 +03:00
fd4b663c1e reworked button placement...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 02:49:15 +03:00
a6628c42b8 now it is possible to either force the buttons on by including placeholders in options.buttons or via specific options... sitll seems too complicated.
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 02:04:59 +03:00
0e55868093 more work on history...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-08 01:31:41 +03:00
0fe8140fd3 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-07 18:58:37 +03:00
2f0b80a215 tiny tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-07 02:59:04 +03:00
52e0eac4d0 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-06 06:27:46 +03:00
d758dbc8d4 experimenting with alternative history dialog...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-05 08:22:39 +03:00
e88a84bfda added basic logger to metadata reader...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-04 19:50:50 +03:00
c14dc89280 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-02 07:36:25 +03:00
f995891a52 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-02 07:26:39 +03:00
849b4f3a47 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-02 04:19:43 +03:00
0dec42c2b0 some cleanup and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-02 04:07:10 +03:00
466b52ccf1 Items.EditablePinnedList(..) seems to be done... (needs more testing)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-02 03:25:58 +03:00
226a397f3b demos/tests...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-02 02:37:34 +03:00
06b6e15b91 fixing the edit bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 23:40:52 +03:00
d1528650e4 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 23:36:57 +03:00
7c2cf52efa cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 23:36:09 +03:00
6ec6bc7e3c a fix, not sure I like this yet...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 23:34:03 +03:00
24f886004d seem to have found the error source...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 23:19:27 +03:00
46e21f29a9 notes
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 22:51:17 +03:00
394703e819 ...still looking
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 22:50:01 +03:00
91c7334a14 looking for a bug in .makeEditable(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 21:11:51 +03:00
3aa987d3d3 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 20:39:44 +03:00
dad135cd11 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-02-01 19:25:58 +03:00
268ad86bdd experimenting with Items.EditablePinnedList(..)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-31 15:27:29 +03:00
d0f0356edc refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-31 02:51:06 +03:00
0aeb494a6b some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-30 23:32:08 +03:00
dc4eaa2973 some cleanup and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-30 20:01:24 +03:00
848577f339 fixed a couple of small bugs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-30 06:05:21 +03:00
00b4c9d33b some tweaking + cleanup + fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-30 05:37:55 +03:00
712f212f7f added option to make list sortable by dragging....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-30 05:01:50 +03:00
aee6234631 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-30 00:11:57 +03:00
2f56bf6191 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-29 18:22:13 +03:00
3833545c55 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-29 07:32:07 +03:00
3e5c52b676 added space triggering of items in browse lists...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-29 06:20:58 +03:00
ebd051eab7 more notes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-29 05:44:57 +03:00
3835300fe1 more docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-29 04:10:10 +03:00
4a9b4d5fdc minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-29 00:58:25 +03:00
3eb64ccdab docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-29 00:51:13 +03:00
c843eb1da4 fixed a fix and added a comment so as not to fix it again...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-28 01:49:08 +03:00
7551604d77 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-28 01:22:28 +03:00
320290861b added full support for browse item sortcut keys + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-28 01:09:05 +03:00
b79ef79242 added support for item shortcuts in browse...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-27 17:33:21 +03:00
7580a3f57b refactoring + some minor new stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-27 08:26:10 +03:00
bbdf259c1a fixed a bug in make.Editable(..) + docs + preparing for multiple lists in one dialog...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-27 06:49:04 +03:00
8fe6e46c94 added .cropOutRibbon(..) + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-26 21:49:32 +03:00
220939454b added .ready() lifecycle event and framework...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-26 07:01:20 +03:00
4a4cb57eaf docs and notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-26 04:53:17 +03:00
d83aaaefd6 a very minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-26 00:05:30 +03:00
d38eb30cfe tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 23:51:17 +03:00
9e6cce7477 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 23:45:12 +03:00
3f72362734 added feature tags in action help...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 23:34:01 +03:00
25ab2bb5a2 added custom buttons to kb editor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 22:56:18 +03:00
14eb2ccbaf refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 22:22:33 +03:00
711497d0cd fixed how kb sections are setup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 18:17:04 +03:00
7f91b64360 doc + now new/edited kb items should be selected after edit in kb editor (+/- a known bug, see code)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 07:38:38 +03:00
fb23c7bc27 tweaking and bug fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 06:44:46 +03:00
c0a544f57e some tweaking + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 05:37:55 +03:00
3ae69acaa8 added manual item sorting options/buttons to EdiatbleList(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-25 05:04:40 +03:00
4c387d328f bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-24 06:21:15 +03:00
408e4c68aa doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-24 06:16:20 +03:00
fa198967d7 bugfix + notes + help links...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-24 06:14:38 +03:00
63bc65b3e5 started work on the help system...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-24 05:34:15 +03:00
0f4477ba32 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-24 04:07:13 +03:00
5043e19db8 reworked dialog closing mechanics -- added close reason (accept/reject)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-24 00:14:31 +03:00
db078e4ebb tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-23 21:20:27 +03:00
9e440c7635 minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-23 21:10:15 +03:00
c0f9342899 minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-23 20:58:24 +03:00
08492cbf35 refactoring + .loadImagesAsRibbon(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-23 20:49:05 +03:00
f8e149a8f5 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-22 04:42:40 +03:00
82fcaf5f89 cleanup, minor refactoring and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-22 01:39:46 +03:00
fd256fcc6f the general functionality of the kb editor appears to be done and working (the changes are not yet saved)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-21 23:39:41 +03:00
e0dbd413dc some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-21 18:26:56 +03:00
cb1870da7c refactored List/makeList...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-21 18:15:11 +03:00
2aa5d44df0 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-21 05:27:10 +03:00
643d5a6ecb tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-21 05:24:38 +03:00
d13b39609a tweaking and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-21 05:21:41 +03:00
2c628341a6 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-21 04:36:21 +03:00
cdc50df278 making the .Editable(..) item constructor more functional...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-20 23:03:09 +03:00
37f601f77b removed the last of the control-flow setTimeout's from browse.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-20 20:37:11 +03:00
89668fc080 very minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-20 20:05:37 +03:00
baabae3164 seem to have fixed the cli...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-20 06:16:55 +03:00
b381f0ce7f split the ui from the keyboard + minor tweaking to kb startup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-20 01:12:48 +03:00
eb5603c81d minor style fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-19 03:50:46 +03:00
8ca9c7be0a tweaks and fixes....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-19 03:40:22 +03:00
3c0fd893c0 some minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 23:12:27 +03:00
af6bc5a603 minor fixes and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 21:36:58 +03:00
010f8dabf8 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 20:57:42 +03:00
c30e5ad289 reworked several minor sthings...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 20:48:30 +03:00
9c4842b8bd unified the handler code, no redundency now...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 18:00:38 +03:00
d5549a3813 minor fixes and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 03:38:57 +03:00
f44a90c7c8 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 03:26:43 +03:00
92bf8df8f8 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 01:36:11 +03:00
91dd994cf1 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 01:34:06 +03:00
b58b583995 added new and experimental doc-strings + minor fixes and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-18 00:56:08 +03:00
b2044eb7a1 minor fix + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-17 21:48:31 +03:00
0924383bcd refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-17 20:48:57 +03:00
9cc007a2cb reworked how events are triggerd on browse/elems + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-17 16:44:44 +03:00
025e2fd6cb some docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-17 05:29:48 +03:00
29393899e5 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-16 23:34:44 +03:00
1e969e2b13 added .keyPress(..) action/event...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-16 23:27:05 +03:00
ae2cb9af7b some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-16 18:16:07 +03:00
d5ef01b144 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-15 05:02:38 +03:00
ff5d1c4655 added tab handling to browse + now sorting works in bk editor + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-15 04:37:00 +03:00
5050537966 refactoring + work on kb editors...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-15 00:49:19 +03:00
f78c56a8c5 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-14 16:02:11 +03:00
3fcb62db7a tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-13 09:00:22 +03:00
711571bd25 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-13 08:46:30 +03:00
28d9c5dc12 started work on key editor UI...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-13 08:42:47 +03:00
4ca661dd74 monor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-13 06:55:43 +03:00
722b3241de doc/notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-13 06:44:18 +03:00
867336f7d5 minor changes to how the cursor is hidden + open path from history + docs and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-13 06:35:11 +03:00
a3f38bc6ff doc/notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-12 21:34:10 +03:00
3c4b538b7a tweaking, refactoring and .keyHandler(..) action/event (experimental)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-12 21:23:16 +03:00
c8645d3f6f minor tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-12 05:26:09 +03:00
55a6c106ec added a common case specialization to keyboard.js -- KeyboardWithCSSModes(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-12 02:41:03 +03:00
60f5431155 moved everything to new keyboard implementation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-12 02:09:59 +03:00
1d85f77bb1 doc/notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 22:34:57 +03:00
77d799fac6 added a basic self-test framework...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 22:32:16 +03:00
54ffa699e1 added list of ignored keys to cursor autohiding...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 21:08:29 +03:00
b4d7ee058b tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 20:27:40 +03:00
63ad1dec90 reworked how cursor autohiding works...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 20:03:33 +03:00
136601849c tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 06:01:42 +03:00
48eb0cc5ed minor tweaking and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 05:53:05 +03:00
4c71f68de5 more cleanup and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 05:16:03 +03:00
e4cd77f378 more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 04:45:34 +03:00
17f4b7c448 more cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 01:46:47 +03:00
664743a975 started leanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 01:32:42 +03:00
ebb3fcdc39 moving to keyboard gen2...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-11 00:41:35 +03:00
6730ec2f24 tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-09 06:20:38 +03:00
4eda181d1c monor addition...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-09 05:59:45 +03:00
6fc5ab2dad minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-09 05:40:24 +03:00
10b37677b2 tweaks + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-09 05:11:29 +03:00
06bdde0532 prepared to move to new keyboard handler...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-09 03:51:32 +03:00
7eb40b05d1 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-08 04:58:32 +03:00
88e8c1b9cb new kb ready for testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-08 04:21:22 +03:00
72757fe2ae first experimental new kb implementation ready for testing (almost)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-08 03:32:49 +03:00
7d290bfb94 reworking the keyboard.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-07 04:22:53 +03:00
b5bf1bf3de tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-06 06:58:50 +03:00
096fb9957e reworked the widget.close event workings, now alot more uniform...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-06 05:17:14 +03:00
6a7f440bc7 tweaking + some refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-06 02:18:21 +03:00
0a57cb7c3a more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-05 23:00:49 +03:00
9ef35d3ea1 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-05 07:38:56 +03:00
5517204b3b minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-05 06:03:46 +03:00
bad240240d notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-05 05:40:48 +03:00
c31cf6793e tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-05 05:35:19 +03:00
9e5f6cc1d0 added .not-searchable and .not-filterd-out classes to browse items + now sections of kb binding editor will not get hidden on searches...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-05 05:23:29 +03:00
f8c2a9615e started work on the key binding editor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-05 04:53:46 +03:00
ddcccdfe41 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-05 03:06:06 +03:00
f09fae92e1 several fixes + custom keyboard action help getter...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 20:27:47 +03:00
4617fe512b tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 19:39:04 +03:00
863064c5c0 some cleanup and refactring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 19:05:19 +03:00
b3d80100dd tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 16:41:46 +03:00
8aea6b748e refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 16:25:00 +03:00
c2c113b244 docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 06:55:34 +03:00
a2aee39c5a added push-on-open option to browse item constructor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 06:37:23 +03:00
1ff33f8f77 tweaking + some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 05:50:00 +03:00
4c4217a546 fixed a bug in .saveIndex(..) + simplified pinning in history list...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-04 05:15:56 +03:00
88071a29c3 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-03 07:26:25 +03:00
79622eb4b1 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-03 02:59:56 +03:00
2365c868fa added back legacy features (not used)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-03 02:56:38 +03:00
ef441ff473 added key binding tips to action menu...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-03 02:55:25 +03:00
2a04daa811 more docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-02 01:36:23 +03:00
73c9e60933 refactoring, minor fixes and tweaks + module toc's...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-02 01:23:33 +03:00
2e19c02b0c cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-01 07:58:55 +03:00
045030eecb minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2017-01-01 01:56:08 +03:00
71bb8255dc added .browseMode alias support + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-31 23:30:14 +03:00
e1d75f775c minor refactring + notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-31 19:51:16 +03:00
28026c02bf cleanup + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-31 19:43:35 +03:00
f9ab0b81b5 more journal work done, almost got rid of legacy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-31 07:46:40 +03:00
e83de0123c reworking journaling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-31 07:10:28 +03:00
87d6c45b02 added a cosmetic fix to browse widget...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-31 04:38:44 +03:00
00092dabbd experimenting with distingwishing dialog types...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-30 21:24:16 +03:00
98b6ae41bf minor fix + css tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-30 20:05:26 +03:00
ac81e26efe cleanup, tweaking and added separators to .config['action-category-order']...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-30 04:24:38 +03:00
f1c4d558ea added browse action predicates to more actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-30 03:54:10 +03:00
37f089cc91 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-30 03:22:52 +03:00
ff8ca76a3d reworked hidden/disabled items + action attrs now get searched correctly...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-30 03:21:36 +03:00
fdb280d519 more experimenting with ranges + new actions and action browse features...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-29 23:23:05 +03:00
72e1cad416 more experimenting with ranges...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-28 23:36:32 +03:00
cc82c0bddc experimenting with ranges...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-28 20:11:42 +03:00
b95a4dcea4 more work on ribbon partitions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-28 02:31:15 +03:00
7c493a7326 lots of tweaks + work on ribbon partitions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-27 06:18:04 +03:00
1c25bc223a minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-26 03:42:55 +03:00
f6acb36370 moved image click handling to control, still not perfect + minor fix to cuurent image indicator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-26 03:13:55 +03:00
0add177ac2 minor meny reorganizarion...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-20 06:11:00 +03:00
828e13d9d1 added image separators in ribbons + some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-19 19:35:35 +03:00
c885ee0bcf tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-14 05:37:12 +03:00
36ca6c3b75 added layout description...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-14 05:02:10 +03:00
d8d010e382 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-14 03:44:33 +03:00
4c799d0708 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-14 02:22:52 +03:00
3d697809f0 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-14 02:14:06 +03:00
3c0bf7dcbd updated preview generation logging...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-14 02:09:42 +03:00
005c030d79 added ribbon count to ribbon status indicator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-14 02:06:50 +03:00
8296f08eb0 more introspection + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-12 16:29:32 +03:00
a7675479ac updated progress bar style...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-12 15:29:37 +03:00
19aedcc8cb bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-11 04:54:28 +03:00
e19d04bfd2 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-10 21:00:53 +03:00
e8bdc66c18 fixed severaly sync and align bugs with current image indicator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-10 20:38:31 +03:00
7cb2497595 screen flicker upstream bug appears to be fixed, removed workaround...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-09 17:56:18 +03:00
571af08a3d minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-07 03:05:31 +03:00
7e5bc7b629 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-07 02:58:02 +03:00
4effe393fc fully fixed the mostly fixed drag...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-07 02:10:24 +03:00
448099d9e7 mostly fixed broken drag...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-07 02:03:10 +03:00
9fceef362d some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-03 17:28:58 +03:00
0deba5d277 added ability to pause keyboard repeat...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-03 14:39:04 +03:00
9b84b686ab minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-03 00:05:31 +03:00
56a8832876 failed to make .updateImageProportions() use vmin instead of px + some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-02 23:52:56 +03:00
d886704fce fixed a long standing image proportions bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-02 23:21:14 +03:00
2e9288da00 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-02 03:10:12 +03:00
5863626db9 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-12-01 03:58:02 +03:00
0e8c268630 moving to relative units on all positioning...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-30 06:37:22 +03:00
108f01021e more refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-28 20:24:01 +03:00
a4d4fe949f more cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-28 20:20:20 +03:00
1bb34d8d60 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-28 20:08:08 +03:00
07f881e2b8 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-28 19:16:13 +03:00
73cacded7e fixed empty crop bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-28 19:09:33 +03:00
5a50cd04d4 refactored tag toggler constructor to use an actual toggler instead of emulating one...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-28 17:56:14 +03:00
44368d9f78 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-28 02:40:30 +03:00
d5088fae68 added url pin toggler...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-28 02:27:25 +03:00
d578376e9e minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-27 00:11:23 +03:00
1597b7eb1f added better browse scroll handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-27 00:02:46 +03:00
cdb1507c01 chrome scrolbars now styled on browse widgets...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-26 21:14:46 +03:00
bc3f7166da now buttons should not split into multiple lines...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-26 20:54:24 +03:00
89e04829f9 added url pinning in url history...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-26 20:42:47 +03:00
f84f97ab59 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-26 15:52:23 +03:00
0bf709fefa bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-26 15:46:44 +03:00
975b243ffd notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-26 14:34:12 +03:00
051cba3082 updated core.makeConfigToggler(..) to support bool states + single image mode tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-26 14:29:11 +03:00
2651ed943f tweaks + testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-23 16:14:38 +03:00
fada354813 tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-23 13:33:14 +03:00
785d03b07e refactoring + rotation actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-23 13:16:28 +03:00
cede9a2b06 minor fix attempt 2...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-23 03:16:17 +03:00
56b35315f7 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-23 03:09:24 +03:00
3d6c548091 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-23 01:29:19 +03:00
06239472cb cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-23 01:24:47 +03:00
089d298692 fixed single image animation sync problems...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-23 01:21:56 +03:00
66a6622ad6 oops, forgot to add the template...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 23:44:46 +03:00
22ffd3743c cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 23:41:38 +03:00
be8d582be5 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 23:38:16 +03:00
838e589557 added rotation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 21:34:33 +03:00
d09413f794 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 20:09:14 +03:00
daa00a452c new ribbons appear to functionally be mostly done, next revision and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 19:12:36 +03:00
e35b45e960 new ribbon architecture working, still not done migrating...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 16:52:32 +03:00
a2e13d1b08 tweaks + draggable...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 04:08:45 +03:00
24a36b9ee8 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 03:25:17 +03:00
50c5daeeaa added single image view to experiment...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 03:20:31 +03:00
b07624beb9 new centering scheme experiment, seems ready (will sleep on it)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-22 03:03:40 +03:00
05d6d5c94b minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-20 04:35:38 +03:00
d8141e0aab more refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-20 03:51:53 +03:00
fed78ba0e9 minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-20 01:11:30 +03:00
e468ed35e4 refactoring....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-20 00:57:26 +03:00
f0f597e5f2 added ribbon focus mode to workspace...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-20 00:04:41 +03:00
9d0679cda0 minor tweaks to css + default direction handling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-19 19:58:55 +03:00
f0e0518883 minor bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-17 13:51:24 +03:00
b86f42b43c updated script docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-17 04:21:20 +03:00
4dbf6565de minor cleanup
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-16 16:18:22 +03:00
0790748ec7 more tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-16 04:57:31 +03:00
d4815e2f6c tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-16 01:48:14 +03:00
7ce5352b02 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-16 00:20:27 +03:00
12cfc405fc tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-16 00:14:09 +03:00
59f47b095e added side touch controls...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-15 23:05:46 +03:00
7fe16dd1a9 some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-15 22:15:14 +03:00
2045812d92 added check if target files exist on export...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-15 20:11:37 +03:00
a43f341968 added scripts README...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-15 19:29:19 +03:00
46aa45593c fixed a race condition in .exportIndex(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-15 18:29:33 +03:00
3076044ccf tweaked logging...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-14 17:21:30 +03:00
2334e0b28e some docs/notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-10 05:34:15 +03:00
bd729aa46b cleaned up the button controls...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-10 05:18:44 +03:00
2c650da183 refactored main controls out of testing + ui cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-09 04:53:42 +03:00
9ea06bffdb refactored button controls...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-08 21:16:33 +03:00
abc1fd64b5 more work on controls...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-08 19:26:47 +03:00
1a0cb9c0f1 notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-08 19:00:25 +03:00
cb2420fafe added main controls + crop button/status...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-08 18:57:11 +03:00
c75dd733e5 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-08 17:30:40 +03:00
0ee066261f made overlay blur optional...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-08 17:27:27 +03:00
42da8c67f0 minor fix + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-07 18:21:32 +03:00
14a326cf40 some fixes and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-07 07:32:31 +03:00
d2c710b269 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-06 01:58:32 +03:00
5f0c4ffcaf added startup reporting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-05 19:34:26 +03:00
a7734d00b4 split out ui progress reporting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-04 23:00:34 +03:00
53d1ececc4 added loading to the progress, still a stub (not sure how to go about this yet)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-11-04 21:46:57 +03:00
fec0f35171 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-31 02:34:03 +03:00
48332700da tweaking the status index...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-31 02:27:49 +03:00
2bbac274c1 tweaking progress...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-30 04:32:19 +03:00
5dc21690da started work on actual progress bars...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-28 18:13:42 +03:00
83c67a7b39 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-25 19:35:17 +03:00
86e4670cfd updated makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-25 19:17:39 +03:00
72a1ba02d8 minor keyboard tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-23 04:16:54 +03:00
ab40cd52b2 a really odd bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-23 03:55:42 +03:00
e6a26104c3 added cropFlatten action...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-21 18:52:37 +03:00
0d046bb90e bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-10 05:45:55 +03:00
5b2d7ddb85 updated notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-04 05:18:12 +03:00
08acd3b614 updated notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-10-04 05:11:14 +03:00
0337e15e42 added padding to filename numbering...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-09-26 22:29:33 +03:00
6047218125 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-09-22 01:12:48 +03:00
ddbbf70323 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-09-03 06:40:44 +03:00
e3a694548a added browser dependencies to the repo, enabling this to work out of the box... (not sure yet if this is the right way to do this)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-31 15:02:09 +03:00
d2b48a9648 playing with external libs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-26 06:14:49 +03:00
51bd6284d4 moved away from local object/actions/features, not yet sure if it's a good move...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-26 05:49:50 +03:00
5dfd470170 preparing to move object/actions/features to their own libs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-25 01:58:50 +03:00
6a9ad3ba15 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-21 02:19:24 +03:00
14f780a1f4 removed toggler dependency from generic actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-21 01:21:03 +03:00
a30920ca31 moved to a new module template...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-20 22:49:36 +03:00
22d96ae827 added new module template...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-20 22:21:25 +03:00
f98e36a4bf added ribbon menu and soe cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-07 02:42:25 +03:00
4842da32fd fixed a couple of bug in .alignToRibbon(..), now seems to be working fine... still needs more testing.
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-08-07 02:35:20 +03:00
b47eecec3c .alignToRibbon(..) now works...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-28 04:11:43 +03:00
1a20893c34 fixed an old bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-25 03:38:02 +03:00
0451f9c1b9 added pouchdb...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-13 04:00:51 +03:00
e1ddf12e7c several bugs fixed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-03 18:53:02 +03:00
2295c715e6 bug-fixes and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-03 03:47:12 +03:00
1619c96a4c migrated to nw0.15.4
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-03 02:21:33 +03:00
f017c234b5 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-02 05:59:42 +03:00
1e67e9000e another bug fixed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-01 07:27:04 +03:00
c399d4299e several bugs squashed...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-01 07:04:38 +03:00
9cfab342e5 started work on .alignToRibbon(..), still a bit buggy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-07-01 03:44:13 +03:00
4d095ea351 cleanup + some doc...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-30 05:50:20 +03:00
19c2b2028e bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-30 05:23:46 +03:00
0fdea710a7 bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-30 05:15:10 +03:00
9ade2d1dda cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-30 04:57:14 +03:00
a57dbc2d7e fixed an issue with metadata for empty image objects...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-29 20:28:38 +03:00
ef0ba18f75 added key to toggle base ribbon... (not sure about this)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-29 19:58:10 +03:00
e70a077177 another barin-dead error fix....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-29 19:16:45 +03:00
6caf72c5e9 oops...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-29 19:02:59 +03:00
b3fbacfcd2 typo fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-28 02:04:49 +03:00
635298aeac cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-27 20:04:14 +03:00
617c2d3dec added warning...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-27 19:58:47 +03:00
937c50e57a added exclusivity check + moved to new implementation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-27 02:08:10 +03:00
795eb69f8c more docs + added input data to return...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-26 19:08:34 +03:00
9fd4d389df added missing checks and started docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-26 17:09:06 +03:00
7a2dec7f63 added disabled/unaplicable feature filtering...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-25 22:54:27 +03:00
c8355d355a ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-25 05:57:49 +03:00
1c7d969cd1 reworking feature sort algorithm -- base sorting done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-24 16:45:23 +03:00
1bb316da4f started reworking feature sort algorithm...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-24 15:09:13 +03:00
b22a1f1ae1 added image menu to alt-i...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-23 01:00:24 +03:00
ff930573f3 added prefetching fonts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-22 23:46:22 +03:00
a828ed4ec6 more refactoring + some docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-21 06:06:46 +03:00
6bffb4db59 minor refactoring + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-21 05:43:14 +03:00
6385660b09 minor refactoring + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-21 02:45:45 +03:00
f5c35ebc7e some docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-21 02:13:20 +03:00
f0f972ae12 some refactoring + new custom sizes in single image view...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-21 02:10:26 +03:00
787167ee51 more fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-21 01:31:04 +03:00
286d19237d minor bug fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-21 00:58:53 +03:00
f61926171a more jQuery3 related fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-21 00:43:46 +03:00
70859e9341 some cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-20 23:30:46 +03:00
5b841845b5 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-19 21:23:02 +03:00
f0a73a9463 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-19 19:11:22 +03:00
7156f4be99 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-19 19:06:35 +03:00
a1b87e2548 refactored .getVisibleImageSize(...)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-19 19:06:01 +03:00
8f96973726 fixed current image indicator scaling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-19 16:22:59 +03:00
c53f7c4eda started fixing current image indicator...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-19 02:18:09 +03:00
bd5fd9f505 jquery3 migrtion: fixed blurry images + added post resize transition action...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-18 20:07:19 +03:00
239ea3d346 made changes status indicator view configurable...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-17 03:50:25 +03:00
13fcd85e69 several fixes and tweaks: defaults for status and sizes... + more work on jQuery3 migration...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-16 04:49:17 +03:00
feeee094ce started migration to jQuery3...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-16 00:40:14 +03:00
b357732259 refactored comments, now almost happy with them...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-14 17:39:26 +03:00
1559a6fc42 still working on save comments...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-14 03:06:35 +03:00
09202c09f6 added generic index comments + reworked how .savecomments to use it...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-14 00:04:53 +03:00
a250c248ae preparing to move to jQuery3...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-13 17:27:45 +03:00
15b915b4b5 experimenting with a comment framework...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-13 17:22:14 +03:00
633baeb0a0 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-13 16:48:07 +03:00
725e297370 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-11 22:51:19 +03:00
d9829b7b8f cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-10 20:09:43 +03:00
4d3fb9b46a added save status indicator + some ui tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-09 00:10:11 +03:00
daa462184b edded export index preview limit + now crop is dropped on .load(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-08 18:10:39 +03:00
de6ead22a8 an experiment with .location editor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-07 22:48:37 +03:00
62ca9e1d1d some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-07 21:00:16 +03:00
24408382a6 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-07 06:22:44 +03:00
c49aa7857b cleanup and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-07 06:03:16 +03:00
edd0fba141 cleanup + added 'activate' option to .makeEditable(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-07 04:29:06 +03:00
d90b167068 added ribbon indicator to status bar (thanks to xyz for the hint)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-07 04:03:56 +03:00
2c954da342 started work on partial index...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-06 18:46:23 +03:00
82e10ff27e removed dependency on fswin (did not work out of the box on nw) and now the hidden flag is set via spawning attrib...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-06 01:10:36 +03:00
9618ffeab5 started work on windws attributes (does not work in nw yet) and some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-05 17:39:19 +03:00
5a4525f86e cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-05 06:27:54 +03:00
9125e1760b split out recover from location...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-05 04:11:20 +03:00
9a5c9689ee reworked the location feature...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-05 03:46:24 +03:00
d58df1d2dc docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-05 02:10:42 +03:00
aedff17ef0 minor update to Makefile...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-04 21:53:17 +03:00
3b1a537441 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-04 21:48:21 +03:00
9ba18f33ae added load error recovery mechanism to location feature + cleanup and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-04 20:50:37 +03:00
197926a897 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-04 01:01:44 +03:00
b8cd0a3046 minor cleanup and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-03 19:14:02 +03:00
c613f8eaa0 some tweaking + fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-03 05:12:29 +03:00
fa7f64871f added orientation support (via. sharp) + refactored .loadImages(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-03 04:46:51 +03:00
9d02a2d15f started work on persistent tags...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-02 00:01:38 +03:00
60d10fbfe4 minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-01 23:58:01 +03:00
e9daf8a1b7 some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-01 23:03:47 +03:00
5088530227 cloud browse working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-01 21:39:32 +03:00
5ca94a26f6 started work on cloud browse...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-01 21:19:24 +03:00
bc9178038d moved domain specific modules to imagegrid/, now only root modules in root...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-06-01 16:12:10 +03:00
b308f6b3b7 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-31 23:19:24 +03:00
9f29868ff1 cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-30 03:15:05 +03:00
00b3cf8e60 refactoring: preparing to make .loadImages(..) and .loadNewImages(..) reuse most of their code...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-30 02:23:55 +03:00
96b8ebab04 now .loadImages(..) will also try and load previews + refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-29 23:49:01 +03:00
803cbb84a5 cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-29 19:50:37 +03:00
11b9351e06 tweaking and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-29 05:27:31 +03:00
89741b9e95 now browse restores selection on .update() + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-28 21:36:17 +03:00
41cf1c4216 minor tweaking and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-28 19:32:30 +03:00
a6c80ddbc9 cli now working, more cleanup and tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-28 18:31:42 +03:00
fcac70f7de refactoring the load mechanics, still not happy...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-28 16:29:57 +03:00
0e78422f35 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-28 02:47:52 +03:00
104db56b48 another fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-27 23:04:15 +03:00
9108aa6948 minor fixes and tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-27 20:51:34 +03:00
f23f226475 fixd some issues with cloning...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-27 18:56:08 +03:00
3cd74e216a some refactoring to better link stuff together....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-27 18:41:28 +03:00
2c58605dc1 fixed a really fun bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-27 00:57:48 +03:00
9a487c86e6 moved format-specific config to filesystem.IndexFormat feature...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-26 05:36:28 +03:00
85191b261a parallel preview creation done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-26 00:49:09 +03:00
83ff6380c2 parallel preview creation done, now figuring how to route the results back...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-25 23:16:41 +03:00
e40694b76b moved the preview creation code to a separate module...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-25 22:09:24 +03:00
6878422e4a preparing to move preview generation to lib/preview.js to be accessed it either inline or in a frok...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-24 17:19:48 +03:00
80d9153873 minor fix and started work on generating previews in a separate process...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-23 19:19:09 +03:00
eda41a4363 minor fix (nw.js#4876)
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-23 17:54:11 +03:00
dc07d95cd1 tweaks and fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-23 03:42:53 +03:00
5603acbd3b fixed a couple of minor bugs + added .options.elementShorthand to browse.js + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-23 01:17:18 +03:00
55ca190585 stumbled on erros in nw.js blocking moving the preview creation code to a seporate process...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-22 23:11:12 +03:00
d9f4c52f8c started work on preview generation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-22 21:10:37 +03:00
44cd484def some tweaking to make FF happy, still not done with lib/keyboard.js (not sure how)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-21 02:07:47 +03:00
f9390c9cc6 experienting almost done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-20 16:54:51 +03:00
670fcccf73 tweaking (starting to feel like it's too much effort to be worth it)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-20 03:16:07 +03:00
8f4480a12e tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-19 23:52:29 +03:00
c2d3126ade not iScroll zoom works, but still need to play around with sizing and aligning...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-19 22:54:56 +03:00
a8b4c263e5 tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-19 13:59:52 +03:00
82d441db26 started playing with iScroll as an alternative to native and main scroller for FF...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-18 20:23:31 +03:00
19dee8e43b added experimental scaling, still need to figure out how to manage origin...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-18 01:31:19 +03:00
a90c8d569a tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-17 18:24:00 +03:00
7ae3eb6e8f started experimenting with ribbon scrolling (problem: no way to hide scrollbars on FF)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-17 17:42:44 +03:00
1ddf71426c experienting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-17 14:48:22 +03:00
071e6686d9 moved curring image indicator handling to current image + some fixes and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-16 05:48:25 +03:00
ca1db18380 experimenting with pan rendering...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-16 04:49:52 +03:00
f24df1951a minor fix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-16 02:26:51 +03:00
779228cda9 cleanup and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-16 01:16:48 +03:00
856d212aed cleanup and refinement of ribbon pan handler (still not too happy with it)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-16 00:56:15 +03:00
e8c59924e9 minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-15 03:19:38 +03:00
be87c9831c minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-14 23:09:54 +03:00
b15afea304 refacoring browseActions(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-14 22:50:26 +03:00
c35be742e6 added experimental global titles to dialogs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-14 19:12:54 +03:00
adc3d1330b added __call__ protocol to actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-14 19:12:22 +03:00
d02c846890 cleanup and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-14 03:59:06 +03:00
14b04e9e4c done refactoring the action browser...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-14 01:46:43 +03:00
2e0f8d0cb4 reworking the action browser...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-13 23:44:09 +03:00
25d5fcfc60 cleanup and some CSS tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-13 02:45:54 +03:00
5d9bbcd713 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-13 01:09:58 +03:00
d960b02466 refactored listing of indexes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-13 00:59:56 +03:00
515863f94e now nested indexes are skipped...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-12 07:56:16 +03:00
6eb8701145 started reworking the loader...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-12 06:32:29 +03:00
2690654695 several fixes to files.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-11 15:28:56 +03:00
b6577a4e3b added comments to export/save dialog + some bugs squashed (in progress)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-11 06:59:56 +03:00
df378430c1 added ability to disable features...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-11 05:00:40 +03:00
8009e55246 forgot to cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-11 03:23:40 +03:00
197fcf3829 fixed a verry subtle issure with .config...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-11 03:22:39 +03:00
599d572f3a fixed a minor error...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-10 17:02:38 +03:00
63c14f7c4f notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-09 19:04:02 +03:00
bebfe3131e some refactoring + made browse-walk draw a dir in sync (fixed unstable ordering)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-09 18:30:16 +03:00
08cb529fc3 tweaking control.... not sure yet
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-09 17:25:26 +03:00
f281b3d09d tweaking and minor fixes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-09 04:59:36 +03:00
77f830d5ee experimenting with ui-control, still a stub...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-09 04:45:04 +03:00
15e8cad1c3 tweaking ui-control feature...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-09 03:32:46 +03:00
07a75228ce minor tweaking and fixups...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 23:11:44 +03:00
04e2665920 started work on direct control mode...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 22:39:32 +03:00
87bc647936 minor tweaking and fixups...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 19:03:04 +03:00
2acbdb70f0 tweakign the makeWditable(..) jQuery extension...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 18:51:26 +03:00
c987abac35 refactored external editor...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 18:27:59 +03:00
150d8edcf0 added build notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 16:13:19 +03:00
28708baf62 minor tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 15:58:22 +03:00
01fc68ae92 more refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 14:43:13 +03:00
d885072f80 minor refactoring and cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 14:30:35 +03:00
afe5a31d90 top drawer done...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-08 01:40:07 +03:00
c4cbbe3d15 now fading works...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-07 16:25:03 +03:00
3a5e8bca5a working on top drawer (partial)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-07 16:15:18 +03:00
3b9ca219c9 minor tweak...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-07 02:14:16 +03:00
be349ea90e reworked how .location is handled...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-07 02:02:42 +03:00
14d1b9410e added a 'single-image' workspace + added push/pop worspace actions...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-07 00:47:52 +03:00
58b1672ab8 refactoring, fixups and cleanup of features/filesystem...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-06 21:17:54 +03:00
abf9e04f63 now we restore unsaved changes when browsing save history...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-06 19:17:14 +03:00
7575935cf5 some docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-06 18:36:34 +03:00
d7b2d4193d minor cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-06 18:33:05 +03:00
d4fd8e504b added save comment manipulation action and better save management...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-06 18:32:00 +03:00
59a49fe68f cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-06 04:58:41 +03:00
18d57b2d27 cleanup and minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-05 18:29:40 +03:00
8ec1217dec now .savecomments should be saved to fs (needs more testing)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-05 18:19:24 +03:00
f94a3025fe added preliminary support for commenting saves + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2016-05-05 14:40:58 +03:00
834 changed files with 96287 additions and 48568 deletions

7
.editorconfig Normal file
View File

@ -0,0 +1,7 @@
root = true
[**]
indent_style = tab
tab_width = 4
charset = utf-8
end_of_line = lf

78
.github/workflows/viewer-build.yml vendored Normal file
View File

@ -0,0 +1,78 @@
name: Viewer build
on:
workflow_dispatch:
#push:
# branches: [ "master" ]
# tags: v**
release:
types: [published]
jobs:
build:
strategy:
matrix:
# XXX the mac build is broken for now -- running blind as I do
# not have a mac to test on, but I will at least fix the
# build...
#os: [ ubuntu-latest, windows-latest, macos-latest ]
os: [ ubuntu-latest, windows-latest ]
#os: [ macos-latest ]
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
working-directory: ./Viewer
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v6
- name: Windows-specific
if: ${{ matrix.os == 'windows-latest' }}
run: |
choco install wget zip
- name: Ubuntu-specific
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
# fixes an issue when running npx sandboxing...
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
- name: MacOS-specific
if: ${{ matrix.os == 'macos-latest' }}
run: |
brew install gnu-sed zip
echo PATH="$HOMEBREW_PREFIX/opt/zip/bin:$PATH" >> $GITHUB_ENV
#- name: Env
# run: |
# echo "VERSION=$(make version)" >> $GITHUB_ENV
- name: Pre-Build
run: make clean-all dev
- name: Build
run: make dist
- name: Release
env:
GH_TOKEN: ${{ github.token }}
run: |
# XXX need to create if this does not exist...
#gh release create release-latest -t "TEST"
gh release upload release-latest ./dist/*

15
.gitignore vendored Normal file
View File

@ -0,0 +1,15 @@
.gitignore
*.pem
*.sw[po]
*.py[co]
build
Session.vim
*.bak
*.dll
*.exe
*.pak
*.dat
*.zip
node_modules
targets
*.egg-info

159
Archive/README.md Normal file
View File

@ -0,0 +1,159 @@
# Photo archive template directory
The contents of this are copied to each archive drive root.
```shell
$ cp -R ./media PATH_TO_ARCHIVE_DRIVE
```
The scripts are stored with the archive for generational compatibility,
both building and documenting the structure the archive was created with.
## Scripts
```
media
├── img
│   └── my
│   └── work
│   ├── sync-flash.sh
│   ├── process-archive.sh
│   ├── compress-archive.sh
│   └── update-exif.sh
├── README.md
└── tree.sh
```
### `README.md`
A basic introductory description. This is here to introduce a new user
to the archive structure and basics.
### `sync-archive.sh`
Ingest media into the archive and prepare it for further steps in the
workflow
This script can be run interactively:
```shell
$ ./sync-archive.sh
```
This will:
- Create the directory structure
(see: [Archive directory structure](#archive-direcotry-structure))
- Copy and verify the contents of 1 or more external media
to the archive directory
- Prepare the archive for further work via `process-archive.sh`
- Compress the archive via `compress-archive.sh`
### `process-archive.sh`
Process the syncronized data for use with [ImageGrid.Viewer]()
```shell
$ ./process-archive.sh [FLAGS] PATH
```
This will:
- Extract previews from RAW files
- Extract metadata
- Build index
### `compress-archive.sh`
Compress archived files.
```shell
$ ./compress-archive.sh [FLAGS] PATH
```
This is designed to selectively compress uncompressed raw files (Sony) achiving +/- 2x compression factor.
By default this uses filesystem compression, supporting ntfs (on windows) and btrfs transparent native compression, but can be configured to use various archiving formats.
### `update-exif.sh`
Update EXIF of output previews from corresponding .psd / RAW files.
```shell
$ ./update-exif.sh [FLAGS] PATH
```
### `tree.sh`
Generte and check arcive file list.
This provides a basic and fast way to check high level tree consistency
against mostly humn-error.
## Archive directory structure
```
media
├── img
│   ├── my
│   │ └── work
│   │ ├── - 20240310 - shoot directory (multi flash card)
│   │ │ ├── 20240310.001
│   │ │ │ ├── ...
│   │ │ │ └── preview (RAW)
│   │ │ ├── 20240310.002
│   │ │ │ ├── ...
│   │ │ │ └── preview (RAW)
│   │ │ ├── ...
│   │ │ └── preview (RAW)
│   │ ├── - 20240310.001 - shoot directory (single flash card)
│   │ │ ├── ...
│   │ │ └── preview (RAW)
│   │ ├── 20240310 - shoot directory (fully sorted)
│   │ │ └── ...
│   │ └── ...
│   └── others
│   └── ...
├── video
│   └── ...
├── ...
└── tree.sh
```
Index root directory (single source media)
```
<date>.<index> - <info>/
```
Index root (multiple source media)
```
<date> - <info>/
```
Each synchronised media is stored in:
```
<date> - <info>/<date>.<index>/
```
Leading `"-"` indicates a not fully sorted shoot.
```
- <date> - <info>/
```
This is the default as created by `sync-flash.sh`, renaming (removing the leading `"- "`) should be done by the user.

5
Archive/media/README.md Normal file
View File

@ -0,0 +1,5 @@
# Base photo archive directory
This tree is created based on the specification from:
https://github.com/flynx/ImageGrid/blob/master/Archive/README.md

View File

@ -0,0 +1,110 @@
#!/usr/bin/env bash
# TODO make this runnable from anywhere...
# - prepend paths with './' only if local/relative
BASE_PATH=.
ARCH_BZIP2='bzip2 -v {}'
ARCH_GZIP='gzip -v {}'
# XXX should we cygpath -w all the inputs???
OS="$(uname -s)"
if [[ "$OS" =~ Linux.* ]] ; then
ARCH_FS='btrfs filesystem defragment -czstd -vf {}'
else
ARCH_FS='compact /c /exe:lzx {}'
fi
# default...
ARCH=$ARCH_FS
EXT=ARW
# HACK: this is here to avoid using windows find...
PATH=/bin:$PATH
printhelp(){
echo "Usage: `basename $0` [ARGUMENTS] [PATH]"
echo
echo "Arguments:"
echo " -h --help - print this help and exit."
echo
echo " -bz -bzip2 - use bzip2 to compress`[[ $ARCH == $ARCH_BZIP2 ]] && echo " (default)" || echo ""`."
echo " -gz -gzip - use gzip to compress`[[ $ARCH == $ARCH_GZIP ]] && echo " (default)" || echo ""`."
echo " -fs - use filesystem compression`[[ $ARCH == $ARCH_FS ]] && echo " (default)" || echo ""`."
echo
echo " -ext EXT - set file extension to compress (default: ${EXT})"
echo " NOTE: only one -ext is supported now".
echo
}
# process args...
while true ; do
case $1 in
-h|--help)
printhelp
exit
;;
# archivers...
-bz|--bzip2)
ARCH=$ARCH_BZIP2
shift
;;
-gz|--gzip)
ARCH=$ARCH_GZIP
shift
;;
-fs)
ARCH=$ARCH_FS
shift
;;
# extension to compress...
--ext)
EXT=$2
shift
shift
;;
*)
break
;;
esac
done
# get path...
if [ "$1" ] ; then
BASE_PATH=$1
fi
# check if archiver exists...
if ! which ${ARCH/ *} > /dev/null 2>&1 ; then
echo "$0: ${ARCH/ *}: command not found." >&2
exit 1
fi
# do the work...
#find "$BASE_PATH" -name \*.${EXT} -exec ${ARCH} \; \
# && echo done.
IFS=$'\n'
ARWs=($(find "$BASE_PATH" -name \*.${EXT}))
COUNT=${#ARWs[@]}
DONE=1
for f in "${ARWs[@]}" ; do
echo $f
printf 'Doing: %d/%d (%d%%)\r' $DONE $COUNT $((100 * $DONE / $COUNT))
eval "${ARCH/\{\}/\"$f\"}" > /dev/null
DONE=$((DONE + 1))
done
echo done.
# vim:set nowrap nospell :

View File

@ -0,0 +1,354 @@
#!/usr/bin/env bash
#
#######################################################################
#
# This does not care about actual topology of the archive directory
# that is passed it, it will find all the supported raw files and
# create the apropriate directories one level up.
#
#
#######################################################################
# CPU threads to keep free...
KEEP_FREE=2
THREADS=`cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l`
if [ $KEEP_FREE ] && (( THREADS > KEEP_FREE )) ; then
THREADS=$((THREADS - KEEP_FREE))
fi
# TODO make this runnable from anywhere...
# - prepend paths with './' only if local/relative
# HACK: this is here to avoid using windows find...
PATH=/bin:$PATH
printhelp(){
echo "Usage: `basename $0` [ARGUMENTS] [ARCHIVE_ROOT]"
echo
echo "Arguments:"
echo " -h --help - print this help and exit."
echo " --common-previews PATH"
echo " - build a single preview set at PATH."
echo " -c - build a single common path at ARCHIVE_ROOT;"
echo " this is a shorthand for: --common-path '.'."
echo " -l --low-res-previews"
echo " - generate low resolution previews and store"
echo " original previews in \"hi-res (RAW)\"."
echo
echo " --skip-archive - skip creating archive structure (use: exiftool)."
echo " --skip-previews - skip creating previews (use: vips)."
echo " --skip-cache - skip creating cache (use: buildcache)."
echo " --skip-all - same as setting all of the above."
echo
echo "NOTE: common preview path is relative to ARCHIVE_ROOT."
echo "NOTE: if no ARCHIVE_ROOT is passed then this will process all"
echo " directories in cwd."
# XXX this is how exiftool does things, need to figure out a workaround...
echo "NOTE: this expects the RAW files to be located at least one level"
echo " down the ARCHIVE_ROOT to make room for the metadata and preview"
echo " directories."
echo " If any raw files are found in the ARCHIVE_ROOT directly this"
echo " will create the preview and metadata directly one level above"
echo " that."
echo
}
# process args...
while true ; do
case $1 in
-h|--help)
printhelp
exit
;;
-c)
COMMON_PREVIEWS="."
shift
;;
--common-previews)
COMMON_PREVIEWS="${2}"
shift
shift
;;
-l|--low-res-previews)
LOW_RES_PREVIEWS=1
shift
;;
--skip-archive)
SKIP_ARCHIVE=yes
echo skipping making archive...
shift
;;
--skip-previews)
SKIP_PREVIEWS=yes
echo skipping making previews...
shift
;;
--skip-cache)
SKIP_CACHE=yes
echo skipping making cache...
shift
;;
--skip-all)
SKIP_ARCHIVE=yes
echo skipping making archive...
SKIP_PREVIEWS=yes
echo skipping making previews...
SKIP_CACHE=yes
echo skipping making cache...
shift
;;
*)
break
;;
esac
done
if [ -z "$1" ] ; then
ARCHIVE_ROOT="."
else
ARCHIVE_ROOT="$1"
fi
echo "Doing: \"$ARCHIVE_ROOT\""
if [ $LOW_RES_PREVIEWS ] ; then
RAW_PREVIEW_DIR="hi-res (RAW)"
else
RAW_PREVIEW_DIR="preview (RAW)"
fi
PROCESSED_PREVIEW_DIR="preview"
METADATA_DIR="metadata"
PROCESSED_PREVIEW_NAME="%-:1d/${PROCESSED_PREVIEW_DIR}/%f.jpg"
PREVIEW_NAME="%-:1d/${RAW_PREVIEW_DIR}/%f.jpg"
JSON_NAME="%-:1d/${METADATA_DIR}/%f.json"
# TODO do a version of this using exiv2...
# - to be more flexible...
# - check speed...
# - give the user more options...
# TODO use dcraw to extract/generate previews if we could not get any
# via exiftool
# dcraw -e $RAW
# - try and extract a preview
# - creates a file: $RAW-thumb.jpg
# dcraw -c $RAW | pnmtojpeg -quality=90 > $JPG
# - process raw and convert to jpeg (slow)
# TODO ignore raw images located in the ARCHIVE_ROOT directly...
# XXX need to also copy jpg originals to the preview dir (things that
# were shot in jpeg in-camera)...
# XXX need to prevent overwriting of unchanged exif data...
# when file exists??
# XXX add PSD metadata extraction...
# -execute '-FileModifyDate<DateTimeOriginal' -tagsfromfile @ \
# -srcfile "$PROCESSED_PREVIEW_NAME" -overwrite_original \
# XXX keep file dates...
if [ -z $SKIP_ARCHIVE ] ; then
exiftool -if '$jpgfromraw' -b -jpgfromraw -w "$PREVIEW_NAME" \
-execute -if '$previewimage' -b -previewimage -w "$PREVIEW_NAME" \
-execute '-FileModifyDate<DateTimeOriginal' -addtagsfromfile @ \
-srcfile "$PREVIEW_NAME" '-all>all' '-xmp' \
-overwrite_original \
-execute -j -G -w "$JSON_NAME" \
-common_args --ext jpg -r "./$ARCHIVE_ROOT" -progress
fi
SIZE=900
COMPRESSION=90
# XXX remove this in production...
PATH=$PATH:/mnt/d/Program\ Files/vips/bin/
# makepreview SIZE IN [OUT [SIZE [COMPRESSION]]]
#
# NOTE: SIZE and COMPRESSION will be set as follows (in order of priority):
# - explicit argument
# - global env var, if set
# - hardcoded default value
#
# TODO:
# - make this run in parallel
# - add option --mixed-previews and check preview size once per dir
# if it is not set...
#
# XXX cahnge global var names to be less generic...
makepreview(){
# arguments...
SIZE="$1"
IN="$2"
# output dir...
if [ -z $OUT ] ; then
# default...
# XXX is this correct??? (not generic enough...)
OUT="${IN/hi-res\ /preview }"
else
OUT="$3"
fi
# size...
if [ -z $4 ] ; then
if [ -z $SIZE ] ; then
# default...
SIZE=900
fi
else
SIZE=$4
fi
# compression...
if [ -z $5 ] ; then
if [ -z $COMPRESSION ] ; then
# default...
COMPRESSION=90
fi
else
COMPRESSION=$5
fi
# create preview dir if it does not already exist...
DIR="`dirname \"./${OUT}\"`"
if ! [ -e "./$DIR" ] ; then
mkdir -p "./$DIR"
fi
# create previews...
if ! [ -e "./${OUT}" ] ; then
# get source size...
W=$(vips im_header_int width "$IN")
H=$(vips im_header_int height "$IN")
# NOTE: vips appends nasty unprintable \r's to values, so we need to clean them out...
W=${W//[![:digit:]]/}
H=${H//[![:digit:]]/}
# calculate the factor...
FACTOR=$(echo "scale = 4; if($H > $W) s = $H else s = $W ; s / $SIZE" | bc -l)
# NOTE: bash does not do float comparisons so we cheat again ;)
TOO_SMALL=$(echo "if($FACTOR <= 1) s = 1 else s = 0 ; s" | bc -l)
# the input is smaller than target size, copy as-is...
if [[ $TOO_SMALL == 1 ]] ; then
echo "$IN: Too small, copying as-is..."
cp "./$IN" "./$OUT"
# shrink...
else
echo "($FACTOR): ${OUT}:${COMPRESSION}"
vips im_shrink "./$IN" "./${OUT}:${COMPRESSION}" $FACTOR $FACTOR 2> /dev/null
fi
touch -c -r "./$IN" "./${OUT}"
else
echo "File already exists: ${OUT}"
fi
}
export SIZE COMPRESSION
export -f makepreview
cd "./${ARCHIVE_ROOT}"
# make low-res previews...
if [ -z $SKIP_PREVIEWS ] || [ $LOW_RES_PREVIEWS ] ; then
#find . -path '*hi-res (RAW)/*.jpg' -exec bash -c 'makepreview "$SIZE" "{}"' \;
find . -path '*hi-res (RAW)/*.jpg' -print0 \
| xargs -0 -n 1 -P $THREADS -I {} bash -c 'makepreview "$SIZE" "{}"'
fi
# collect previews to one location...
# XXX test!!!
if ! [ -z "$COMMON_PREVIEWS" ] ; then
if ! [ -e "./$COMMON_PREVIEWS" ] ; then
mkdir -p "./$COMMON_PREVIEWS"
fi
#if [ -z $TOTAL ] ; then
# export TOTAL=`find . -path '*hi-res (RAW)/*.jpg' | wc -l`
#fi
# XXX BUG: this does not rename if target exists...
find . -type d \
-name 'preview (RAW)' \
-print \
-exec cp --backup=t -rl "{}" "./$COMMON_PREVIEWS" \;
#-exec rm -rf "./$d"
# cleanup filenames... (HACK)
# image.jpg -> image_3.jpg
# image.jpg.~3~ -> image_2.jpg
# image.jpg.~2~ -> image_1.jpg
# image.jpg.~1~ -> image.jpg
#
i=0
while true ; do
i=$((i + 1))
images=("$COMMON_PREVIEWS/preview (RAW)/"*.~$i~)
# break if no matches...
if ! [ -e "${images[0]}" ] ; then
break
fi
for img in "${images[@]}" ; do
# decrement...
# image.jpg.~(N)~ -> image_(N-1).jpg
mv "$img" "${img/.jpg.~${i}~/_$((i-1)).jpg}"
# next image does not exist...
# image.jpg -> image_(N).jpg
# image_0.jpg -> image.jpg
if ! [ -e "${img/.jpg.~${i}~/.jpg.~$((i+1))~}" ] ; then
mv "${img/.jpg.~${i}~/.jpg}" "${img/.jpg.~${i}~/_$((i)).jpg}"
mv "${img/.jpg.~${i}~/_0.jpg}" "${img/.jpg.~${i}~/.jpg}"
fi
done
done
fi
# build cache...
if [ -z $SKIP_CACHE ] ; then
# ig...
if ! [ -z `command -v ig` ] ; then
CACHE="ig init"
# buildcache (legacy)...
elif [ -z `command -v buildcache` ] ; then
# a little tweak to make build cache work...
export PYTHONIOENCODING=UTF-8
CACHE=buildcache
fi
#if [ -z $TOTAL ] ; then
# export TOTAL=`find . -path '*hi-res (RAW)/*.jpg' | wc -l`
#fi
if ! [ -z "$COMMON_PREVIEWS" ] && [ -e "./$COMMON_PREVIEWS/preview (RAW)" ] ; then
$CACHE "./$COMMON_PREVIEWS/preview (RAW)"
else
find . -type d -name 'preview (RAW)' -exec $CACHE "{}" \;
fi
fi
# vim:set nowrap nospell :

View File

@ -0,0 +1,401 @@
#!/usr/bin/env bash
# TODO add option to continue last sync...
# - need to store parsable log
# - settings
# - started/completed operations
# - all operations should be resumable
VERSION=1.0
DATE=`date +%Y%m%d`
COUNT=1
TITLE=""
RSYNC=rsync
#RSYNCFLAGS="-arptgoA --info=progress2,flist --human-readable"
RSYNCFLAGS="-arpt --info=progress2,flist --human-readable"
CP=cp
CPFLAGS=-Rpfv
# override default...
COPY=$RSYNC
COPYFLAGS=$RSYNCFLAGS
# NOTE: jdupes reports progress to stderr and output to stdout...
# XXX need to test if this exists...
VERIFY=jdupes
VERIFYFLAGS="-r -u -I"
DO_VERIFY=
COMPRESS=./compress-archive.sh
DO_COMPRESS=1
SNAPSHOT=../../../../snapshot.sh
# Config file to contain all the default settings...
# XXX not sure if this is a good idea...
# ...should we also check file sec?
##CONFIG=.sync-flash.rc
##if ! [ -z $CONFIG ] && [ -e ~/$CONFIG ] ; then
## # XXX executing an external file...
## source ~/$CONFIG
##fi
# base mount dir...
BASES=(
/Volumes
/cygdrive
/run/media/$USER
/mnt
~/mnt
)
i=0
for d in "${BASES[@]}"; do
# normalize...
BASES[$i]="${d%/}/"
# remove non-existant bases...
if ! [ -d "$d" ] ; then
unset BASES[$i]
elif [ -z $BASE ] ; then
BASE=$d
fi
i=$(( i + 1 ))
done
while true ; do
case "$1" in
-h|-help|--help)
echo "usage: `basename $0` FLAGS DRIVE [TITLE]"
echo
echo " -h|-help print this message and exit."
echo " -m|-multi single base, multiple sub dirs"
echo " for multiple flash cards in a"
echo " single shoot."
echo " -l|-last last flash card in set, run"
echo " process-archive.sh after copying."
echo " -b|-base BASE the base dir to look for drives in"
echo " default: $BASE"
echo " --rsync use rsync (default)"
echo " --cp use cp"
if ! [ -z $VERIFY ] ; then
echo " --verify toggle copy verification"
echo " default: `[[ $DO_VERIFY ]] && echo "on" || echo "off"`"
fi
if ! [ -z $COMPRESS ] ; then
echo " --compress toggle archive compression"
echo " default: `[[ $DO_COMPRESS ]] && echo "on" || echo "off"`"
fi
# notes...
echo
if ! [ -z $COMPRESS ] ; then
echo "NOTE: the index is fully usable during the compression stage"
fi
echo "NOTE: cp under Cygwin may messup permissions, use rsync."
echo
exit
;;
-i|--interactive)
INTERACTIVE=1
shift
;;
-m|-multi|--multi)
MULTI=1
shift
;;
-l|-last|--last)
LAST=1
shift
;;
-b|-base|--base)
BASE=$2
shift 2
;;
-cp|--cp)
COPY=cp
COPYFLAGS=-Rpfv
shift
break
;;
-rsync|--rsync)
COPY=$RSYNC
COPYFLAGS=$RSYNCFLAGS
shift
break
;;
-verify|--verify)
DO_VERIFY=`[[ $DO_VERIFY ]] && echo "" || echo 1`
shift
break
;;
-compress|--compress)
DO_COMPRESS=`[[ $DO_COMPRESS ]] && echo "" || echo 1`
shift
break
;;
*)
break
;;
esac
done
if ! [ -z "$2" ] ; then
TITLE=" - $2"
fi
BASE=${BASE%/}/
DRIVE=${1}
__BASE=$BASE
while true ; do
BASE=$__BASE
if [[ $INTERACTIVE || ! $DRIVE ]] ; then
INTERACTIVE=1
echo
echo "Select/toggle an option:"
if [ -z $MULTI_STARTED ] ; then
if [[ $MULTI ]] ; then
echo "0) Multiple flash cards"
else
echo "0) Single flash card"
fi
else
echo "0) Build after this flash card: `[[ $LAST ]] && echo "yes" || echo "no"`"
fi
echo "1) Directoy description is: \"$TITLE\""
echo "a-z|name) Type a drive letter, mount name in $BASE or path and start"
echo " (paths must start with \"/\", \"./\" or \"[A-Z]:\")"
if [[ $DRIVE ]] ; then
echo "Enter) Copy drive ${DRIVE}"
fi
echo "2) Build"
# dynamic options...
i=3
OPTION_VERIFICATION=
if ! [ -z $VERIFY ] ; then
echo "$i) Verification is `[[ $DO_VERIFY ]] && echo "on" || echo "off"`"
OPTION_VERIFICATION=$i
i=$(( i + 1 ))
fi
OPTION_COMPRESSION=
if ! [ -z $COMPRESS ] ; then
echo "$i) Compresion is `[[ $DO_COMPRESS ]] && echo "on" || echo "off"`"
OPTION_COMPRESSION=$i
i=$(( i + 1 ))
fi
echo "$i) Quit"
OPTION_QUIT=$i
read -ep ": " RES
# NOTE: we can't use letters here as they will shadow
# with drive letters...
case $RES in
# toggle multi mode...
0)
if [ -z $MULTI_STARTED ] ; then
MULTI=`[[ ! $MULTI ]] && echo 1 || echo ""`
else
LAST=`[[ ! $LAST ]] && echo 1 || echo ""`
fi
continue
;;
1)
read -i "${TITLE# - }" -ep "new description: " TITLE
TITLE=" - $TITLE"
continue
;;
# continue with same drive or ask again...
"")
if [[ ! $DRIVE ]] ; then
echo "ERR: need a drive to copy from, no defaults."
echo
continue
fi
DRIVE=$DRIVE
;;
2)
LAST=1
break
;;
# dynamic option handlers...
"$OPTION_VERIFICATION")
DO_VERIFY=`[[ ! $DO_VERIFY ]] && echo 1 || echo ""`
continue
;;
"$OPTION_COMPRESSION")
DO_COMPRESS=`[[ ! $DO_COMPRESS ]] && echo 1 || echo ""`
continue
;;
"$OPTION_QUIT")
exit
;;
# new drive letter...
*)
DRIVE=$RES
;;
esac
echo
fi
# explicit path given...
if [[ "${DRIVE::1}" == "/" ]] \
|| [[ "${DRIVE::2}" == "./" ]] \
|| [[ "${DRIVE::2}" =~ [a-zA-Z]: ]] \
&& [ -e "$DRIVE" ] ; then
BASE=
fi
# check path...
notfound=()
if ! [ -z $BASE ] ; then
for d in "${BASES[@]}"; do
if [ -e "${d}${DRIVE}" ] ; then
BASE=$d
break
else
notfound+=("${d}${DRIVE}")
fi
i=$(( i + 1 ))
done
fi
if ! [ -e "${BASE}${DRIVE}" ] ; then
if [ ${#notfound[@]} == 0 ] ; then
notfound=(${BASE}${DRIVE})
fi
echo
echo "ERR: Not found:"
for d in "${notfound[@]}" ; do
echo "ERR: ${d}"
done
echo "ERR: Nothing to copy."
echo
if [[ $INTERACTIVE || ! $DRIVE ]] ; then
continue
fi
exit
fi
# XXX do a real three digit count...
# single flash card...
SCOUNT=`printf "%03d" $COUNT`
if [ -z $MULTI ] ; then
DIR="${DATE}.${SCOUNT}${TITLE}"
while [ -e *"$DIR"* ] ; do
COUNT=$((COUNT+1))
SCOUNT=`printf "%03d" $COUNT`
DIR="${DATE}.${SCOUNT}${TITLE}"
done
BASE_DIR=$DIR
# multiple flash cards shoot...
else
BASE_DIR="${DATE}${TITLE}/"
DIR="${BASE_DIR}/${DATE}.${SCOUNT}"
# get next dir index...
while [ -e *"$DIR"* ] ; do
COUNT=$((COUNT+1))
SCOUNT=`printf "%03d" $COUNT`
DIR="${BASE_DIR}/${DATE}.${SCOUNT}"
done
fi
MULTI_STARTED=1
# normalize paths...
BASE_DIR="./- ${BASE_DIR}/"
DIR="./- $DIR/"
mkdir -vp "$DIR"
while true ; do
echo "Copying files from ${BASE}${DRIVE} (~`du -hs "${BASE}${DRIVE}" | cut -f 1`)..."
#echo "# $COPY $COPYFLAGS ${BASE}${DRIVE}/* "$DIR""
#echo "# 2> >(tee "${DIR}"/copy-err.log)"
$COPY $COPYFLAGS ${BASE}${DRIVE}/* "$DIR" \
2> >(tee "${DIR}"/copy-err.log)
# no errors -> remove log...
if ! [ -s "${DIR}/copy-err.log" ] ; then
rm -f "${DIR}"/copy-err.log
fi
echo "Copying files: done."
# verify copy...
# XXX make this more generic...
if [ $DO_VERIFY ] && ! [ -z $VERIFY ] ; then
echo "Verifying copied files..."
$VERIFY $VERIFYFLAGS ${BASE}${DRIVE}/* "$DIR" \
> >(tee "${DIR}"/verification-err.log)
if ! [ -s "${DIR}/verification-err.log" ] ; then
rm -f "${DIR}"/verification-err.log
else
echo
echo "WARNING: found mismatching files"
echo " (see: "${DIR}"/verification-err.log)"
echo
while true; do
read -ep "[R]etry, [c]ontinue, or Ctrl-C to cancel: " ACTION
ACTION=`echo ${ACTION,,} | xargs`
if [[ $ACTION =~ [rc] ]] \
|| [ -z $ACTION ] ; then
break
fi
echo "Unknown input: \"$ACTION\""
done
if [[ $ACTION == "c" ]] ; then
break
else
continue
fi
fi
echo "Verifification: done."
break
# no verification defined...
else
break
fi
done
# exit interactive mode...
if [[ ! $MULTI || ! $INTERACTIVE || $LAST ]] ; then
break
fi
done
if [[ $LAST ]] ; then
COMMON_FLAG=-c
fi
if [[ ! $MULTI || $LAST ]] ; then
echo "Building archive..."
./process-archive.sh $COMMON_FLAG "$BASE_DIR"
echo "Building archive: done."
fi
if [[ $DO_COMPRESS ]] ; then
echo "Compressing archive..."
${COMPRESS} "$BASE_DIR"
echo "Compressing archive: done."
fi
if ! [ -z "$SNAPSHOT" ] \
&& [ -e "$SNAPSHOT" ] ; then
"$SNAPSHOT"
fi
# XXX add report...
# XXX
echo "`basename "$0"`: done."
# vim:set nowrap :

View File

@ -0,0 +1,101 @@
#!/usr/bin/env bash
DIR=`pwd`
printhelp(){
echo "Usage: `basename $0` [ARGUMENTS] [PATH]"
echo
echo "Arguments:"
echo " -h --help - print this help and exit."
#echo " -p --psd - source metadad from psd file (default)."
#echo " -r --raw - source metadad from raw file."
echo
}
while true ; do
case $1 in
-h|--help)
printhelp
exit
;;
# XXX
-r|--raw)
shift
break
;;
# XXX
-p|--psd)
shift
break
;;
*)
break
;;
esac
done
# XXX TODO:
# - add support for multiple raw formats...
# - handle multiple hits -- preferably automatically...
# -
_exifup(){
local PREVIEW_DIR=$1
if ! [ -e "$PREVIEW_DIR" ] ; then
return 1
fi
cd "${PREVIEW_DIR}"
# XXX only jpg???
local imgs=(*.jpg)
# XXX
for img in "${imgs[@]}" ; do
local name="${img%.jpg}"
local targets=("$(find . -name "${name}.ARW")")
if [[ ${#targets[@]} > 1 ]] ; then
# XXX multiple candidates -> select one...
# XXX
echo '!!!!!!!!!!!'
fi
# XXX
exiv2 ex "${target[0]}"
mv "${target[0]%.ARW}.exv" .
exiv2 -k in "${img}"
rm -f *.exv
done
}
# XXX add support for getting exif from raw...
# ...this can lead to multiple hits, need a way to decide which
# one to use...
exifup(){
local PREVIEW_DIR=$1
if [ -e "$PREVIEW_DIR" ] ; then
echo doing: `pwd`
exiv2 ex *.psd 2> /dev/null
mv *.exv "$PREVIEW_DIR" 2> /dev/null
cd "$PREVIEW_DIR"
exiv2 -k in *.jpg 2> /dev/null
rm -f *.exv
cd ..
fi
true
}
IFS=$'\n'
if [[ $1 != "" ]] ; then
if ! [ -d "$1" ] ; then
echo "\"$1\": is not a directory."
exit 1
fi
DIRS=($(find "$1" -name 'preview'))
else
DIRS=($(find . -name 'preview'))
fi
for d in "${DIRS[@]}" ; do
cd "$d"
cd ..
exifup ./preview/
exifup ./hi-res/
cd "$DIR"
done

25
Archive/media/tree.sh Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
TREE=`date +"%Y%m%d-%H%M"`
if ! [ -d ./.tree ] ; then
echo creating .tree directory...
mkdir .tree
attrib +H .tree
fi
echo building current tree...
tree -a -s --sort name -I '.tree*' > ./.tree/$TREE
echo setting LAST/CURRENT states...
[ -e ./.tree/CURRENT ] && cp ./.tree/CURRENT ./.tree/LAST
cp ./.tree/$TREE ./.tree/CURRENT
if [ -e ./.tree/LAST ] ; then
echo diff...
# XXX
diff ./.tree/LAST ./.tree/CURRENT
fi

108
Archive/snapshot.sh Executable file
View File

@ -0,0 +1,108 @@
#!/usr/bin/bash
# XXX need:
# - protocol (command) to create archive root
# manually:
# - copy tree
# - run snapshot.sh
# script:
# XXX
# - protocol to create snapshots
# - sync-flash.sh ???
# - protocol to restore stuff -- simply copy???
# - protocol to fully delete something -- i.e. delete snapshots???
# - a way to list deleted files
# - a way to list available file versions
# - a way to restore specicifc file(s)
# - a way to maintain a set number of snapshots...
#
usage(){
echo "Usage:"
# XXX
echo " $(basename "$0")"
}
printHelp(){
usage
# XXX
}
# handle args...
for arg in "$@" ; do
case $arg in
-h|--help)
printHelp
exit
;;
esac
done
SNAPSHOT_DIR=.snapshots
SUBVOLUME_DIR=media
SNAPSHOT_COUNT=5
# run in script dir (not cwd)...
DIR=`dirname "$0"`
if ! [ -z "$DIR" ] ; then
cd "$DIR"
fi
# check if on btrfs filesystem...
# XXX also check if btrfs command is available...
if ! btrfs filesystem usage . > /dev/null 2>&1 ; then
exit
fi
# create ./media...
# XXX check if not a directory...
if ! [ -e "$SUBVOLUME_DIR" ] ; then
btrfs subvolume create "$SUBVOLUME_DIR"
# XXX build tree -- ImageGrid
# convert ./media to a subvolume...
elif ! [ "$(stat --format=%i "$SUBVOLUME_DIR")" == 256 ] ; then
mkdir bak
mv "$SUBVOLUME_DIR" bak/
btrfs subvolume create "$SUBVOLUME_DIR"
cp --archive --one-file-system --reflink=always \
./bak/"$SUBVOLUME_DIR"/{,.}* \
"$SUBVOLUME_DIR"/
fi
mkdir -p "$SNAPSHOT_DIR"
# XXX should this be more human readable???
# ...a date + number maybe???
SNAPSHOT=$((
$( ls "$SNAPSHOT_DIR/" \
| sort -n \
| tail -n 1 ) \
+ 1 ))
#btrfs subvolume snapshot -r "$SUBVOLUME_DIR" "${SNAPSHOT_DIR}/${SNAPSHOT}"
btrfs subvolume snapshot "$SUBVOLUME_DIR" "${SNAPSHOT_DIR}/${SNAPSHOT}"
if [[ $SNAPSHOT_COUNT =~ [0-9]* ]] \
&& [ "$SNAPSHOT_COUNT" != 0 ] ; then
SNAPSHOTS=($(\
ls "$SNAPSHOT_DIR/" \
| sort -n ))
remove=$(( ${#SNAPSHOTS[@]} - $SNAPSHOT_COUNT - 1 ))
while (( $remove >= 0 )) ; do
# XXX can we avoid sudo here???
# XXX is 'btrfs subvolume delete ...' the same as 'rm -rf ..'
#sudo btrfs subvolume delete -c ${SNAPSHOT_DIR}/${SNAPSHOTS[$remove]}
echo Removing snapshot: ${SNAPSHOT_DIR}/${SNAPSHOTS[$remove]}
rm -rf ${SNAPSHOT_DIR}/${SNAPSHOTS[$remove]}
remove=$(( $remove - 1 ))
done
fi
# vim:set nowrap nospell :

19
README.md Normal file
View File

@ -0,0 +1,19 @@
20220125:
About a year ago the project reached a stable state for most of my use-cases
thus development stagnated a bit and went into "if something goes wrong
write it down and continue on" mode.
During this period we've accumulated:
- quite a list of known bugs (mostly minor)
- quite a backlog of breaking updates of upstream software (electron)
In addition to this and a couple of other events I had trouble finding
motivation to dig in.
It is about time to schedule a big revision run to fix the accumulated
set of issues and implement several planned features.

9
Viewer/App.desktop.tpl Normal file
View File

@ -0,0 +1,9 @@
[Desktop Entry]
Name=$APP_NAME
Comment=$COMMENT
Categories=$CATEGORIES
Exec=$LAUNCHER
Icon=$ICON_PATH
Terminal=false
Type=Application
StartupNotify=true

27
Viewer/LICENSE Normal file
View File

@ -0,0 +1,27 @@
Copyright (c) 2009-2025, Alex A. Naanou
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

1006
Viewer/Makefile Normal file

File diff suppressed because it is too large Load Diff

144
Viewer/cfg/requirejs.js Normal file
View File

@ -0,0 +1,144 @@
/**********************************************************************
*
*
*
* This can be loaded from two contexts:
*
* - <script src=../>
* Needs the requirejs module already loaded...
* Example:
* <script src="js/require.min.js"/>
* <script src="cfg/requirejs.js"/>
*
* - require(..)
* This needs the root require(..) function...
* Example:
* // in the root module...
* require('./cfg/requirejs.js')(require)
*
*
**********************************************************/(function(){
var _requirejs = typeof(requirejs) != 'undefined' && requirejs
var setup = function(require, root){
var res = {}
var requirejs = _requirejs
var requirejs_cfg = {
// XXX under electron the path seems to be one level above the
// actual base URL, i.e. one level above the $0, hence the
// need to correct this...
baseUrl: root ?
root
: typeof(process) != 'undefined'
&& process.versions.electron ?
(require.main ?
require.main.filename.split(/[\\\/]/g).slice(0, -1).join('/')
: document.baseURI
// remove URL protocol...
.replace(/^[a-zA-Z]+:\/\/\/?/, '/')
// remove leading '/' on windows drives...
.replace(/^\/[a-zA-Z]:/, '')
.split(/[#&]/)[0].split(/[\\\/]/g).slice(0, -1).join('/'))
: '.',
// XXX this does not work on direct filesystem access...
//urlArgs: 'bust='+Date.now(),
paths: {
text: 'node_modules/requirejs-plugins/lib/text',
json: 'node_modules/requirejs-plugins/src/json',
//react: 'node_modules/react/dist/react-with-addons.min.js',
//'react-dom': 'node_modules/react-dom/dist/react-dom.min.js',
//'ext-lib/preact': './node_modules/preact/dist/preact.dev',
'lib/doc': 'node_modules/ig-doc/doc',
'lib/stoppable': 'node_modules/ig-stoppable/stoppable',
'lib/object': 'node_modules/ig-object/object',
'lib/types': 'node_modules/ig-types/',
'lib/actions': 'node_modules/ig-actions/actions',
'lib/features': 'node_modules/ig-features/features',
//'lib/keyboard': './node_modules/ig-keyboard/keyboard',
'object-run': 'node_modules/object-run/run',
'lib/argv': 'node_modules/ig-argv/argv',
'lib/walk': 'node_modules/generic-walk/walk',
},
map: {
'*': {
// back-refs
// ...these enable the npm modules reference each other in
// a cross-platform manner....
'ig-doc': 'lib/doc',
'ig-object': 'lib/object',
'ig-types': 'lib/types',
'ig-actions': 'lib/actions',
'ig-features': 'lib/features',
'ig-stoppable': 'lib/stoppable',
//'ig-keyboard': 'lib/keyboard',
'ig-argv': 'lib/argv',
'generic-walk': 'lib/walk',
},
},
packages: [
'lib/types',
],
}
// node contexts...
if(typeof(process) != 'undefined'){
var nodeRequire =
requirejs_cfg.nodeRequire =
global.nodeRequire
|| global.require
|| require
require('app-module-path')
.addPath('.')
requirejs =
global.requirejs =
res.requirejs =
global.requirejs
// XXX this breaks for electron version 15...
// the problem seems to be the "#!/..." at the start of r.js...
|| require('requirejs')
global.nodeRequire =
res.nodeRequire =
nodeRequire }
// browser contexts...
if(typeof(window) != 'undefined'){
window.nodeRequire =
window.nodeRequire
|| (typeof(require) != 'undefined'
&& require !== requirejs
&& require)
window.requirejs = requirejs }
requirejs.config(requirejs_cfg)
return res }
//---------------------------------------------------------------------
// Run/export the setup...
//
// we can get here from two contexts...
typeof(process) == 'undefined' ?
// browser's <script src="..">...
setup(require)
// node's require(..)
: (module.exports = setup)
/**********************************************************************
* vim:set ts=4 sw=4 : */ })()

View File

@ -1,398 +1,398 @@
.panel {
position: absolute;
display: inline-block;
min-width: 200px;
max-width: 450px;
font-size: 12px;
border: solid 2px silver;
border-radius: 4px;
background: white;
box-shadow: 5px 5px 30px -5px rgba(0, 0, 0, 0.5);
opacity: 0.95;
overflow: visible;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.panel summary,
.sub-panel summary {
padding-left: 3px;
background: silver
}
.panel summary::-webkit-details-marker,
.sub-panel summary::-webkit-details-marker {
color: gray;
}
.panel .close-button,
.sub-panel .close-button {
display: inline-block;
position: absolute;
right: 5px;
cursor: hand;
opacity: 0.5;
}
.panel .close-button:hover,
.sub-panel .close-button:hover {
font-weight: bold;
color: red;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5);
}
.sub-panel .close-button {
right: 8px;
}
.panel .close-button,
.sub-panel .close-button {
visibility: hidden;
}
.panel:hover>summary .close-button,
.sub-panel:hover .close-button {
visibility: visible;
}
.panel .panel-content {
display: block;
min-height: 15px;
}
.sub-panel,
.sub-panel button,
.sub-panel .state {
margin: 1px;
font-size: 11px;
border: solid 1px #aaa;
border-radius: 4px;
/* needed for dragging */
background: white;
}
.sub-panel {
display: block;
margin: 3px;
border: solid 1px silver;
box-shadow: none;
}
.sub-panel.blink {
box-shadow: 0px 0px 10px 0px rgba(255,0,0,1)
}
.sub-panel summary {
background: #ddd;
/*
background: white;
box-shadow: 0px 0px 50px -5px rgba(0, 0, 0, 0.4);
*/
}
.sub-panel .sub-panel-content {
margin: 10px;
/*
margin-left: 10px;
margin-right: 10px;
*/
}
.sub-panel button:active,
.sub-panel .state:active {
background: silver;
}
.side-panel {
position: absolute;
top: 0px;
height: 100%;
bottom: 0px;
min-width: 10px;
background: white;
opacity: 0.95;
box-shadow: 0px 0px 30px -5px rgba(0, 0, 0, 0.3);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.side-panel:not(:empty):hover:after {
position: absolute;
display: inline-block;
content: "Double click to toggle auto-hide (now: " attr(autohide) ")";
color: gray;
font-size: 10px;
padding: 5px;
bottom: 0px;
opacity: 0.5;
}
.side-panel.right:not(:empty):after {
right: 0px;
}
.side-panel[open],
.side-panel:not(:empty)[autohide=off],
.side-panel[autohide=on]:not(:empty):hover {
min-width: 200px;
}
.side-panel.left {
left: 0px;
border-right: solid 1px silver;
}
.side-panel.right {
right: 0px;
border-left: solid 1px silver;
}
.side-panel[autohide=on] .sub-panel {
display: none;
}
.side-panel[open] .sub-panel,
.side-panel[autohide=on]:hover .sub-panel {
display: block;
}
/* main controls */
.sub-panel .control {
white-space:nowrap;
}
.sub-panel .control .title {
display: inline-block;
width: 60px;
cursor: move;
}
.sub-panel .control .slider {
-webkit-appearance: none !important;
width: 150px;
height: 3px;
border: solid 1px #ccc;
border-radius: 2px;
background: white;
}
.sub-panel .control.at-default .slider {
}
.sub-panel .control .slider::-webkit-slider-thumb {
-webkit-appearance: none !important;
height: 13px;
width: 13px;
/*border: solid 1px gray;*/
border: solid 2px #aaa;
border-radius: 50%;
background: white;
box-shadow: 1px 1px 10px 0px rgba(0, 0, 0, 0.3);
}
.sub-panel .control.at-default .slider::-webkit-slider-thumb {
opacity: 0.5;
}
.sub-panel .control .value {
-webkit-appearance: none !important;
display: inline-block;
width: 25px;
text-align: right;
font-size: 11px;
margin-left: 5px;
margin-right: 5px;
border: none;
border-radius: 2px;
background: transparent;
}
.sub-panel .control input::-webkit-outer-spin-button,
.sub-panel .control input::-webkit-inner-spin-button {
-webkit-appearance: none !important;
}
.sub-panel .control .reset {
visibility: hidden;
border: solid 1px transparent;
}
.sub-panel .control:hover button.reset {
visibility: visible;
}
.sub-panel .control .reset:hover {
border: solid 1px silver;
}
/* Snapshots */
.sub-panel .state {
display: inline-block;
margin: 1px;
padding-left: 5px;
padding-right: 5px;
}
.sub-panel .state.ui-draggable-dragging {
box-shadow: 2px 2px 10px -2px rgba(0, 0, 0, 0.4);
}
.sub-panel .states {
min-height: 30px;
}
/* misc */
.sub-panel hr {
border: none;
border-top: solid 1px silver;
}
/* dark theme */
.dark .panel {
border: solid 2px #333;
background: black;
color: silver;
box-shadow: 3px 3px 30px 0px rgba(0, 0, 0, 0.5);
}
.dark .panel summary {
background: #333;
}
.dark .panel summary::-webkit-details-marker,
.dark .sub-panel summary::-webkit-details-marker {
color: #555;
}
.dark .sub-panel button,
.dark .sub-panel .state,
.dark .sub-panel {
border: solid 1px #333;
/* needed for dragging */
background: #080808;
color: #888;
}
.dark .sub-panel {
border: solid 1px #333;
}
.dark .sub-panel.blink {
box-shadow: 0px 0px 10px 0px rgba(255,255,0,1)
}
.dark .sub-panel summary {
background: #333;
color: silver;
}
.dark .sub-panel .state:active,
.dark .sub-panel button:active {
background: #222;
}
.dark .sub-panel .control .slider {
border: solid 1px #555;
background: black;
}
.dark .sub-panel .control.at-default .slider {
}
.dark .sub-panel .control .slider::-webkit-slider-thumb {
border: solid 2px #aaa;
background: black;
box-shadow: 1px 1px 10px 0px rgba(0, 0, 0, 0.5);
}
.dark .sub-panel .control.at-default .slider::-webkit-slider-thumb {
border: solid 1px gray;
opacity: 0.5;
}
.dark .sub-panel .control .value {
border: none;
background: transparent;
color: gray;
}
.dark .sub-panel .control .reset:hover {
border: solid 1px #333;
}
.dark .sub-panel hr {
border: none;
border-top: solid 1px #333;
}
.dark .side-panel {
background: black;
box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.5);
}
.dark .side-panel:not(:empty):hover:after {
color: gray;
}
.dark .side-panel.left {
border-right: solid 1px #333;
}
.dark .side-panel.right {
border-left: solid 1px #333;
}
/* gray theme */
.gray .panel {
border: solid 2px #444;
background: #333;
color: silver;
box-shadow: 3px 3px 30px 0px rgba(0, 0, 0, 0.5);
}
.gray .panel summary {
background: #444;
}
.gray .panel summary::-webkit-details-marker,
.gray .sub-panel summary::-webkit-details-marker {
color: #555;
}
.gray .sub-panel button,
.gray .sub-panel .state,
.gray .sub-panel {
border: solid 1px #444;
/* needed for dragging */
background: #333;
color: #888;
}
.gray .sub-panel {
border: solid 1px #454545;
}
.gray .sub-panel.blink {
box-shadow: 0px 0px 10px 0px rgba(255,255,0,1)
}
.gray .sub-panel summary {
background: #444;
color: silver;
}
.gray .sub-panel .state:active,
.gray .sub-panel button:active {
background: #444;
}
.gray .sub-panel .control .slider {
border: solid 1px #555;
background: #222;
}
.gray .sub-panel .control.at-default .slider {
}
.gray .sub-panel .control .slider::-webkit-slider-thumb {
border: solid 2px #aaa;
background: #333;
}
.gray .sub-panel .control.at-default .slider::-webkit-slider-thumb {
border: solid 1px gray;
opacity: 0.5;
}
.gray .sub-panel .control .value {
border: none;
background: transparent;
color: gray;
}
.gray .sub-panel .control .reset:hover {
border: solid 1px #444;
}
.gray .sub-panel hr {
border: none;
border-top: solid 1px #444;
}
.gray .side-panel {
background: #303030;
box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.4);
}
.gray .side-panel:not(:empty):hover:after {
color: silver;
}
.gray .side-panel.left {
border-right: solid 1px #444;
}
.gray .side-panel.right {
border-left: solid 1px #444;
}
.panel {
position: absolute;
display: inline-block;
min-width: 200px;
max-width: 450px;
font-size: 12px;
border: solid 2px silver;
border-radius: 4px;
background: white;
box-shadow: 5px 5px 30px -5px rgba(0, 0, 0, 0.5);
opacity: 0.95;
overflow: visible;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.panel summary,
.sub-panel summary {
padding-left: 3px;
background: silver
}
.panel summary::-webkit-details-marker,
.sub-panel summary::-webkit-details-marker {
color: gray;
}
.panel .close-button,
.sub-panel .close-button {
display: inline-block;
position: absolute;
right: 5px;
cursor: hand;
opacity: 0.5;
}
.panel .close-button:hover,
.sub-panel .close-button:hover {
font-weight: bold;
color: red;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5);
}
.sub-panel .close-button {
right: 8px;
}
.panel .close-button,
.sub-panel .close-button {
visibility: hidden;
}
.panel:hover>summary .close-button,
.sub-panel:hover .close-button {
visibility: visible;
}
.panel .panel-content {
display: block;
min-height: 15px;
}
.sub-panel,
.sub-panel button,
.sub-panel .state {
margin: 1px;
font-size: 11px;
border: solid 1px #aaa;
border-radius: 4px;
/* needed for dragging */
background: white;
}
.sub-panel {
display: block;
margin: 3px;
border: solid 1px silver;
box-shadow: none;
}
.sub-panel.blink {
box-shadow: 0px 0px 10px 0px rgba(255,0,0,1)
}
.sub-panel summary {
background: #ddd;
/*
background: white;
box-shadow: 0px 0px 50px -5px rgba(0, 0, 0, 0.4);
*/
}
.sub-panel .sub-panel-content {
margin: 10px;
/*
margin-left: 10px;
margin-right: 10px;
*/
}
.sub-panel button:active,
.sub-panel .state:active {
background: silver;
}
.side-panel {
position: absolute;
top: 0px;
height: 100%;
bottom: 0px;
min-width: 10px;
background: white;
opacity: 0.95;
box-shadow: 0px 0px 30px -5px rgba(0, 0, 0, 0.3);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.side-panel:not(:empty):hover:after {
position: absolute;
display: inline-block;
content: "Double click to toggle auto-hide (now: " attr(autohide) ")";
color: gray;
font-size: 10px;
padding: 5px;
bottom: 0px;
opacity: 0.5;
}
.side-panel.right:not(:empty):after {
right: 0px;
}
.side-panel[open],
.side-panel:not(:empty)[autohide=off],
.side-panel[autohide=on]:not(:empty):hover {
min-width: 200px;
}
.side-panel.left {
left: 0px;
border-right: solid 1px silver;
}
.side-panel.right {
right: 0px;
border-left: solid 1px silver;
}
.side-panel[autohide=on] .sub-panel {
display: none;
}
.side-panel[open] .sub-panel,
.side-panel[autohide=on]:hover .sub-panel {
display: block;
}
/* main controls */
.sub-panel .control {
white-space:nowrap;
}
.sub-panel .control .title {
display: inline-block;
width: 60px;
cursor: move;
}
.sub-panel .control .slider {
-webkit-appearance: none !important;
width: 150px;
height: 3px;
border: solid 1px #ccc;
border-radius: 2px;
background: white;
}
.sub-panel .control.at-default .slider {
}
.sub-panel .control .slider::-webkit-slider-thumb {
-webkit-appearance: none !important;
height: 13px;
width: 13px;
/*border: solid 1px gray;*/
border: solid 2px #aaa;
border-radius: 50%;
background: white;
box-shadow: 1px 1px 10px 0px rgba(0, 0, 0, 0.3);
}
.sub-panel .control.at-default .slider::-webkit-slider-thumb {
opacity: 0.5;
}
.sub-panel .control .value {
-webkit-appearance: none !important;
display: inline-block;
width: 25px;
text-align: right;
font-size: 11px;
margin-left: 5px;
margin-right: 5px;
border: none;
border-radius: 2px;
background: transparent;
}
.sub-panel .control input::-webkit-outer-spin-button,
.sub-panel .control input::-webkit-inner-spin-button {
-webkit-appearance: none !important;
}
.sub-panel .control .reset {
visibility: hidden;
border: solid 1px transparent;
}
.sub-panel .control:hover button.reset {
visibility: visible;
}
.sub-panel .control .reset:hover {
border: solid 1px silver;
}
/* Snapshots */
.sub-panel .state {
display: inline-block;
margin: 1px;
padding-left: 5px;
padding-right: 5px;
}
.sub-panel .state.ui-draggable-dragging {
box-shadow: 2px 2px 10px -2px rgba(0, 0, 0, 0.4);
}
.sub-panel .states {
min-height: 30px;
}
/* misc */
.sub-panel hr {
border: none;
border-top: solid 1px silver;
}
/* dark theme */
.dark .panel {
border: solid 2px #333;
background: black;
color: silver;
box-shadow: 3px 3px 30px 0px rgba(0, 0, 0, 0.5);
}
.dark .panel summary {
background: #333;
}
.dark .panel summary::-webkit-details-marker,
.dark .sub-panel summary::-webkit-details-marker {
color: #555;
}
.dark .sub-panel button,
.dark .sub-panel .state,
.dark .sub-panel {
border: solid 1px #333;
/* needed for dragging */
background: #080808;
color: #888;
}
.dark .sub-panel {
border: solid 1px #333;
}
.dark .sub-panel.blink {
box-shadow: 0px 0px 10px 0px rgba(255,255,0,1)
}
.dark .sub-panel summary {
background: #333;
color: silver;
}
.dark .sub-panel .state:active,
.dark .sub-panel button:active {
background: #222;
}
.dark .sub-panel .control .slider {
border: solid 1px #555;
background: black;
}
.dark .sub-panel .control.at-default .slider {
}
.dark .sub-panel .control .slider::-webkit-slider-thumb {
border: solid 2px #aaa;
background: black;
box-shadow: 1px 1px 10px 0px rgba(0, 0, 0, 0.5);
}
.dark .sub-panel .control.at-default .slider::-webkit-slider-thumb {
border: solid 1px gray;
opacity: 0.5;
}
.dark .sub-panel .control .value {
border: none;
background: transparent;
color: gray;
}
.dark .sub-panel .control .reset:hover {
border: solid 1px #333;
}
.dark .sub-panel hr {
border: none;
border-top: solid 1px #333;
}
.dark .side-panel {
background: black;
box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.5);
}
.dark .side-panel:not(:empty):hover:after {
color: gray;
}
.dark .side-panel.left {
border-right: solid 1px #333;
}
.dark .side-panel.right {
border-left: solid 1px #333;
}
/* gray theme */
.gray .panel {
border: solid 2px #444;
background: #333;
color: silver;
box-shadow: 3px 3px 30px 0px rgba(0, 0, 0, 0.5);
}
.gray .panel summary {
background: #444;
}
.gray .panel summary::-webkit-details-marker,
.gray .sub-panel summary::-webkit-details-marker {
color: #555;
}
.gray .sub-panel button,
.gray .sub-panel .state,
.gray .sub-panel {
border: solid 1px #444;
/* needed for dragging */
background: #333;
color: #888;
}
.gray .sub-panel {
border: solid 1px #454545;
}
.gray .sub-panel.blink {
box-shadow: 0px 0px 10px 0px rgba(255,255,0,1)
}
.gray .sub-panel summary {
background: #444;
color: silver;
}
.gray .sub-panel .state:active,
.gray .sub-panel button:active {
background: #444;
}
.gray .sub-panel .control .slider {
border: solid 1px #555;
background: #222;
}
.gray .sub-panel .control.at-default .slider {
}
.gray .sub-panel .control .slider::-webkit-slider-thumb {
border: solid 2px #aaa;
background: #333;
}
.gray .sub-panel .control.at-default .slider::-webkit-slider-thumb {
border: solid 1px gray;
opacity: 0.5;
}
.gray .sub-panel .control .value {
border: none;
background: transparent;
color: gray;
}
.gray .sub-panel .control .reset:hover {
border: solid 1px #444;
}
.gray .sub-panel hr {
border: none;
border-top: solid 1px #444;
}
.gray .side-panel {
background: #303030;
box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.4);
}
.gray .side-panel:not(:empty):hover:after {
color: silver;
}
.gray .side-panel.left {
border-right: solid 1px #444;
}
.gray .side-panel.right {
border-left: solid 1px #444;
}

637
Viewer/css/experimenting.css Executable file
View File

@ -0,0 +1,637 @@
/**********************************************************************
*
* This module is intended for quick and dirty tests and CSS experiments
*
* For production move the code from here to a more appropriate location
*
*
**********************************************************************/
body {
margin: 0;
/* this will prevent odd blur effects when blurring out specific
elements... */
background: black;
}
/* show image gid... */
.visible-gid .image:after {
content: attr(gid);
display: block;
position: relative;
color: red;
margin: 10px;
width: 20px;
height: 20px;
text-align: center;
border: solid 2px red;
border-radius: 50%;
background: black;
}
/*
.image.current {
border-color: red;
}
*/
.shadow {
margin: 0px;
z-index: 4000;
}
.ui-bounds-indicators {
z-index: 5000;
}
.viewer:not(.no-transitions) .range-offscreen-indicator:not(.no-transitions) {
transition: all 0.1s linear;
}
/* basic animation... */
.viewer:not(.no-transitions) {
-webkit-transition: background-color 0.8s ease;
-moz-transition: background-color 0.8s ease;
-ms-transition: background-color 0.8s ease;
-o-transition: background-color 0.8s ease;
transition: background-color 0.8s ease;
}
.viewer:not(.no-transitions) .ribbon-set:not(.no-transitions) {
-webkit-transition: all 0.1s linear, transform 0.1s linear;
-moz-transition: all 0.1s linear, transform 0.1s linear;
-ms-transition: all 0.1s linear, transform 0.1s linear;
-o-transition: all 0.1s linear, transform 0.1s linear;
transition: all 0.1s linear, transform 0.1s linear;
}
.viewer:not(.no-transitions) .ribbon-locator:not(.no-transitions) {
-webkit-transition: all 0.1s linear, transform 0.1s linear;
-moz-transition: all 0.1s linear, transform 0.1s linear;
-ms-transition: all 0.1s linear, transform 0.1s linear;
-o-transition: all 0.1s linear, transform 0.1s linear;
transition: all 0.1s linear, transform 0.1s linear;
}
.viewer:not(.no-transitions) .ribbon:not(.no-transitions) {
-webkit-transition: all 0.1s ease-out;
-moz-transition: all 0.1s ease-out;
-ms-transition: all 0.1s ease-out;
-o-transition: all 0.1s ease-out;
transition: all 0.1s ease-out;
}
/* XXX not 100% sure about this...
*/
:not(.no-transitions) .current-marker:not(.no-transitions) {
-webkit-transition: transform 0.1s ease-out;
-moz-transition: transform 0.1s ease-out;
-ms-transition: transform 0.1s ease-out;
-o-transition: transform 0.1s ease-out;
transition: transform 0.1s ease-out;
}
/* XXX should this be !important */
.no-transitions {
-webkit-transition: none !important;
-moz-transition: none !important;
-ms-transition: none !important;
-o-transition: none !important;
transition: none !important;
}
/* XXX think of a way not to use !important */
.single-image-mode .ribbon,
.single-image-mode .ribbon-set {
-webkit-transition: none !important;
-moz-transition: none !important;
-ms-transition: none !important;
-o-transition: none !important;
transition: none !important;
}
/* TEST: this is mostly speed limited... */
.ribbon {
box-shadow: 5px 5px 50px -5px rgba(0, 0, 0, 0.2);
-webkit-transition: box-shadow 0.8s ease;
-moz-transition: box-shadow 0.8s ease;
-ms-transition: box-shadow 0.8s ease;
-o-transition: box-shadow 0.8s ease;
transition: box-shadow 0.8s ease;
}
.current.ribbon {
box-shadow: 5px 5px 60px -5px rgba(0, 0, 0, 0.3);
}
.single-image-mode .ribbon {
box-shadow: none;
}
.viewer .lock-clicks {
position: absolute;
display: block;
width: 100%;
height: 100%;
background: transparent;
cursor: auto;
z-index: 10000;
}
/*********************************************************************/
.image-bw {
/*filter: saturate(0);*/
filter: grayscale(1);
}
.image-show-shadows {
filter: contrast(0.8) brightness(3) contrast(1.5);
}
.image-show-highlights {
filter: contrast(0.8) brightness(0.6) contrast(1.2);
}
.image-edge-detect {
filter: url(#EdgeDetect);
/* XXX this does not work in chrome + local file... */
/*filter: url(filters.svg#EdgeDetect);*/
}
.image-shadows-and-highlights {
filter: url(#ShadowsAndHilights);
}
.image-gamma-shadows {
filter: url(#GammaShadows);
}
/*********************************************************************/
/* scrollbar setup... */
.browse-widget ::-webkit-scrollbar {
width: 10px;
height: 10px;
}
.browse-widget * {
scrollbar-width: thin;
scrollbar-color: auto;
}
.browse-widget ::-webkit-scrollbar-button {
display: none;
}
.browse-widget ::-webkit-scrollbar-track {
}
.browse-widget ::-webkit-scrollbar-track-piece {
background: transparent;
}
.browse-widget ::-webkit-scrollbar-track-piece {
background: rgba(0, 0, 0, 0.05);
}
.browse-widget ::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.15);
}
.browse-widget ::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.3);
}
.browse-widget ::-webkit-scrollbar-corner {
}
.browse-widget ::-webkit-resizer {
}
.keyboard-shortcut {
text-decoration: none !important;
position: relative;
display: inline-block;
}
.keyboard-shortcut:after {
content: "";
position: absolute;
display: block;
width: 100%;
margin-top: -0.2em;
border-top: solid 0.1em silver;
opacity: 1;
}
.browse-widget.cloud-view .list .item {
font-size: small;
}
/* browse pinned items... */
.browse-widget .list .item:not(.pinned) .pin-set {
display: none;
}
.browse-widget .list .item.pinned .pin-unset {
display: none;
}
.browse-widget .list .item .sort-handle {
display: inline-block;
float: left;
padding-left: 0.2em;
padding-right: 0.5em;
opacity: 0.2;
}
/*
.browse-widget .list .item.pinned + :not(.pinned) {
border-top: solid 1px rgba(255, 255, 255, 0.3);
}
*/
.browse-widget .list .pinned-separator:first-child,
.browse-widget .list .pinned-separator:last-child {
display: none;
}
/* Metadata viewer */
.item-value-view .text:first-child,
.browse-widget.table-view .list .item .text:first-child {
width: 50%;
font-weight: bold;
}
.item-value-view .text:nth-child(2),
.browse-widget.table-view .list .item .text:nth-child(2) {
font-style: italic;
-moz-user-select: auto;
-webkit-user-select: auto;
-o-user-select: auto;
-ms-user-select: auto;
user-select: auto;
cursor: text;
}
/* Collection list */
.browse-widget.collection-list .list .item .text[cropped]:after {
content: "(cropped)";
margin-left: 5px;
opacity: 0.5;
font-style: italic;
}
.browse-widget.collection-list .list .item .text[unsaved]:after {
content: "*";
margin-left: 0px;
opacity: 0.5;
font-style: italic;
}
.browse-widget.collection-list .list .item .text[unsaved][cropped]:after {
content: "* (cropped)";
margin-left: 0px;
opacity: 0.5;
font-style: italic;
}
/* Feature list */
.browse-widget.feature-list .list .item[root="true"] .text:after {
content: "*";
margin-left: 0px;
opacity: 0.5;
font-style: italic;
}
/* External Editor List */
.browse-widget.editor-list .list .item:first-child .text:after {
content: "(primary)";
margin-left: 5px;
opacity: 0.5;
font-style: italic;
}
/* XXX this is ugly -- use a class... */
.browse-widget.editor-list .list .item:first-child .button:nth-child(4) {
opacity: 0.1;
}
.browse-widget.editor-list .list .item:nth-child(2):not(:last-child) .text:after {
content: "(secondary)";
margin-left: 5px;
opacity: 0.5;
font-style: italic;
}
/* XXX this is ugly -- use a class... */
.browse-widget.editor-list .list .item:nth-child(2) .button:nth-child(3) {
opacity: 0.1;
}
/* slideshow interval list... */
.browse-widget.tail-action .list .item:last-child {
margin-top: 0.2em;
border-top: solid 1px rgba(255,255,255, 0.2);
}
.browse-widget.tail-action .list .item:last-child .text {
font-style: italic;
}
.browse-widget.tail-action .list .item:last-child .button {
/*display: none;*/
}
/* do not show top border if after another action or separator... */
.browse-widget .list>.warn {
background-color: yellow !important;
color: red !important;
font-weight: bolder !important;
}
/* Dialog highlight experiment... */
.browse-widget {
border-bottom: solid 7px rgba(100, 100, 100, 0.5);
}
/*
.light .browse-widget {
border-bottom: solid 7px rgba(100, 100, 100, 0.5);
}
.dark .browse-widget {
border-bottom: solid 7px rgba(100, 100, 100, 0.5);
}
*/
.browse-widget.file-browser {
border-bottom: solid 7px rgba(255, 255, 0, 0.5);
}
/*
.light .browse-widget.file-browser {
border-bottom: solid 7px rgba(255, 255, 0, 0.5);
}
.dark .browse-widget.file-browser {
border-bottom: solid 7px rgba(255, 255, 0, 0.5);
}
*/
/* XXX not sure about these... */
.browse-widget.save-history,
.browse-widget.location-history {
border-bottom: solid 7px rgba(0, 0, 255, 0.2);
}
/* XXX experimental key mappings... */
.browse-widget.show-keys .list .item:after {
display: inline;
position: relative;
content: attr(keys);
float: right;
margin-left: 0.5em;
margin-right: 0.5em;
opacity: 0.3;
font-style: italic;
}
.browse-widget.show-keys .list .item.disabled:after {
opacity: 0.5;
}
.browse-widget.show-keys .list .item:hover:after {
opacity: 0.5;
}
.browse-widget.show-keys .list .item.disabled:hover:after {
opacity: 1;
}
/* make buttons a bit different in action browser... */
.browse-widget.browse-actions .list .button {
background-color: rgba(0, 0, 0, 0.12);
}
.dark .browse-widget.browse-actions .list .button {
background-color: rgba(255, 255, 255, 0.2);
}
/* key binding editor... */
.browse-widget.key-bindings .list .item:not(.selected):not(.mode):nth-child(even) {
background: rgba(0, 0, 0, 0.03);
}
.browse-widget.key-bindings .list .item .button {
background-color: rgba(0, 0, 0, 0.12);
}
.browse-widget.key-bindings .list>.drop-list .text:first-child {
font-weight: bold;
font-style: italic;
}
.browse-widget.key-bindings .list>.special-action .text:first-child {
font-style: italic;
font-weight: bold;
}
.browse-widget.key-bindings .list>.info {
font-style: italic;
}
.browse-widget.key-bindings .list .item .text:not(:first-child) {
display: inline;
position: relative;
float: right;
margin-left: 1em;
margin-right: 1em;
opacity: 0.8;
font-style: italic;
}
/* NOTE: the last element is a space... */
.browse-widget.key-bindings.browse .list .item .text:last-child {
margin-right: 0em;
}
/* key doc... */
.browse-widget.key-bindings .list>.key[doc]:after {
display: inline;
content: " -- " attr(doc);
font-style: italic;
opacity: 0.5;
margin-left: 0.5em;
}
.browse-widget.key-bindings.edit .list>.key.non-action:before {
display: inline;
content: " (non-action) ";
opacity: 0.5;
margin-left: 0.5em;
float: none;
}
.browse-widget.key-bindings .list>.new {
font-style: italic;
}
.browse-widget.key-bindings .list>.new:not(.selected) {
opacity: 0.3;
}
.browse-widget.key-bindings .list>.new.selected {
}
/* dark theme... */
.dark .browse-widget.key-bindings .list .item:not(.selected):not(.mode):nth-child(even) {
background: rgba(255, 255, 255, 0.03);
}
/* light theme... */
.light .browse-widget.key-bindings .list>.key[doc]:after {
opacity: 0.7;
}
/* help... */
.help-dialog {
max-width: 80vw;
max-height: 80vh;
overflow: auto;
padding: 1em;
padding-bottom: 2em;
background: white;
}
/* scrollbar setup... */
.help-dialog::-webkit-scrollbar {
width: 10px;
height: 10px;
}
.help-dialog::-webkit-scrollbar-button {
display: none;
}
.help-dialog::-webkit-scrollbar-track {
}
.help-dialog::-webkit-scrollbar-track-piece {
background: transparent;
}
.help-dialog::-webkit-scrollbar-track-piece {
background: rgba(0, 0, 0, 0.05);
}
.help-dialog::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.15);
}
.help-dialog::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.3);
}
.help-dialog::-webkit-scrollbar-corner {
}
.help-dialog::-webkit-resizer {
}
.help-dialog .comment {
color: gray;
font-style: italic;
}
.help-dialog .warning {
color: blue;
background: yellow;
}
/* metadata view */
/* remove preview text and center image... */
.metadata-view .item.index {
text-align: center;
}
.metadata-view .item.preview {
text-align: center;
opacity: 1;
}
.metadata-view .index .text,
.metadata-view .preview .text {
float: initial;
}
.metadata-view .index .text:first-child,
.metadata-view .preview .text:first-child {
left: 50%;
display: none;
}
.metadata-view .preview.image {
border: rgba(200, 200, 200, 0.3) 1px solid;
visibility: visible !important;
}
.metadata-view .text+.text {
font-style: italic;
}
.metadata-view .text+.text+.text {
margin-left: 1em;
}
.metadata-view small span {
opacity: 0.7;
}
.metadata-view small small {
opacity: 0.5;
}
/* image gaps */
.image:not(:first-of-type) {
margin-left: var(--image-gap-size);
}
/* image gap indicator */
/* XXX not sure we need this yet...
.image:before {
content: var(--image-gap-text);
display: block;
position: absolute;
bottom: 0.5em;
left: 0px;
background:gray;
border-radius: 1em;
padding: 0.2em 0.5em;
transform: translate(-50%);
}
*/
/* DEBUG stuff... */
.container-center {
position: absolute;
top: 50%;
left: 50%;
width: 10px;
height: 10px;
border-top: solid 1px black;
border-left: solid 1px black;
}
.container-center:after {
content: "";
position: absolute;
top: -11px;
left: -11px;
width: 10px;
height: 10px;
border-top: none;
border-left: none;
border-bottom: solid 1px black;
border-right: solid 1px black;
}
.point {
position: absolute;
width: 4px;
height: 4px;
border: solid 1px blue;
margin-top: -2px;
margin-left: -2px;
background: yellow;
transition-origin: 50% 50%;
z-index: 9999;
}
.point {
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
transition: all 0.2s linear;
}
/* DEBUG end */

32
Viewer/css/filters.svg Executable file
View File

@ -0,0 +1,32 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="0%" height="0%" class="svg-filters">
<!-- edge detect -->
<filter id="EdgeDetect">
<!--feConvolveMatrix order="3 3" preserveAlpha="true" divisor="1" bias="-1.4" kernelMatrix="-1 -1 -1 -1 9 -1 -1 -1 -1"/-->
<feConvolveMatrix order="3 3" preserveAlpha="true" kernelMatrix="-1 -1 -1 -1 8 -1 -1 -1 -1"/>
</filter>
<!-- shadows and highlights
gradient map: [blue 0-5% black 93-96% white]
via: https://justcode.today/filters/ -->
<filter id="ShadowsAndHilights">
<fecolormatrix type="saturate" values="0" />
<feComponentTransfer color-interpolation-filters="sRGB" result="cutoff">
<feFuncR type="table" tableValues="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.33,0.67,1,1,1,1"/>
<feFuncG type="table" tableValues="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.33,0.67,1,1,1,1"/>
<feFuncB type="table" tableValues="1,0.8,0.6,0.4,0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.33,0.67,1,1,1,1"/>
</feComponentTransfer>
<feBlend mode="difference" in="SourceGraphic" in2="cutoff"/>
</filter>
<!-- gamma shadows -->
<filter id="GammaShadows">
<feComponentTransfer color-interpolation-filters="sRGB">
<feFuncR type="gamma" exponent="0.3" amplitude="1.0" offset="0"></feFuncR>
<feFuncG type="gamma" exponent="0.3" amplitude="1.0" offset="0"></feFuncG>
<feFuncB type="gamma" exponent="0.3" amplitude="1.0" offset="0"></feFuncB>
</feComponentTransfer>
</filter>
</svg>
<!-- vim:set sw=4 ts=4 : -->

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,230 +1,273 @@
/**********************************************************************
*
*
**********************************************************************/
/* Open Sans
* - line spacing a bit too large...
*/
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-Regular.ttf)
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-Bold.ttf)
font-weight: bold;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-Italic.ttf)
font-style: italic;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-BoldItalic.ttf)
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-ExtraBold.ttf)
font-weight: bolder;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf)
font-weight: bolder;
font-style: italic;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-Light.ttf)
font-weight: lighter;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-LightItalic.ttf)
font-weight: lighter;
font-style: italic;
}
/* Work Sans
* - does not have an explicit italic face but seems to look ok when
* slanted programmatically...
*/
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Thin.ttf);
font-weight: 100;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-ExtraLight.ttf);
font-weight: 200;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Light.ttf);
font-weight: 300;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Regular.ttf);
font-weight: 400;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Medium.ttf);
font-weight: 500;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-SemiBold.ttf);
font-weight: 600;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Bold.ttf);
font-weight: 700;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-ExtraBold.ttf);
font-weight: 800;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Black.ttf);
font-weight: 900;
}
/* Source Sans Pro */
/*
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-Regular.ttf)
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-Bold.ttf)
font-weight: bold;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-Italic.ttf)
font-style: italic;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-BoldItalic.ttf)
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-ExtraBold.ttf)
font-weight: bolder;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-ExtraBoldItalic.ttf)
font-weight: bolder;
font-style: italic;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-Light.ttf)
font-weight: lighter;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-LightItalic.ttf)
font-weight: lighter;
font-style: italic;
}
*/
/* Arimo
* - bold face a bit too narrow
*/
/*
@font-face {
font-family: Arimo;
src: url(fonts/Arimo/Arimo-Regular.ttf)
}
@font-face {
font-family: Arimo;
src: url(fonts/Arimo/Arimo-Bold.ttf)
font-weight: bold;
}
@font-face {
font-family: Arimo;
src: url(fonts/Arimo/Arimo-Italic.ttf)
font-style: italic;
}
@font-face {
font-family: Arimo;
src: url(fonts/Arimo/Arimo-BoldItalic.ttf)
font-weight: bold;
font-style: italic;
}
*/
/* Roboto */
/*
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-Regular.ttf)
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-Bold.ttf)
font-weight: bold;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-Italic.ttf)
font-style: italic;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-BoldItalic.ttf)
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-ExtraBold.ttf)
font-weight: bolder;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-ExtraBoldItalic.ttf)
font-weight: bolder;
font-style: italic;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-Light.ttf)
font-weight: lighter;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-LightItalic.ttf)
font-weight: lighter;
font-style: italic;
}
*/
/*********************************************************************/
/**********************************************************************
*
*
**********************************************************************/
/* Open Sans
* - line spacing a bit too large...
*/
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-Regular.ttf);
}
@font-face {
font-family: 'OpenSans-Light';
src: url(fonts/Open_Sans/OpenSans-Light.ttf);
}
/*
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-Bold.ttf);
font-weight: bold;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-Italic.ttf);
font-style: italic;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-BoldItalic.ttf);
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-ExtraBold.ttf);
font-weight: bolder;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf);
font-weight: bolder;
font-style: italic;
}
@font-face {
font-family: OpenSans;
src: url(fonts/Open_Sans/OpenSans-LightItalic.ttf);
font-weight: lighter;
font-style: italic;
}
*/
/* Work Sans
* - does not have an explicit italic face but seems to look ok when
* slanted programmatically...
*/
/*
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Thin.ttf);
font-weight: 100;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-ExtraLight.ttf);
font-weight: 200;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Light.ttf);
font-weight: 300;
}
*/
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Regular.ttf);
font-weight: 400;
}
/*
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Medium.ttf);
font-weight: 500;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-SemiBold.ttf);
font-weight: 600;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Bold.ttf);
font-weight: 700;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-ExtraBold.ttf);
font-weight: 800;
}
@font-face {
font-family: WorkSans;
src: url(fonts/Work_Sans/WorkSans-Black.ttf);
font-weight: 900;
}
*/
/* Source Sans Pro */
/*
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-Regular.ttf);
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-Bold.ttf);
font-weight: bold;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-Italic.ttf);
font-style: italic;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-BoldItalic.ttf);
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-ExtraBold.ttf);
font-weight: bolder;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-ExtraBoldItalic.ttf);
font-weight: bolder;
font-style: italic;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-Light.ttf);
font-weight: lighter;
}
@font-face {
font-family: SourceSansPro;
src: url(fonts/Source_Sans_Pro/SourceSansPro-LightItalic.ttf);
font-weight: lighter;
font-style: italic;
}
*/
/* Arimo
* - bold face a bit too narrow
*/
/*
@font-face {
font-family: Arimo;
src: url(fonts/Arimo/Arimo-Regular.ttf);
}
@font-face {
font-family: Arimo;
src: url(fonts/Arimo/Arimo-Bold.ttf);
font-weight: bold;
}
@font-face {
font-family: Arimo;
src: url(fonts/Arimo/Arimo-Italic.ttf);
font-style: italic;
}
@font-face {
font-family: Arimo;
src: url(fonts/Arimo/Arimo-BoldItalic.ttf);
font-weight: bold;
font-style: italic;
}
*/
/* Roboto */
/*
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-Regular.ttf);
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-Bold.ttf);
font-weight: bold;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-Italic.ttf);
font-style: italic;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-BoldItalic.ttf);
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-ExtraBold.ttf);
font-weight: bolder;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-ExtraBoldItalic.ttf);
font-weight: bolder;
font-style: italic;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-Light.ttf);
font-weight: lighter;
}
@font-face {
font-family: Roboto;
src: url(fonts/Roboto/Roboto-LightItalic.ttf);
font-weight: lighter;
font-style: italic;
}
*/
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(fonts/MaterialIcons/MaterialIcons-Regular.eot); /* IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
url(fonts/MaterialIcons/MaterialIcons-Regular.woff2) format('woff2'),
url(fonts/MaterialIcons/MaterialIcons-Regular.woff) format('woff'),
url(fonts/MaterialIcons/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
/*
font-weight: normal;
font-style: normal;
font-size: 24px;
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
*/
vertical-align: middle;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility; /* Safari and Chrome */
font-feature-settings: 'liga'; /* IE */
}
.material-icons.md-16 { font-size: 16px; }
.material-icons.md-18 { font-size: 18px; }
.material-icons.md-24 { font-size: 24px; }
.material-icons.md-36 { font-size: 36px; }
.material-icons.md-48 { font-size: 48px; }
/*********************************************************************/

View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,9 @@
The recommended way to use the Material Icons font is by linking to the web font hosted on Google Fonts:
```html
<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet">
```
Read more in our full usage guide:
http://google.github.io/material-design-icons/#icon-font-for-the-web

View File

@ -0,0 +1,932 @@
3d_rotation e84d
ac_unit eb3b
access_alarm e190
access_alarms e191
access_time e192
accessibility e84e
accessible e914
account_balance e84f
account_balance_wallet e850
account_box e851
account_circle e853
adb e60e
add e145
add_a_photo e439
add_alarm e193
add_alert e003
add_box e146
add_circle e147
add_circle_outline e148
add_location e567
add_shopping_cart e854
add_to_photos e39d
add_to_queue e05c
adjust e39e
airline_seat_flat e630
airline_seat_flat_angled e631
airline_seat_individual_suite e632
airline_seat_legroom_extra e633
airline_seat_legroom_normal e634
airline_seat_legroom_reduced e635
airline_seat_recline_extra e636
airline_seat_recline_normal e637
airplanemode_active e195
airplanemode_inactive e194
airplay e055
airport_shuttle eb3c
alarm e855
alarm_add e856
alarm_off e857
alarm_on e858
album e019
all_inclusive eb3d
all_out e90b
android e859
announcement e85a
apps e5c3
archive e149
arrow_back e5c4
arrow_downward e5db
arrow_drop_down e5c5
arrow_drop_down_circle e5c6
arrow_drop_up e5c7
arrow_forward e5c8
arrow_upward e5d8
art_track e060
aspect_ratio e85b
assessment e85c
assignment e85d
assignment_ind e85e
assignment_late e85f
assignment_return e860
assignment_returned e861
assignment_turned_in e862
assistant e39f
assistant_photo e3a0
attach_file e226
attach_money e227
attachment e2bc
audiotrack e3a1
autorenew e863
av_timer e01b
backspace e14a
backup e864
battery_alert e19c
battery_charging_full e1a3
battery_full e1a4
battery_std e1a5
battery_unknown e1a6
beach_access eb3e
beenhere e52d
block e14b
bluetooth e1a7
bluetooth_audio e60f
bluetooth_connected e1a8
bluetooth_disabled e1a9
bluetooth_searching e1aa
blur_circular e3a2
blur_linear e3a3
blur_off e3a4
blur_on e3a5
book e865
bookmark e866
bookmark_border e867
border_all e228
border_bottom e229
border_clear e22a
border_color e22b
border_horizontal e22c
border_inner e22d
border_left e22e
border_outer e22f
border_right e230
border_style e231
border_top e232
border_vertical e233
branding_watermark e06b
brightness_1 e3a6
brightness_2 e3a7
brightness_3 e3a8
brightness_4 e3a9
brightness_5 e3aa
brightness_6 e3ab
brightness_7 e3ac
brightness_auto e1ab
brightness_high e1ac
brightness_low e1ad
brightness_medium e1ae
broken_image e3ad
brush e3ae
bubble_chart e6dd
bug_report e868
build e869
burst_mode e43c
business e0af
business_center eb3f
cached e86a
cake e7e9
call e0b0
call_end e0b1
call_made e0b2
call_merge e0b3
call_missed e0b4
call_missed_outgoing e0e4
call_received e0b5
call_split e0b6
call_to_action e06c
camera e3af
camera_alt e3b0
camera_enhance e8fc
camera_front e3b1
camera_rear e3b2
camera_roll e3b3
cancel e5c9
card_giftcard e8f6
card_membership e8f7
card_travel e8f8
casino eb40
cast e307
cast_connected e308
center_focus_strong e3b4
center_focus_weak e3b5
change_history e86b
chat e0b7
chat_bubble e0ca
chat_bubble_outline e0cb
check e5ca
check_box e834
check_box_outline_blank e835
check_circle e86c
chevron_left e5cb
chevron_right e5cc
child_care eb41
child_friendly eb42
chrome_reader_mode e86d
class e86e
clear e14c
clear_all e0b8
close e5cd
closed_caption e01c
cloud e2bd
cloud_circle e2be
cloud_done e2bf
cloud_download e2c0
cloud_off e2c1
cloud_queue e2c2
cloud_upload e2c3
code e86f
collections e3b6
collections_bookmark e431
color_lens e3b7
colorize e3b8
comment e0b9
compare e3b9
compare_arrows e915
computer e30a
confirmation_number e638
contact_mail e0d0
contact_phone e0cf
contacts e0ba
content_copy e14d
content_cut e14e
content_paste e14f
control_point e3ba
control_point_duplicate e3bb
copyright e90c
create e150
create_new_folder e2cc
credit_card e870
crop e3be
crop_16_9 e3bc
crop_3_2 e3bd
crop_5_4 e3bf
crop_7_5 e3c0
crop_din e3c1
crop_free e3c2
crop_landscape e3c3
crop_original e3c4
crop_portrait e3c5
crop_rotate e437
crop_square e3c6
dashboard e871
data_usage e1af
date_range e916
dehaze e3c7
delete e872
delete_forever e92b
delete_sweep e16c
description e873
desktop_mac e30b
desktop_windows e30c
details e3c8
developer_board e30d
developer_mode e1b0
device_hub e335
devices e1b1
devices_other e337
dialer_sip e0bb
dialpad e0bc
directions e52e
directions_bike e52f
directions_boat e532
directions_bus e530
directions_car e531
directions_railway e534
directions_run e566
directions_subway e533
directions_transit e535
directions_walk e536
disc_full e610
dns e875
do_not_disturb e612
do_not_disturb_alt e611
do_not_disturb_off e643
do_not_disturb_on e644
dock e30e
domain e7ee
done e876
done_all e877
donut_large e917
donut_small e918
drafts e151
drag_handle e25d
drive_eta e613
dvr e1b2
edit e3c9
edit_location e568
eject e8fb
email e0be
enhanced_encryption e63f
equalizer e01d
error e000
error_outline e001
euro_symbol e926
ev_station e56d
event e878
event_available e614
event_busy e615
event_note e616
event_seat e903
exit_to_app e879
expand_less e5ce
expand_more e5cf
explicit e01e
explore e87a
exposure e3ca
exposure_neg_1 e3cb
exposure_neg_2 e3cc
exposure_plus_1 e3cd
exposure_plus_2 e3ce
exposure_zero e3cf
extension e87b
face e87c
fast_forward e01f
fast_rewind e020
favorite e87d
favorite_border e87e
featured_play_list e06d
featured_video e06e
feedback e87f
fiber_dvr e05d
fiber_manual_record e061
fiber_new e05e
fiber_pin e06a
fiber_smart_record e062
file_download e2c4
file_upload e2c6
filter e3d3
filter_1 e3d0
filter_2 e3d1
filter_3 e3d2
filter_4 e3d4
filter_5 e3d5
filter_6 e3d6
filter_7 e3d7
filter_8 e3d8
filter_9 e3d9
filter_9_plus e3da
filter_b_and_w e3db
filter_center_focus e3dc
filter_drama e3dd
filter_frames e3de
filter_hdr e3df
filter_list e152
filter_none e3e0
filter_tilt_shift e3e2
filter_vintage e3e3
find_in_page e880
find_replace e881
fingerprint e90d
first_page e5dc
fitness_center eb43
flag e153
flare e3e4
flash_auto e3e5
flash_off e3e6
flash_on e3e7
flight e539
flight_land e904
flight_takeoff e905
flip e3e8
flip_to_back e882
flip_to_front e883
folder e2c7
folder_open e2c8
folder_shared e2c9
folder_special e617
font_download e167
format_align_center e234
format_align_justify e235
format_align_left e236
format_align_right e237
format_bold e238
format_clear e239
format_color_fill e23a
format_color_reset e23b
format_color_text e23c
format_indent_decrease e23d
format_indent_increase e23e
format_italic e23f
format_line_spacing e240
format_list_bulleted e241
format_list_numbered e242
format_paint e243
format_quote e244
format_shapes e25e
format_size e245
format_strikethrough e246
format_textdirection_l_to_r e247
format_textdirection_r_to_l e248
format_underlined e249
forum e0bf
forward e154
forward_10 e056
forward_30 e057
forward_5 e058
free_breakfast eb44
fullscreen e5d0
fullscreen_exit e5d1
functions e24a
g_translate e927
gamepad e30f
games e021
gavel e90e
gesture e155
get_app e884
gif e908
golf_course eb45
gps_fixed e1b3
gps_not_fixed e1b4
gps_off e1b5
grade e885
gradient e3e9
grain e3ea
graphic_eq e1b8
grid_off e3eb
grid_on e3ec
group e7ef
group_add e7f0
group_work e886
hd e052
hdr_off e3ed
hdr_on e3ee
hdr_strong e3f1
hdr_weak e3f2
headset e310
headset_mic e311
healing e3f3
hearing e023
help e887
help_outline e8fd
high_quality e024
highlight e25f
highlight_off e888
history e889
home e88a
hot_tub eb46
hotel e53a
hourglass_empty e88b
hourglass_full e88c
http e902
https e88d
image e3f4
image_aspect_ratio e3f5
import_contacts e0e0
import_export e0c3
important_devices e912
inbox e156
indeterminate_check_box e909
info e88e
info_outline e88f
input e890
insert_chart e24b
insert_comment e24c
insert_drive_file e24d
insert_emoticon e24e
insert_invitation e24f
insert_link e250
insert_photo e251
invert_colors e891
invert_colors_off e0c4
iso e3f6
keyboard e312
keyboard_arrow_down e313
keyboard_arrow_left e314
keyboard_arrow_right e315
keyboard_arrow_up e316
keyboard_backspace e317
keyboard_capslock e318
keyboard_hide e31a
keyboard_return e31b
keyboard_tab e31c
keyboard_voice e31d
kitchen eb47
label e892
label_outline e893
landscape e3f7
language e894
laptop e31e
laptop_chromebook e31f
laptop_mac e320
laptop_windows e321
last_page e5dd
launch e895
layers e53b
layers_clear e53c
leak_add e3f8
leak_remove e3f9
lens e3fa
library_add e02e
library_books e02f
library_music e030
lightbulb_outline e90f
line_style e919
line_weight e91a
linear_scale e260
link e157
linked_camera e438
list e896
live_help e0c6
live_tv e639
local_activity e53f
local_airport e53d
local_atm e53e
local_bar e540
local_cafe e541
local_car_wash e542
local_convenience_store e543
local_dining e556
local_drink e544
local_florist e545
local_gas_station e546
local_grocery_store e547
local_hospital e548
local_hotel e549
local_laundry_service e54a
local_library e54b
local_mall e54c
local_movies e54d
local_offer e54e
local_parking e54f
local_pharmacy e550
local_phone e551
local_pizza e552
local_play e553
local_post_office e554
local_printshop e555
local_see e557
local_shipping e558
local_taxi e559
location_city e7f1
location_disabled e1b6
location_off e0c7
location_on e0c8
location_searching e1b7
lock e897
lock_open e898
lock_outline e899
looks e3fc
looks_3 e3fb
looks_4 e3fd
looks_5 e3fe
looks_6 e3ff
looks_one e400
looks_two e401
loop e028
loupe e402
low_priority e16d
loyalty e89a
mail e158
mail_outline e0e1
map e55b
markunread e159
markunread_mailbox e89b
memory e322
menu e5d2
merge_type e252
message e0c9
mic e029
mic_none e02a
mic_off e02b
mms e618
mode_comment e253
mode_edit e254
monetization_on e263
money_off e25c
monochrome_photos e403
mood e7f2
mood_bad e7f3
more e619
more_horiz e5d3
more_vert e5d4
motorcycle e91b
mouse e323
move_to_inbox e168
movie e02c
movie_creation e404
movie_filter e43a
multiline_chart e6df
music_note e405
music_video e063
my_location e55c
nature e406
nature_people e407
navigate_before e408
navigate_next e409
navigation e55d
near_me e569
network_cell e1b9
network_check e640
network_locked e61a
network_wifi e1ba
new_releases e031
next_week e16a
nfc e1bb
no_encryption e641
no_sim e0cc
not_interested e033
note e06f
note_add e89c
notifications e7f4
notifications_active e7f7
notifications_none e7f5
notifications_off e7f6
notifications_paused e7f8
offline_pin e90a
ondemand_video e63a
opacity e91c
open_in_browser e89d
open_in_new e89e
open_with e89f
pages e7f9
pageview e8a0
palette e40a
pan_tool e925
panorama e40b
panorama_fish_eye e40c
panorama_horizontal e40d
panorama_vertical e40e
panorama_wide_angle e40f
party_mode e7fa
pause e034
pause_circle_filled e035
pause_circle_outline e036
payment e8a1
people e7fb
people_outline e7fc
perm_camera_mic e8a2
perm_contact_calendar e8a3
perm_data_setting e8a4
perm_device_information e8a5
perm_identity e8a6
perm_media e8a7
perm_phone_msg e8a8
perm_scan_wifi e8a9
person e7fd
person_add e7fe
person_outline e7ff
person_pin e55a
person_pin_circle e56a
personal_video e63b
pets e91d
phone e0cd
phone_android e324
phone_bluetooth_speaker e61b
phone_forwarded e61c
phone_in_talk e61d
phone_iphone e325
phone_locked e61e
phone_missed e61f
phone_paused e620
phonelink e326
phonelink_erase e0db
phonelink_lock e0dc
phonelink_off e327
phonelink_ring e0dd
phonelink_setup e0de
photo e410
photo_album e411
photo_camera e412
photo_filter e43b
photo_library e413
photo_size_select_actual e432
photo_size_select_large e433
photo_size_select_small e434
picture_as_pdf e415
picture_in_picture e8aa
picture_in_picture_alt e911
pie_chart e6c4
pie_chart_outlined e6c5
pin_drop e55e
place e55f
play_arrow e037
play_circle_filled e038
play_circle_outline e039
play_for_work e906
playlist_add e03b
playlist_add_check e065
playlist_play e05f
plus_one e800
poll e801
polymer e8ab
pool eb48
portable_wifi_off e0ce
portrait e416
power e63c
power_input e336
power_settings_new e8ac
pregnant_woman e91e
present_to_all e0df
print e8ad
priority_high e645
public e80b
publish e255
query_builder e8ae
question_answer e8af
queue e03c
queue_music e03d
queue_play_next e066
radio e03e
radio_button_checked e837
radio_button_unchecked e836
rate_review e560
receipt e8b0
recent_actors e03f
record_voice_over e91f
redeem e8b1
redo e15a
refresh e5d5
remove e15b
remove_circle e15c
remove_circle_outline e15d
remove_from_queue e067
remove_red_eye e417
remove_shopping_cart e928
reorder e8fe
repeat e040
repeat_one e041
replay e042
replay_10 e059
replay_30 e05a
replay_5 e05b
reply e15e
reply_all e15f
report e160
report_problem e8b2
restaurant e56c
restaurant_menu e561
restore e8b3
restore_page e929
ring_volume e0d1
room e8b4
room_service eb49
rotate_90_degrees_ccw e418
rotate_left e419
rotate_right e41a
rounded_corner e920
router e328
rowing e921
rss_feed e0e5
rv_hookup e642
satellite e562
save e161
scanner e329
schedule e8b5
school e80c
screen_lock_landscape e1be
screen_lock_portrait e1bf
screen_lock_rotation e1c0
screen_rotation e1c1
screen_share e0e2
sd_card e623
sd_storage e1c2
search e8b6
security e32a
select_all e162
send e163
sentiment_dissatisfied e811
sentiment_neutral e812
sentiment_satisfied e813
sentiment_very_dissatisfied e814
sentiment_very_satisfied e815
settings e8b8
settings_applications e8b9
settings_backup_restore e8ba
settings_bluetooth e8bb
settings_brightness e8bd
settings_cell e8bc
settings_ethernet e8be
settings_input_antenna e8bf
settings_input_component e8c0
settings_input_composite e8c1
settings_input_hdmi e8c2
settings_input_svideo e8c3
settings_overscan e8c4
settings_phone e8c5
settings_power e8c6
settings_remote e8c7
settings_system_daydream e1c3
settings_voice e8c8
share e80d
shop e8c9
shop_two e8ca
shopping_basket e8cb
shopping_cart e8cc
short_text e261
show_chart e6e1
shuffle e043
signal_cellular_4_bar e1c8
signal_cellular_connected_no_internet_4_bar e1cd
signal_cellular_no_sim e1ce
signal_cellular_null e1cf
signal_cellular_off e1d0
signal_wifi_4_bar e1d8
signal_wifi_4_bar_lock e1d9
signal_wifi_off e1da
sim_card e32b
sim_card_alert e624
skip_next e044
skip_previous e045
slideshow e41b
slow_motion_video e068
smartphone e32c
smoke_free eb4a
smoking_rooms eb4b
sms e625
sms_failed e626
snooze e046
sort e164
sort_by_alpha e053
spa eb4c
space_bar e256
speaker e32d
speaker_group e32e
speaker_notes e8cd
speaker_notes_off e92a
speaker_phone e0d2
spellcheck e8ce
star e838
star_border e83a
star_half e839
stars e8d0
stay_current_landscape e0d3
stay_current_portrait e0d4
stay_primary_landscape e0d5
stay_primary_portrait e0d6
stop e047
stop_screen_share e0e3
storage e1db
store e8d1
store_mall_directory e563
straighten e41c
streetview e56e
strikethrough_s e257
style e41d
subdirectory_arrow_left e5d9
subdirectory_arrow_right e5da
subject e8d2
subscriptions e064
subtitles e048
subway e56f
supervisor_account e8d3
surround_sound e049
swap_calls e0d7
swap_horiz e8d4
swap_vert e8d5
swap_vertical_circle e8d6
switch_camera e41e
switch_video e41f
sync e627
sync_disabled e628
sync_problem e629
system_update e62a
system_update_alt e8d7
tab e8d8
tab_unselected e8d9
tablet e32f
tablet_android e330
tablet_mac e331
tag_faces e420
tap_and_play e62b
terrain e564
text_fields e262
text_format e165
textsms e0d8
texture e421
theaters e8da
thumb_down e8db
thumb_up e8dc
thumbs_up_down e8dd
time_to_leave e62c
timelapse e422
timeline e922
timer e425
timer_10 e423
timer_3 e424
timer_off e426
title e264
toc e8de
today e8df
toll e8e0
tonality e427
touch_app e913
toys e332
track_changes e8e1
traffic e565
train e570
tram e571
transfer_within_a_station e572
transform e428
translate e8e2
trending_down e8e3
trending_flat e8e4
trending_up e8e5
tune e429
turned_in e8e6
turned_in_not e8e7
tv e333
unarchive e169
undo e166
unfold_less e5d6
unfold_more e5d7
update e923
usb e1e0
verified_user e8e8
vertical_align_bottom e258
vertical_align_center e259
vertical_align_top e25a
vibration e62d
video_call e070
video_label e071
video_library e04a
videocam e04b
videocam_off e04c
videogame_asset e338
view_agenda e8e9
view_array e8ea
view_carousel e8eb
view_column e8ec
view_comfy e42a
view_compact e42b
view_day e8ed
view_headline e8ee
view_list e8ef
view_module e8f0
view_quilt e8f1
view_stream e8f2
view_week e8f3
vignette e435
visibility e8f4
visibility_off e8f5
voice_chat e62e
voicemail e0d9
volume_down e04d
volume_mute e04e
volume_off e04f
volume_up e050
vpn_key e0da
vpn_lock e62f
wallpaper e1bc
warning e002
watch e334
watch_later e924
wb_auto e42c
wb_cloudy e42d
wb_incandescent e42e
wb_iridescent e436
wb_sunny e430
wc e63d
web e051
web_asset e069
weekend e16b
whatshot e80e
widgets e1bd
wifi e63e
wifi_lock e1e1
wifi_tethering e1e2
work e8f9
wrap_text e25b
youtube_searched_for e8fa
zoom_in e8ff
zoom_out e900
zoom_out_map e56b

View File

@ -0,0 +1,36 @@
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
url(MaterialIcons-Regular.woff2) format('woff2'),
url(MaterialIcons-Regular.woff) format('woff'),
url(MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}

File diff suppressed because it is too large Load Diff

View File

@ -1,67 +1,67 @@
/*
* Source: http://projects.lukehaas.me/css-loaders/
*/
.loader:before,
.loader:after,
.loader {
border-radius: 50%;
width: 1em;
height: 1em;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation: load7 1.8s infinite ease-in-out;
animation: load7 1.8s infinite ease-in-out;
}
.loader {
position: relative;
color: #ffffff;
font-size: 8px;
//margin: 15px auto;
margin-bottom: 15px;
text-indent: -9999em;
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
.loader:before {
left: -1.7em;
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.loader:after {
left: 1.7em;
}
.loader:before,
.loader:after {
content: '';
position: absolute;
top: 0;
}
@-webkit-keyframes load7 {
0%,
80%,
100% {
box-shadow: 0 1em 0 -0.6em;
}
40% {
box-shadow: 0 1em 0 0;
}
}
@keyframes load7 {
0%,
80%,
100% {
box-shadow: 0 1em 0 -0.6em;
}
40% {
box-shadow: 0 1em 0 0;
}
}
/*
* Source: http://projects.lukehaas.me/css-loaders/
*/
.loader:before,
.loader:after,
.loader {
border-radius: 50%;
width: 1em;
height: 1em;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation: load7 1.8s infinite ease-in-out;
animation: load7 1.8s infinite ease-in-out;
}
.loader {
position: relative;
color: #ffffff;
font-size: 8px;
//margin: 15px auto;
margin-bottom: 15px;
text-indent: -9999em;
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
.loader:before {
left: -1.7em;
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.loader:after {
left: 1.7em;
}
.loader:before,
.loader:after {
content: '';
position: absolute;
top: 0;
}
@-webkit-keyframes load7 {
0%,
80%,
100% {
box-shadow: 0 1em 0 -0.6em;
}
40% {
box-shadow: 0 1em 0 0;
}
}
@keyframes load7 {
0%,
80%,
100% {
box-shadow: 0 1em 0 -0.6em;
}
40% {
box-shadow: 0 1em 0 0;
}
}

432
Viewer/css/ribbons.css Normal file
View File

@ -0,0 +1,432 @@
/**********************************************************************
*
* Modern experimental ribbon layout...
*
*
********************************************************* Settings ***/
/********************************************************** Viewer ***/
.viewer {
position: relative;
width: 100vw;
height: 100vh;
overflow: hidden;
/*border: solid blue 1px;*/
box-sizing: border-box;
user-select: none;
}
/* XXX this is a stub for printing help/docs... */
@media print {
.viewer {
display: none;
}
}
/****************************************** Ribbon set and locator ***/
.ribbon-set {
position: absolute;
display: block;
top: 50%;
left: 50%;
/* NOTE: this needs for scaling/zooming to behave correctly and not
shift the element, when its dimensions change...
...this is because .ribbon-set will both be used for scaling
and aligning... */
transform-origin: top left;
will-change: transform;
}
.ribbon-locator {
position: relative;
top: 0;
left: 0;
will-change: transform;
}
/********************************************************** Ribbon ***/
/* XXX for some reason setting image size in vmin stops this from
stretching in width... */
.shadow,
.ribbon {
position: relative;
display: block;
/* XXX BUG: setting this will mess up new ribbon creation....
display: inline-block;*/
height: auto;
/*min-width: 0px;*/
width: auto;
overflow: visible;
white-space: nowrap;
font-size: 0;
float: left;
clear: both;
background: var(--ribbon-background-color);
margin-top: var(--ribbon-margin);
margin-bottom: var(--ribbon-margin);
will-change: transform;
}
.ribbon:empty {
display: none;
}
/* XXX would be good to make this sticky -- always visible... */
.ribbon[title]:before {
display: block;
position: absolute;
content: attr(title);
font-size: 52pt;
font-style: italic;
font-weight: bold;
color: white;
text-shadow: black 2px 2px 15px;
top: -2pt;
right: 100%;
margin-right: 20pt;
}
.single-image-mode .ribbon[title]:before {
display: none;
}
.base-ribbon-marker {
position: absolute;
height: 100%;
color: transparent;
font-size: 20pt;
font-weight: bold;
}
.base-ribbon-marker:after {
content: "base ribbon";
display: block;
position: absolute;
width: var(--image-tile-size);
bottom: 0px;
left: 0px;
padding: 5px;
box-sizing: border-box;
z-index: 1000;
color: white;
background: black;
opacity: 0.2;
font-size: 20pt;
font-weight: bold;
transform-origin: bottom left;
transform: rotate(-90deg);
}
.single-image-mode.viewer .base-ribbon-marker {
display: none;
}
/*********************************************************** Image ***/
.marker,
.current-marker,
.mark,
.image {
position: relative;
display: inline-block;
vertical-align: middle;
text-align:left;
width: var(--image-tile-size);
height: var(--image-tile-size);
font-size: 12pt;
overflow: hidden;
box-sizing: border-box;
color: white;
/* XXX do we need this???
text-shadow:
black 0.1em 0.1em 0.4em,
black 0.1em 0.1em; */
/* NOTE: we can't set the bg color here because it will get
affected by filters... */
background: no-repeat 50% transparent;
background-size: contain;
border: solid var(--image-border) transparent;
/* XXX we are taking care of this in code -- see if we can use this */
image-orientation: none;
}
.image {
padding: var(--single-image-indicator-size);
background-color: var(--image-background-color);
}
.single-image-mode .image {
background-color: none;
}
.image div {
display: block;
position: absolute;
max-width: var(--image-tile-size);
width: auto;
max-height: var(--image-tile-size);
height: auto;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
white-space: normal;
text-align: center;
text-overflow: ellipsis;
/*font-size: 2vh;*/
pointer-events: none;
}
.crisp-resize .image {
image-rendering: -webkit-optimize-contrast;
image-rendering: crisp-edges;
}
/*
.current.image {
border: solid 5px red;
}
*/
/* NOTE: this is essentially a ribbon... */
.shadow {
position: absolute;
overflow: visible;
width: auto;
height: auto;
margin: 0px;
background: black;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-ms-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
transition: all 0.1s ease-in;
}
.shadow {
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-ms-transform-origin: 0 0;
-o-transform-origin: 0 0;
transform-origin: 0 0;
}
.image.moving {
visibility: hidden;
}
.current-marker {
display: none;
position: absolute;
border: solid 5px red;
background: none;
z-index: 100;
top: 0;
left: 0;
margin-top: calc(-1 * var(--image-tile-size) / 2);
margin-left: calc(-1 * var(--image-tile-size) / 2);
/* pass events through... (do we need IE10-?) */
pointer-events: none;
}
.marker {
width: 50px;
border: none;
background: no-repeat 50% transparent;
background-color: transparent;
color: white;
}
.marker:after {
display: block;
position: absolute;
content: "marker";
font-size: 32px;
font-weight: bold;
text-align: center;
overflow: visible;
width: 200px;
height: 32px;
top: 50%;
margin-top: -16px;
left: 50%;
margin-left: -100px;
transform-origin: center center;
transform: rotate(270deg) scaleY(1) scaleX(1);
opacity: 0.5;
}
.single-image-mode.viewer .marker {
display: none;
}
/* single image mode transitions */
/* XXX still buggy and not too needed...
.single-image-mode.viewer .image {
position: absolute;
top: 0px;
left: 0px;
opacity: 0;
.transition(opacity);
}
.single-image-mode.viewer .current.image {
opacity: 1;
}
*/
/* image turning... */
/* NOTE: need to account for proportions after turning... */
.image[orientation="90"] {
transform: rotate(90deg) scaleY(1) scaleX(1);
}
.image[orientation="180"] {
transform: rotate(180deg) scaleY(1) scaleX(1);
}
.image[orientation="270"] {
transform: rotate(270deg) scaleY(1) scaleX(1);
}
/* Flipped vertically only... */
/* NOTE: wee need to do all possible combinations here as we can't
combine different parts of a transform attr from different
classes */
.image[flipped*="vertical"] {
transform: rotate(0deg) scaleY(1) scaleX(-1);
}
.image[orientation="90"][flipped="vertical"] {
transform: rotate(90deg) scaleY(1) scaleX(-1)
}
.image[orientation="180"][flipped="vertical"] {
transform: rotate(180deg) scaleY(1) scaleX(-1)
}
.image[orientation="270"][flipped="vertical"] {
transform: rotate(270deg) scaleY(1) scaleX(-1)
}
/* Flipped horizontally only... */
.image[flipped*="horizontal"] {
transform: rotate(0deg) scaleY(-1) scaleX(1);
}
.image[orientation="90"][flipped="horizontal"] {
.transform(90deg, -1)
}
.image[orientation="180"][flipped="horizontal"] {
.transform(180deg, -1)
}
.image[orientation="270"][flipped="horizontal"] {
.transform(270deg, -1)
}
/* Flipped vertically and horizontally... */
.image[flipped*="vertical"][flipped*="horizontal"] {
transform: rotate(0deg) scaleY(-1) scaleX(-1)
}
.image[orientation="90"][flipped*="vertical"][flipped*="horizontal"] {
transform: rotate(90deg) scaleY(-1) scaleX(-1)
}
.image[orientation="180"][flipped*="vertical"][flipped*="horizontal"] {
transform: rotate(180deg) scaleY(-1) scaleX(-1)
}
.image[orientation="270"][flipped*="vertical"][flipped*="horizontal"] {
transform: rotate(270deg) scaleY(-1) scaleX(-1)
}
/* image separators... */
.ribbon-image-separators.viewer .image {
box-shadow:
9px 4px 0 -8px rgba(128,128,128,0.2),
-9px 4px 0 -8px rgba(128,128,128,0.2);
}
.ribbon-image-separators.viewer .image[orientation="90"],
.ribbon-image-separators.viewer .image[orientation="270"] {
box-shadow:
4px 9px 0 -8px rgba(128,128,128,0.2),
4px -9px 0 -8px rgba(128,128,128,0.2);
}
.ribbon-image-separators.single-image-mode.viewer .image {
box-shadow: none;
}
/* default backgrounds */
/* XXX not sure if we need these...
.image {
background-image: url(images/loading.gif);
}
.image[orientation="90"] {
background-image: url(images/loading-90deg.gif);
}
.image[orientation="180"] {
background-image: url(images/loading-180deg.gif);
}
.image[orientation="270"] {
background-image: url(images/loading-270deg.gif);
}
*/
/* separator test */
/*
.image.red+.image:not(.red):before {
display: inline-block;
position: relative;
content: "";
top:0px;
left: -50px;
width: 100px;
height: 100%;
background-color: yellow;
}
*/
/**********************************************************************
* vim:set spell ft=css : */

521
Viewer/css/widget/browse.css Executable file
View File

@ -0,0 +1,521 @@
/********************************************************** Widget ***/
.browse-widget {
display: inline-block;
min-width: 300px;
width: initial;
padding: 5px;
/*font-family: opensans, sans-serif;*/
background: gray;
/*color: rgba(255,255,255,0.8);*/
color: white;
/* XXX for some reason this does not work..
transition: all 0.5s linear;
*/
}
/*
.browse-widget:not(:focus) {
opacity: 0.8;
}
*/
.browse-widget .v-block {
position: relative;
width: 100%;
height: auto;
box-sizing: border-box;
overflow: hidden;
}
.browse-widget .v-block:not(:first-of-type) {
border-top: 1px solid rgba(255, 255, 255, 0.3);
}
.browse-widget .v-block:empty {
display: none;
}
/* editable... */
.browse-widget [contenteditable] {
min-width: 2px;
min-height: 2px;
}
/************************************************************ Path ***/
.browse-widget .path {
position: relative;
padding: 5px;
padding-left: 10px;
padding-right: 10px;
white-space: nowrap;
padding-right: 30px;
/* XXX need a way to make this automatic and depend on .browser
setup to avoid multiple scrollbars and the need to manually
dive into the configuration to change the container size
limits
*/
max-width: 80vh;
overflow: auto;
}
/* path scroll shadow... */
.browse-widget .path:not(:hover).scrolling {
mix-blend-mode: overlay;
}
.browse-widget .path:not(:hover).scrolling:after {
position: fixed;
content: " ";
top: 0px;
left: 0px;
width: 100%;
height: 100%;
}
.browse-widget .path:not(:hover).scrolling.left:not(.right):after {
background: linear-gradient(90deg, gray, transparent 15%);
}
.browse-widget .path:not(:hover).scrolling.right:not(.left):after {
background: linear-gradient(90deg, transparent 85%, gray);
}
.browse-widget .path:not(:hover).scrolling.left.right:after {
background: linear-gradient(90deg, gray, transparent 15%, transparent 85%, gray);
}
/* XXX not sure about this... */
.browse-widget .path::-webkit-scrollbar {
width: 5px;
height: 5px;
}
.browse-widget .path {
scrollbar-width: thin;
scrollbar-color: auto;
}
.browse-widget .path:hover {
opacity: 1;
}
.browse-widget .path:empty {
display: block;
}
.browse-widget:not(.flat) .path:not([contenteditable]):before {
content: attr(prefix);
}
.browse-widget .path .dir {
display: inline-block;
cursor: pointer;
opacity: 0.8;
}
.browse-widget .path .dir:after {
content: "/";
}
.browse-widget .path .dir:hover ~ .dir {
opacity: 0.2;
}
.browse-widget .path .dir.cur {
opacity: 0.5;
cursor: text;
}
.browse-widget .path .dir.cur:after {
content: "";
}
.browse-widget .path .dir.cur:hover {
opacity: 1;
}
.browse-widget .path .dir.cur[contenteditable] {
opacity: 1;
}
.browse-widget .path .dir.cur:empty:not([contenteditable]) {
position: relative;
width: 50px;
height: 12px;
background: transparent;
opacity: 0;
}
.browse-widget .path .dir.cur:empty:hover:not([contenteditable]) {
opacity: 0.6;
}
.browse-widget .path .dir.cur:empty:hover:not([contenteditable]):after {
content: "______";
border: dashed white 1px;
cursor: text;
}
/************************************************************ List ***/
/* XXX need to make this resizable up but only to a certain size (~80vh) */
.browse-widget .list {
/* XXX need a way to make this automatic and depend on .browser
setup to avoid multiple scrollbars and the need to manually
dive into the configuration to change the container size
limits
*/
max-height: 80vh;
overflow-y: auto;
overflow-x: hidden;
will-change: scroll-position;
}
/*
.browse-widget .list:before {
content: "";
position: absolute;
display: inline-block;
width: 100%;
height: 40px;
top: 1px;
left: 0px;
background: linear-gradient(to top, rgba(128, 128, 128, 0), rgba(128, 128, 128, 1));
}
.browse-widget .list:after {
content: "";
position: absolute;
display: inline-block;
width: 100%;
height: 40px;
bottom: 0px;
left: 0px;
background: linear-gradient(to bottom, rgba(128, 128, 128, 0), rgba(128, 128, 128, 1));
}
*/
/*
.browse-widget .list:empty {
display: block;
}
*/
/* XXX this is not used because it will mess up numbering and some actions...
* ...need a more thorough avoidance of non-visible elements...
.browse-widget.disabled-hidden:not(.flat) .list div.disabled,
.browse-widget.not-traversable-hidden:not(.flat) .list div.not-traversable {
display: none;
}
*/
.browse-widget .list .text {
display: inline-block;
float:left;
}
.browse-widget .list .button-container {
display: inline-block;
float: right;
white-space: nowrap;
}
.browse-widget .list .button {
display: inline-block;
float:right;
opacity: 0.5;
padding-left: 10px;
padding-right: 10px;
box-sizing: border-box;
/*border: solid 1px rgba(255,255,255, 0.3);*/
}
.browse-widget .list .button:focus,
.browse-widget .list .button:hover {
opacity: 0.9;
background-color: rgba(0, 0, 0, 0.2);
}
.browse-widget .list .button.blank {
opacity: 0;
}
.browse-widget .list .item {
padding: 5px;
padding-left: 15px;
padding-right: 15px;
cursor: pointer;
/* XXX need a way to make this automatic and depend on .browser
setup to avoid multiple scrollbars and the need to manually
dive into the configuration to change the container size
limits
*/
max-width: 80vh;
opacity: 0.7;
/*white-space: nowrap;*/
overflow: hidden;
}
.browse-widget .list .item[count]:after {
display: inline-block;
content: "(" attr(count) ")";
float: right;
margin-right: 10px;
margin-left: 5px;
opacity: 0.4;
}
/* highlight seach... */
.browse-widget .list .item .text b {
background-color: rgba(0, 0, 255, 0.5);
}
.browse-widget .list .item.strike-out .text {
text-decoration: line-through;
opacity: 0.3;
}
.browse-widget .list .item.highlighted .text {
font-style: italic;
font-weight: bold;
}
.browse-widget .list .item.highlighted .text:last-child:after {
content: ' *';
}
.browse-widget:not(.flat) .list div:not(.not-traversable) .text:after {
content: "/";
}
.browse-widget .list .item:focus,
.browse-widget .list .item.selected:focus,
.browse-widget .list .item.selected :focus,
.browse-widget:focus .list .item.selected,
.browse-widget .path>.dir:hover,
.browse-widget .list .item:hover {
background: rgba(0, 0, 0, 0.05);
opacity: 0.9;
}
.browse-widget .list .item.selected {
background: rgba(0, 0, 0, 0.08);
}
.browse-widget .list .item:focus,
.browse-widget .list .item.selected:focus,
.browse-widget .list .item.selected :focus,
.browse-widget:focus .list .item.selected {
background: rgba(0, 0, 0, 0.08);
box-shadow: rgba(0, 0, 0, 0.2) 0.1em 0.1em 0.2em;
opacity: 1;
}
/* XXX need to make the next two different... */
.browse-widget .list .item.filtered-out {
opacity: 0.5;
}
.browse-widget:not(.show-filtered-out) .list .item.filtered-out {
display: none;
}
.browse-widget .list .item.disabled {
opacity: 0.3;
}
.browse-widget .list .item.empty-msg,
.browse-widget .list .item.hidden {
font-style: italic;
}
/* numbers... */
/* XXX need to show this only on devices with keyboards... */
.browse-widget .list .item:before {
opacity: 0.3;
float: left;
font-size: small;
}
.browse-widget.filtering .list .item:before {
display: none;
}
.browse-widget .list .item:before {
width: 12px;
margin-left: -15px;
}
/* XXX use :nth-match(..) ass soon as it gets enough support... */
.browse-widget:not(.no-item-numbers) .list .item:not(.heading):before {
content: attr(shortcut-number);
}
/* XXX these are messed up with groups, use :nth-match(..) ass soon as it gets enough support... */
/*
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(1):before {
content: "1";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(2):before {
content: "2";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(3):before {
content: "3";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(4):before {
content: "4";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(5):before {
content: "5";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(6):before {
content: "6";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(7):before {
content: "7";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(8):before {
content: "8";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(9):before {
content: "9";
}
.browse-widget:not(.no-item-numbers) .list .item:nth-of-type(10):before {
content: "0";
}
*/
.browse-widget .list hr.separator {
opacity: 0.3;
}
/* hide first/last separators... */
.browse-widget .list hr.separator:first-child,
.browse-widget .list hr.separator:last-child {
display: none;
}
/* Action... */
.browse-widget .list .action {
margin-top: 0.2em;
border-top: solid 1px rgba(255,255,255, 0.2);
}
.browse-widget .list .action .text {
font-style: italic;
}
/* do not show top border if after another action or separator... */
.browse-widget .list .action:first-child,
.browse-widget .list .action+.action,
.browse-widget .list .heading+.action,
.browse-widget .list .separator+.action {
border-top: none;
}
/* Heading... */
.browse-widget .list .heading {
color: white;
font-weight: bold;
background: rgba(0, 0, 0, 0.5);
}
.browse-widget .list .heading:not(:first-child) {
margin-top: 0.5em;
}
.browse-widget .list .heading span:first-child {
margin-left: -0.5em;
}
/* doc */
.browse-widget .list .heading[doc]:after {
display: block;
content: attr(doc);
white-space: pre;
font-size: small;
font-style: italic;
margin-top: 2em;
opacity: 0.5;
}
.browse-widget .list .item.heading:hover {
background: rgba(0, 0, 0, 0.6);
}
.browse-widget .list .item.heading.selected {
background: rgba(0, 0, 0, 0.7);
}
/* dark theme... */
.dark .browse-widget .list .heading {
background: rgba(255, 255, 255, 0.1);
}
/* Show item part on hover... */
.browse-widget .list .item .show-on-hover {
opacity: 0;
}
.browse-widget .list .item:hover .show-on-hover {
opacity: inherit;
}
/* Show item part on select... */
.browse-widget .list .item .show-on-select {
opacity: 0;
}
.browse-widget .list .selected .show-on-select {
opacity: inherit;
}
/* Nested lists... */
.browse-widget .list .list {
padding-left: 20pt;
}
.browse-widget .list .list>.item:first-child {
margin-left: -20pt;
}
/****************************************************** Cloud List ***/
.browse-widget.cloud-view .list .item {
display: inline-block;
border-radius: 10px;
}
.browse-widget.cloud-view .list hr.separator {
display: block;
}
.browse-widget.cloud-view .list .item .text:first-child:before {
content: "";
}
/******************************************************** Theaming ***/
/* Light */
.light .browse-widget {
background: white;
color: rgba(0, 0, 0, 0.8);
}
.light .browse-widget .v-block:not(:first-of-type) {
border-top: 1px solid rgba(0, 0, 0, 0.2);
}
/* Dark */
.dark .browse-widget {
background: #0a0a0a;
color: rgba(255, 255, 255, 0.8);
}
/* XXX can we make this simpler??? */
.dark .browse-widget .list .item:focus,
.dark .browse-widget .list .item.selected:focus,
.dark .browse-widget .list .item.selected :focus,
.dark .browse-widget:focus .list div.selected,
.dark .browse-widget .path .dir:hover,
.dark .browse-widget .list .item:hover {
background: rgba(255, 255, 255, 0.08);
}
.dark .browse-widget .list div.selected {
background: rgba(255, 255, 255, 0.1);
}
.dark .browse-widget .list .item:focus,
.dark .browse-widget .list .item.selected:focus,
.dark .browse-widget .list .item.selected :focus,
.dark .browse-widget:focus .list .item.selected {
background: rgba(255, 255, 255, 0.1);
}
/*********************************************************************/

View File

@ -34,6 +34,10 @@
box-shadow: rgba(0, 0, 0, 0.1) 0.3em 0.3em 5em;
}
.drawer-widget.top .content {
top: auto;
margin-bottom: 100%;
}
.drawer-widget~.drawer-widget .content {
box-shadow: rgba(0, 0, 0, 0.05) 0.1em 0.1em 3em;
}
@ -41,10 +45,6 @@
/* NOTE: this does not include text...
...need a way to go around this...
*/
.blur>* {
-webkit-filter: blur(2px) saturate(0.3);
filter: blur(2px) saturate(0.3);
}
.blur>.drawer-widget {
-webkit-filter: none;
filter: none;

View File

@ -11,12 +11,14 @@
background: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(2px) saturate(0.3);
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
/* XXX try to avoid this... */
z-index: 9999;
z-index: 5000;
}
.overlay-widget~.overlay-widget {
background: rgba(0, 0, 0, 0.3);
@ -37,7 +39,7 @@
max-width: 80vw;
max-height: 90vh;
overflow: hidden;
/*overflow: hidden;*/
transform: translateY(-50%) translateX(-50%);
@ -47,20 +49,23 @@
box-shadow: rgba(0, 0, 0, 0.05) 0.1em 0.1em 3em;
}
/* NOTE: this does not include text...
...need a way to go around this...
*/
.blur>* {
-webkit-filter: blur(2px) saturate(0.3);
filter: blur(2px) saturate(0.3);
}
.blur>.overlay-widget {
-webkit-filter: blur(0.8px) saturate(0.3);
filter: blur(0.8px) saturate(0.3);
}
.blur>.overlay-widget:last-child {
-webkit-filter: none;
filter: none;
/* title */
.content>*:before {
position: absolute;
content: attr(dialog-title);
bottom: 100%;
color: silver;
font-weight: 900;
font-style: italic;
font-size: x-large;
line-height: 85%;
opacity: 0.6;
}

BIN
Viewer/data/blank.mp4 Normal file

Binary file not shown.

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve">
<style type="text/css">
#vertical {
opacity: 0.25;
}
#corners {
opacity: 0.5;
}
.line {
fill: none;
stroke: #FFFFFF;
stroke-width: 2;
stroke-miterlimit: 10;
}
.label {
font-family: 'OpenSans-Light', sans-serif;
font-size: 82px;
}
.stroke {
fill: #FFFFFF;
}
</style>
<g id="background">
<rect x="0" y="0" width="1000" height="1000"/>
</g>
<g id="vertical">
<g>
<path class="stroke" d="M831,2v996H169V2H831 M833,0H167v1000h666V0L833,0z"/>
</g>
<line class="line" x1="167" y1="1000" x2="833" y2="0"/>
<line class="line" x1="167" y1="0" x2="833" y2="1000"/>
</g>
<g id="horizontal">
<g>
<path class="stroke" d="M998,169v662H2V169H998 M1000,167H0v666h1000V167L1000,167z"/>
</g>
<line class="line" x1="1000" y1="167" x2="5" y2="833"/>
<g>
<line class="line" x1="0" y1="167" x2="1000" y2="833"/>
</g>
</g>
<g id="corners">
<g>
<path class="stroke" d="M5.5,5.5l79.3,47.6L53.1,84.8L5.5,5.5 M-0.4-0.4l53,88.4L88,52.7L-0.4-0.4L-0.4-0.4z"/>
</g>
<g>
<path class="stroke" d="M994.5,5.5l-47.6,79.3l-31.7-31.7L994.5,5.5 M1000.4-0.4l-88.4,53L947.3,88L1000.4-0.4L1000.4-0.4z"/>
</g>
<g>
<path class="stroke" d="M946.9,915.2l47.6,79.3l-79.3-47.6L946.9,915.2 M947.3,912L912,947.3l88.4,53L947.3,912L947.3,912z"/>
</g>
<g>
<path class="stroke" d="M53.1,915.2l31.7,31.7L5.5,994.5L53.1,915.2 M52.7,912l-53,88.4l88.4-53L52.7,912L52.7,912z"/>
</g>
</g>
<g id="text">
<rect x="356" y="452" width="290" height="100.3"/>
<text transform="matrix(1 0 0 1 373 528)" class="stroke label">IMAGE</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

165
Viewer/doc/BUILD-NOTES Executable file
View File

@ -0,0 +1,165 @@
In general
----------
The idea is to make the project as simple as possible and the dev cycle
as efficient as possible, for this reason only one lib manager is used
(npm), only one build system (make) and any translation layers are
avoided (less is likely to be phased out).
With this approach for most cases and for testing in the browser after
the initial setup only refreshing the page is required to load most of
the changes (./css/layout.less being the only exception).
General environment
-------------------
ImageGrid will require the following installed and in path:
- bash
- make (GNU Make)
- git
- wget
- zip / unzip / zipnote
- grep / egrep / fgrep
- sed
Some more dependencies will be installed by make via npm locally.
Dependencies can be checked with:
$ make check
Then the build system/process is generally the same on all platforms:
- Clone the repository:
$ git clone https://github.com/flynx/ImageGrid.git
- Build the dev envioronment (bash):
$ make dev
- Run in-place:
$ make run
- Build a distro:
$ make dist
Windows environment
-------------------
This will require a UN*X-like build environment to run make and friends.
One way to go about this is (admin PowerShell):
- Install Chocolate
> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
For more info see: https://chocolatey.org/install
- Install git-bash based env:
> choco install git nodejs wget zip sed grep
Now we can proceed with the normal build.
The Makefile
------------
For make help to work make requires: bash, sed, grep/fgrep and printf to
be available in the path, run this to double check:
$ make check-help
To check the full list of dependencies run:
$ make check
The make file is largely self-documented so run this for more info:
$ make help
Sharp and other native modules for nw/electron
----------------------------------------------
And for electron (done by make):
electron-rebuild
To build sharp for a specific version of node and nwjs (outdated):
cd ./node_modules/sharp/
nw-gyp rebuild --target=0.17.4 --arch=x64
Chromium flicker issue (nw/outdated)
------------------------------------
The UI sometimes flickers -- at first blanks out to black then re-draws,
this is most noticeable on white or gray backgrounds.
This appears to be GPU related.
package.json:
"chromium-args": "--disable-gpu-compositing",
This will fix the issue temporarily, but we still need a better solution.
Remote debugging via DevTools (nw/outdated)
-------------------------------------------
Set this in package.json:
"chromium-args": "--remote-debugging-port=9222",
Then open http://localhost:9222 in chrome.
Speedup loading of app (nw/outdated)
------------------------------------
One of the ways to speed up the load times when packed is to store Node's
modules ./node_modules in a separate location, outside of the app.zip
or package.nw
To enable require(..) to find them:
- > npm install --save app-module-path
- when building the zip move all the modules out to a new location
*except* app-module-path
- add this line to all root js modules *before* any other
require(..) is called:
if(process.__nwjs){
var path = require('path')
require('app-module-path')
.addPath(path.dirname(process.execPath)
+ '/node_modules/') }

116
Viewer/doc/DEPENDENCIES Normal file
View File

@ -0,0 +1,116 @@
Future tasks
============
- Remove dependency on less, don't think we need it anymore...
- Remove/merge legacy modules
- Move generic stuff to separate libs (npm)
- lib/keyboard.js
- lib/toggler.js
- Electron seems to constantly drift out of spec
- Check if we actually need the less dependency
npm modules
===========
All contexts (internal):
- object-run - adds Object.prototype.run(..) to run function in
in the context of an object.
- ig-object - js object model wrapper
a closer to JS alternative to "classes"
- ig-actions - actions object model extension
provides a different way to cooperatively extend
methods
- ig-types - JS type extensions and utilities
- ig-argv - CLI argv parser
- ig-features - organizes and manages sets of actions and data
- guarantee-events - simple event cache
- generic-walk - legacy???
All contexts (external):
- requirejs
- requirejs-plugins - import text/json
Electron / node app:
- electron - GUI app wrapper
- sharp - image processing (previews / basic fast metadata)
- exif-reader - metadata parser
NOTE: that exif-reader is currently used but
migration to exifreader is planned.
- exiftool - metadata reader (full metadata reader)
- app-module-path - add to node's require search path
- v8-compile-cache - v8 require optimization
- cli-progress - CLI progress bar
- colors - CLI text colors
- fs-extra - extend node's fs module (revise)
- fs-walk
- glob - glob implementation
- wildglob - glob implementation (is this used?)
- pouchdb - standalone in-browser CouchDB (not used yet)
- async-json
- json5 - extended json (comments, ...) for config read
Other / static
==============
Internal (lib):
- keyboard.js - keyboard handler library
- jli.js - general dom utilities (index.html/global)
- util.js - misc utilities
- util-dom.js - dom/jquery utils, mostly editor related
- dialogs.js -
- panels.js
- scroller.js
- toggler.js
- transform.js
- editor.js - image "editor" (legacy)
- _module.js - js module template
- _template.js - bare js template
components/ - web components
canvas-waveform.html
ig-image-graph-worker.js
ig-image-graph.js
widget/ - widgets
browse-walk.js
browse.html
browse.js
browse2.html
browse2.js
drawer.html
drawer.js
overlay.html
overlay.js
widget.js
External (ext-lib):
- sha1.js - sha1 implementation, used for GID generation
(imagegrid/data.js)
- jquery.js
- jquery-ui.js
- jquery.ui.touch-punch.min.js
- hammer.min.js - touch/mouse guestures
- jquery.hammer.js
- velocity.min.js - animation engine (used??)
- pouchdb.min.js - standalone in-browser CouchDB (not used yet)
- less.js - legacy??
- less-1.3.3.min.js - legacy??
- jstorage.js - legacy?
- virtual-dom.js - legacy???

66
Viewer/doc/HACKS Normal file
View File

@ -0,0 +1,66 @@
Hacks and fixes
===============
20220126:
node_modules/requirejs/bin/r,js
Under Electron v14+ requirejs breaks with a SyntaxError on the
first char of r.js ('#!/...') -- a hackish way to fix this is to
comment it out, not yet sure why is this happening...
STUB: patched by:
make node_modules
20210122:
Marking changes twice on load...
The way .markChanged(..) is handled around .load(..) / .loadOrRecover(..) and
in base.js seems a bit hackish -- would be goof to do this in one spot,
revise...
See:
- features/base.js ~@1179 -- 'load' handler...
- features/filesystem.js ~@982 -- 'loadIndex' handler...
20201104:
Chrome v83 / Electron 9.3.3
WebKit canvas' .drawImage(..) ignores its and images .style.imageOrientation
unless both are added to DOM.
FIX:
- features/app.js: img2canvas(..) quietly adds the elements to DOM and then cleans up
TODO:
- test in browser...
- test in newer versions of browser / electron...
- if not fixed report...
20200830:
RequireJS + Electron v7+ mess up default .baseUrl
FIX:
- cfg/requirejs.js: added .baseUrl inferencing.
TODO:
- is this a bug or a feature and report as bug if needed
20200830:
Chrome messing up fullscreen colors unless a <video> tag is present.
FIX:
- data/blank.mp4: added
- index.html / electron.html: added <video> tag with data/blank.mp4 as source
TODO:
- report this...

139
Viewer/doc/MAKE Normal file
View File

@ -0,0 +1,139 @@
ImageGrid.Viewer Makefile
To check for buld/development dependencies that make can't install itself:
$ make check
To setup the development environment:
$ make dev
To do a default build use:
$ make dist
In some cases making things directly starting from a clean directory
may either fail or use global version of a utility instead of the
version specified for the app, if this happens first build the
environment and then try again:
$ make dev
...
$ make dist
To print full list of user make targets use:
$ make help
Variables to control the build:
APP_NAME - Application name
APP_BIN - App binary name (ignored for MacOS)
TARGET_OS - target OS (win32, linux, darwin)
ARCH - target achitecture (ia32, x86, x64, ...)
ELECTRON_DOWNOAD_URL
- URL to download electron binary
ELECTRON_DIST - electron distribution file name pattern
BUILD_MODE - can be "repack" or "in-place" (default)
Variables to help with troubleshooting:
IMAGEGRID_DEBUG - force show devtools on startup
NOTE: devtools will should start automaticalky
if loading takes too long or if it was
started on last run,
IMAGEGRID_FORCE_SHOW
- force show viewer GUI on startup
NOTE: when setting variables avoid using spaces and other characters
make can get fussy about...
NOTE: cross compilation is at this time not supported, if you try it
and it works then 1) you got very lucky and 2) tell me about it =)
...at least the node native packages (sharp) will likely either
fail or will get compiled to the wrong arch and not be used, and
some non-native packages may misbehave (though I'm not aware of
any at this point, so report them if you encounter one).
This is complicated by the fact that most of ImageGrid.Viewer is
platform-agnostic and will run on almost anything and will simply
try to ignore broken packages and features depending on them, so
check the console log for any odd load reports...
...but note that cross-building and packaging is only possible
either without the native modules or with them pre-built for the
target platform, at this point.
Examples:
# check if all dependencies are available...
$ make check
# make development environment...
$ make dev
# full build...
$ make clean dist
# build in repack mode...
$ BUILD_MODE=repack make dist
# build for darwin/macOS... (EXPERIMENTAL)
$ TARGET_OS=darwin make clean dist
# run with Devtools started...
$ IMAGEGRID_DEBUG=1 make run
# force show the main window...
$ IMAGEGRID_FORCE_SHOW=1 make run
Help and info:
help: Print make target help and exit
version: Print version and exit
Dependency checking:
check: Run all dependency checks
check-web: Run web build dependency checks
check-help: Run help/build (Makefile) dependency checks
Generic targets:
all: Run the full build chain
doc: Build documentation
dev: Build the development environment
dev-npm: Install the npm global dev package (might need sudo)
dist: Build distributable package
test-dist: Build testing distributable package
deploy: Run ./scripts/deploy.sh on contents of DIST_DIR
run: Run app in-place
Cleanup:
clean: Cleanup
clean-generated: Clean generated files
clean-dist: Clean DIST_DIR directory
clean-all: Clean all
Generic components:
js: Build JS modules
app-dir-full: Build full app directory
app-dir-minimal: Build minimal app directory
Web/Browser:
web: Build a browser-runnable package
Electron:
electron-dist: Make electron distributable
electron-test-dist: Make electron test distributable
electron-unpacked: Make unpacked electron app
electron-run: Run app in electron
Open Desktop:
Patches:
patched-requirejs: Patch requirejs (see: NOTES)
unpatched-requirejs: Unpatch requirejs
CLI:
devel-cli: Install CLI interface as a link to this tree.
cli: install CLI interface as independent package.
---
This file was generated by: make doc/MAKE

108
Viewer/doc/NOTES Executable file
View File

@ -0,0 +1,108 @@
Initial build
=============
The `Makefile` handles all the dependencies in all cases but the first
run on a clean system can take a while because `make` uses `npx` to
bootstrap the required apps/libs.
It is recommended for a clean setup to either run make twice or run an
`npm install` first, this needs to be done to avoid version leaking
from the bootstrapped or global node packages to the build as defined by
`package.json`
Version numbers
===============
The app version number is automatically synced between package.json
(primary) and version.js, all version changes should be made in the
former.
Debugging startup errors
========================
If something goes wrong on startup -- the splash screen is shown but the
main window is not, DevTools should be automatically started in about 5
seconds.
If DevTools does not run then they can be started manually by:
$ IMAGEGRID_DEBUG=1 ig.js gui
or:
$ IMAGEGRID_DEBUG=1 make run
Common reasons for failure on startup:
- path set in cfg/requirejs.js (baseUrl) is not correct on this
version on node/electron
- electron compatibility issue
- rarely: some feature fails to call .declareReady() and the
startup process stalls waiting for it, this can be manually
overridden by calling .ready()
Modules and RequireJS
=====================
Most of the system is loaded via browser context RequireJS loader, in
node/electron/nw context node-specific stuff is loaded with a second
node-enabled RequireJS instance or node require.
The ideal solution would be to use one require that sees both the browser
and node contexts, the problem is exactly in this, the browser requirejs
does not see either node or node modules while the node require loads
code that is not visible to devtools unless it is running at that exact
moment.
Thus we are forced to use both mode requirejs loaders which may be
confusing at times.
Different loaders
-----------------
There are two RequireJS instances present in most contexts in nw.js
within the define(..) runner:
- require(..)
Pure browser RequireJS instance, used to load local
modules.
- requirejs(..)
Node-enabled RequireJS instance, used to load node
modules.
This is needed as the above require(..) overloads the
node native loader.
The future
----------
This seems a bit confusing, so at least the naming convention should be
revised.
Entry points
============
We have two entry points here for a reason, e.js is tuned to be as
light/fast as possible for the general case, i.e. when run without
arguments combining it with ig.js would make things much-much slower...
- index.html - Browser
- electron e.js - electron
<-> ig.js - parse args if given and
optionally return control back
to e.js...
- ig.js - node
-> e.js - node can spawn an electron app

55
Viewer/doc/PROJECT-LAYOUT Executable file
View File

@ -0,0 +1,55 @@
Basic project layout:
---------------------
imagegrid/ - domain-specific modules
features/ - feature modules
_feature.js - feature template
all.js - feature loader
this module includes all the
feature modules to be used in the
system.
meta.js - feature configuration and
meta-features
workers/ - workers
lib/ - generic library modules
widgets/ - generic widgets
_module.js - module template
_template.js - generic js file template
ext-lib/ - external library modules
node_modules/ - npm modules
ig-*/ - ImageGrid npm modules
css/ - css/less files
widgets/ - widget-specific css
images/ - system images
data/ - data and assets
doc/ - various dev documentation
PROJECT-LAYOUT - this file
BUILD-NOTES - notes on the build process
NOTES - general notes
HACKS - list of hacks around external
"features" and bugs
MAKE - Makefile doc, the same as printed
by make help (generated by make doc)
archive/ - image archive root structure
experiments/ - standalone experiments
package.json - npm/nw configuration
electron.html - electron-specific html
ui.js - GUI root setup
ig.js - CLI entry point
index.html - Browser/NW entry point
e.js - electron entry point

312
Viewer/e.js Normal file
View File

@ -0,0 +1,312 @@
#!/usr/bin/env node
/**********************************************************************
*
* ImageGrid.Viewer Electron entry point...
*
*
* NOTE: this is kept as simple as possible to speed up initial loading.
*
**********************************************************************/
// Global scope pollution test...
if(process.env.IMAGEGRID_DEBUG){
global.__global = {...global}
global.scopeDiff = function(cur=global, base=__global){
return Object.keys(cur)
.filter(function(k){ return base[k] !== cur[k] })
.reduce(function(res, k){
res[k] = cur[k]
return res }, {})} }
/*********************************************************************/
//require('v8-compile-cache')
var electron = require('electron')
var path = require('path')
var url = require('url')
var VERSION = require('./version').version
//---------------------------------------------------------------------
var app = electron.app
var BrowserWindow = electron.BrowserWindow
var ipcMain = electron.ipcMain
//
global.ELECTRON_PACKAGED = app.isPackaged
// used to let e.js know that the CLI wants to start the GUI..
global.START_GUI = false
/*********************************************************************/
// XXX do we need multiwindow support???
// Splash window...
//
// XXX might be nice to show load progress on splash...
var SPLASH
var SPLASH_TIMEOUT = 20 * 1000
function createSplash(force=false){
// singleton window...
if(!force && SPLASH){
return SPLASH }
// NOTE: this is done here as this does not depend on code loading,
// thus showing the splash significantly faster...
SPLASH = new BrowserWindow({
// let the window to get ready before we show it to the user...
show: false,
transparent: true,
frame: false,
center: true,
width: 840,
height: 540,
alwaysOnTop: true,
resizable: false,
movable: false,
minimizable: false,
maximizable: false,
fullscreenable: false,
autoHideMenuBar: true,
})
SPLASH.loadURL(url.format({
pathname: path.join(__dirname, 'splash.html'),
protocol: 'file:',
slashes: true
}))
SPLASH.once('ready-to-show', function(){
this.webContents
// see if the splash screen is disabled...
.executeJavaScript('localStorage.disableSplashScreen')
.then(function(disabled){
// update version...
disabled
|| SPLASH.webContents
.executeJavaScript(
`document.getElementById("version").innerText = "${VERSION}"`)
// show/destroy..
disabled ?
SPLASH.destroy()
: SPLASH.show() }) })
SPLASH.on('closed',
function(){
SPLASH = null
WIN
&& WIN.webContents.executeJavaScript('document.appSplashScreen = false') })
// handle main window state...
WIN
&& WIN.webContents.executeJavaScript('document.appSplashScreen = true')
// auto-close splash...
SPLASH_TIMEOUT
&& setTimeout(
function(){
SPLASH
&& SPLASH.destroy() },
SPLASH_TIMEOUT)
return SPLASH }
// Create main window...
//
// NOTE: initial window metrics are loaded by the app feature...
// XXX should this be done here???
//
// XXX handle maximize corretly...
// ...currently it does not differ visually from fullscreen -- either
// make them the same or keep them separate visually...
var WIN
function createWindow(force=false){
// singleton window...
if(!force && WIN){
return WIN }
// Create the browser window.
WIN = new BrowserWindow({
webPreferences: {
nodeIntegration: true,
nodeIntegrationInWorker: true,
contextIsolation: false,
enableRemoteModule: true,
},
// let the window get ready before we show it to the user...
show: false,
frame: false,
backgroundColor: '#333333',
width: 800,
height: 600,
fullscreenable: true,
// XXX not sure about this...
//maximizable: false,
//autoHideMenuBar: true,
})
// disable default menu...
WIN.setMenu(null)
WIN.loadURL(url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true,
}))
WIN.once('ready-to-show',
function(){
WIN.webContents.executeJavaScript(`
document.readyToShow = true
// XXX make these a prop...
document.appFullScreen = false
document.appDevTools = false
`)
// splash screen...
WIN.webContents.executeJavaScript(
SPLASH ?
'document.appSplashScreen = true'
: 'document.appSplashScreen = false') })
WIN.on('closed',
function(){ WIN = null })
// devtools...
WIN.webContents.on('devtools-opened',
function(){
WIN && WIN.webContents.executeJavaScript('document.appDevTools = true') })
WIN.webContents.on('devtools-closed',
function(){
WIN && WIN.webContents.executeJavaScript('document.appDevTools = false') })
// handle env...
// devtools for different windows...
process.env.IMAGEGRID_DEBUG
&& WIN.openDevTools({mode: 'undocked'})
// Force show window...
process.env.IMAGEGRID_FORCE_SHOW
&& WIN.show()
return WIN }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Start the app...
//
function start(){
var _start = function(){
createSplash()
createWindow() }
// NOTE: by this time (arg parsing and stuff) the app may already
// be ready...
app.isReady() ?
_start()
: app.on('ready', _start) }
//---------------------------------------------------------------------
// Event handlers...
// Window states...
ipcMain.on('show',
function(){ WIN && WIN.show() })
ipcMain.on('hide',
function(){ WIN && WIN.hide() })
ipcMain.on('minimize',
function(){ WIN && WIN.minimize() })
ipcMain.on('enterFullScreen',
function(){
if(WIN){
WIN.setFullScreen(true)
WIN.webContents.executeJavaScript('document.appFullScreen = true') } })
ipcMain.on('exitFullScreen',
function(){
if(WIN){
WIN.setFullScreen(false)
WIN.webContents.executeJavaScript('document.appFullScreen = false') } })
// Splash screen...
ipcMain.on('openSplashScreen',
function(){
SPLASH
|| createSplash() })
ipcMain.on('closeSplashScreen',
function(){
// force this to run after this frame avoiding races...
setTimeout(
function(){
SPLASH
&& SPLASH.destroy() },
10) })
// DevTools...
// XXX need to focus devtools here...
// see: webContents.getAllWebContents()
ipcMain.on('openDevTools',
function(){
WIN
&& WIN.openDevTools({
mode: 'undocked',
activate: true,
}) })
ipcMain.on('closeDevTools',
function(){ WIN && WIN.closeDevTools() })
//---------------------------------------------------------------------
// Event handlers (macOS)...
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
// XXX test...
app.on('activate', function(){
WIN || createWindow() })
// Quit when all windows are closed.
// On macOS it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
app.on('window-all-closed', function(){
process.platform !== 'darwin'
&& app.quit() })
//---------------------------------------------------------------------
// start things up...
;(ELECTRON_PACKAGED ?
process.argv.length > 1
: process.argv.length > 2) ?
// got some arguments -- delegate to ig.js...
(require('./ig')
&& global.START_GUI
&& start())
// start the viewer...
: start()
/**********************************************************************
* vim:set ts=4 sw=4 : */

View File

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<style>
</style>
<script src="../ext-lib/jquery.js"></script>
<script src="../ext-lib/jquery-ui.js"></script>
<script src="../lib/jli.js"></script>
<script>
</script>
<body>
</body>
</html>

View File

@ -0,0 +1,213 @@
<!DOCTYPE html>
<html>
<style>
.graph {
position: relative;
display: inline-block;
width: attr(image-width);
height: attr(graph-height);
}
.graph canvas {
width: 100%;
height: 100%;
}
.graph .controls {
display: inline-block;
position: absolute;
top: 2px;
right: 2px;
}
.graph .controls button {
background: transparent;
border: none;
color: white;
opacity: 0.7;
}
.graph .controls button.current {
text-decoration: underline;
opacity: 0.9;
}
.graph .controls button.R:hover,
.graph .controls button.current.R {
background: red;
}
.graph .controls button.G:hover,
.graph .controls button.current.G {
background: green;
}
.graph .controls button.B:hover,
.graph .controls button.current.B {
background: blue;
}
.graph .controls button:hover {
opacity: 1;
}
</style>
<script src="../ext-lib/jquery.js"></script>
<script src="../ext-lib/jquery-ui.js"></script>
<script src="../lib/jli.js"></script>
<script src="ig-image-graph.js"></script>
<script>
// XXX should we make this a web components???
// + would make everything transparent
// - add a tag
// - edit props
// - handle events
// - not sure what is the differenence practically...
var makeWaveform = function(img, options){
var color_modes = ['normalized', 'white', 'color']
options = options || {}
options.mode = options.mode || 'color'
options.color = options.color || color_modes[0]
// XXX configurable...
var type = 'waveform'
var graph = waveform
var buttons
var update = function(m){
m = options.mode = m || options.mode
graph(img, canvas, m, options.color)
;(buttons || [])
.forEach(function(b){
b.classList.contains(m) ?
b.classList.add('current')
: b.classList.remove('current') }) }
// handle img urls...
if(typeof(img) == typeof('str')){
var src = img
img = document.createElement('img')
img.onload = function(){
container.setAttribute('image-width', img.width)
container.setAttribute('image-height', img.height)
update() }
img.src = src }
// container...
var container = document.createElement('div')
container.classList.add('graph', type)
// XXX not sure why would we need shadow dom here...
//var shadow = container.attachShadow({mode: 'open'})
// canvas...
var canvas = document.createElement('canvas')
container.appendChild(canvas)
// controls...
if(controls || controls === undefined){
var controls = document.createElement('div')
controls.classList.add('controls')
// buttons...
buttons = ['luminance', 'color', 'R', 'G', 'B']
.map(function(m){
var button = document.createElement('button')
button.innerText = m
button.classList.add(m)
button.onclick = function(){
update(m) }
controls.appendChild(button)
return button })
// color mode switch...
var button = document.createElement('button')
button.innerText = '('+ options.color[0] +')'
button.onclick = function(){
options.color = color_modes[
(color_modes.indexOf(options.color) + 1)
% color_modes.length]
this.innerText = '('+ options.color[0] +')'
update() }
controls.appendChild(button)
// add to block...
container.appendChild(controls) }
// meta stuff...
container.setAttribute('graph-width', canvas.width)
container.setAttribute('graph-height', canvas.height)
container.setAttribute('image-width', img.width)
container.setAttribute('image-height', img.height)
// init...
update()
return container
}
var start = function(){
//waveform(document.getElementById('input'), document.getElementById('waveform'), 'color')
//histogram(document.getElementById('input'), document.getElementById('histogram'), 'color')
//document.body.appendChild(makeWaveform(document.getElementById('input'), 'color', 'normalized'))
document.body.appendChild(makeWaveform(document.getElementById('input')))
document.body.appendChild(makeWaveform('../images/splash-800x500.jpg'))
}
</script>
<body>
<img id="input" src="../images/splash-800x500.jpg" onload="start()"/>
<br>
<ig-image-graph
graph="histogram"
src="../images/splash-800x500.jpg"
mode="color"
color="normalized"
style="width: 600px; height: 300px"></ig-image-graph>
<ig-image-graph
graph="waveform"
src="../images/splash-800x500.jpg"
mode="color"
color="normalized" ></ig-image-graph>
<!--
<br>
<canvas id="waveform"></canvas>
<br>
<button onclick="waveform(getElementById('input'), getElementById('waveform'), 'luminance')">Luminance</button>
<button onclick="waveform(getElementById('input'), getElementById('waveform'), 'color')">Color</button>
<button onclick="waveform(getElementById('input'), getElementById('waveform'), 'R')">R</button>
<button onclick="waveform(getElementById('input'), getElementById('waveform'), 'G')">G</button>
<button onclick="waveform(getElementById('input'), getElementById('waveform'), 'B')">B</button>
<br>
<canvas id="histogram"></canvas>
<br>
<button onclick="histogram(getElementById('input'), getElementById('histogram'), 'luminance')">Luminance</button>
<button onclick="histogram(getElementById('input'), getElementById('histogram'), 'color')">Color</button>
<button onclick="histogram(getElementById('input'), getElementById('histogram'), 'R')">R</button>
<button onclick="histogram(getElementById('input'), getElementById('histogram'), 'G')">G</button>
<button onclick="histogram(getElementById('input'), getElementById('histogram'), 'B')">B</button>
-->
<br>
<br>
<br>
</body>
</html>
<!-- vim:set ts=4 sw=4 : -->

View File

@ -0,0 +1,325 @@
<!DOCTYPE html>
<html>
<style>
/* size/proportions do not matter... */
.viewer {
position: relative;
width: 80vw;
height: 80vh;
overflow: hidden;
background: gray;
}
/* center marker */
.viewer:after {
position: absolute;
content: "";
font-size: 0pt;
box-sizing: border-box;
width: 8px;
height: 8px;
top: 50%;
left: 50%;
margin-top: -4px;
margin-left: -4px;
border: solid 2px rgba(0, 0, 255, 0.3);
border-radius: 50%;
}
/*
- center this to viewer vertically and horizontally
-- top, left corner is center of viewer...
- align vertically to center current ribbon (manual)
*/
.ribbon-set {
position: relative;
top: 50%;
left: 50%;
transform-origin: top left;
transition: transform 0.1s linear;
}
.ribbon-locator {
position: relative;
top: 0px;
left: 0px;
transition: transform 0.1s linear;
}
/*
- align image horizontally relative to ribbon-set left (manual)
*/
.ribbon {
position: relative;
display: block;
height: auto;
/*min-width: 0px;*/
width: auto;
overflow: visible;
white-space: nowrap;
font-size: 0;
float: left;
clear: both;
background: black;
transition: transform 0.1s linear;
/* XXX use vmin here... */
margin-top: 2.5px;
margin-bottom: 2.5px;
/*
margin-top: 0.5vmin;
margin-bottom: 0.5vmin;
*/
}
/* horizontal size/proportions do not matter... */
.image {
position: relative;
display: inline-block;
vertical-align: middle;
text-align:left;
font-size: 12pt;
overflow: hidden;
/* XXX use vmin here... */
width: 50px;
height: 50px;
/*
width: 10vmin;
height: 10vmin;
*/
box-sizing: border-box;
color: white;
background: no-repeat 50% transparent;
background-size: contain;
box-sizing: border-box;
border: solid gray 1px;
background-color: silver;
}
.current.image {
/*border: solid red 5px;*/
}
.single-image-mode .ribbon {
background: transparent;
}
.single-image-mode .image:not(.current) {
visibility: hidden;
}
</style>
<script src="../ext-lib/jquery.js"></script>
<script src="../ext-lib/jquery-ui.js"></script>
<script>
$(function(){
// XXX needed when using vmin for image sizing...
/*
$(window)
.resize(function(){
$('.current.image').click()
})
*/
$('.image')
.click(function(){
$('.current.image').removeClass('current')
var image = $(this)
var ribbon = image.parents('.ribbon').first()
var ribbon_locator = ribbon.parents('.ribbon-locator').first()
var ribbon_set = ribbon_locator.parents('.ribbon-set').first()
image
.addClass('current')
var scale = ribbon_set.attr('scale') || 1
var angle = ribbon_set.attr('angle') || 0
var l = image[0].offsetLeft
var w = image[0].offsetWidth
var t = ribbon[0].offsetTop
var h = ribbon[0].offsetHeight
// centering image...
ribbon.css('transform', 'translateX(-'+ (l + w/2) +'px)')
// view angle and scale...
ribbon_set.css('transform',
'scale('+ scale +') '
+'rotate('+ angle +'deg)')
// centering ribbons...
ribbon_locator.css('transform', 'translateY(-'+ (t + h/2) +'px)')
})
$('.ribbon-set')
.draggable()
$('.drag-reset')
.click(function(){
$('.ribbon-set').css({
top: '',
left: '',
})
})
var ribbon_scale
var single_scale
$('.single-image-toggle')
.click(function(){
var ribbon_set = $('.ribbon-set')
if($('.viewer').hasClass('single-image-mode')){
single_scale = ribbon_set.attr('scale') || 5
} else {
ribbon_scale = ribbon_set.attr('scale') || 1
}
$('.viewer').toggleClass('single-image-mode')
if($('.viewer').hasClass('single-image-mode')){
ribbon_set.attr('scale', single_scale || 5)
} else {
ribbon_set.attr('scale', ribbon_scale || 1)
}
$('.current.image').click()
})
$('.zoom-reset')
.click(function(){
var ribbon_set = $('.ribbon-set')
ribbon_set.attr('scale', '1')
$('.current.image').click()
})
$('.zoom-in')
.click(function(){
var ribbon_set = $('.ribbon-set')
var scale = (ribbon_set.attr('scale') || 1) * 1.2
ribbon_set.attr('scale', scale)
$('.current.image').click()
})
$('.zoom-out')
.click(function(){
var ribbon_set = $('.ribbon-set')
var scale = (ribbon_set.attr('scale') || 1) / 1.2
ribbon_set.attr('scale', scale)
$('.current.image').click()
})
$('.rotate-reset')
.click(function(){
var ribbon_set = $('.ribbon-set')
ribbon_set.attr('angle', '0')
$('.current.image').click()
})
$('.rotate-cw')
.click(function(){
var ribbon_set = $('.ribbon-set')
var angle = parseInt(ribbon_set.attr('angle') || 0) + 10
ribbon_set.attr('angle', angle)
$('.current.image').click()
})
$('.rotate-ccw')
.click(function(){
var ribbon_set = $('.ribbon-set')
var angle = parseInt(ribbon_set.attr('angle') || 0) - 10
ribbon_set.attr('angle', angle)
$('.current.image').click()
})
$('.current.image').click()
})
</script>
<body>
<button class="single-image-toggle">&#9635;</button>
&nbsp;
<button class="zoom-in">+</button>
<button class="zoom-reset">1x</button>
<button class="zoom-out">-</button>
&nbsp;
<button class="rotate-ccw">&#8634;</button>
<button class="rotate-reset">0&deg;</button>
<button class="rotate-cw">&#8635;</button>
&nbsp;
<button class="drag-reset">(0,0)</button>
&nbsp;
<button class="rotate-reset zoom-reset drag-reset">reset all</button>
<div class="viewer">
<div class="ribbon-set">
<div class="ribbon-locator">
<div class="ribbon">
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
</div>
<div class="ribbon">
<div class="image"></div>
<div class="image"></div>
<div class="current image"/></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
</div>
<div class="ribbon">
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
<div class="image"></div>
</div>
</div>
</div>
</div>
</body>
</html>
<!-- vim:set ts=4 sw=4 spell : -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,448 @@
//---------------------------------------------------------------------
//
//
// XXX still thinking on how to package this correctly...
//
//---------------------------------------------------------------------
// image manipulation basics...
var Filters = {
makeCanvas: function(w, h){
var c = document.createElement('canvas')
c.width = w
c.height = h
return c },
// as input takes an HTML Image object...
getPixels: function(img, w, h){
var w = w || img.width
var h = h || img.height
var c = this.makeCanvas(w, h)
var context = c.getContext('2d')
if(img == null){
context.rect(0, 0, w, h)
context.fillStyle = "black"
context.fill()
} else {
context.drawImage(img, 0, 0, w, h) }
return context.getImageData(0,0,c.width,c.height) },
setPixels: function(c, data, w, h){
c.width = data.width
c.height = data.height
var context = c.getContext('2d')
context.putImageData(data, 0, 0) },
filterImage: function(filter, image, var_args){
var args = [this.getPixels(image)]
for(var i=2; i<arguments.length; i++){
args.push(arguments[i])
}
return filter.apply(null, args) },
grayscale: function(pixels, args){
var d = pixels.data
for(var i=0; i<d.length; i+=4){
var r = d[i]
var g = d[i+1]
var b = d[i+2]
// CIE luminance for the RGB
// The human eye is bad at seeing red and blue, so we de-emphasize them.
var v = 0.2126*r + 0.7152*g + 0.0722*b
d[i] = d[i+1] = d[i+2] = v }
return pixels },
// XXX need to resize this...
histogram: function(pixels, mode, color){
color = color || 'fill'
mode = mode || 'luminance'
var w = 255
var h = 255
// output buffer...
var out = this.getPixels(null, w, h)
// pixel hit buffer...
var count = []
var od = out.data
var d = pixels.data
// get the stats...
for(var i=0; i<d.length; i+=4){
var r = d[i]
var g = d[i+1]
var b = d[i+2]
if(mode == 'luminance'){
var v = Math.round(0.2126*r + 0.7152*g + 0.0722*b) * 4
count[v] = count[v+1] = count[v+2] = (count[v] || 0) + 1
} else {
if(mode == 'color' || mode == 'R'){
count[r*4] = (count[r*4] || 0) + 1 }
if(mode == 'color' || mode == 'G'){
count[g*4+1] = (count[g*4+1] || 0) + 1 }
if(mode == 'color' || mode == 'B'){
count[b*4+2] = (count[b*4+2] || 0) + 1 } } }
var m = 255 / Math.max(...count.filter(function(){ return true }))
var pos = function(i, value){
return (
// horizontal position...
i*4
// value vertical offset...
+ (255-Math.round(value*m))*w*4) }
// XXX would be nice to have an option to draw full columns...
count.forEach(function(v, i){
var j = pos(i/4, v)
while(j < od.length){
j += w*4
od[j] = 255
if(color == 'point'){
// correct for blue visibility...
mode != 'luminance'
&& (i-2)%4 == 0
&& (od[j-1] = od[j-2] = 180)
break } } })
return out },
waveform: function(pixels, mode, color){
mode = mode || 'luminance'
color = color || 'normalized'
var w = pixels.width
// normalize pixel ratio...
var m = (1/pixels.height)*255
var offsetTop = 0
var offsetBottom = 0
// output buffer...
var out = this.getPixels(null,
w,
offsetTop + 255 + offsetBottom)
// pixel hit buffer...
var count = []
var od = out.data
var d = pixels.data
var pos = function(i, value){
return (
// top margin...
offsetTop*w*4
// horixontal position...
+ i%(w*4)
// value vertical offset...
+ (255-Math.round(value))*w*4) }
var gain = 100
for(var i=0; i<d.length; i+=4){
var r = d[i]
var g = d[i+1]
var b = d[i+2]
var c, j, f, x, y
if(mode == 'luminance'){
// CIE luminance for RGB
var v = 0.2126*r + 0.7152*g + 0.0722*b
c = count[j = pos(i, v)] = (count[j] || 0) + m
od[j] = od[j+1] = od[j+2] = c * gain
} else {
if(mode == 'color' || mode == 'R'){
f = 0.2126
x = 1
y = 2
j = pos(i, r)
c = count[j] = (count[j] || 0) + m
od[j] = c * gain }
if(mode == 'color' || mode == 'G'){
f = 0.7152
x = -1
y = 1
j = pos(i, g) + 1
c = count[j] = (count[j] || 0) + m
od[j] = c * gain }
if(mode == 'color' || mode == 'B'){
f = 0.0722
x = -2
y = -1
j = pos(i, b) + 2
c = count[j] = (count[j] || 0) + m
od[j] = c * gain }
// normalize...
mode != 'color'
&& (color == 'white' ?
(od[j+x] = od[j+y] = c * gain)
: color == 'normalized' ?
(od[j+x] = od[j+y] = c * gain/2 * (1-f))
: null) } }
return out },
}
//---------------------------------------------------------------------
// helpers...
var WAVEFORM_SIZE = 1000
var waveform = function(img, canvas, mode, color){
var d = Filters.getPixels(img, WAVEFORM_SIZE)
var w = Filters.waveform(d, mode, color)
Filters.setPixels(canvas, w) }
var HISTOGRAM_SIZE = 1000
var histogram = function(img, canvas, mode, color){
var d = Filters.getPixels(img)
var w = Filters.histogram(d, mode, color)
Filters.setPixels(canvas, w) }
//---------------------------------------------------------------------
// Custom element...
igImageGraph_template = `
<style>
:host {
position: relative;
display: inline-block;
background: black;
width: attr(image-width);
height: attr(graph-height);
}
:host canvas {
box-sizing: border-box;
width: 100%;
height: 100%;
border: 2px solid gray;
}
:host .controls {
display: inline-block;
position: absolute;
top: 2px;
right: 2px;
left: 2px;
}
:host .controls button {
background: transparent;
border: none;
color: white;
opacity: 0.7;
float: right;
}
:host .controls button.current {
text-decoration: underline;
opacity: 0.9;
}
:host .controls button:hover {
opacity: 1;
}
</style>
<canvas class="graph"></canvas>
<div class="controls"></div>
`
class igImageGraph extends HTMLElement {
template = 'ig-image-graph'
graphs = {
waveform,
histogram,
}
modes = ['luminance', 'color', 'R', 'G', 'B']
color_modes = ['normalized', 'white', 'point']
constructor(src){
super()
// shadow DOM
var shadow = this.__shadow =
this.attachShadow({mode: 'open'})
// get/create template...
var tpl = document.getElementById(this.template)
if(!tpl){
var tpl = document.createElement('template')
tpl.setAttribute('id', this.template)
tpl.innerHTML = igImageGraph_template
document.head.appendChild(tpl) }
shadow.appendChild(tpl.content.cloneNode(true)) }
connectedCallback(){
this.update_controls()
this.update() }
// attributes...
get observedAttributes(){
return [
'src',
'mode',
'color',
'nocontrols',
'graph',
]}
attributeChangedCallback(name, from, to){
name == 'nocontrols'
&& this.update_controls()
this.update() }
get graph(){
return this.getAttribute('graph') || 'waveform' }
set graph(value){
value in this.graphs
&& this.setAttribute('graph', value)
value == ''
&& this.removeAttribute('graph')
this.update() }
get src(){
return this.getAttribute('src') }
set src(value){
var that = this
this.__update_handler = this.__update_handler
|| this.update.bind(this)
var url = typeof(value) == typeof('str')
// get/create image...
var img = this.image =
url ?
(this.image || document.createElement('img'))
: value
img.removeEventListener('load', this.__update_handler)
img.addEventListener('load', this.__update_handler)
// set .src and img.src...
this.setAttribute('src',
url ?
(img.src = value)
: img.src) }
get mode(){
return this.getAttribute('mode') || 'color' }
set mode(value){
this.modes.includes(value)
&& this.setAttribute('mode', value)
value === undefined
&& this.removeAttribute('color')
this.update_controls()
this.update() }
get color(){
return this.getAttribute('color') || 'normalized' }
set color(value){
this.color_modes.includes(value)
&& this.setAttribute('color', value)
value === undefined
&& this.removeAttribute('color')
this.update() }
get nocontrols(){
return this.getAttribute('nocontrols') != null }
set nocontrols(value){
value ?
this.setAttribute('nocontrols', '')
: this.removeAttribute('nocontrols')
this.update_controls()
this.update() }
// API...
update_controls(){
var that = this
var mode = this.mode
var controls = this.__shadow.querySelector('.controls')
controls.innerHTML = ''
// modes...
var buttons = [
// graph...
function(){
var button = document.createElement('button')
button.classList.add('update')
//button.innerHTML = '&#9681;'
button.innerHTML = '&#9706;'
button.onclick = function(){
that.graph = that.graph == 'waveform' ?
'histogram'
: 'waveform'
that.update() }
return button }(),
// modes...
(this.nocontrols ?
[]
: this.modes)
// mode buttons...
.map(function(m){
var button = document.createElement('button')
button.innerText = m
button.classList.add(m, ...(m == mode ? ['current'] : []))
button.onclick = function(){
that.mode = m }
return button }),
/*
// color mode switch...
function(){
var button = document.createElement('button')
button.innerText = '('+ that.color[0] +')'
button.onclick = function(){
that.color = that.color_modes[
(that.color_modes.indexOf(that.color) + 1)
% that.color_modes.length]
this.innerText = '('+ that.color[0] +')' }
return button }(),
//*/
// reload...
function(){
var button = document.createElement('button')
button.classList.add('update')
button.innerHTML = '&#10227;'
button.onclick = function(){ that.update() }
return button }(),
]
.flat()
.reverse()
.forEach(function(button){
controls.appendChild(button) })
return this }
update(){
var that = this
var mode = this.mode
// controls...
// remove...
if(!this.nocontrols){
var controls = this.__shadow.querySelector('.controls')
// current button state...
var button = controls.querySelector('button.'+this.mode)
button
&& button.classList.add('current') }
// XXX configurable...
var type = this.graph
var graph = this.graphs[type]
var canvas = this.__shadow.querySelector('canvas')
if(this.image){
graph(this.image, canvas, this.mode, this.color)
} else if(this.src){
this.src = this.src }
return this }
}
window.customElements.define('ig-image-graph', igImageGraph)
var makeImageGraph = function(img, options){
var g = document.createElement('ig-image-graph')
Object.assign(g,
options || {})
g.src = img
return g }
//---------------------------------------------------------------------
// vim:set ts=4 sw=4 :

View File

@ -0,0 +1,237 @@
<!DOCTYPE html>
<html>
<style>
label {
margin: 0.2em;
}
label label {
margin: auto;
}
button {
border: none;
background: transparent;
}
input[type=checkbox],
input[type=radio] {
display: none;
}
input:not(:checked) ~ * {
opacity: 0.3;
}
input:hover:not(:checked) ~ * {
opacity: 0.8;
}
input:not(:checked) ~ sub:hover,
input:not(:checked) ~ sub {
opacity: 0.3;
}
.material-icons {
font-size: 2em;
}
sub .material-icons {
font-size: 1.5em;
}
.crop {
position: absolute;
width: 500px;
height: 500px;
border: solid 1px black;
}
.center {
position: relative;
top: 50%;
left: 50%;
width: 15px;
height: 15px;
margin-left: -8.5px;
margin-top: -8.5px;
border: solid 1px black;
border-radius: 50%;
}
.center:before {
display: block;
position: absolute;
content: "";
bottom: 50%;
right: 50%;
width: 15px;
height: 15px;
margin-right: -0.5px;
margin-bottom: -0.5px;
border-bottom: solid 1px black;
border-right: solid 1px black;
}
.center:after {
display: block;
position: absolute;
content: "";
top: 50%;
left: 50%;
width: 15px;
height: 15px;
margin-top: -0.5px;
margin-left: -0.5px;
border-top: solid 1px black;
border-left: solid 1px black;
}
</style>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="../css/fonts.css">
<script src="../ext-lib/jquery.js"></script>
<script src="../ext-lib/jquery-ui.js"></script>
<script src="../ext-lib/jquery.ui.touch-punch.min.js"></script>
<script src="../lib/jli.js"></script>
<script>
var ORIGINAL = 1
$(function(){
$('.crop')
.resizable({
handles: 'all',
})
.draggable()
$('.crop .center')
.draggable()
})
function setRatio(ratio){
var crop = $('.crop')
crop
.resizable("option", "aspectRatio", ratio)
// XXX this feels like a hack but it works...
.data('uiResizable')._aspectRatio = ratio
if(ratio === false){
$('#lock-ratio')[0].checked = false
return
}
var w = crop.width()
var h = crop.height()
// resize...
var t = w + h
h = t / (ratio + 1)
w = t - h
crop
.height(h)
.width(w)
}
function flip(){
var crop = $('.crop')
var r = crop.resizable("option", "aspectRatio")
if(r > 0){
setRatio(1/r)
// no aspect ratio defined, just switch...
} else {
var w = crop.width()
var h = crop.height()
crop
.height(w)
.width(h)
}
}
function toggleLock(m){
var crop = $('.crop')
var r = m || crop.resizable("option", "aspectRatio")
if(r === false){
var w = crop.width()
var h = crop.height()
$('#lock-ratio')[0].checked = true
setRatio(w/h)
} else {
$('#lock-ratio')[0].checked = false
setRatio(false)
}
}
</script>
<body>
<button><span title="toggle crop on/off" class="material-icons">crop</span></button>
<label>
<input type="radio" name="ratio" checked onclick="setRatio(false)">
<span class="material-icons">crop_free</span>
<sub>
<label>
<input id="lock-ratio" type="checkbox" onclick="toggleLock()">
<span class="material-icons">lock</span>
</label>
</sub>
</label>
<label>
<input type="radio" name="ratio" onclick="setRatio(ORIGINAL)">
<span title="original ratio" class="material-icons">crop_original</span>
</label>
<label>
<input type="radio" name="ratio" onclick="setRatio(1)">
<span class="material-icons">crop_square</span>
<span>1:1</span>
</label>
<label>
<input type="radio" name="ratio" onclick="setRatio(3/2)">
<span class="material-icons">crop_3_2</span>
<span>3:2</span>
</label>
<label>
<input type="radio" name="ratio" onclick="setRatio(16/9)">
<span class="material-icons">crop_16_9</span>
<span>16:9</span>
</label>
<button onclick="flip()"><span class="material-icons">crop_rotate</span></button>
<button><span class="material-icons">clear</span></button>
<br>
<pre>
TODO:
- rotation and rotation handle
- touch
- multitouch
- center point
</pre>
<div class="container">
<div class="crop">
<div class="center">
</div>
</div>
</div>
</body>
</html>
<!-- vim:set sw=4 ts=4 : -->

View File

@ -0,0 +1,449 @@
<!DOCTYPE html>
<html>
<!--
//---------------------------------------------------------------------
//
-->
<style>
.mark-center:after {
position: absolute;
display: block;
content: "";
width: 5px;
height: 5px;
left: 50%;
top: 50%;
border-left: solid 2px red;
border-top: solid 2px red;
margin-left: -1px;
margin-top: -1px;
opacity: 0.8;
z-index: 1;
}
.mark-center:before {
position: absolute;
display: block;
content: "";
width: 5px;
height: 5px;
right: 50%;
bottom: 50%;
border-bottom: solid 2px red;
border-right: solid 2px red;
margin-bottom: -1px;
margin-right: -1px;
opacity: 0.8;
z-index: 1;
}
/* XXX appears that there is no way to hide the scrollbar on FF...
* ...one way around this is to use something like iScroll/Scrolly
* on FF or where more control is needed...
*/
.viewer {
position: relative;
display: inline-block;
border: solid 1px gray;
width: 600px;
height: 500px;
overflow: hidden;
}
.scaler {
position: relative;
width: 100%;
height: 100%;
top: 50%;
left: 50%;
margin-top: -50%;
margin-left: -50%;
transform-origin: 50% 50%;
overflow-x: hidden;
overflow-y: scroll;
-ms-overflow-style: none;
}
.scaler::-webkit-scrollbar {
display: none;
}
/* This is to be used for:
* - vrtical positioning
* - scaling
* (update width to fit viewer)
*/
.ribbon-set {
position: relative;
display: inline-block;
/* This allways needs to be of viewer width, this mostly applies
* to scaling...
*/
width: 100%;
padding-top: 50%;
padding-bottom: 50%;
}
.ribbon-container {
position: relative;
display: block;
height: 120px;
width: 100%;
overflow-x: scroll;
overflow-y: hidden;
-ms-overflow-style: none;
}
.ribbon-container::-webkit-scrollbar {
display: none;
}
.ribbon-container:before {
position: absolute;
content: attr(index);
}
.ribbon {
position: relative;
display: inline-block;
height: 100px;
width: auto;
white-space: nowrap;
overflow: visible;
background: silver;
/*box-shadow: 0px 0px 25px -10px rgba(0,0,0,0.75);*/
box-shadow: 0px 0px 25px -10px rgba(0,0,0,1);
/* start/end markers... */
/*border-left: 100px solid gray;
border-right: 100px solid gray;*/
margin: 10px;
margin-left: 50%;
/* XXX for some reason this does not work as expected */
margin-right: 50%;
}
.image {
position: relative;
display: inline-block;
width: 100px;
height: 100px;
outline: solid blue 1px;
background: silver;
}
.image:after {
content: attr(index);
opacity: 0.5;
}
</style>
<script src="../ext-lib/jquery.js"></script>
<script src="../ext-lib/jquery-ui.js"></script>
<script src="../ext-lib/velocity.min.js"></script>
<script src="../lib/jli.js"></script>
<script>
var scale = function(){
var s = /scale\(([^\)]+)\)/.exec($('.scaler')[0].style.transform)
return s ? parseFloat(s.pop()) : 1
}
// XXX when setting origin at scales different from 1, we'll need to
// adjust offset to compensate for the shift...
// XXX one other simplification might be adding a new element specifically
// dedicated to scaling...
var centerOrigin = function(){
var H = $('.viewer').height()
var s = $('.viewer')[0].scrollTop
$('.ribbon-set').css({
'transform-origin': '50% '+ (s + H/2) +'px'
})
}
// XXX these accumolate errors...
var zoomIn = function(c){
c = c || 1.2
centerOrigin()
$('.scaler')
.velocity('stop')
.velocity({
scale: '*='+c,
width: '/='+c,
height: '/='+c,
'margin-left': '/='+c,
'margin-top': '/='+c,
}, {
duration: 300,
easing: 'linear',
})
}
var zoomOut = function(c){
c = c || 1.2
centerOrigin()
$('.scaler')
.velocity('stop')
.velocity({
scale: '/='+c,
width: '*='+c,
height: '*='+c,
'margin-left': '*='+c,
'margin-top': '*='+c,
}, {
duration: 300,
easing: 'linear',
})
}
// items - list of items, each item must be make(..) compatible
// ...this can also be a function and return multiple
// items (XXX)
// make - item DOM constructor
//
// Options:
// container - element that actually contains the items (default: 'this')
// direction - scroll direction (default: 'vertical')
// threshold -
//
// XXX horizontal scroll is still buggy -- mostly in thresholds...
var makeScrollHandler = function(items, make, options){
options = options || {}
var direction = options.direction || 'vertical'
//var threshold = options.threshold ||
var _container = options.container || 'this'
// XXX should we do an initial load here???
return function(evt){
var container = _container == 'this' ?
this
: typeof(_container) == typeof('str') ?
this.querySelector(_container)
: _container
if(direction == 'vertical'){
var size = this.scrollHeight
var offset = this.scrollTop
var visible_size = this.offsetHeight
var elem_scroll_attr = 'scrollTop'
var elem_offset_attr = 'offsetTop'
var elem_size_attr = 'offsetHeight'
} else {
var size = this.scrollWidth
var offset = this.scrollLeft
var visible_size = this.offsetWidth
var elem_scroll_attr = 'scrollLeft'
var elem_offset_attr = 'offsetLeft'
var elem_size_attr = 'offsetWidth'
}
// XXX
var threshold = visible_size
var dom_items = container.children
// head limit -- add items to the head...
if(offset < threshold){
var i = parseInt(dom_items[0].getAttribute('index')) - 1
var e = items instanceof Function ?
items(i)
// XXX make this support multiple items...
: items[i]
// make the item(s)...
if(e){
// XXX need to account for situations where the whole thing is replaced...
var c = dom_items[0]
var pre = c[elem_offset_attr]
container.prepend(make(e))
// compensate offset for added items...
var d = c[elem_offset_attr] - pre
// XXX need to do this only if the browser is not compensating...
if(direction == 'horizontal'){
this[elem_scroll_attr] += d
}
// remove hidden items from tail...
var t = offset + visible_size + threshold
;[].slice.call(dom_items)
// XXX add threshold / items-to-keep-offscreen limit ...
// XXX this is wrong for horizontal scroll...
.filter(function(e){ return e[elem_offset_attr] > t })
// XXX can we remove these in one go???
.forEach(function(e){ e.remove() })
}
}
// tail limit -- add items to the tail...
if( size - (offset + visible_size) < threshold ){
var i = parseInt(dom_items[dom_items.length-1].getAttribute('index')) + 1
var e = items instanceof Function ?
items(i)
// XXX make this support multiple items...
: items[i]
if(e){
container.append(make(e))
//var clone = container.cloneNode(true)
//container.replaceWith(clone)
// XXX need to account for situations where the whole thing is replaced...
var c = dom_items[dom_items.length-1]
var pre = c[elem_offset_attr]
// remove hidden items for head...
;[].slice.call(dom_items)
// XXX add threshold / items-to-keep-offscreen limit ...
.filter(function(e){ return e[elem_offset_attr] + e[elem_size_attr] < offset })
// XXX can we remove these in one go???
.forEach(function(e){ e.remove() })
// compensate offset for removed items...
var d = c[elem_offset_attr] - pre
// XXX need to do this only if the browser is not compensating...
if(direction == 'horizontal'){
this[elem_scroll_attr] += d
}
//container.replaceWith(container)
}
}
}
}
var setup = function(){
var H = $('.viewer').height()
var W = $('.viewer').width()
var ribbon_set = $('.ribbon-set')[0]
// XXX need to calculate this considering scale...
var threshold = 300
var ribbon_count = 10
var image_count = 10
var ribbon_container = document.createElement('div')
ribbon_container.classList.add('ribbon-container')
var ribbon = document.createElement('div')
ribbon.classList.add('ribbon')
var image = document.createElement('div')
image.classList.add('image')
var makeImage = function(n){
var i = image.cloneNode()
i.setAttribute('index', n)
return i
}
var makeRibbon = function(n){
var r = ribbon.cloneNode()
for(var i=0; i < image_count; i++){
r.appendChild(makeImage(i))
}
var rc = ribbon_container.cloneNode()
rc.appendChild(r)
rc.setAttribute('index', n)
$(rc).scroll(makeScrollHandler(
function(n){ return n >= 0 ? n : undefined },
makeImage,
{
container: r,
direction: 'horizontal',
threshold: 300,
}))
return rc
}
var fragment = document.createDocumentFragment()
for(var i=0; i < ribbon_count; i++){
fragment.appendChild(makeRibbon(i))
}
ribbon_set.appendChild(fragment)
// set margins to be parant and not content dependant...
$('.scaler')
.velocity({
'margin-left': -W/2,
'margin-top': -H/2,
}, 0)
.scroll(makeScrollHandler(
function(n){ return n >= 0 ? n : undefined },
makeRibbon,
{
container: ribbon_set,
threshold: 300,
}))
}
$(function(){
setup()
})
</script>
<body>
<div class="viewer mark-center">
<div class="scaler">
<div class="ribbon-set">
</div>
</div>
</div>
</body>
</html>
<!-- vim:set sw=4 ts=4 : -->

View File

@ -0,0 +1,369 @@
<!DOCTYPE html>
<html>
<!--
//---------------------------------------------------------------------
// Experiment: use native scroll for ribbons and view...
// Factors:
// + the browser will do all the heavy lifting and do it faster
// than we can ever hope to do it in JS (assumption)
// - will require us to add an extra container per ribbon
//
// Experiment result:
// - more uniform and fast across browsers
// (except FF - can't disable scrollbars, need to cheat)
// - less controllable (inertia, gestures, ...)
// - is affected by scaling in a bad way - paralax...
//
// Conclusion:
// - this again brings us to using code to control the scroll
// which in turn defeats the original purpose of avoiding
// extra complexity...
//
// See:
// experiments/native-scroll-ribbon.html
//
-->
<style>
.mark-center:after {
position: absolute;
display: block;
content: "";
width: 5px;
height: 5px;
left: 50%;
top: 50%;
border-left: solid 2px red;
border-top: solid 2px red;
margin-left: -1px;
margin-top: -1px;
opacity: 0.8;
z-index: 1;
}
.mark-center:before {
position: absolute;
display: block;
content: "";
width: 5px;
height: 5px;
right: 50%;
bottom: 50%;
border-bottom: solid 2px red;
border-right: solid 2px red;
margin-bottom: -1px;
margin-right: -1px;
opacity: 0.8;
z-index: 1;
}
/* XXX appears that there is no way to hide the scrollbar on FF...
* ...one way around this is to use something like iScroll/Scrolly
* on FF or where more control is needed...
*/
.viewer {
position: relative;
display: inline-block;
border: solid 1px gray;
width: 600px;
height: 500px;
overflow: hidden;
}
.scaler {
position: relative;
width: 100%;
height: 100%;
top: 50%;
left: 50%;
margin-top: -50%;
margin-left: -50%;
transform-origin: 50% 50%;
overflow-x: hidden;
overflow-y: scroll;
-ms-overflow-style: none;
}
.scaler::-webkit-scrollbar {
display: none;
}
/* This is to be used for:
* - vrtical positioning
* - scaling
* (update width to fit viewer)
*/
.ribbon-set {
position: relative;
display: inline-block;
/* This allways needs to be of viewer width, this mostly applies
* to scaling...
*/
width: 100%;
padding-top: 50%;
padding-bottom: 50%;
}
.ribbon-container {
position: relative;
height: 120px;
width: 100%;
overflow-x: scroll;
overflow-y: hidden;
-ms-overflow-style: none;
}
.ribbon-container::-webkit-scrollbar {
display: none;
}
.ribbon {
position: relative;
display: inline-block;
height: 100px;
width: 1000px;
background: silver;
/*box-shadow: 0px 0px 25px -10px rgba(0,0,0,0.75);*/
box-shadow: 0px 0px 25px -10px rgba(0,0,0,1);
/* start/end markers... */
border-left: 100px solid gray;
border-right: 100px solid gray;
margin: 10px;
margin-left: 50%;
/* XXX for some reason this does not work as expected */
margin-right: 50%;
}
</style>
<script src="../ext-lib/jquery.js"></script>
<script src="../ext-lib/jquery-ui.js"></script>
<script src="../ext-lib/velocity.min.js"></script>
<script src="../ext-lib/iscroll.js"></script>
<script src="../ext-lib/iscroll-zoom.js"></script>
<script src="../lib/jli.js"></script>
<script>
var scale = function(){
var s = /scale\(([^\)]+)\)/.exec($('.scaler')[0].style.transform)
return s ? parseFloat(s.pop()) : 1
}
// XXX when setting origin at scales different from 1, we'll need to
// adjust offset to compensate for the shift...
// XXX one other simplification might be adding a new element specifically
// dedicated to scaling...
var centerOrigin = function(){
var H = $('.viewer').height()
var s = $('.viewer')[0].scrollTop
$('.ribbon-set').css({
'transform-origin': '50% '+ (s + H/2) +'px'
})
}
// XXX these accumolate errors...
var zoomIn = function(c){
c = c || 1.2
centerOrigin()
$('.scaler')
.velocity('stop')
.velocity({
scale: '*='+c,
width: '/='+c,
height: '/='+c,
'margin-left': '/='+c,
'margin-top': '/='+c,
}, {
duration: 300,
easing: 'linear',
})
}
var zoomOut = function(c){
c = c || 1.2
centerOrigin()
$('.scaler')
.velocity('stop')
.velocity({
scale: '/='+c,
width: '*='+c,
height: '*='+c,
'margin-left': '*='+c,
'margin-top': '*='+c,
}, {
duration: 300,
easing: 'linear',
})
}
var setup = function(){
var H = $('.viewer').height()
var W = $('.viewer').width()
// set margins to be parant and not content dependant...
$('.scaler')
.velocity({
'margin-left': -W/2,
'margin-top': -H/2,
}, 0)
}
var ISCROLL = false
$(function(){
setup()
// setup iScroll...
if(ISCROLL){
// Vertical scroll and zoom...
$('.scaler')
.css({
overflow: 'hidden',
})
window.scroll_view = new IScroll('.scaler', {
// XXX setting this to false makes zoom reset x to 0 after it's done...
scrollX: false,
scrollY: true,
disableMouse: false,
mouseWheel: true,
eventPassthrough: 'horizontal',
zoom: true,
})
var t
$('.scaler').on('touchend mouseup', function(){
//t = $('.ribbon-set')[0].style.transform
t = $('.ribbon-set').offset().left
})
scroll_view.on('zoomEnd', function(){
var v = $('.viewer')
var s = scroll_view.scale
var W = v.width()
var H = v.width()
var w = W/s
var h = H/s
var e = $('.ribbon-set')
// XXX compensate for offset -- scroll ribbons by to
// place them where they where under user's fingers...
// XXX this does not work...
/*
var d = (e.offset().left - t) * s
$('.ribbon').each(function(_, r){
$(r).velocity({
transformX: '+='+d,
}, 0)
})
*/
e = e[0]
e.style.width = w + 'px'
e.style.height = h + 'px'
})
// Ribbon scroll...
//
// Problems:
// - iScroll does not account for margins when aclculating
// scroll width, need to patch this on .update(..)...
// - can't scroll ribbons independently
// - two fingers will trigger zoom
// - for some reason if touching two ribbons while
// zooming they will move in the same direction...
// - scrolling a ribbon does not account for scale...
// ...the same problem exists for native scroll...
window.scroll_ribbon = []
$('.ribbon-container')//.eq(0)
.css({
overflow: 'hidden',
})
.each(function(_, e){
console.log(e)
// XXX this calculates the scroll width incorrectly...
scroll_ribbon.push(new IScroll(e, {
scrollX: true,
scrollY: false,
disableMouse: false,
// XXX this only reads vertical mousewheel...
// ...need this to work in a horizontal direction...
//mouseWheel: true,
}))
})
}
})
</script>
<body>
<div class="viewer mark-center">
<div class="scaler">
<div class="ribbon-set">
<div class="ribbon-container">
<div class="ribbon">
</div>
</div>
<div class="ribbon-container">
<div class="ribbon">
</div>
</div>
<div class="ribbon-container">
<div class="ribbon">
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,257 @@
<!DOCTYPE html>
<html>
<style>
.ribbon {
position: relative;
display: block;
float: left;
clear: left;
white-space: nowrap;
overflow: visible;
margin: 5px 0px;
width: auto;
}
.base.ribbon {
border-bottom: solid 5px red;
}
.mark,
.image {
position: relative;
display: inline-block;
width: 100px;
height: 100px;
outline: solid 1px blue;
background: silver;
vertical-align: middle;
}
.image:after {
content: attr(gid);
}
.current.image {
background: gray;
}
.mark {
margin-left: -100px;
background: none;
pointer-events: none;
}
.mark:after {
position: absolute;
content: "";
top: 0;
right: 0;
width: 0;
height: 0;
border: solid 10px red;
border-bottom-color: transparent;
border-left-color: transparent;
pointer-events: auto;
}
</style>
<script src="../ext-lib/jquery.js"></script>
<script src="../ext-lib/jquery-ui.js"></script>
<!-- preact.js -->
<script src="../node_modules/preact/dist/preact.min.js"></script>
<script src="../lib/jli.js"></script>
<script>
var h = preact.h
var stub_data = {
ribbon_order: ['ra', 'rb', 'rc'],
ribbons: {
ra: [].slice.call('abcde'),
rb: [].slice.call('fghijklm'),
rc: [].slice.call('opqrstuvwxyz'),
},
order: [].slice.call('abcdefghijklmopqrstuvwxyz'),
tags: {
selected: [].slice.call('ahdtu'),
b: [].slice.call('adxz'),
},
current: 'a',
base: 'rb',
}
// XXX needs vertical align...
class IGRibbonSet extends preact.Component {
render(props, state){
var data = props.data
var ribbons = data.ribbon_order.map(function(gid){
return h(IGRibbon, {
gid: gid,
current: data.current,
base: data.base,
data: data
}) })
var s = props.scale || 1
return h('div',
{
className: 'ribbon-set',
style: {
transform: 'scale('+ s +', '+ s +')',
},
}, [
h('div', {className: 'current-marker'}),
h('div', {className: 'ribbon-locator'}, ribbons),
])
}
}
// render:
// - ribbon
// - images
// - image marks
//
// XXX needs horizontal align...
class IGRibbon extends preact.Component {
render(props, state){
var data = props.data
var ribbon = props.gid
var images = data.ribbons[ribbon]
.map(function(gid){
var marks = data.tags.selected.indexOf(gid) >= 0 ?
h(IGImageMark, {
gid: gid,
type: 'selected',
data: data,
})
: []
return [
h(IGImage, {
gid: gid,
data: data,
})].concat(marks)
})
.reduce(function(a, b){ return a.concat(b) })
.filter(function(a){ return !!a })
var base = data.base == ribbon ? ['base'] : []
return h('div',
{
classList: ['ribbon'].concat(base).join(' '),
gid: props.gid,
style: {
// XXX offset...
},
}, images)
}
}
// render:
// - image
class IGImage extends preact.Component {
render(props, state){
var data = props.data
var gid = props.gid
return h('div',
{
classList: ['image']
.concat(data.current == gid ? ['current'] : [])
.join(' '),
gid: gid || '',
style: {
// XXX background-image...
},
// XXX STUB
onClick: function(evt){
// toggle tag...
if(data.current == gid){
var selected = data.tags.selected = data.tags.selected || []
selected.indexOf(gid) < 0 ?
selected.push(gid)
: selected.splice(selected.indexOf(gid), 1)
}
// set current...
data.current = gid
render()
},
})
}
}
// render:
// - image mark
class IGImageMark extends preact.Component {
render(props, state){
var gid = props.gid
var type = props.type
var data = props.data
return h('div',
{
classList: ['mark'].concat([type]).join(' '),
gid: gid,
// XXX STUB...
// ...and there is no way to add the mark back...
onClick: function(evt){
data.tags[type].splice(data.tags[type].indexOf(gid), 1)
render()
},
})
}
}
// XXX HACK...
var ribbon_set_dom
function render(data, images, scale){
//preact.render(ribbon_set, document.body)
ribbon_set_dom = preact.render(
h(IGRibbonSet, {
data: data || stub_data,
images: images || {},
scale: scale || 1,
}),
document.getElementById('viewer'),
ribbon_set_dom)
}
$(function(){ render() })
</script>
<body>
<div id="viewer"/>
</body>
</html>
<!-- vim:set ts=4 sw=4 : -->

View File

@ -0,0 +1,58 @@
/**********************************************************************
*
*
*
**********************************************************************/
const puppeteer = require('puppeteer')
/*********************************************************************/
;(async () => {
var browser = await puppeteer.launch()
var page = await browser.newPage()
page.on('console', msg => console.log(' |', msg.text()))
await page
.goto('file://'+ process.cwd().replace(/[\\\/]/g, '/') +'/../index.html')
// Util functions...
//
// screenshot...
page.exposeFunction('screenshot',
async function(name){
return page.screenshot({path: name || 'screenshot.png'}) })
// exit...
page.exposeFunction('exit',
async function(name){
return browser.close() })
page.evaluate(() =>
$('.viewer')
.on('ig.ready', async () => {
// XXX make this scriptable...
ig.browseActions()
await screenshot('browseActions.png')
ig.modal.client.close()
ig.browseActions('/File/')
await screenshot('browseActions - File.png')
ig.modal.client.close()
await exit()
}))
//await page.screenshot({path: 'example.png'})
//await browser.close()
})()
/**********************************************************************
* vim:set ts=4 sw=4 : */

7
Viewer/ext-lib/hammer.min.js vendored Executable file

File diff suppressed because one or more lines are too long

9315
Viewer/ext-lib/jquery-ui.js vendored Executable file

File diff suppressed because it is too large Load Diff

4
Viewer/ext-lib/jquery.js vendored Executable file

File diff suppressed because one or more lines are too long

11
Viewer/ext-lib/jquery.ui.touch-punch.min.js vendored Executable file
View File

@ -0,0 +1,11 @@
/*!
* jQuery UI Touch Punch 0.2.3
*
* Copyright 20112014, Dave Furfero
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* Depends:
* jquery.ui.widget.js
* jquery.ui.mouse.js
*/
!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);

11
Viewer/ext-lib/pouchdb.min.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@ -1,158 +1,158 @@
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* SHA-1 implementation in JavaScript (c) Chris Veness 2002-2014 / MIT Licence */
/* */
/* - see http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html */
/* http://csrc.nist.gov/groups/ST/toolkit/examples.html */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* jshint node:true *//* global define, escape, unescape */
'use strict';
/**
* SHA-1 hash function reference implementation.
*
* @namespace
*/
var Sha1 = {};
/**
* Generates SHA-1 hash of string.
*
* @param {string} msg - (Unicode) string to be hashed.
* @returns {string} Hash of msg as hex character string.
*/
Sha1.hash = function(msg) {
// convert string to UTF-8, as SHA only deals with byte-streams
msg = msg.utf8Encode();
// constants [§4.2.1]
var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 ];
// PREPROCESSING
msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]
// convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1]
var l = msg.length/4 + 2; // length (in 32-bit integers) of msg + 1 + appended length
var N = Math.ceil(l/16); // number of 16-integer-blocks required to hold 'l' ints
var M = new Array(N);
for (var i=0; i<N; i++) {
M[i] = new Array(16);
for (var j=0; j<16; j++) { // encode 4 chars per integer, big-endian encoding
M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) |
(msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
} // note running off the end of msg is ok 'cos bitwise ops on NaN return 0
}
// add length (in bits) into final pair of 32-bit integers (big-endian) [§5.1.1]
// note: most significant word would be (len-1)*8 >>> 32, but since JS converts
// bitwise-op args to 32 bits, we need to simulate this by arithmetic operators
M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]);
M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;
// set initial hash value [§5.3.1]
var H0 = 0x67452301;
var H1 = 0xefcdab89;
var H2 = 0x98badcfe;
var H3 = 0x10325476;
var H4 = 0xc3d2e1f0;
// HASH COMPUTATION [§6.1.2]
var W = new Array(80); var a, b, c, d, e;
for (var i=0; i<N; i++) {
// 1 - prepare message schedule 'W'
for (var t=0; t<16; t++) W[t] = M[i][t];
for (var t=16; t<80; t++) W[t] = Sha1.ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);
// 2 - initialise five working variables a, b, c, d, e with previous hash value
a = H0; b = H1; c = H2; d = H3; e = H4;
// 3 - main loop
for (var t=0; t<80; t++) {
var s = Math.floor(t/20); // seq for blocks of 'f' functions and 'K' constants
var T = (Sha1.ROTL(a,5) + Sha1.f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
e = d;
d = c;
c = Sha1.ROTL(b, 30);
b = a;
a = T;
}
// 4 - compute the new intermediate hash value (note 'addition modulo 2^32')
H0 = (H0+a) & 0xffffffff;
H1 = (H1+b) & 0xffffffff;
H2 = (H2+c) & 0xffffffff;
H3 = (H3+d) & 0xffffffff;
H4 = (H4+e) & 0xffffffff;
}
return Sha1.toHexStr(H0) + Sha1.toHexStr(H1) + Sha1.toHexStr(H2) +
Sha1.toHexStr(H3) + Sha1.toHexStr(H4);
};
/**
* Function 'f' [§4.1.1].
* @private
*/
Sha1.f = function(s, x, y, z) {
switch (s) {
case 0: return (x & y) ^ (~x & z); // Ch()
case 1: return x ^ y ^ z; // Parity()
case 2: return (x & y) ^ (x & z) ^ (y & z); // Maj()
case 3: return x ^ y ^ z; // Parity()
}
};
/**
* Rotates left (circular left shift) value x by n positions [§3.2.5].
* @private
*/
Sha1.ROTL = function(x, n) {
return (x<<n) | (x>>>(32-n));
};
/**
* Hexadecimal representation of a number.
* @private
*/
Sha1.toHexStr = function(n) {
// note can't use toString(16) as it is implementation-dependant,
// and in IE returns signed numbers when used on full words
var s="", v;
for (var i=7; i>=0; i--) { v = (n>>>(i*4)) & 0xf; s += v.toString(16); }
return s;
};
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/** Extend String object with method to encode multi-byte string to utf8
* - monsur.hossa.in/2012/07/20/utf-8-in-javascript.html */
if (typeof String.prototype.utf8Encode == 'undefined') {
String.prototype.utf8Encode = function() {
return unescape( encodeURIComponent( this ) );
};
}
/** Extend String object with method to decode utf8 string to multi-byte */
if (typeof String.prototype.utf8Decode == 'undefined') {
String.prototype.utf8Decode = function() {
try {
return decodeURIComponent( escape( this ) );
} catch (e) {
return this; // invalid UTF-8? return as-is
}
};
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if (typeof module != 'undefined' && module.exports) module.exports = Sha1; // CommonJs export
if (typeof define == 'function' && define.amd) define([], function() { return Sha1; }); // AMD
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* SHA-1 implementation in JavaScript (c) Chris Veness 2002-2014 / MIT Licence */
/* */
/* - see http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html */
/* http://csrc.nist.gov/groups/ST/toolkit/examples.html */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* jshint node:true *//* global define, escape, unescape */
'use strict';
/**
* SHA-1 hash function reference implementation.
*
* @namespace
*/
var Sha1 = {};
/**
* Generates SHA-1 hash of string.
*
* @param {string} msg - (Unicode) string to be hashed.
* @returns {string} Hash of msg as hex character string.
*/
Sha1.hash = function(msg) {
// convert string to UTF-8, as SHA only deals with byte-streams
msg = msg.utf8Encode();
// constants [§4.2.1]
var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 ];
// PREPROCESSING
msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]
// convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1]
var l = msg.length/4 + 2; // length (in 32-bit integers) of msg + 1 + appended length
var N = Math.ceil(l/16); // number of 16-integer-blocks required to hold 'l' ints
var M = new Array(N);
for (var i=0; i<N; i++) {
M[i] = new Array(16);
for (var j=0; j<16; j++) { // encode 4 chars per integer, big-endian encoding
M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) |
(msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
} // note running off the end of msg is ok 'cos bitwise ops on NaN return 0
}
// add length (in bits) into final pair of 32-bit integers (big-endian) [§5.1.1]
// note: most significant word would be (len-1)*8 >>> 32, but since JS converts
// bitwise-op args to 32 bits, we need to simulate this by arithmetic operators
M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]);
M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;
// set initial hash value [§5.3.1]
var H0 = 0x67452301;
var H1 = 0xefcdab89;
var H2 = 0x98badcfe;
var H3 = 0x10325476;
var H4 = 0xc3d2e1f0;
// HASH COMPUTATION [§6.1.2]
var W = new Array(80); var a, b, c, d, e;
for (var i=0; i<N; i++) {
// 1 - prepare message schedule 'W'
for (var t=0; t<16; t++) W[t] = M[i][t];
for (var t=16; t<80; t++) W[t] = Sha1.ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);
// 2 - initialise five working variables a, b, c, d, e with previous hash value
a = H0; b = H1; c = H2; d = H3; e = H4;
// 3 - main loop
for (var t=0; t<80; t++) {
var s = Math.floor(t/20); // seq for blocks of 'f' functions and 'K' constants
var T = (Sha1.ROTL(a,5) + Sha1.f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
e = d;
d = c;
c = Sha1.ROTL(b, 30);
b = a;
a = T;
}
// 4 - compute the new intermediate hash value (note 'addition modulo 2^32')
H0 = (H0+a) & 0xffffffff;
H1 = (H1+b) & 0xffffffff;
H2 = (H2+c) & 0xffffffff;
H3 = (H3+d) & 0xffffffff;
H4 = (H4+e) & 0xffffffff;
}
return Sha1.toHexStr(H0) + Sha1.toHexStr(H1) + Sha1.toHexStr(H2) +
Sha1.toHexStr(H3) + Sha1.toHexStr(H4);
};
/**
* Function 'f' [§4.1.1].
* @private
*/
Sha1.f = function(s, x, y, z) {
switch (s) {
case 0: return (x & y) ^ (~x & z); // Ch()
case 1: return x ^ y ^ z; // Parity()
case 2: return (x & y) ^ (x & z) ^ (y & z); // Maj()
case 3: return x ^ y ^ z; // Parity()
}
};
/**
* Rotates left (circular left shift) value x by n positions [§3.2.5].
* @private
*/
Sha1.ROTL = function(x, n) {
return (x<<n) | (x>>>(32-n));
};
/**
* Hexadecimal representation of a number.
* @private
*/
Sha1.toHexStr = function(n) {
// note can't use toString(16) as it is implementation-dependant,
// and in IE returns signed numbers when used on full words
var s="", v;
for (var i=7; i>=0; i--) { v = (n>>>(i*4)) & 0xf; s += v.toString(16); }
return s;
};
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/** Extend String object with method to encode multi-byte string to utf8
* - monsur.hossa.in/2012/07/20/utf-8-in-javascript.html */
if (typeof String.prototype.utf8Encode == 'undefined') {
String.prototype.utf8Encode = function() {
return unescape( encodeURIComponent( this ) );
};
}
/** Extend String object with method to decode utf8 string to multi-byte */
if (typeof String.prototype.utf8Decode == 'undefined') {
String.prototype.utf8Decode = function() {
try {
return decodeURIComponent( escape( this ) );
} catch (e) {
return this; // invalid UTF-8? return as-is
}
};
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if (typeof module != 'undefined' && module.exports) module.exports = Sha1; // CommonJs export
if (typeof define == 'function' && define.amd) define([], function() { return Sha1; }); // AMD

View File

@ -1,48 +1,46 @@
/**********************************************************************
*
*
*
**********************************************************************/
define(function(require){ var module = {}
//var DEBUG = DEBUG != null ? DEBUG : true
var actions = require('lib/actions')
var features = require('lib/features')
var core = require('features/core')
/*********************************************************************/
var FeatureActions = actions.Actions({
emptyAction: ['- Demo/Empty action',
function(){
// XXX
}],
})
var Feature =
module.Feature = core.ImageGridFeatures.Feature({
title: '',
doc: '',
// XXX
tag: 'feature-tag',
depends: [
// XXX
],
actions: FeatureActions,
handlers: [],
})
/**********************************************************************
* vim:set ts=4 sw=4 : */
return module })
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
var actions = require('lib/actions')
var features = require('lib/features')
var core = require('features/core')
/*********************************************************************/
var FeatureActions = actions.Actions({
emptyAction: ['- Demo/Empty action',
function(){
// XXX
}],
})
var Feature =
module.Feature = core.ImageGridFeatures.Feature({
title: '',
doc: '',
// XXX
tag: 'feature-tag',
depends: [
// XXX
],
actions: FeatureActions,
handlers: [],
})
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

307
Viewer/features/alias.js Executable file
View File

@ -0,0 +1,307 @@
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
var actions = require('lib/actions')
var features = require('lib/features')
var browse = require('lib/widget/browse')
var core = require('features/core')
var widgets = require('features/ui-widgets')
/*********************************************************************/
var Alias =
module.Alias = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'alias',
suggested: [
'ui-alias',
],
config: {
//aliases: {
//},
},
handlers: [
// load aliases...
['start',
function(){
var that = this
var aliases = this.config.aliases || {}
Object.keys(aliases)
.forEach(function(alias){
that.alias.apply(that, [alias].concat(aliases[alias])) })
}],
// store aliases in .config.aliases
//
// NOTE: this does not guard from overriding anything...
// NOTE: there should not be any actions in the base action-set
// other than the ones created by .alias(..).
['alias',
function(_, alias, target){
var args = [...arguments].slice(1)
var alias = args.shift()
var target = args[args.length-1]
// remove alias...
// XXX is this test enough??? ...see ActionSet.alias(..)
if(arguments.length == 3
&& (target === null || target === false)){
var aliases = this.config.aliases || {}
delete aliases[alias]
if(Object.keys(aliases).length == 0){
delete this.config.aliases
}
// save alias...
} else {
var aliases = this.config.aliases = this.config.aliases || {}
aliases[alias] = args
}
}],
/*/ XXX not sure if this is the correct way to go...
['selfTest',
function(){
var alias = [
'testRuntimeAlias',
'Test/',
core.doc`Rumtime-defined test alias.
NOTE: this will get overwritten on start.`,
'focusImage: "next"',
]
this.alias.apply(this, alias)
if(!this.config.aliases
|| !(alias[0] in this.config.aliases)
|| this.config.aliases[alias[0]].length != alias.length-1
|| this.config.aliases[alias[0]].filter(function(e, i){ return e != alias[i+1] }).length > 0){
console.error('Alias save fail:',
'\n written:', alias,
'\n saved:', [alias[0]].concat((this.config.aliases || {})[alias[0]]))
}
}],
//*/
],
})
//---------------------------------------------------------------------
var UIAliasActions = actions.Actions({
browseAliases: ['System/Aliases...',
core.doc`Action alias list
NOTE: this may affect the action menu, to see changes update the menu.`,
widgets.makeUIDialog(function(){
var that = this
// get keys for each action...
var keys = that.getKeysForAction ? that.getKeysForAction() : {}
// Get keys for action...
var getKeys = function(action){
return (keys[action] || []).join(' / ') }
var to_remove = []
return browse.makeLister(null,
function(path, make){
var dialog = this
var aliases = that.config.aliases || {}
var names = Object.keys(aliases)
names.length > 0 ?
make.EditableList(names,
{
new_item: false,
to_remove: to_remove,
editable_items: false,
update_merge: 'drop_changes',
itemopen: function(_, name){
that.editAlias(name)
.on('close', function(){ dialog.update() })
},
each: function(name, elem){
$(elem)
.attr({
keys: getKeys(name),
action: name,
})
},
})
: make.Empty()
make('---')
make('$New...', { events: {
open: function(){
that.editAlias()
.on('close', function(){ dialog.update() })
},
} })
}, {
cls: 'table-view show-keys',
})
.run(function(){
// XXX this is a copy from .browseActions(..)
this.showDoc = function(){
var action = this.select('!').attr('action')
action
&& that.showDoc(action)
}
this.keyboard.handler('General', '?', 'showDoc')
})
.close(function(){
to_remove.forEach(function(alias){
that.alias(alias, null) }) })
})],
// NOTE: this does not include an attr editor by design...
//
// XXX should we set white-space: pre on doc here or in css???
// XXX edit key bindings (???)
editAlias: ['- System/Edit alias...',
widgets.makeUIDialog(function(alias){
var that = this
var name = alias
var data = ((that.config.aliases || {})[alias] || ['']).slice()
return browse.makeLister(null,
function(path, make){
var item_opts = {
start_on: 'open',
edit_text: 'last',
clear_on_edit: false,
reset_on_commit: false,
abort_on_deselect: false,
}
// doc fields...
make.Editable(['$Path:', that.getActionAttr(alias, 'doc')], item_opts)
.on('edit-commit', function(evt, text){
if(data.length > 1 && typeof(data[0]) == typeof('str')){
data[0] = text
// no previous docs...
} else {
data.splice(0, 0, text)
}
})
var doc_opts = {
// XXX this does not work???
multiline: true,
}
doc_opts.__proto__ = item_opts
make.Editable(['$Doc:', that.getActionAttr(alias, 'long_doc')], doc_opts)
.on('edit-commit', function(evt, text){
// existing .doc and .long_doc -> replace .long_doc...
if(data.length > 2
&& typeof(data[0]) == typeof('str')
&& typeof(data[1] == typeof('str'))){
data[1] = text
// existing .doc -> add .long_doc only...
} else if(data.length > 1 && typeof(data[0]) == typeof('str')){
data.splice(1, 0, text)
// no previous docs -> add empty .doc and set .long_doc...
} else {
data.splice(0, 0, '', text)
}
})
// XXX HACK???
.find('.text').last()
.css({'white-space': 'pre'})
make('---')
// alias fields...
make.Editable(['$Alias:', alias || ''], item_opts)
.on('edit-commit', function(evt, text){
name = text
})
make.Editable(['$Code:', ((that.config.aliases || {})[alias] || ['']).slice(-1)[0]], item_opts)
.on('edit-commit', function(evt, text){
data[data.length-1] = text
})
make('---')
// delete / cancel...
make.ConfirmAction('Delete', {
callback: function(){
data = [null]
make.dialog.close()
},
buttons: [
['Cancel edit', function(){
make.dialog.close('cancel')
}],
],
})
}, {
cls: 'table-view',
})
.on('close', function(_, mode){
// do not save on cancel...
if(mode == 'cancel'
|| ((name == '' || name == null) && !that[name])){
return
}
// renaming the alias -> clear the old value...
if(name != alias){
that.alias(alias, null)
}
// save the alias...
that.alias.apply(that, [name].concat(data))
})
})],
})
var UIAlias =
module.UIAlias = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-alias',
depends: [
'alias',
'ui',
],
actions: UIAliasActions,
handlers: [],
})
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

View File

@ -1,53 +1,72 @@
/**********************************************************************
*
*
*
**********************************************************************/
define(function(require){ var module = {}
//var DEBUG = DEBUG != null ? DEBUG : true
// import features...
var core = require('features/core')
require('features/base')
require('features/sort')
require('features/location')
require('features/history')
require('features/app')
require('features/ui')
require('features/ui-partial-ribbons')
require('features/ui-single-image')
require('features/ui-chrome')
require('features/keyboard')
require('features/ui-status')
require('features/ui-marks')
require('features/ui-widgets')
require('features/ui-slideshow')
require('features/external-editor')
require('features/metadata')
require('features/meta')
require('features/experimental')
require('features/demo')
// node features...
if(typeof(window) == 'undefined' || window.nodejs != null){
require('features/filesystem')
require('features/cli')
}
//---------------------------------------------------------------------
// NOTE: this is here to simplify importing...
var ImageGridFeatures =
module.ImageGridFeatures =
core.ImageGridFeatures
/**********************************************************************
* vim:set ts=4 sw=4 : */
return module })
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
// import features...
var core = require('features/core')
require('features/base')
require('features/store')
require('features/collections')
require('features/sort')
require('features/tags')
require('features/marks')
require('features/location')
require('features/recover')
require('features/config')
require('features/history')
require('features/app')
require('features/peer')
require('features/alias')
require('features/comments')
require('features/ui')
// XXX
require('features/ui-blank-render')
require('features/ui-ribbons')
// XXX
require('features/ui-partial-ribbons-precache')
require('features/ui-partial-ribbons-2')
require('features/ui-single-image')
require('features/ui-chrome')
require('features/ui-progress')
require('features/keyboard')
require('features/ui-status')
require('features/ui-ranges')
require('features/ui-widgets')
require('features/ui-slideshow')
require('features/ui-drag-n-drop')
require('features/external-editor')
require('features/metadata')
require('features/meta')
// XXX EXPERIMENTAL...
require('features/virtual-blocks')
require('features/experimental')
require('features/tests')
require('features/demo')
require('features/examples')
// node features...
if(typeof(window) == 'undefined' || window.nodejs != null){
require('features/filesystem')
require('features/sharp')
require('features/cli') }
//---------------------------------------------------------------------
// NOTE: this is here to simplify importing...
var ImageGridFeatures =
module.ImageGridFeatures =
core.ImageGridFeatures
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

757
Viewer/features/app.js Executable file
View File

@ -0,0 +1,757 @@
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
if(typeof(process) != 'undefined'){
var pathlib = requirejs('path')
var url = requirejs('url')
}
var electron
try{
electron = requirejs('electron')
} catch(e){ }
var VERSION = require('version').version
var actions = require('lib/actions')
var features = require('lib/features')
var toggler = require('lib/toggler')
var core = require('features/core')
var base = require('features/base')
var widgets = require('features/ui-widgets')
/*********************************************************************/
// helpers...
// XXX this includes a WebKit bug patch -- see inside...
var img2canvas =
function({url, orientation, flipped}, callback){
// XXX PATCH...
// XXX <canvas>.drawImage(..) seems to take EXIF into account, ignoring
// the .imageOrientation setting both the canvas and image are in
// DOM and the image needs to be added to dom before .src is set
var PATCHED_ELEMENTS
var PATCH = function(e){
PATCHED_ELEMENTS =
PATCHED_ELEMENTS
|| document.body.appendChild(
document.createElement('div')
.run(function(){
this.style.position = 'absolute'
this.style.with = '0'
this.style.height = '0'
this.style.top = '200%'
this.style.left = '0'
this.style.opacity = 0
this.style.overflow = 'hidden' }))
PATCHED_ELEMENTS.appendChild(e) }
// XXX PATCH...
var CLEANUP_PATCH = function(){
PATCHED_ELEMENTS
.parentElement
.removeChild(PATCHED_ELEMENTS) }
var img = new Image
img.onload = function(){
// XXX .naturalWidth/.naturalHeight seem to ignore .imageOrientation
// setting and orient the image via exif while .width/.height
// seem to respect it but only when atached to DOM...
// XXX for some reason noticed this on Linux, need to test under
// Windows if this is a platform-specific thing...
//var width = this.naturalWidth
//var height = this.naturalHeight
var width = this.width
var height = this.height
var c = document.createElement('canvas')
c.style.imageOrientation = 'none'
// XXX PATCH...
PATCH(c)
var ctx = c.getContext('2d')
// prepare for rotate...
// 90 / 270
if(orientation == 90 || orientation == 270){
var w = c.width = height
var h = c.height = width
// 0 / 180
} else {
var w = c.width = width
var h = c.height = height }
// prepare for flip...
var x = flipped && flipped.includes('horizontal') ?
-1
: 1
var y = flipped && flipped.includes('vertical') ?
-1
: 1
ctx.translate(w/2, h/2)
ctx.rotate(orientation * Math.PI/180)
ctx.scale(x, y)
ctx.drawImage(this, -width/2, -height/2)
// XXX PATCH...
CLEANUP_PATCH()
callback.call(this, c) }
// prevent the browser from rotating the image via exif...
img.style.imageOrientation = 'none'
img.crossOrigin = ''
// XXX PATCH...
PATCH(img)
img.src = url
return img }
/*********************************************************************/
var Widget =
module.Widget = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'widget',
depends: [
'-ui-app-control',
],
})
//---------------------------------------------------------------------
var NWHostActions = actions.Actions({
// window stuff...
// XXX should this be nested in a .window object???
get title(){
return nw.Window.get().title },
set title(value){
nw.Window.get().title = value },
get size(){
var win = nw.Window.get()
return [
win.width,
win.height,
]
},
set size(value){
var win = nw.Window.get()
win.width = value[0]
win.height = value[1]
},
get position(){
var win = nw.Window.get()
return [
win.x,
win.y,
]
},
set position(value){
var win = nw.Window.get()
win.x = value[0]
win.y = value[1]
},
show: ['- Window/',
function(){
nw.Window.get().show() }],
minimize: ['Window/Minimize',
function(){
nw.Window.get().minimize() }],
toggleFullScreen: ['Window/Full screen mode',
toggler.CSSClassToggler(
function(){ return document.body },
'.full-screen-mode',
function(action){
var that = this
var w = nw.Window.get()
// change the state only if the target state is not the same
// as the current state...
if((w.isFullscreen ? 'on' : 'off') != action){
this.ribbons.preventTransitions()
// hide the viewer to hide any animation crimes...
this.dom[0].style.visibility = 'hidden'
// XXX async...
// ...this complicates things as we need to do the next
// bit AFTER the resize is done...
w.toggleFullscreen()
setTimeout(function(){
that
.centerViewer()
.focusImage()
.ribbons
.restoreTransitions()
that.dom[0].style.visibility = ''
}, 100)
}
// NOTE: we delay this to account for window animation...
setTimeout(function(){
that.storeWindowGeometry()
}, 500)
})],
// XXX add ability to use devtools on background page (node context)...
// XXX get the devtools stage...
showDevTools: ['Interface|Development/Show Dev Tools',
{mode: 'advancedBrowseModeAction'},
function(action){
if(action == '?'){
// XXX get the devtools stage...
return false }
nw.Window.get().showDevTools &&
nw.Window.get().showDevTools() }],
showInFolder: ['File|Image/Show in $folder',
function(image){
image = this.images[this.data.getImage(image)]
var base = image.base_path || this.location.path
var filename = image.path
var path = pathlib.normalize(base + '/' + filename)
nw.Shell.showItemInFolder(path) }],
toggleSplashScreen: ['Interface/',
{mode: 'advancedBrowseModeAction'},
function(){
}],
})
var NWHost =
module.NWHost = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-nw-host',
exclusive: 'ui-host',
depends: [],
actions: NWHostActions,
isApplicable: function(){ return this.runtime.nw },
})
//---------------------------------------------------------------------
var ElectronHostActions = actions.Actions({
// window stuff...
// XXX should this be nested in a .window object???
// XXX should these be props or methods???
get title(){
return document.title },
set title(value){
document.title = value },
get size(){
return [window.outerWidth, window.outerHeight] },
set size(value){
value
&& window.resizeTo(...value) },
get position(){
return [window.screenX, window.screenY] },
set position(value){
value
&& window.moveTo(...value) },
// XXX need to handle maximize correctly -- see e.js...
// XXX do we need .hide(..) here???
show: ['- Window/',
function(){
electron.ipcRenderer.send('show') }],
minimize: ['Window/Minimize',
function(){
electron.ipcRenderer.send('minimize') }],
toggleFullScreen: ['Window/Full screen mode',
toggler.CSSClassToggler(
function(){ return document.body },
'.full-screen-mode',
function(action){
var that = this
// get current state...
var state = document.appFullScreen ? 'on' : 'off'
// change the state only if the target state is not the same
// as the current state...
if(state != action){
this.ribbons.preventTransitions()
// hide the viewer to hide any animation crimes...
this.dom[0].style.visibility = 'hidden'
// NOTE: electrons policy that developers can't trust
// their own code making them jump through context
// hoops all of the time instead of in the specific
// contexts that need isolation is crap...
electron.ipcRenderer.send(
state == 'on' ?
'exitFullScreen'
: 'enterFullScreen')
setTimeout(function(){
that
.centerViewer()
.focusImage()
.ribbons
.restoreTransitions()
// show viewer after we are done...
that.dom[0].style.visibility = '' }, 150) } })],
// XXX should this be a toggler???
showDevTools: ['Interface|Development/Show Dev Tools',
{mode: 'advancedBrowseModeAction'},
function(action){
if(action == '?'){
return document.appDevTools }
electron.ipcRenderer.send('openDevTools') }],
// XXX make this portable (osx, linux)...
showInFolder: ['File|Image/Show in $folder',
function(image){
image = this.images[this.data.getImage(image)]
var base = image.base_path || this.location.path
var filename = image.path
var path = pathlib.normalize(base + '/' + filename)
requirejs('child_process')
// XXX this is windows-specific...
.exec(`explorer.exe /select,"${ pathlib.normalize(path) }"`)
// XXX osx...
//.exec('open -R '+JSON.stringify(path))
}],
// XXX make this a real toggler...
toggleSplashScreen: ['Interface/',
{mode: 'advancedBrowseModeAction'},
function(action){
var splash = document.appSplashScreen
if(action == '?'){
return !splash ? 'off' : 'on' }
if(action != 'off' && !splash){
electron.ipcRenderer.send('openSplashScreen')
} else if(action != 'on' && splash){
electron.ipcRenderer.send('closeSplashScreen') } }],
// XXX should this support resizing???
copy: ['Image|Edit/Copy image',
core.doc`Copy image
Copy current image (original ref)...
.copy()
Copy best matching preview of current image...
.copy(size)
NOTE: this will rotate and flip the image according to image metadata...
`,
function(size){
var that = this
var url = this.images.getBestPreview(this.current, size, true).url
// prep image for copy...
img2canvas({
...this.images[this.current],
url,
}, function(c){
electron.clipboard.write({
bookmark: that.images.getImageFileName(),
// compatibility -- windows paths...
text: process.platform.startsWith('win') ?
url.replace(/\//g, '\\')
: url,
image: electron.nativeImage.createFromDataURL(c.toDataURL('image/png')),
}) }) }],
paste: ['- Image|Edit/Paste image',
function(){
// XXX
}],
})
var ElectronHost =
module.ElectronHost = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-electron-host',
exclusive: 'ui-host',
depends: [],
actions: ElectronHostActions,
isApplicable: function(){ return this.runtime.electron },
})
//---------------------------------------------------------------------
// XXX this needs to trigger only when fullwindow browser mode and not
// get loaded when in widget mode...
var BrowserHostActions = actions.Actions({
// window stuff...
get title(){
return $('title').text() },
set title(value){
$('title').text(value) },
// XXX this makes document.body fullscreen as expanding .dom breaks
// aligning -- this might be a sign that we are not placing
// some things relative to .dom...
toggleFullScreen: ['Window/Full screen mode',
toggler.CSSClassToggler(
function(){ return document.body },
'.full-screen-mode',
function(action){
var that = this
// get current state...
var state = document.fullscreenElement ? 'on' : 'off'
// change the state only if the target state is not the same
// as the current state...
if(state != action){
this.ribbons.preventTransitions()
// hide the viewer to hide any animation crimes...
this.dom[0].style.visibility = 'hidden'
state == 'on' ?
document.exitFullscreen()
// XXX id document.body the right scope here???
// ...this.dom[0] seems to break alignment...
//: this.dom[0].requestFullscreen()
: document.body.requestFullscreen()
setTimeout(function(){
that
.centerViewer()
.focusImage()
.ribbons
.restoreTransitions()
// show viewer after we are done...
that.dom[0].style.visibility = '' }, 150)
}
})],
// XXX these do not work from file://
// XXX would be nice to add a path/title here...
// XXX should this support resizing???
copy: ['Image|Edit/Copy image',
core.doc`Copy image
NOTE: this must be called from within an event handler...
NOTE: this will not work with file:// paths...
`,
function(size){
img2canvas({
url: this.images.getBestPreview(this.current, size, true).url ,
...this.images[this.current]
}, function(c){
c.toBlob(function(blob){
// copy...
// XXX would be nice to add a path/title here...
navigator.clipboard.write([
new ClipboardItem({
[blob.type]: blob,
}) ]) },
"image/png") })
}],
paste: ['- Image|Edit/Paste image',
function(){
// XXX
}],
})
// NOTE: keep this defined last as a fallback...
var BrowserHost =
module.BrowserHost = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-browser-host',
exclusive: 'ui-host',
depends: [
// XXX remove id buttons control moves elsewhere...
'ui-buttons',
],
actions: BrowserHostActions,
isApplicable: function(){ return !this.runtime.widget },
})
//---------------------------------------------------------------------
var PortableAppControl =
module.PortableAppControl = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-portable-app-control',
depends: [
'ui',
'ui-host',
],
isApplicable: function(){ return this.runtime.browser },
config: {
//'window-title': 'ImageGrid.Viewer (${VERSION}): ${FILENAME}',
'window-title': '${FILENAME} - ImageGrid.Viewer (${VERSION})',
},
handlers: [
// update window title...
// XXX make this generic...
['focusImage clear',
function(){
if(this.images){
var img = this.images[this.current]
this.title = (this.config['window-title']
|| 'ImageGrid.Viewer (${VERSION}): ${FILENAME}')
// XXX get this from the viewer...
.replace('${VERSION}', this.version || 'gen4')
.replace('${FILENAME}',
img ?
(img.name
|| (img.path && img.path.replace(/\.[\\\/]/, ''))
|| this.current
|| '')
: (this.current || ''))
.replace('${PATH}',
(img && img.path) ?
(img.base_path || '.')
+'/'+ img.path.replace(/\.[\\\/]/, '')
: '')
/*
.replace('${DIR}',
pathlib.dirname((img.base_path || '.')
+'/'+ img.path.replace(/\.[\\\/]/, '')))
*/
// XXX add ...
}
}],
],
})
//---------------------------------------------------------------------
// XXX should we create and show the window here???
// ...if yes, then we'll need to start the ui features later as
// they need the dom ready...
var WindowedAppControlActions = actions.Actions({
config: {
// Window state:
// 'window': {
// width: <number>,
// height: <number>,
// x: <number>,
// y: <number>,
//
// fullscreen: <bool>,
//
// devtools: <bool>,
// },
'window-delay-initial-display': 500,
'splash-screen-delay-hide': 500,
'show-splash-screen': 'on',
},
close: ['File|Window/Close viewer',
function(){
this.stop()
window.close()
}],
storeWindowGeometry: ['- Window/Store window state',
function(){
// store window parameters (size, state)...
//var win = nw.Window.get()
var size = this.size
var position = this.position
// fullscreen...
// ...avoid overwriting size...
if(this.toggleFullScreen('?') == 'on'){
// NOTE: this needs to be rewritten to correctly get stored
// in the config store, especially if a default state
// is defined...
var cfg = this.config.window = this.config.window || {}
cfg.fullscreen = true
cfg.devtools = this.showDevTools
&& this.showDevTools('?')
} else {
this.config.window = {
width: size[0],
height: size[1],
x: position[0],
y: position[1],
fullscreen: false,
devtools: this.showDevTools
&& this.showDevTools('?'),
} } }],
restoreWindowGeometry: ['- Window/Restore window state',
function(){
var that = this
var cfg = this.config.window || {}
if(cfg.fullscreen){
that.toggleFullScreen('on')
} else {
var w = cfg.width || 800
var h = cfg.height || 600
var x = cfg.x || (screen.width - w)/2
var y = cfg.y || (screen.height - h)/2
this.position = [x, y]
this.size = [w, h] } }],
toggleSplashScreenShowing: ['Interface/Splash screen on start',
{mode: 'advancedBrowseModeAction'},
core.makeConfigToggler('show-splash-screen',
['on', 'off'],
function(action){
if(action == 'on'){
delete localStorage.disableSplashScreen
} else if(action == 'off'){
localStorage.disableSplashScreen = true
}
})],
})
var WindowedAppControl =
module.WindowedAppControl = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-windowed-app-control',
depends: [
'ui',
'ui-host',
],
actions: WindowedAppControlActions,
// XXX BUG: when running in electron:
// - loading this breaks the other buttons (menu, collections, ...)
// - .toggleFullScreen(..) works in an odd manner -- ok when
// explicitly called or button pushed but in opposite manner
// when F11 (FIXED?)
// - ready protocol breaks -- need to call .ready() to unstall
// the viewer
// ...does this all have anything to do with double init???
isApplicable: function(){ return this.runtime.desktop },
//isApplicable: function(){ return this.runtime.desktop && !this.runtime.electron },
// XXX show main window...
handlers: [
['start.pre',
function(){
// we are going to declare ready ourselves...
this.requestReadyAnnounce('ui-windowed-app-control') }],
// XXX should we create and show the window here???
['start',
function(){
var that = this
var cfg = this.config.window
// set the initial non-fullscreen window geometry...
// NOTE: this will avoid overwriting the initial geometry
// with the values set in e.js if .fullscreen is set...
// NOTE: this will also set the size to which the OS will
// resize the window in state change...
if(cfg){
cfg.devtools
&& this.showDevTools()
var W = screen.width
var H = screen.height
var w = cfg.width || Math.max(0.8 * W, 600)
var h = cfg.height || Math.max(0.8 * H, 400)
var x = cfg.x || (W - w)/2
var y = cfg.y || (H - h)/2
this.position = [x, y]
this.size = [w, h] }
// restore actual window state...
this.restoreWindowGeometry()
// declare we are ready when DOM is ready...
$(function(){
that.declareReady('ui-windowed-app-control') }) }],
// show window + hide splash screen...
['ready',
function(){
var that = this
// NOTE: we delay this to enable the browser time to render
// things before we show them to the user...
setTimeout(function(){
// show window...
that.show()
// hide splash screen...
setTimeout(function(){
that.toggleSplashScreen('off')
}, (that.config['splash-screen-delay-hide'] || 0))
}, this.config['window-delay-initial-display'] || 0) }],
[[
'stop.pre',
'toggleFullScreen.pre',
'toggleFullScreen',
],
function(){ this.storeWindowGeometry() }],
],
})
//---------------------------------------------------------------------
var AppControl =
module.AppControl = core.ImageGridFeatures.Feature('app-control', [
'ui-windowed-app-control',
'ui-portable-app-control',
])
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

1790
Viewer/features/base.js Executable file

File diff suppressed because it is too large Load Diff

957
Viewer/features/cli.js Executable file
View File

@ -0,0 +1,957 @@
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
var object = require('lib/object')
var util = require('lib/util')
var actions = require('lib/actions')
var features = require('lib/features')
var data = require('imagegrid/data')
var images = require('imagegrid/images')
var core = require('features/core')
var base = require('features/base')
//require('features/all')
if(typeof(process) != 'undefined'){
var pathlib = requirejs('path')
var argv = requirejs('lib/argv')
var progress = requirejs('cli-progress')
var colors = requirejs('colors')
var file = require('imagegrid/file') }
/*********************************************************************/
var CLIActions = actions.Actions({
config: {
// XXX do we care that something is not "ready" here???
'declare-ready-timeout': 0,
'progress-done-delay': 1000,
banner: '$APPNAME $VERSION:',
},
// docs...
//
// XXX do a better set of examples...
cliExamples: [[
'Create/init index in current directory',
'$ $SCRIPTNAME init',
'',
'Export 500px previews from current index to ./preview directory',
'$ $SCRIPTNAME export from=. to=./previews --image-size=500',
]],
// the argvparser...
//
// this is set by argv's Parser on .onArgs(..) in .ready(..) handler below...
argv: undefined,
help: ['- System/Show action help',
function(...actions){
Object.entries(this.getDoc(actions))
.forEach(function([action, [s, l]]){
console.log(l)
console.log('')
}) }],
get cliActions(){
return this.actions
.filter(function(action){
return this.getActionAttr(action, 'cli') }.bind(this)) },
// XXX should this be here???
// ...move this to progress...
// XXX we are missing some beats, is this because we do not let the
// bar update before closing???
// XXX need to reset this when done...
__progress: null,
showProgress: ['- System/',
function(text, value, max){
// progress display is disabled...
if(this.__progress === false){
return }
var msg = text instanceof Array ?
text.slice(1).join(': ')
: null
text = text instanceof Array ?
text[0]
: text
var settings = this.__progress = this.__progress ?? {}
var bars = settings.bars = settings.bars ?? {}
var state = bars[text] = bars[text] ?? {}
if(state.timeout){
clearTimeout(state.timeout)
delete state.timeout }
// actions...
if(value == 'reset'){
// XXX this is not the same as ui-progress...
// ...here we first set timeout then and close,
// there we set to 0 and timeout and close...
state.timeout = setTimeout(
function(){
//this.showProgress(text, 0, 0) }.bind(this),
this.showProgress(text, 'close') }.bind(this),
this.config['progress-done-delay'] || 1000)
return }
if(value == 'close'){
delete bars[text]
// check if no bars left...
if(Object.keys(bars) == 0){
delete this.__progress }
return }
var l = Math.max(text.length, settings.__text_length || 0)
// length changed -> update the bars...
l != settings.__text_length
&& Object.entries(bars)
.forEach(function([key, value]){
value.bar
&& value.bar.update({text: key.padEnd(l)}) })
settings.__text_length = l
// normalize max and value...
value = state.value =
value != null ?
(typeof(value) == typeof('str') && /[+-][0-9]+/.test(value) ?
(state.value || 0) + parseInt(value)
: value)
: state.value
max = state.max =
max != null ?
(typeof(max) == typeof('str') && /[+-][0-9]+/.test(max) ?
(state.max || 0) + parseInt(max)
: max)
: state.max
var container = settings.__multi_bar =
settings.__multi_bar
|| (new progress.MultiBar({
// XXX make this simpler...
format: '{text} {bar} {percentage}% '
+'| ETA: {eta_formatted} | {value}/{total}',
autopadding: true,
stopOnComplete: true,
forceRedraw: true,
},
progress.Presets.rect)
// prepare for printing stuff...
.run(function(){
this.on('redraw-pre', function(){
// XXX need to clear the line -- need to get term-width....
// XXX this requires a full draw (forceRedraw: true)...
//console.log('moo'.padEnd(process.stdout.columns))
}) }))
var bar = state.bar =
state.bar
|| container.create(0, 0, {text: text.padEnd(l)})
// XXX for some reason this does not work under electron...
bar.setTotal(Math.max(max, value))
bar.update(value)
// auto-clear when complete...
if(value >= max){
state.timeout = setTimeout(
function(){
this.showProgress(text, 'close') }.bind(this),
this.config['progress-done-delay'] || 1000) } }],
// handle logger progress...
// XXX reset is called at odd spots by the queue handler (see: features/core.js)
// XXX this is a copy from ui-progress -- need to reuse if possible...
handleLogItem: ['- System/',
function(logger, path, status, ...rest){
var msg = path.join(': ')
var l = (rest.length == 1
&& rest[0] instanceof Array) ?
rest[0].length
: rest.length
// only pass the relevant stuff...
var attrs = {}
logger.ondone
&& (attrs.ondone = logger.ondone)
logger.onclose
&& (attrs.onclose = logger.onclose)
// get keywords...
var {add, done, skip, reset, close, error} =
this.config['progress-logger-keywords']
|| {}
// setup default aliases...
add = new Set([...(add || []), 'added'])
done = new Set([...(done || [])])
skip = new Set([...(skip || []), 'skipped'])
reset = new Set([...(reset || [])])
close = new Set([...(close || []), 'closed'])
error = new Set([...(error || [])])
// close...
if(status == 'close' || close.has(status)){
this.showProgress(path, 'close')
// reset...
// XXX this seems to be called before "Cache image metadata" is done
// when called from .cliInitIndex(..) -- messing up the numbers...
} else if(status == 'reset' || reset.has(status)){
this.showProgress(path, 'reset')
// added new item -- increase max...
// XXX show msg in the progress bar???
} else if(status == 'add' || add.has(status)){
this.showProgress(path, '+0', '+'+l)
// resolved item -- increase done...
} else if(status == 'done' || done.has(status)){
this.showProgress(path, '+'+l)
// skipped item -- increase done...
// XXX should we instead decrease max here???
// ...if not this is the same as done -- merge...
} else if(status == 'skip' || skip.has(status)){
this.showProgress(path, '+'+l)
// error...
// XXX STUB...
} else if(status == 'error' || error.has(status)){
this.showProgress(['Error'].concat(msg), '+0', '+'+l) }
}],
// XXX SETUP revise default...
setupFeatures: ['- System/',
core.doc`Load required features.
NOTE: this is hete because cli is designed to be loaded in a very
limited context and for some actions will need additional
features.
`,
function(...tags){
var features = this.features.FeatureSet
requirejs('features/all')
features.setup(this, [
'imagegrid-testing',
...(tags.length == 0 ?
this.features.input
: tags),
]) }],
setupGlobals: ['- System/',
function(){
// setup the global ns...
global.ig =
global.ImageGrid =
this
global.help = function(...actions){
global.ig.help(...actions) }
global.ImageGridFeatures = core.ImageGridFeatures }],
// basic code runner...
cliDo: ['- System/CLI/run CODE',
{cli: {
name: '@do',
arg: 'CODE',
}},
function(code){
var AsyncFunction = (async function(){}).constructor
this.setupFeatures()
this.setupGlobals()
AsyncFunction(code)()
this.stop() }],
// Interactive commands...
//
cliStartREPL: ['- System/CLI/start CLI interpreter',
{cli: {
name: '@repl',
arg: 'PATH'
//interactive: true,
}},
function(path, options){
var that = this
var package = nodeRequire('./package.json')
// XXX SETUP
this.setupFeatures()
if(path){
this.loadIndex(path) }
this.__keep_running = true
this.setupGlobals()
// start non-tty / script mode...
if(!process.stdin.isTTY){
var fs = nodeRequire('fs')
var AsyncFunction = (async function(){}).constructor
AsyncFunction(
fs.readFileSync(process.stdin.fd, 'utf-8'))()
this.stop()
// start repl mode...
} else {
var repl = nodeRequire('repl')
// print banner...
var banner = this.banner
|| this.config.banner
banner
&& process.stdin.isTTY
&& process.stdout.isTTY
&& console.log(banner
.replace(/\$APPNAME/g, package.name)
.replace(/\$AUTHOR/g, package.author)
.replace(/\$REPO/g, package.repository)
.replace(/\$SCRIPTNAME/g, this.argv.scriptName)
.replace(/\$VERSION/g, this.version))
// start the repl...
repl
.start({
prompt: 'ig> ',
useGlobal: true,
input: process.stdin,
output: process.stdout,
})
.on('exit', function(){
that.stop() }) } }],
// XXX we should open multiple paths/indexes...
// XXX move this to a feature that requires electron...
// ...and move electron to an optional dependency...
cliStartGUI: ['- System/CLI/start viewer GUI',
core.doc`
NOTE: this will not wait for the viewer to exit.`,
{cli: argv && argv.Parser({
key: '@gui',
arg: 'PATH',
doc: 'start viewer GUI',
'-version': undefined,
'-quiet': undefined,
'-devtools': {
doc: 'show DevTools',
type: 'bool',
},
'-show': {
doc: 'force show interface',
type: 'bool',
},
})},
function(path, options={}){
var env = { ...process.env }
path
&& (env.IMAGEGRID_PATH =
util.normalizePath(
pathlib.resolve(process.cwd(), path)))
options.devtools
&& (env.IMAGEGRID_DEBUG = true)
options.show
&& (env.IMAGEGRID_FORCE_SHOW = true)
// already in electron...
if(process.versions.electron){
// XXX this feels hackish...
global.START_GUI = true
// launch gui...
} else {
requirejs('child_process')
.spawn(requirejs('electron'),
[ pathlib.join(
pathlib.dirname(nodeRequire.main.filename),
'e.js') ],
{
detached: true,
env,
}) } }],
// XXX
cliGID: ['- System/GLI/generate GID',
{cli: {
name: '@gid',
arg: 'IMAGE',
valueRequired: true,
// XXX REMOVE WHEN DONE...
doc: false,
}},
function(path){
// XXX
console.warn('Not implemented yet...')
}],
cliListIndexes: ['- System/CLI/list indexes in PATH',
{cli: argv && argv.Parser({
key: '@ls',
arg: 'PATH',
doc: 'list indexes in PATH',
'-version': undefined,
'-quiet': undefined,
'-r': '-recursive',
'-recursive': {
doc: 'list nested/recursive indexes',
type: 'bool',
},
'-n': '-nested-only',
'-nested-only': {
doc: 'ignore the top-level index and only list the indexes below',
type: 'bool',
},
})},
function(path, options={}){
var that = this
path = path ?? '.'
// needed to get the default index dir name...
this.setupFeatures('fs')
//this.setupFeatures()
file.listIndexes(path)
.on('end', function(paths){
paths = paths
.map(function(p){
return p
.split(that.config['index-dir'])
.shift() })
// normalize path...
path.at(-1) != '/'
&& (path += '/')
// handle --nested-only
options['nested-only']
&& paths.includes(path)
&& paths.splice(paths.indexOf(path), 1)
paths = options.recursive ?
paths
: file.skipNested(paths)
.sortAs(paths)
for(var p of paths){
console.log(p) } }) }],
// XXX check if index exists:
// yes: warn + stup
// no: create
// ...add -f/-force flag...
// XXX metadata caching and preview creation are not in sync, can
// this be a problem???
// ...if not, add a note...
// XXX should we support creating multiple indexes at the same time???
// XXX this is relatively generic, might be useful globally...
// XXX should we use a clean index or do this in-place???
// XXX add ability to disable sort... (???)
cliInitIndex: ['- System/CLI/make index',
core.doc`
Create index in current directory
.cliInitIndex()
.cliInitIndex('create')
-> promise
Create index in path...
,cliInitIndex(path)
.cliInitIndex('create', path)
-> promise
Update index in current directory
.cliInitIndex('update')
-> promise
Update index in path...
.cliInitIndex('update', path)
-> promise
`,
{cli: {
name: '@init',
arg: 'PATH',
}},
function(path, options){
this.setupFeatures()
// get mode...
if(path == 'create' || path == 'update'){
var [mode, path, options] = arguments }
mode = mode || 'create'
// normalize path...
path = util.normalizePath(
path ?
pathlib.resolve(process.cwd(), path)
: process.cwd())
options = options || {}
// XXX should we use a clean index or do this in-place???
//var index = this.constructor(..)
var index = this
return (mode == 'create' ?
index.loadImages(path)
: index.loadNewImages(path))
// save base index...
.then(function(){
return index.saveIndex() })
// sharp stuff...
.then(function(){
if(index.makePreviews){
return Promise.all([
// NOTE: no need to call .cacheMetadata(..) as
// it is already running after .loadImages(..)
index.makePreviews('all') ])} })
.then(function(){
return index
.sortImages()
.saveIndex() }) }],
// XXX does not work yet...
// ... -h breaks things...
cliUpdateIndex: ['- System/CLI/update index',
{cli: {
name: '@update',
arg: 'PATH',
}},
'cliInitIndex: "update" ...'],
// XXX handle errors...
cliInfo: ['- System/CLI/show information about index in PATH',
{cli: {
name: '@info',
arg: 'PATH',
}},
function(path, options={}){
var that = this
path = path ?? '.'
this.setupFeatures()
return this.loadIndex(path)
.then(
async function(){
var modified =
Object.values(
await that.loadSaveHistoryList())
.map(function(log){
return Object.keys(log) })
.flat()
.sort()
.pop()
// calculate core.doc compatible offset for nested items.
var offset = '\t'.repeat(`
`.split('\t').length)
console.log(core.doc`
Load path: ${ path }
Index path: ${ that.location.path }
Loaded indexes: ${
['', ...that.location.loaded].join('\n'+offset) }
Current image: ${ that.current }
Image count: ${ that.data.order.length }
Collections: ${
that.collections ?
['', ...Object.keys(that.collections || [])].join('\n'+offset)
: '-' }
Modified date: ${ modified }`) },
function(err){
console.error('Can\'t find or load index at:', path) }) }],
cliListCollections: ['- System/CLI/list collections in index',
{cli: argv && argv.Parser({
key: '@collections',
doc: 'list collection in index at PATH',
arg: 'PATH',
'-version': undefined,
'-quiet': undefined,
'-f': '-full',
'-full': {
doc: 'show full collection information',
type: 'bool',
},
})},
function(path, options={}){
var that = this
this.setupFeatures()
path = path || options.value
path = util.normalizePath(
path ?
pathlib.resolve(process.cwd(), path)
: process.cwd())
return this.loadIndex(path)
.then(
function(){
for(var name of that.collection_order || []){
// XXX revise output formatting...
options.full ?
console.log(that.collections[name].gid, name)
: console.log(name) } },
function(err){
// XXX how do we handle rejection???
console.error('Can\'t find or load index at:', path) }) }],
// XXX
cliCloneIndex: ['- System/CLI/clone index',
function(){
}],
// XXX report that we can't find an index...
// ...or should we treat the target as an image dir???
// XXX move options to generic object for re-use...
// XXX how do we handle errors???
cliExportImages: ['- System/CLI/export images',
{cli: argv && argv.Parser({
key: '@export',
doc: 'export images',
// help...
'-help-pattern': {
doc: 'show image filename pattern info and exit',
priority: 89,
handler: function(){
this.parent.context
// XXX SETUP
//.setupFeatures('fs', 'commandline')
.setupFeatures()
.help('formatImageName')
return argv.STOP } },
'-version': undefined,
'-quiet': undefined,
// commands...
'@from': {
doc: 'source path',
arg: 'PATH | from',
default: '.',
valueRequired: true, },
// XXX
'@collection': {
doc: 'source collection (name/gid)',
arg: 'COLLECTION | collection',
//default: 'ALL',
valueRequired: false, },
//*/
'@to': {
doc: 'destination path',
arg: 'PATH | path',
required: true,
valueRequired: true, },
// bool options...
// XXX these should get defaults from .config
'-include-virtual': {
doc: 'include virtual blocks',
arg: '| include-virtual',
type: 'bool',
//value: true,
default: true, },
'-clean-target': {
doc: 'cleanup target before export (backup)',
arg: '| clean-target',
type: 'bool',
//value: true,
default: true, },
'-no-*': {
doc: 'negate boolean option value',
handler: function(rest, key, value, ...args){
rest.unshift(key.replace(/^-?-no/, '') +'=false') } },
// options...
'-image-name': {
doc: 'image name pattern',
arg: 'PATTERN | preview-name-pattern',
default: '%(fav)l%n%(-%c)c',
valueRequired: true, },
'-mode': {
// XXX get doc values from system...
doc: 'export mode, can be "resize" or "copy best match"',
arg: 'MODE | export-mode',
//default: 'copy best match',
default: 'resize',
valueRequired: true, },
'-image-size': {
doc: 'output image size',
arg: 'SIZE | preview-size',
default: 1000,
valueRequired: true, },
})},
function(path, options={}){
var that = this
// XXX SETUP
this.setupFeatures()
path = path || options.from
path = util.normalizePath(
path ?
pathlib.resolve(process.cwd(), path)
: process.cwd())
var collection = options.collection
return this.loadIndex(path)
.then(
function(){
// export collection...
if(collection){
if(!that.collections[collection]){
console.error(
'Can\'t find collection "'+collection+'" in index at:', path)
// XXX how do we handle rejection???
//return Promise.reject('moo')
return }
var resolve
var reject
// XXX add a timeout???
that.one('collectionLoading.post',
function(){
resolve(that.exportImages(options)) })
that.loadCollection(collection)
return new Promise(function(res, rej){
resolve = res
reject = rej }) }
// export root...
return that.exportImages(options) },
function(err){
// XXX how do we handle rejection???
console.error('Can\'t find or load index at:', path) }) }],
cliRepairIndex: ['- System/CLI/repair index',
{cli: argv && argv.Parser({
key: '@repair',
doc: 'repair index',
arg: 'PATH',
'-version': undefined,
'-quiet': undefined,
'-read-only': '-ro',
'-ro': {
doc: 'only show possible fixes',
type: 'bool',
},
})},
async function(path, options){
this.setupFeatures()
await this.loadIndex(path ?? '.')
var changes = await this.checkIndex()
// XXX print...
console.log(options.ro, changes)
options.ro
//|| this.saveIndexHere()
|| console.log('save')
}],
// XXX this is still wrong...
_cliMakeIndex: ['- System/',
`chain: [
"loadImages: $1",
"saveIndex",
"makePreviews: 'all'",
"sortImages",
"saveIndex", ]`],
cliCleanIndex: ['- System/',
{},
function(path, options){}],
/* XXX
cliStartServer: ['- System/CLI/start as server',
{cli: '-server'},
function(){
// XXX
}],
// Actions...
//
// XXX
// XXX this should be a nested parser...
// args:
// from=PATH
// to=PATH
// ...
cliExportIindex: ['- System/CLI/clone index',
{cli: {
name: '@clone',
arg: 'PATH',
valueRequired: true,
}},
function(){
// XXX
}],
cliPullChanges: ['- System/CLI/pull changes',
{cli: {
name: '@pull',
arg: 'PATH',
valueRequired: true,
}},
function(){
// XXX
}],
cliPushChanges: ['- System/CLI/push changes',
{cli: {
name: '@push',
arg: 'PATH',
valueRequired: true,
}},
function(){
// XXX
}],
//*/
})
// XXX revise architecture....
// XXX move this to the argv parser used in object.js
var CLI =
module.CLI = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'commandline',
depends: [
'lifecycle',
'logger',
],
// XXX should this be ONLY node???
isApplicable: function(){
return this.runtime.node && !this.runtime.browser },
actions: CLIActions,
handlers: [
// supress logging by default...
['start.pre',
function(){
this.logger
&& (this.logger.quiet = true) }],
// handle args...
// XXX
['ready',
function(){
var that = this
//var pkg = require('package.json')
var pkg = nodeRequire('./package.json')
var wait_for = []
// XXX
var interactive = false
// XXX SETUP need to setup everything that has command-line features...
//this.setupFeatures()
// revise name...
argv.Parser({
context: this,
// XXX argv.js is not picking these up because
// of the require(..) mixup...
author: pkg.author,
version: pkg.version,
license: pkg.license,
// examples...
examples: CLIActions.cliExamples ?
CLIActions.cliExamples.flat()
: null,
'-verbose': {
doc: 'enable (very) verbose output',
handler: function(){
that.logger
&& (that.logger.quiet = false) } },
// XXX merge this with -quiet...
'-no-progress': {
doc: 'disable progress bar display',
handler: function(){
that.__progress = false } },
// XXX setup presets...
// ...load sets of features and allow user
// to block/add specific features...
// XXX config editor...
// ...get/set persistent config values...
// build the action command list...
...this.cliActions
.reduce(function(res, action){
var cmd = that.getActionAttr(action, 'cli')
if(typeof(cmd) == typeof('str') || cmd === true){
var name = cmd
var cmd = {name} }
var name = name === true ?
action
: (cmd.key || cmd.name)
// skip interactive commands in non-interactive
// contexts...
if(!interactive && cmd.interactive){
return res }
res[name] = cmd instanceof argv.Parser ?
// parser...
cmd
.then(function(unhandled, value, rest){
wait_for.push(that[action](value, this)) })
// single option definition...
: {
doc: (that.getActionAttr(action, 'doc') || '')
.split(/[\\\/]/g).pop(),
handler: function(rest, key, value){
var res = that[action](value)
wait_for.push(res)
return res },
...cmd,
}
return res }, {}),
})
.onArgs(function(){
that.argv = this })
.onNoArgs(function(args){
console.log('No args.')
// XXX we should either start the GUI here or print help...
args.push('-h')
//args.push('gui')
})
.stop(function(){ process.exit() })
.error(function(){ process.exit() })
.then(function(){
// XXX
})()
// XXX not all promises in the system resolve strictly
// after all the work is done, some resolve before that
// point and this calling process.exit() will interrupt
// them...
this.__keep_running
|| this.afterAction(function(){ this.stop() }) }],
],
})
/**********************************************************************
* vim:set ts=4 sw=4 : */
return module })

3028
Viewer/features/collections.js Executable file

File diff suppressed because it is too large Load Diff

202
Viewer/features/comments.js Executable file
View File

@ -0,0 +1,202 @@
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
if(typeof(process) != 'undefined'){
var file = require('imagegrid/file')
}
var actions = require('lib/actions')
var features = require('lib/features')
var core = require('features/core')
/*********************************************************************/
// Comments...
// XXX these are quite generic, might be a good idea to move them out of fs...
var CommentsActions = actions.Actions({
// Format:
// {
// // raw loaded comments...
// raw: {
// <path>: <comments>,
// ...
// },
//
// <keyword>: <data>,
// ...
// }
__comments: null,
get comments(){
return this.__comments },
set comments(value){
this.__comments = value },
})
var Comments =
module.Comments = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'comments',
actions: CommentsActions,
handlers: [
// save/resore .comments
['json',
function(res){
if(this.comments != null){
res.comments = JSON.parse(JSON.stringify(this.comments)) } }],
['load',
function(_, data){
if(data.comments != null){
this.comments = data.comments } }],
// prepare comments for saving to "comments/<keyword>"...
//
// NOTE: this will skip the 'raw' comment field...
// NOTE: we do not change the .json() format here, so we do not
// need to do anything special to restore, i.e. no need for
// doing anything on .prepareIndexForLoad(..)
['prepareIndexForWrite',
function(res){
var changed = res.changes === true
|| res.changes.comments
if(changed && res.raw.comments){
var comments = res.raw.comments
Object.keys(comments)
// skip the raw field...
.filter(function(k){ return k != 'raw' })
.forEach(function(k){
res.index['comments/' + k] = comments[k] }) } }],
],
})
//---------------------------------------------------------------------
// FS Comments...
// XXX split this to loader and writer???
var FileSystemCommentsActions = actions.Actions({
config: {
// Comment loading delay...
//
// This helps prevent the comment loading process from delaying
// showing the user the images...
//
// NOTE: to load without a delay set this to -1.
'comments-delay-load': 100,
},
/* XXX we do not actually need this...
// XXX this will not save comments for merged indexes...
saveComments: ['- File/',
function(path, date, logger){
if(this.location.load != 'loadIndex'
|| this.location.loaded.length > 1){
return
}
logger = logger || this.logger
logger = logger && logger.push('saveComments')
var path = this.location.path
var comments_dir = this.config['index-dir'] +'/comments'
var data = JSON.parse(JSON.stringify(this.comments))
// XXX
return file.writeIndex(
data,
path +'/'+ comments_dir,
date || Date.timeStamp(),
this.config['index-filename-template'],
logger)
}],
//*/
loadComments: ['- File/',
function(path, date, logger){
if(this.location.load != 'loadIndex'){
return }
logger = logger || this.logger
logger = logger && logger.push('Load comments')
var that = this
var loaded = this.location.loaded
// prepare empty comments...
// XXX should we reset or just merge???
this.comments = { raw: {} }
return Promise.all(loaded.map(function(path){
var comments_dir = that.config['index-dir'] +'/comments'
return file.loadIndex(path +'/'+ comments_dir, false, date, logger)
.then(function(res){
var c = res[path +'/'+ comments_dir]
// no comments present...
if(c == null){
return res }
// if we have no sub-indexes just load the
// comments as-is...
if(loaded.length == 1){
that.comments = JSON.parse(JSON.stringify(c))
that.comments.raw = {path: c}
// sub-indexes -> let the client merge their stuff...
} else {
that.comments.raw[path] = c }
return res }) })) }],
})
var FileSystemComments =
module.FileSystemComments = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'fs-comments',
depends: [
'comments',
'fs-loader',
],
actions: FileSystemCommentsActions,
handlers: [
['loadIndex',
function(res){
var that = this
var delay = that.config['comments-delay-load']
res.then(
function(){
delay < 0 ?
that.loadComments()
: setTimeout(function(){
that.loadComments() }, delay || 0) },
function(){}) }],
],
})
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

249
Viewer/features/config.js Executable file
View File

@ -0,0 +1,249 @@
/**********************************************************************
*
* Features:
* - config
* general config API
* - localstorage-config
* maintain configuration state in localStorage
* - fs-config
* maintain configuration state in file system
*
* XXX this module need refactoring...
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
var toggler = require('lib/toggler')
var actions = require('lib/actions')
var features = require('lib/features')
var core = require('features/core')
/*********************************************************************/
// XXX might be a good idea to add "sandbox" mode -- i.e. all settings
// are saved to sessionStorage and a re-open will load the old settings...
// XXX might be a good idea to add a .configLoaded(..) and .configChanged(..)
// events thought it's not clear how are we going to track changes...
var ConfigStoreActions = actions.Actions({
config: {
// XXX should this include path???
// ...there should be modes:
// - 'read-only' -- don't save...
// - 'portable' -- use APP dir
// - 'normal' -- use $HOME
'config-fs-filename': '.ImageGrid.json',
'config-auto-save-interval': 1000*5,
'config-load-sequence': [
// localStorage...
'storage:${INSTANCE}/config',
// FS...
// XXX should we load both or just one???
'fileSync:${APP}/.ImageGrid.json',
'fileSync:${HOME}/.ImageGrid.json',
// temporary config...
// NOTE: this is active until we re-open the app...
'session:${INSTANCE}/config',
],
},
__config_base: null,
__config_loaded_from: null,
// XXX handle save order -- need to save to one location only...
// ...use: .__config_loaded_from in reverse order (stop on session:..)
// XXX keep record of what we loaded...
// XXX should we only support sync stores??? (current state)
loadConfig: ['File/Load configuration',
core.doc`
NOTE: might need to reload after this.
`,
function(query){
// store loaded...
var loaded = this.__config_loaded_from = []
this.resetConfig()
// do the load...
;(query ?
(query instanceof Array ? query : [query])
: (this.config['config-load-sequence'] || ['storage:config']))
.forEach(function(query){
query = this.parseStoreQuery(query)
var cfg = this.loadStore(query)
// select store...
cfg = query.store
.map(function(store){ return cfg[store] })
.filter(function(cfg){ return Object.keys(cfg).length > 0 })
.shift() || {}
// select key...
cfg = query.key
.map(function(key){ return cfg[key] })
.filter(function(cfg){ return !!cfg })
.shift()
// merge the config...
cfg
&& Object.assign(this.config, cfg)
&& loaded.push(query.query)
}.bind(this))
}],
storeConfig: ['File/Save configuration',
function(query){
// XXX
this.saveStore(query || 'storage:${INSTANCE}/config')
}],
// XXX this needs to be confirmed...
resetConfig: ['File/Reset configuration',
core.doc`
NOTE: might need to reload after this.
`,
function(){
var base = this.__config_base = this.__config_base || this.config
this.config = Object.create(base)
}],
// XXX use timer events... (???)
toggleConfigAutoStore: ['File/Auto-save configuration',
toggler.Toggler(null,
function(_, state){
var timer = 'config-auto-save-timer'
if(state == null){
return this.isPersistentInterval(timer) || 'none'
} else {
var that = this
var interval = this.config['config-auto-save-interval']
// no timer interval set...
if(!interval){
return false
}
// start/restart...
if(state == 'running' && interval){
this.setPersistentInterval(timer, 'storeConfig', interval*1000)
// stop...
} else {
this.clearPersistentInterval(timer)
}
}
},
'running')],
// XXX does not work yet...
toggleConfigSandbox: ['- File/',
toggler.Toggler(null,
function(_, state){
if(state == null){
return Object.keys(this.store('session:${INSTANCE}/config').session).length > 0 || 'none'
} else if(state == 'sandboxed'){
this.store('session:${INSTANCE}/config', undefined)
} else {
this.storeConfig('session:${INSTANCE}/config')
}
},
'sandboxed')],
})
var ConfigStore =
module.ConfigStore = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'store-config',
priority: 80,
depends: [
'timers',
'store-localstorage',
],
suggested: [
'store-fs-json-sync',
],
actions: ConfigStoreActions,
handlers: [
// XXX need to update rather than rewrite things...
['prepareStoreToSave',
function(res, query, data){
var ls_path = '${INSTANCE}/config'
//var ls_path = 'config'
query = this.parseStoreQuery(query)
// config not requested...
if(query.key != '*'
&& query.key.indexOf('config')
&& query.key.indexOf(ls_path)){
return
}
// localStorage...
// NOTE: we do not need to clone anything here as this
// will be done by the localStorage handler...
if(query.store.indexOf('storage') >= 0){
//res.data.storage[ls_path] = this.config
res.data.storage[ls_path] = data || this.config
}
if(query.store.indexOf('fileSync') >= 0){
// XXX should this include path???
//res.data.fileSync[this.config['config-fs-filename'] || '.ImageGrid.json'] = this.config
res.data.fileSync[this.config['config-fs-filename'] || '.ImageGrid.json'] = data || this.config
}
}],
//['prepareIndexForLoad',
// function(){
// }],
// NOTE: this is sync for sync stores...
['storeDataLoaded',
function(_, store, data){
var base = this.__config_base = this.__config_base || this.config
var ls_path = '${INSTANCE}/config'
// XXX sort out load priority/logic...
// - one or the other or both?
// - what order?
if((data.storage || {})[ls_path]){
var config = data.storage[ls_path] || {}
config.__proto__ = base
this.config = config
}
if((data.fsJSONSync || {}).config){
var config = data.fsJSONSync.config || {}
config.__proto__ = base
this.config = config
}
// auto-start auto-save...
this.config['config-auto-save-interval'] > 0
&& this.toggleConfigAutoStore('?') == 'off'
&& this.toggleConfigAutoStore()
}],
],
})
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

3603
Viewer/features/core.js Executable file

File diff suppressed because it is too large Load Diff

View File

@ -1,86 +1,119 @@
/**********************************************************************
*
*
*
**********************************************************************/
define(function(require){ var module = {}
//var DEBUG = DEBUG != null ? DEBUG : true
var actions = require('lib/actions')
var features = require('lib/features')
var data = require('data')
var images = require('images')
var core = require('features/core')
/*********************************************************************/
var demo_data =
module.demo_data = {
varsion: '3.0',
current: '3',
base: 'r0',
order: [],
ribbon_order: ['r0', 'r1'],
ribbons: {
r1: ['1', '2', '3'],
r0: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z']
},
tags: {
selected: ['b', 'z'],
bookmark: ['1', 'c', 'z'],
},
// NOTE: group gids do not have to be present in .order, they will
// get added on .collapseGroup(..)...
groups: {
g0: ['a', 'b', 'c'],
g1: ['l', 'y'],
},
}
Object.keys(demo_data.ribbons).forEach(function(k){
demo_data.order = demo_data.order.concat(demo_data.ribbons[k])
})
/*********************************************************************/
var Demo =
module.Demo = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'demo',
depends: [
'base',
],
actions: actions.Actions({
loadDemoIndex: ['File/Load demo data',
function(){
this.load({
data: data.Data(demo_data),
images: images.Images(),
})
}],
})
})
/**********************************************************************
* vim:set ts=4 sw=4 : */
return module })
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
var actions = require('lib/actions')
var features = require('lib/features')
var data = require('imagegrid/data')
var images = require('imagegrid/images')
var core = require('features/core')
/*********************************************************************/
var demo_data =
module.demo_data = {
version: '3.1',
current: '3',
base: 'r0',
order: [],
ribbon_order: ['r0', 'r1'],
ribbons: {
r1: ['1', '2', '3'],
r0: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z']
},
tags: {
tags: {
marked: ['b', 'z'],
bookmark: ['1', 'c', 'z'],
},
},
// NOTE: group gids do not have to be present in .order, they will
// get added on .collapseGroup(..)...
groups: {
g0: ['a', 'b', 'c'],
g1: ['l', 'y'],
},
}
Object.keys(demo_data.ribbons).forEach(function(k){
demo_data.order = demo_data.order.concat(demo_data.ribbons[k])
})
var demo_images =
module.demo_images = {
a: {
orientation: 90,
tags: ['test'],
},
d: {
tags: ['test', 'bookmark']
},
f: {
orientation: 270,
},
2: {
orientation: 270,
},
z: {
flipped: ['horizontal'],
},
}
// sync tags with images...
//demo_data = data.Data(demo_data)
// .tagsToImages(demo_images, 'merge')
// .tagsFromImages(demo_images, 'merge')
// .json()
/*********************************************************************/
var Demo =
module.Demo = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'demo',
depends: [
'base',
],
actions: actions.Actions({
loadDemoIndex: ['File/Load demo data',
{mode: 'advancedBrowseModeAction'},
function(){
this.load({
data: data.Data(demo_data),
//images: images.Images(),
images: images.Images(demo_images),
location: {
path: 'Demo data',
load: 'loadDemoIndex',
sync: 'loadDemoIndex',
check: true,
} }) }],
})
})
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

113
Viewer/features/diff.js Executable file
View File

@ -0,0 +1,113 @@
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
// XXX get actual diff path...
var diff = require('lib/diff')
var actions = require('lib/actions')
var features = require('lib/features')
var core = require('features/core')
/*********************************************************************/
// XXX get diff and save new reference state...
var save = function(){
var res = this.diff()
this.__reference_state = this.josn()
return res
}
var load = function(diff){
// XXX
}
/*********************************************************************/
// XXX we need a separate feature for fs stuff...
// XXX format:
// - we should separate:
// .data
// .images
// .collections
// ...
// should we use the same mechanics as the original save/load???
var DiffActions = actions.Actions({
// XXX this must be read-only...
__reference_state: null,
__changes_stack: null,
diff: [`- System/`,
// XXX should this get separated diffs or one big diff???
// ...i.e. get and arg to filter sections???
function(){
return diff.Diff(this.__reference_state, this.json()) }],
// XXX EXPERIMENTAL -- this can be another way to implement undo or
// a way to do "pre-save manual undo points"...
// ...the problem with undo is that .popChange(..) does not
// care about what changed and how and will simply reload the
// whole state...
// XXX do we need these???
pushChange: ['- System/',
core.doc`Create a save point
`,
function(){
var stack = this.__changes_stack = this.__changes_stack || []
stack.push(save.call(this))
}],
popChange: ['- System/',
core.doc`Restore to a save point
`,
function(n){
var stack = this.__changes_stack || []
n = n == null ?
0
: (n == 'all' || n == '*') ?
stack.length
: n
var state = this.josn()
stack
&& stack
.splice(-n-1)
.forEach(function(d){
state = d.unpatch(state) })
// XXX is this the correct way to go???
this.load(state)
}],
// XXX hook into save/load workflows...
// XXX
})
var Diff =
module.Diff = core.ImageGridFeatures.Feature({
title: '',
doc: '',
// XXX
tag: 'diff',
depends: [
// XXX
],
actions: FeatureActions,
handlers: [],
})
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

1117
Viewer/features/examples.js Executable file

File diff suppressed because it is too large Load Diff

132
Viewer/features/experimental.js Executable file
View File

@ -0,0 +1,132 @@
/**********************************************************************
*
*
*
**********************************************************************/
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
var toggler = require('lib/toggler')
var actions = require('lib/actions')
var features = require('lib/features')
var core = require('features/core')
var widgets = require('features/ui-widgets')
var widget = require('lib/widget/widget')
var browse = require('lib/widget/browse')
var overlay = require('lib/widget/overlay')
var drawer = require('lib/widget/drawer')
var browseWalk = require('lib/widget/browse-walk')
/*********************************************************************/
var ExperimentActions = actions.Actions({
// NOTE: we do not want to pick and chose changes as that might lead
// to inconsistencies...
// ...a better way would be to go would be to:
// - reset
// - undo / redo
// XXX depends on ui, ...
// XXX would be nice to have a universal .save() action...
// XXX can we make this into a dialog that would stop a certain
// action until the user confirms or aborts... e.g. warn of
// unsaved changes when navigating away...
// XXX move this to ui-widgets...
browseChanges: ['Experimental/$Changes...',
core.doc`
`,
{dialogTitle: 'Unsaved changes'},
widgets.makeUIDialog(function(path){
var that = this
var comment
var handlers_setup = false
return browse.makeLister(null, function(_, make){
var keys = Object.keys(that.changes || {})
if(keys.length == 0){
make.Empty('No changes...')
// list changes...
} else {
keys
.forEach(function(key){
var opts = {}
if(that.changes[key] instanceof Array){
opts.attrs = {
count: that.changes[key].length } }
// XXX show human-readable info... (???)
make(key, opts) })
// save comment...
if(that.getSaveComment){
make('---')
comment = comment
|| that.getSaveComment()
// XXX this behaves in an odd manner...
make.Editable(['$Comment: ', comment],
{
multiline: true,
abort_keys: [
'Esc',
],
})
.on('edit-commit', function(_, text){
that.setSaveComment(
$(this)
.find('.text')
.last()
.text()) })
.on('edit-abort', function(){
$(this)
.find('.text')
.last()
.text(comment) }) }
make('---')
make('Save', {
open: function(){
that.setSaveComment
&& that.setSaveComment(comment)
that.saveIndexHere
&& that.saveIndexHere() },
close: function(){
that.off('markChanged', 'changes-dialog-updater') },
})
if(!handlers_setup){
// XXX need to clean this up in a better way...
// XXX this should also track .changes...
that.on('markChanged', 'changes-dialog-updater', function(){
make.dialog.update() })
handlers_setup = true } } }) })],
unsavedChanges: ['- Experimental/',
function(){
}],
})
var ExperimentFeature =
module.ExperimentFeature = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'experiments',
//isApplicable: function(actions){ return actions.experimental },
actions: ExperimentActions,
handlers: [
],
})
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })

Some files were not shown because too many files have changed in this diff Show More