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