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