]> git.street.me.uk Git - andy/viking.git/blob - TODO
Guilhem's autotools support/alphabetized trw option
[andy/viking.git] / TODO
1 FIXES:
2
3 checkbox in list doesn't work?! (on some GTK setups anyway)
4
5 map cache size a dynamically settable option
6 alphabetized waypoints/tracks dynamically settable option
7
8 check out bgitemcount stuff in background.c
9 open jobs window a 2nd time after clearing (mess around a bit), crashes
10
11 TOO MANY OPEN FILES!!!!!!!!!!!!!!!!!!!
12
13 FIX HOLLISTER-RELATED DOWNLAOD TOPOS -> COORD NOT IN UTM ASSERT/CRASH (???)
14
15   what if try to REDOWLOAD while RE/DOWNLOADing?
16   Reid's 23, including waypoints, GPX/XML Viking files.
17   Fix map downloading/HTTP code.
18   Redraw when becomes available, somehow?
19   Speed up waypoint drawing; option for faster drawing.
20   map loading/memory caching in the background? (for zoom out)
21   modular plotting styles? just an idea...
22   optimize Lat/Lon performance with its own CE1, CE2 etc.
23   make ce1, cn2 etc for lat/lon & utm; maybe get out the checking code in vik_viewport (see draw_rectange for instance)
24   no alphabetize in the layer itself option for opening tons of GC's? (optimization tag for wp drawing and alphab.)
25   Progressive Loading (GdkPixbufLoader)
26   CACHING WHOLE CHUNKS? (USEFUL FOR MAP ZOOM TOO!) RELOAD BUTTON?
27   * instead of using "emit"s in tools, do this:
28
29   * "add-only" return value -- only redraw this layer and layers above it.
30         OR maybe even more advanced -- only redraw certain portions of screen.
31         what about ALPHA??? uh oh...
32         "always redraw" return value -- if layer is visible or not -- e.g. goto wp
33         "redraw if visible" return value
34   WHITE UNDER TRACKS! DONE FASTER! CLEAN THIS UP!
35   replace HTTP code!!!
36   relative photo pathnames (relative to GPS data file)
37   Optimizations (compare to 0.0.5)
38 OTHER
39   Editing/Moving waypoints: if didn't move enough
40   settable defaults for layers (sigh...) OR at least config.h stuff
41   hover over pic
42   Clipboard done right -- GtkClipboard, between processes
43   Better annotation for tracks, etc. Fields, etc.
44   Waypoints -- exactly change how it looks like -- shape, size of point.
45            \-- make drawing name OPTIONAL.
46   Filled polygons and we'll have a QuasiGIS!!!
47   merge layers -OR- copy & paste >1 item (better! not too hard?)
48   New UI: "Track Tool" => just analyze/pick out, right click or button to edit
49         right click to do new track
50       or "Track/Waypoint Tool"
51   I18N
52 THUMBNAILS
53   * settable viewer: xv, kview, eog, gnome-open, kfmclient, etc. custom (& web browser for geocaches)
54
55 0.1.2
56   * Data sources: google, gpsbabel
57     * gpsbabel plugin -- wired up to get directions from google maps.
58     * address plugin.
59   * direct GPS support (?)
60     GPS navigation (speed, etc, etc)
61   * advanced downloader?
62 0.1.3
63   * stops
64     whole list: length, max movement, icons. can make more. right click -> stops...
65   * symbols
66   * draw by altitude, altitude side thingy.
67 0.1.4
68   * selections (?)
69   * NASA crazhy maps
70   * scale
71 0.1.6
72   * new UI & documentation
73   * internationalization
74 0.2.0
75   * TIGER data, vector maps
76 0.3.0
77   * altitude stuff, goodies
78   * major UI changes, direct manipulation
79   * sit down for a day or two and design the bestest bestest UI
80   * threads, etc
81   * docs, lots of docs
82 1.0
83   * more sophisticated vector data, almost GIS stuff. garmin maps, whatever
84   * party
85
86 --------------------------------
87
88 0.0.9 / 0.1.0
89  SELECTIONS (?)
90   * square & track-based
91   * select everything in, everything out
92   * download maps in
93  WAYPOINTS
94   * pango for text; text background with settable colors & options
95   * move & edit waypoints!!! auto-select for that
96   * maybe an option to turn on auto-select: off, on, only for same layer (default)
97  MAPS
98   * some of the above optimizations
99  MERGE TRW
100   * auto-rename dupes
101   * delete dupes by name
102   * delete dupes by location; name & location
103  TRACKS
104   * track editing -- everything on that idea sheet on my desk.
105   * insert into track
106   * show list of pics in one location
107   * maybe track-by-elevation
108  MISC
109   * alphabetize waypoints & tracks
110   * d&d layers (not worth it?)
111  FIXES
112   * crazhy-crazhy auto-switch UTM?
113   * figure out save image in background stuff, sigh...
114   * "widget properties set value param data"
115     -> check if has properties params
116     -> in layer_prop_fact: hold value's check if changed.
117     -> return TRUE only if value affects look
118     -> beautify dynamic properties boxes (checkboxes please?)
119     -> groups
120     -> maybe get rid of post_read (use set_param to update gc's -- but maybe not...)
121   * TODOs & FIXMEs
122   * due <= 2004-6-12 (1 yr after 0.0.3)
123
124 DONE:
125   * do alpha _right_ (to see what I mean, try drawing a transparent PNG)
126 -----------------------
127
128 POSSIBLE MAP OPTIMIZATIONS:
129 save conglomerates of shrunken images [to disk]?
130 static cache.c shared between everything -- SHARE MAP CACHES BETWEEN LAYERS AND WINDOWS!!!
131 background loading thread
132 load zoomed out images into conglomerates
133  -or-
134 Sort images by some sort of checksum (maybe sum of all digits) into 10 groups
135 makes finding cached image 10 times faster
136 if we somehow know we're not going to have enough room to store all maps for 1 redraw in cache, don't cache at all.
137 better cache management -- maybe every map in memory?
138 --> cache should fit more small maps than big ones!!!
139     maybe number for cache_size, keep track of it manuall, calculate from shrinkfactor? <-- good idea
140 pixmap (not pixbuf) cache?
141 vikmaplayer.c:520, don't run g_slist_length who-knows-howmany times (only noticable when shrinking cache)
142 stat images to make sure the size isn't zero (vs. trying to load them). then show errors for bad ones (?)
143 don't lookup IP each time (?)
144
145 ------------------------------
146
147
148  Then, focus on Lat/Lon and mapquest maps. (????)
149  Then, focus on Lat/Lon and mapquest maps.
150
151 0.0.9 "260 million maps... I can't hear you at all" release:
152 finalize pthread/map download UI.
153 export to image fix bug
154 viking running -> use this thread ( good luckers !!! )
155 merge trw layers
156
157 0.1.0 "where we're going, we don't need roads" release (concept idea):
158 Select a waypoint, delete to delete it, real tools, a toolbar, etc.
159 Drag and drop layers
160 alphabetatize waypoints & tracks
161 "area selections" -- select tool -> select waypoints in/outside area, download maps in area, etc. etc.
162
163 -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
164
165 0.1.0: the "fixes, patches, improvements, and goodies" release
166        "Where we're going, we don't need roads..."
167
168   * move a_dialog_new_track to viktrwlayer.c. Clean up VikTrwLayer, separating into several more-managable functions.
169   * get rids of pass_along, layer_and_vlp junk, just use update signal and track_iters (maybe make waypoint_iters) (?)
170   * TODO longones
171   * general cleanups, what you have time for (vik_trackpoint_free etc, draw_track, etc.)
172     * do we really have to have all those global funcs in vik_trw_layer ?
173 right click->new track here, new waypoint here. general TRWEdit tool with popup on vikviewport, it can be done.
174 general edit->delete to delete whatever is selected. ugly stuff ahead.
175 show human-readable timestamp
176 toolbar/toolbox, tool opts win (for tpwin) like in gimp (?)
177 Maybe fix "private" ref_count in clipboard.c (?)
178 clean up viktrwlayer.c, call track_realize() when adding track with add_track(), del dup. code, esp. in track_draw
179 move/edit by click for wp?
180 toolbar/toolbox, tool opts win (for tpwin) like in gimp (?)
181 only draw if in UTM zone !!!
182 Track color-by-elevation ( go all over an area, make tracks thicker/zoom out to create DEM color map ?! )
183 maps zoomed out
184 Thing to download lotsa maps (script or builtin -- ?)
185 Merge layers (what a say we have 2 layers, one with wp's, one with tracks)
186         merge: auto rename (everything begins with "layer name: ")
187         right click agg -> merge trw children -> super trw
188         or multiple slect/copy & paste
189 picture layer, thumbnails and all...
190 move to  gpsbabel default altitude, reflect it everywhere, include viking-remote
191 gpspoint.c -- use new easy gpsbabel code, abc, 123.
192
193 hard things to think about that need to be done sometime (mainly hard/impossible):
194 1) map downloader process / map download queue
195 2) if viking already running, use that process. cut and paste will work much better.
196
197 EVERYTHING ABOVE THIS LINE SHOULD BE IN 0.1.0! 0.2.0 WILL FOCUS ON LAT/LON AND STREET MAPS
198
199 -----
200
201 0.2.0
202 * Plot as lat/lon
203         For mapquest & georef maps: vikviewport "mode" to draw in (utm or straightened lat/lon), check before drawing, convert for TP, etc.
204 * full georef support, release minnesota/manganese
205 * mapquest maps
206 * smart drawing -- determine if line segment passes thru area, fancy math...
207 * map downloading manager, smarter ways -- e.g. "download maps within polygon"
208 * maybe a gpsbabel plug-in
209 * topos zoomed out if it didn't make it into 0.1.0
210 * maybe better wp drawing
211 * wp's alphabetically (good luckers) or at least when loading
212 * wp editing
213 * direct gps support
214
215 0.3.0 (still here?)
216 * new viking -> not new process
217 * wp icons
218 * routes
219 * improve direct manipulation
220 * bugfixes
221 * smart labeling so we can see 2 wp's (nearly) in the same place
222 * UTM zones (?)
223
224 1.0
225 * DEM maps
226 * mapsource files
227 * anything else possible, plausible and desirable.
228 * lots and lots of docs
229 * UI cleanups
230
231 Uses:
232 * planning
233 * viewing -- showing places/tracks on topo or street maps or scanned maps
234 * map download & printing -- your own, TOPO-thomas guides or city thomas guies
235 * adding coord lines to scanning maps -- print 'em out or see where they are
236 * editing tracks
237 * managing & organizing data
238 * creating maps and gps maps
239
240 SCALING:
241 * maybe downn scaling of higher-quality topos to accommodate odd zoom resolutions. this would also be useful for downloading _only_ high 
242   quality topos, or zooming out and seeing what topos we are missing, or downloading LOTS more topos at once (w/ download all on screen)
243   again, we will have to see how good GTK scaling is.
244 * maybe scaling of weird-scale (georeferenced) maps
245
246 Other
247 * georeferenced raster layer:
248  Optional:
249   - fix off-by-one-pixel bug (probably corner stuff) (?)
250   - utm zones (?)
251   - tool (maybe BUTTON 4,5 thing), and maybe a better zoom tool. but for release it's OK.
252
253 ROTATION/MESSED UP MAPS:
254 * Track/Waypoint Plotting as Lat/Lon (or artificial rotation, maybe preferred) for those kind of maps
255   and/or rotation of maps (not as good)
256 * maybe option "draw as lat long -- UTM center +- 1000 or something to find degrees/pixel (or use some other formula a la odu)
257 * or just rotation in screen_to_utm and utm_to_screen
258 * "anchoring down" one part of a georeferenced map for rotation and scaling.
259
260 * fix coord layer, it is SO horribly broken for high zoom levels.
261
262 * Investigate "chunk already freed"
263 * investigate if layer type doesnt have icon wont start bug
264 * Cleanups and fixes until 0.0.5-final:
265 * at least two of these things
266   * Merge TRW Layers
267   * copy and paste items
268   * MapBlast
269
270 These Cleanups:
271
272 -> These Cleanups
273 maybe "max size" thing for each param
274 --> maybe address within layer (struct offset) so wwe can just do away with set_param (in most cases). put stuff in realize or after_read
275 cleanup interface <---- IMPORTANT
276
277 -> cleanups below
278
279 -> sometime:
280    has_altitude or NO_ALTITUDE -> 999999
281
282 -> 0.0.6
283
284 C*L*E*A*N*U*P*S
285
286 dialog.c -> misc.c, viktrwlayer.c
287 export a layer from the file menu, some how. Export Layer -> choose layer. or Export Selected Layer (disabled as need be
288 ---
289 *MAYBE*
290
291 RGN type and other type in something of its own, not name.
292 that way, we can use the same file for waypoints to gps and for maps.
293
294 solutions to this problem:
295 File->Properties:
296   Position:
297   <R> Save current position
298   <R> Save this position:
299      UTM/LATLON ZOOM
300   <R> Save no position
301
302 -------
303 -------
304 -------
305 -------
306
307 (fixes + cleanups + scaling + rotation + ruler widgets (?) + topos & orthos in one (?) + copy&past items + merge layers) = 0.0.6
308
309 then 0.0.7, 0.0.8, 0.0.9 focus
310
311 things before "major" release:
312 direct manipulation (major feature/use)
313 use current viking (maybe)
314
315 to second "major" release:
316 libgpspoint2 and/or gpsd (show current pos)
317 map ui (rough edge)
318 analyzing stuff better, exact analyzing.
319
320 to 1.0
321 UTM ZONE!!!
322
323 > Although almost all of these are on your todo list I thought I would add my thoughts.
324
325 > 1.  Being able to choose the map units.  The metric system still baffles
326 > some of us. 
327 > 2.  Modular set up for map sources.  The urls tend to change/disapear
328 > when companies get bought up by micro$oft (mapblast).  The ability to
329 > import/export georefrenced maps.
330 > 3. Manipulations of track data...distance, altitude etc.
331 > 4. Export/printing of maps.  
332 > 5. Eyecandy. Colors and symbols for tracks, waypoints and routes.  Shade
333 > topo maps with DEM data.  
334
335 file format + hig compliance + bug fixes + MAYBE track undo = 0.0.4
336 FF2 + ruler widget + topos&orthos in one  +comment field + bugfixes = 0.0.5
337 if viking already running, use that process. + copy and paste layers + merge layers
338         + copy and paste items + bugfixes = 0.0.6
339 Direct manipulation, WYSIWYG moving + track connecting + etc = 0.0.7
340 track segment selection, deletion, track point deletion (create two segments or skip point) +
341         waypoint symbols + bugfixes = 0.0.8
342 toolbar + layer properties boxes changes, etc. + misc = 0.0.9
343 routes + misc + code cleanups = 0.0.10
344 map download ui + code cleanups + bugfixes = 0.0.11
345 other goodies, fixes, break release = 0.0.12
346 misc, etc. fixes, cleanups = 0.0.14
347 autotools, I18n + etc. = 0.0.15
348 fixes = 0.1.0
349
350 (NOT IMPORTANT. FF2 will come.)
351 functions write_utm, read_utm to save space
352 sizeof(Waypoint) != sizeof(components)! try to save disk space
353 len of layer for each layer so older versions can skip over new layers
354 Make it so if layertype >= vik_layer_num_types, skip layer. (in aggregatelayer.c)
355 Use magic numbers, and lengths to better prevent version messing ups (len of layer data, if extra, 
356   rest skip, if not enough, ignore, etc.) 9in layer file themselves)
357 ---
358
359 Viking 0.1.0 "It's been a long road..."
360
361 > 0.1.0: anylyzing speed and time, libgpspoint, misc goodies
362 > 0.2.0: garmap layers, utm zones, etc.
363
364 0.0.4 "Lame Duck Tape"
365 --------------------
366 0.0.6 "Where we're going, we don't need roads..."
367 --------------------
368 --Definitely:
369 UNDO DELETE LAYER!!! Or ask, maybe? For now, ask: later, maybe an undo "stack of commands" where things at the bottom of the stack are done only as new things push them down?
370 more "Forgive the user" kind of stuff.
371
372 FIXES:
373         Acceptable chars in dialog.c & gpspoint.c
374         file check if it's a directory for load & save.
375
376 Route support!
377
378 Toolbar
379 Do something similar with tools. layer_tools func in interface, then a tools structure, array, or add2menu func. humm
380
381 Track Colors -- PROBABLY.
382
383 viktrwlayer_dialog.c -- we MUST do this one.
384         No, even better Idea. framework where properties are stored as RESOURCES for each type of layer.
385         Each type of layer defines it's own resources and the viking layer dialog builder picks it up and draws the dialog.
386         Comments? Format? Fields?
387         Type: check, double/spin (including range, and all other params), string, double/entry, int/entry
388         And then subdivisions (tabs) of that. Track drawing, track colors, waypoints. or Drawing, Colors, ...
389
390 fix layers_menu_add_layers
391         I've made a mess of the add menu stuff. The add submeny is bad.
392         maybe a itemfactory thing in layer interface (for now, it's OK... but...) at the very least a serializedicon thing in 
393         interface so I don't have to serialize it every time... draining resources.
394
395         -- what if i have one menu with the icons and everything already made, and both vlp and wikwindow adds that? no, then i 
396         could't have custom callback data. what if all layer types' itemfactory items were modeled as "Add Layer/TRW Layer" Then 
397         I'd have an add layer menu in each?
398         -- think about it.
399
400
401 MAYBE:
402   MOVE A WAYPOINT
403   Waypoint Symbols, get started. symbols.c where i have a Name->ID mapping, then an ID->icon mapping. Get Started on Icons.
404   Merge 2 TRW Layer
405   Better CoordLayer.
406   Fix Some Bugs, Clean up Some Code.
407   Bulk Map Downloader (maybe another project)
408   renaming waypoints -- overwriting
409
410
411 And There's Your Release.
412
413 Other Ideas:
414 fix editing / move bug (ideas?)
415 copy & paste individual tracks & waypoints
416 tracks & waypoint ordering (?!)
417 don't forget about track SEGMENTs !!! (shoot for 0.0.5; should be in by 0.0.6)
418 vik_trw_layernew_track like waypoint. or maybe not (need starting point?)
419 I18N  -- at least fake ( all strs _() ized)
420 HIG compliance...
421 maybe export all visible trw's (nah, merge)
422 select waypoint; break up a track
423 Coordlayer color chooser
424 Coordlayer: UTM
425 trw_layer centerize: randompoints & average
426 maybe in item_add get visible and name from the layer / track / whatever itself.
427 ALSO, maybe chane set_name to update_name.
428 show tracks and waypoints (dynamic stuff)!! Copying between layers! YEAH
429
430 do some TODOs
431
432 ---------------------------------------
433 |                0.0.5                |
434 ---------------------------------------
435 | "Not all those who wander are lost" |
436 ---------------------------------------
437 Track & Waypoint sorting
438 Convert to GLIB Gobjects for layers
439 I18N
440 AutoTools
441 Track Colors
442 select waypoints; select trackpoints; selet track segments; measuring track & segment length; analyzing trackpoint altitude 
443 & time by selecting it; color by altitude/
444 Copy & Paste Layer (see below)
445 legend (length)
446
447 copying between layers: sublayer_add_menu_items () -> copy -> static pointer for layers panel, or whole process.
448 two ways of doing it: layer2copy & sublayer2copy, or general purpose "cliboard" var. on paste, layer / aggregate layer figures it out.
449 I vote for "layer2copy" and "sublayer2copy". That way, each layer can check if it can paste the sublayer and paste layer will always be there.
450 then you need a duplicate function for each thing you want to copy. shouldn't be too bad.
451
452
453 ~-~-~-~-~-~-~-~
454 0.0.6 "Where no man has gone before"
455 ---------------
456 DnD
457 Map Download Background Thread
458 LibGpsPoint
459 Settabl eFonts
460 UTM zones
461 Waypoint Symbols
462 Edit Timestamps
463 show different fields on side: altitude, time, etc. sort by these. maybe a layer edit dialog box.
464
465 ------
466 0.1.0
467 ------
468 Garmap Layer!
469
470
471 Other:
472 --------------
473 waypoint symbols
474 make your own timestamp
475 CACHE MAP SERVER IP; RETURN ERROR FOR WHY DOESNT WORK
476 MAP DOWNLOAD PROGERESS (!)
477 more g_asserts ... lots more 
478 UTM zones, aye...
479
480 ----------------------------------------
481 ========================================
482 ++++++++++++++++++++++++++++++++++++++++
483 fix tracks thing: STILL BUGS ! and clean up function maybe?
484 start noplace, when open file start in middle of there
485 clarification of new / open ( add to or what?  maybe add to in layer; merge layer stuff )
486 status bar: don't overlap stuff
487
488 i18n!!!
489
490 coordlayer -- ticks only
491 tick marks or lines for utm lines so you can tell where you are (TickLayer)
492
493 Intelligent Map Caching: knows which way you're going ... just something to think about.
494
495 Download all maps
496
497 routes
498 choosable gcs including background
499 Maybe each track has it's own GC? Just a thought.
500 Tools, explore etc. tools menu. tools window / bar
501 save stuff
502 status bar for track info, etc.
503
504 +TODO from otu ...
505
506 glist for routes (pointer directly to string used in ghashtable key? possible?) and tracks.
507
508 "Viking -- can you handle the power?"
509 "Viking -- where do you want to go today?"
510 "Viking -- where have you been today?"
511 "Viking -- where did you go today?"
512
513 "Vikingis Conqueris"
514
515 "The Viking Conquereth"
516 Viking 0.0.1pre15
517
518 Viking "the fake GIS"
519 Viking "the wannabee GIS"
520 Viking "CasiGIS"
521
522 Viking QuasiGIS (tm)
523
524 GPX support, loc.gz
525 So Many Possibilities...
526
527 OTU can do Viking can't:
528  * routes
529  * instant GPS location (sorta)