-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
190 lines (135 loc) · 8.43 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
For version 3:
* Test swipe navigation on Surface?
* Overlay view doesn't work correctly on Android?
* Fix bug 2016-12-20_001.
* Make DyphalGenerator work on non-Linux platforms.
* De-select DyphalGenerator buttons after they're clicked upon.
* What happens if there is an I/O error in a background task? For
instance, what happens to subsequent tasks if _bgCreateOutputDirectory
fails? What happens to exceptions from _bgGenerateAlbum? Are there
other potential unhandled exceptions lying around?
* Handle a failure to generate photo json.
* Check for the presence of exiftool and other dependencies in
gthumb_comment_update.py
For future versions:
* More automated tests, including photo metadata handling and the git
version commands in the installer.
* Replace external dependencies (convert, exiftool) with calls to some
library. This'll be hard: the Python bindings for exiftool all just
call the program and parse its output; there're no proper library
bindings. There's not much point dragging in another dependency just to
have the same drawbacks as the current design. Other metadata parsers
don't have exiftool's functionality. There are proper library bindings
for ImageMagick, but Wand 0.5.9 seem to have resource-management
problems: it occasionally throw exceptions while attempting to process
images.
* Create an index view, populated from an index JSON that lists all albums.
Add album thumbnails to album JSON; load all album JSONs from the index
view and display the title and thumbnail for each album. Come up with
some way to locate the index JSON and add albums to it when they're
generated. Consider automatically copying the album template when
generating albums in DyphalGenerator.
* Drop support for IE <11. Get rid of the compat crap and replace PNG
buttons with SVG. Maybe use data URIs in CSS to reduce server round-
trips? Replace top-level divs with html5 header, footer, main, details,
nav elements? calc() might make some of the CSS simpler.
IE 9 is still supported on Windows Vista until 2017-04-16 and on Windows
Server 2008 until 2020-01-14. IE 10 will be supported on Windows Server
2012 and Windows Embedded 8 Standard until 2023. IE 8 is actually still
supported on Windows Embedded POSReady 2009 (which is based on Windows
XP) until 2019-04-09.
* Revisit whether Android <4.4 support is still needed. If not, get rid of
the poll loop and overlay touching. See bugs 2014-01-17_001 and
2014-05-16_001 for more details.
* Reference CSS properties in a consistent and standards-compatible way.
See bug 2014-01-12_001 for more details.
* Cache all photos and thumbnails that have been downloaded so that the
browser doesn't need to keep polling the server to see if they've
changed. See bug 2014-01-18_001 for more details.
* Design a more compact layout for large windows. See bug 2014-02-04_001
for more details.
* Handle thumbnails with aspect ratios other than 4:3 (eg, for panorama
photos) without cropping.
* Handle unexpected values in the DyphalGenerator configuration file and
album files without crashing. See bug 2014-04-05_001 for more details.
* Add a "sort mode" option to DyphalGenerator, which can be set to "by file
name", "by time", or "none". If set to "by file name", automatically
sort photos by file name. If "by time", automatically sort by time. If
"none", don't sort by default and allow the user to sort manually.
* Switch to a proper bug-tracking system.
* Model-View separation in DyphalGenerator. At the very least, I'd no
longer need to make foreground-thread callbacks every time I want to
change something.
Replace AlbumFile with a proper class that holds all album data. Is
there a way to specify the JSON encoding of a class?
* Move the help content into a separate file and load both the help and
readme content in iframes on top of the album.
* A build option for minified release builds would be nice. So would an
option to build an installation tarball of everything.
* On-line help in DyphalGenerator.
* Reduce the spacing on items in the Add Caption and Add Property menus in
DyphalGenerator. I tried to change the padding with a QMenu::item
stylesheet, but this removed the hover effect. I can't figure out how to
get both. It's probably not important unless the user is using a fairly
small screen.
* Use the photo title instead of album title on in photo view if available.
* Try using screen.lockOrientation() in small-screen mode, once something
supports it?
* Add a 'full' size option to the 'scale' combobox in DyphalGenerator.
* Python's xml.etree.ElementTree is documented as being unsafe for handling
untrusted XML. Use something else (defusedxml?) instead.
* Replace setScreenSize() with a window.matchMedia query.
* Add a way to set/edit photo comments, since gThumb's comment support and
UI seem to be getting worse over time rather than better. (gThumb 3.2
treats EXIF:DateTimeOriginal as authoritative even in the presence of
other timestamps, overwrites EXIF:DateTimeOriginal when changing the
timestamp through its UI, and doesn't display the timestamp or location
in its comment panel. gThumb3 is apparently making its UI more Gnome-
specific.)
* Remove stylesheet-specific code relating to the compact layout from
dyphal.js.
* Handle photo orientations other than top-left in DyphalGenerator.
* Putting <div> and other block elements inside a <label> violates the HTML
standard.
* Multi-thread gthumb-comment-update
* Better progress indication in gthumb-comment-update
* Command-line mode for DyphalGenerator to generate an album for an
existing album file, and to install the template to a listed directory.
* Stylesheet for printing.
* Use a CSS pre-processor that lets me nest selectors, so that I don't have
to repeat "body.whatever" on so many selectors. Also, combine all four
stylesheets into one to reduce server requests.
* Support photo list formats from other software (DigiKam, KPhotoAlbum,
geeqie, etc?) in DyphalGenerator.
DigiKam uses an opqaue database for metadata, but can store metadata in
photo tags. However, it's metadata editor is heavily focused on the
implementation details. For instance, to set a location, you need to
switch to the "IPTC" tab and enter the location field. KPhotoAlbum
appears not to be able to write photo tags at all, or even to import them
into its opaque database. It also has a confusing UI.
* When an existing album is re-opened in DyphalGenerator, track of what
gets changed so that I don't need to re-generate everything on save.
Re-loading the photo JSON and comparing it to fresh data is probably not
worth the effort, but substantial time could be saved by not
re-generating scaled photos. However, this would require me to store
some measure of whether the photo itself has changed. Can I get a hash
of the photo that excludes embedded metadata?
* Better icons in DyphalGenerator.
* Make things like the thumbnail size and template file names configurable
in DyphalGenerator.
* If KDE ever fixes their buggy directory chooser, consider switching to
the native dialog in DyphalUI::_installTemplate()
* Add command-line options to install.sh to set the installation paths and
to uninstall.
* Get rid of ChangeLog in favour of git log?
* Python type hints? Requires minimum Python 3.5. Apparently type hints
are ignored by Python and are only intended for third-party tools. They
should, however, make the code more readable. See
https://docs.python.org/3/library/typing.html and the PEP documents that
it links for more details.
* Better fonts?
* Display time zones in photo metadata.
* Respect gThumb's order element, created if one manually re-orders photos.
* CSS layout ideas: flex and grid layouts
https://web.dev/one-line-layouts/
https://cssfordesigners.com/articles/things-i-wish-id-known-about-css