/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Annotation of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 243 - (hide annotations)
Wed Jul 24 17:16:41 2002 UTC (22 years, 7 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 33038 byte(s)
update ChangeLog

1 bh 238 2002-07-24 Bernhard Herzog <[email protected]>
2    
3 bh 243 * Thuban/UI/application.py (ThubanApplication.create_session):
4     Extend the doc string.
5     (ThubanApplication.subscribe_session)
6     (ThubanApplication.unsubscribe_session): New methods to
7     subscribe/unsubscribe to/from session channels.
8     (ThubanApplication.SetSession): Call the new methods here.
9     (ThubanApplication.maps_changed, ThubanApplication.set_map):
10     Renamed set_map to maps_changed. Its now a subscriber for
11     MAPS_CHANGED.
12    
13     * Thuban/UI/view.py (ZoomOutTool.MouseUp): Use the correct
14     x-coordinate in case of simple clicks
15    
16     * Thuban/Model/base.py (Modifiable.changed): Apply the args tuple,
17     don't pass it as a parameter
18    
19     * Thuban/Model/session.py (Session.RemoveMap): New
20    
21 bh 238 * Thuban/UI/mainwindow.py (MainWindow.__init__): Turn the initial
22     window size into a parameter.
23    
24 bh 235 2002-07-23 Bernhard Herzog <[email protected]>
25    
26 bh 237 * Thuban/UI/menu.py (Menu.item_index): Also search for menus not
27     just commands.
28    
29 bh 235 * Thuban/UI/mainwindow.py (MainWindow.__init__): Change the
30     parameter list a bit to allow setting the window title and the
31     initial message in the status bar. Update the callers.
32    
33     * Thuban/UI/application.py (ThubanApplication.OnInit)
34     (ThubanApplication.CreateMainWindow): Put the mainwindow
35     instantiation into a separate method so that it can be overridden
36     by a subclass.
37    
38 bh 230 2002-07-19 Bernhard Herzog <[email protected]>
39    
40 bh 234 * Thuban/Model/session.py: Issue a CHANGED message every time
41     another changed message is issued to make it easier to get
42     notified of changes.
43     (Session): Update the doc string
44     (Session.forward): Issue changed-events as CHANGED as well.
45     (Session.changed): Overwrite the inherited version to issue
46     CHANGED events as well.
47    
48     * Thuban/UI/tree.py: We can now simply subscribe to the session's
49     CHANGED channel to be informed of changes.
50     (SessionTreeCtrl.session_channels): Not needed any longer.
51     (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
52     Only have to (un)subscribe CHANGED
53    
54     * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
55    
56 bh 230 * Thuban/UI/main.py, Thuban/UI/__init__.py: Move the work-around
57     for the wxPython locale bug to __init__.py so that it's
58     automatically executed by anybody using UI code from Thuban.
59    
60 bh 225 2002-07-18 Bernhard Herzog <[email protected]>
61    
62 bh 228 * Thuban/UI/main.py (main): app no longer needs to be global
63    
64     * Thuban/UI/mainwindow.py (MainWindow.__init__): Add application
65     as parameter and store it in an instance variable
66     (MainWindow.invoke_command, MainWindow.update_command_ui)
67     (MainWindow.save_modified_session, MainWindow.NewSession)
68     (MainWindow.OpenSession, MainWindow.SaveSession)
69     (MainWindow.SaveSessionAs, MainWindow.ShowSessionTree): Use self's
70     application object.
71    
72     * Thuban/UI/application.py (ThubanApplication.OnInit): Instantiate
73     the main window with self.
74    
75 bh 225 * Thuban/UI/context.py: New module with the context class
76    
77     * Thuban/UI/command.py (Command): Update doc string.
78    
79     * Thuban/UI/mainwindow.py (MainWindow.invoke_command,
80     MainWindow.update_command_ui): Pass an instance of the context
81     class to the command's methods
82     (check_current_tool, call_method): Handle the new context
83     implementation
84    
85     * Examples/simple_extensions/simple_tool.py (simple_tool,
86     check_simple_tool): Handle the new context implementation
87    
88     * Examples/simple_extensions/simple_command.py (simple_command):
89     Handle the new context implementation. Update the comments about
90     the context.
91    
92     * Thuban/UI/application.py (ThubanApplication.SetSession): Add
93     doc-string
94     (ThubanApplication.Session): New method to return the session
95     object
96    
97     * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): The
98     interactor's selected_layer may not be a layer of the current
99     session when the tree is updated while a new session is being set.
100    
101 bh 217 2002-07-17 Bernhard Herzog <[email protected]>
102    
103     * Thuban/UI/tree.py (color_string): Removed. No longer used.
104     (SessionTreeCtrl.update_tree, SessionTreeCtrl.add_items): Split
105     update_tree into update_tree and add_items. The tree now uses a
106     more generic way to display the contents of the tree.
107     (SessionTreeCtrl): Add a doc string explaining the TreeInfo method
108    
109     * Thuban/Model/layer.py (Layer.TreeInfo),
110     Thuban/Model/extension.py (Extension.TreeInfo),
111     Thuban/Model/map.py (Map.TreeInfo),
112     Thuban/Model/session.py (Session.TreeInfo):
113     Add TreeInfo methods to implement the new tree view update scheme
114    
115 bh 216 2002-07-16 Bernhard Herzog <[email protected]>
116    
117     * Thuban/UI/application.py: Don't use "import from" for the
118     MainWindow. It can't always be resolved.
119     (ThubanApplication.OnInit): change reference to MainWindow
120     accordingly.
121    
122     * Thuban/UI/menu.py (Menu.SetItems): New method to replace a menu
123     completely
124    
125 bh 213 2002-07-10 Bernhard Herzog <[email protected]>
126    
127     * setup.py (create_init_module): New configurable variable whose
128     default depends on the platform we're running on.
129     (ThubanInstall.initialize_options): Initialize
130     self.create_init_module from the global create_init_module
131     (ThubanInstall.user_options): indictate that the options
132     create-init-module and init-module-dir have arguments.
133    
134     * setup.py: In the setup call change the version number to include
135     cvs.
136    
137     * MANIFEST.in: Add the files in Examples
138    
139 bh 205 2002-07-09 Bernhard Herzog <[email protected]>
140    
141 bh 210 * setup.py: In the setup call, use the thuban homepage as the
142     value of the url parameter.
143    
144 bh 208 * Examples: New subdirectory for examples.
145    
146     * Examples/simple_extensions/simple_tool.xpm,
147     Examples/simple_extensions/simple_tool.py,
148     Examples/simple_extensions/simple_command.py,
149     Examples/simple_extensions/README: Simple examples showing how to
150     add new commands and tools.
151    
152 bh 207 * setup.cfg (bdist_rpm): Add the default value for prefix and tell
153     bdist_rpm that we also have an install script.
154     (bdist_inno): Add 2002 to the copyright notice.
155    
156 bh 205 * setup.py: Create a file in python's site-packages directory to
157     make installation of Thuban as a library easier.
158     (ThubanInstall.user_options): Add two new options,
159     create-init-module and init-module-dir
160     (ThubanInstall.expand_with_pure_python_dirs): New method to expand
161     filenames for installation in the default directories.
162     (ThubanInstall.select_scheme, ThubanInstall.convert_paths): Extend
163     the inherited methods to capture some filenames before they're
164     transformed too much by distutils.
165     (ThubanInstall.run): Create the init module if requested.
166     (ThubanInstall.thuban_init_filename): New method to return the
167     full name of the init module.
168     (ThubanInstall.get_outputs): Append the filename of the init
169     module.
170    
171 bh 202 2002-07-08 Bernhard Herzog <[email protected]>
172    
173 bh 205 * setup.py (thuban_bdist_rpm): Extend this version of bdist_rpm to
174     handle the prefix properly which means that the default for the
175     installation prefix should be /usr for RPMs and /usr/local when
176     doing a normal source install.
177     (bdist_rpm_install_script): Script to override the default install
178     commands in the specfile generated by the bdist_rpm command.
179     (thuban_bdist_rpm.user_options): Add a prefix option
180     (thuban_bdist_rpm.initialize_options): Init the prefix option.
181     Create the script files for the spec files as empty files here
182     (thuban_bdist_rpm._make_spec_file): Override the inherited method
183     to fill the script files with content.
184    
185 bh 202 * Thuban/Model/save.py (relative_filename): Wrapper around
186     Thuban.Lib.fileutil.relative_filename that accepts an empty dir
187     argument. save_session now automatically uses this version,
188     solving a problem when saving to a relative filename.
189    
190     * setup.py: In the setup call, make sure that the library
191     directories are under $prefix/lib not directly under $prefix.
192    
193 jan 199 2002-06-20 Jan-Oliver Wagner <[email protected]>
194    
195     * Thuban/Model/extension.py: new module to handle extension objects.
196     * Thuban/Model/messages.py: new messages for extensions.
197     * Thuban/Model/session.py (Session.Extensions, Session.HasExtensions,
198     Session.AddExtension): new for handling extensions.
199     Also some other minor changes to round up extension handling.
200     * Thuban/UI/tree.py (SessionTreeCrtl:update_tree): Added visualization
201     of Extension titles and title and names of its objects.
202    
203 bh 194 2002-05-29 Bernhard Herzog <[email protected]>
204    
205     * Thuban/UI/mainwindow.py (MainWindow.bind_command_events): Bind
206 bh 202 the events for a command.
207 bh 194 (MainWindow.add_toolbar_command, MainWindow.add_menu_command):
208     Call bind_command_events to bind the events. add_toolbar_command
209     can now bind events too so that it's possible to have commands
210     that are only available through the toolbar.
211     (MainWindow.init_ids): New instance variable events_bound to keep
212     track of for which commands events have been bound.
213    
214 bh 190 2002-05-28 Bernhard Herzog <[email protected]>
215    
216     * Thuban/UI/menu.py: New module to build and manage menus.
217    
218     * Thuban/UI/mainwindow.py: Remove some unused imports.
219     (MainWindow.__init__, main_menu): move the definition of the main
220     menu from __init__ to the Menu instance main_menu.
221     (MainWindow.build_menu_bar, MainWindow.build_menu): New methods to
222     build the menu bar and sub-menus from a menu description.
223    
224     * Thuban/UI/application.py (ThubanApplication.OnInit): Read the
225     startup file
226     (ThubanApplication.read_startup_files): New method to run
227     ~/.thuban/thubanstart.py
228    
229 bh 192 * Thuban/UI/mainwindow.py (MainWindow.__init__, main_toolbar):
230     Move the toolbar definition to the Menu instance main_toolbar.
231     (MainWindow.build_toolbar): New method to build the toolbar
232     similar to the build_menu methods
233    
234 bh 184 2002-05-23 Bernhard Herzog <[email protected]>
235    
236 bh 186 * Thuban/UI/mainwindow.py (MainWindow.__init__): Fix spelling of
237     layer_outline_color. Fix it in the definition of the command too.
238    
239 bh 184 * Thuban/UI/command.py (Command): Fix typo in doc string
240    
241 bh 182 2002-05-22 Bernhard Herzog <[email protected]>
242    
243     * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Fix a typo
244     in the docstring
245    
246 bh 175 2002-05-15 Bernhard Herzog <[email protected]>
247    
248 bh 180 * Thuban/Model/layer.py (Layer.open_shapefile): Set bbox to None
249     when the shapefile is empty.
250     (Layer.BoundingBox, Layer.LatLongBoundingBox): Both methods may
251     now return None for empty shapefiles. Update doc-strings.
252    
253     * Thuban/Model/map.py (Map.BoundingBox): Add doc-string. Deal with
254     the layer's bbox being None.
255    
256     * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): Deal with the
257     layer's bbox being None.
258    
259 bh 175 * Thuban/UI/view.py (MapCanvas.shape_selected): Only redraw when
260     necessary.
261     (MapCanvas.__init__): New instance variables, last_selected_layer
262     and last_selected_shape to determine how the selection has
263     changed.
264    
265     * Thuban/UI/tableview.py (TableGrid.__init__): Do not call
266     AutoSizeColumns because it will cause a traversal of the entire
267     table which for large .dbf files will take a very long time.
268    
269 bh 172 2002-05-14 Bernhard Herzog <[email protected]>
270    
271     * Thuban/Model/layer.py (Layer.open_shapefile): Choose a better
272     maximum depth for the tree than shapelib does by default.
273    
274 bh 165 2002-05-10 Bernhard Herzog <[email protected]>
275    
276     * setup.py (py_modules): The shptree modules doesn't have a
277     wrapper, so don't include it in the py_modules
278    
279 bh 163 2002-05-08 Bernhard Herzog <[email protected]>
280    
281     * extensions/shapelib/shptree.c (compare_ints): Make arguments
282     const void * as in the qsort prototype
283     (SHPTreeFindLikelyShapes): Remove some unused variables.
284    
285     * Thuban/UI/view.py (PanTool.MouseMove): Use the bitmap the view
286     maintains to redraw the window during a drag.
287     (MapCanvas.unprojected_rect_around_point): New method to determine
288     a small region around a point for hit-testing.
289     (MapCanvas.find_shape_at): Only test the shapes in a small region
290     around the point.
291    
292     * setup.py: Increment the version to 0.1.2
293    
294     * Thuban/UI/tree.py (SessionTreeCtrl.unsubscribe_all): Remove a
295     debug print and set session to None after unsubscribing
296    
297 bh 146 2002-05-07 Bernhard Herzog <[email protected]>
298    
299 bh 154 * Data/iceland_sample.session, Data/iceland_sample.thuban: Rename
300     the file to have a .thuban extension.
301    
302 bh 152 * Thuban/UI/tree.py (session_channels): New class constant with
303     all the session channels to subscribe to to update the tree
304     (SessionTreeCtrl.session_changed): Remember the session so that we
305     can unsubscribe properly. Use the new class constant to
306     unsubscribe from the old session and subscribe to the new one.
307     (SessionTreeCtrl.unsubscribe_all): New method to unsubscribe all
308     subscriptions of the SessionTreeCtrl.
309     (SessionTreeView.OnClose): Call the tree's unsubscribe_all method.
310    
311     * Thuban/UI/mainwindow.py (MainWindow.__init__): Add the "Show
312     Session Tree" command to the file menu.
313    
314     * Thuban/UI/view.py (MapCanvas.do_redraw): Pass the entire bitmap
315     as update_region to the renderer.
316    
317     * Thuban/UI/renderer.py
318     (ScreenRenderer.layer_ids, ScreenRenderer.draw_shape_layer): The
319     update box is now directly a tuple, not a wxRect anymore.
320    
321     * Thuban/Model/layer.py (Layer.ShapesInRegion): Remove some debug
322     prints.
323    
324     2002-05-07 Bernhard Herzog <[email protected]>
325    
326 bh 146 * setup.py: Add the shptree extension module. See
327     extensions/pyshapelib/ChangeLog for more details.
328    
329     * extensions/shapelib/shpopen.c, extensions/shapelib/shapefil.h,
330     extensions/shapelib/dbfopen.c: Really update to the versions of
331     shapelib 1.2.9. For some reason it wasn't really done on
332     2002-04-11.
333    
334     * extensions/shapelib/shptree.c: Modified version of shptree.c of
335     shapelib 1.2.9. The only real difference is the use of qsort
336     instead of a bubble sort implementation
337    
338     * Thuban/Model/layer.py (Layer.__init__): New instance variable
339     shapetree to hold the shapelib quadtree for the shapefile
340     (Layer.open_shapefile): Create the quad tree.
341     (Layer.ShapesInRegion): New method to return the ids of shapes in
342     a given region using the quad tree.
343    
344     * extensions/thuban/wxproj.cpp (project_points): Fix some typos in
345     comment
346     (draw_polygon_shape): Accept both arcs and polygons.
347     (initwxproj): Use the new PYSHAPELIB_IMPORT_API macro to import
348     the api.
349    
350     * Thuban/UI/renderer.py (MapRenderer.layer_ids): New method to
351     return the shape ids to be rendered in a given layer.
352     (MapRenderer.draw_shape_layer): Call layer_ids to get the list of
353     ids. Use draw_polygon_shape to draw arc shapes as well.
354     (ScreenRenderer.RenderMap): New parameter for the rectangle that
355     has to be updated
356     (ScreenRenderer.layer_ids): Make use of the layer's quadtree by
357     calling it's ShapesInRegion method.
358    
359     * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
360     update_region for the update region.
361     (MapCanvas.OnPaint): Maintain the update region
362     (MapCanvas.do_redraw): Pass the bounding box of the update_region
363     to the renderer when drawing the bitmap. Reset the update_region.
364    
365 bh 129 2002-05-03 Bernhard Herzog <[email protected]>
366    
367 bh 131 * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs,
368     MainWindow.OpenSession): Change the file extension of the session
369     files to .thuban
370    
371 bh 129 * Thuban/Model/session.py (Session.AddMap, forwarded_channels):
372     Move the map channels to be forwarded by the session into the
373 bh 146 class constant with forwarded_channels. Also add
374     LAYER_PROJECTION_CHANGED and LAYER_VISIBILITY_CHANGED to
375     forwarded_channels
376 bh 129
377     * Thuban/Model/base.py (Modifiable.changed): Fix doc-string (a
378     typo and some rewording).
379    
380 bh 126 2002-05-02 Bernhard Herzog <[email protected]>
381    
382     * Thuban/UI/view.py: Keep the temporary bitmap used during drawing
383     around to speed up most redraws:
384     (MapCanvas.__init__): New instance variable bitmap which holds the
385     bitmap
386     (MapCanvas.do_redraw): Redraw self.bitmap if necessary. Use
387     self.bitmap to draw.
388     (MapCanvas.full_redraw): New method to force a full redraw
389     including the bitmap
390     (MapCanvas.SetMap): Subscribe full_redraw instead of redraw to
391     make sure the bitmap is redrawn.
392     (MapCanvas.projection_changed, MapCanvas.set_view_transform,
393     MapCanvas.shape_selected): Call full_redraw instead of readraw to
394     make sure the bitmap is redrawn.
395     (MapCanvas.OnSize): New method to handle size events so that the
396     bitmap can be redrawn.
397    
398 bh 124 2002-04-29 Bernhard Herzog <[email protected]>
399    
400     * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
401     canvas' VIEW_POSITION event
402     (MainWindow.view_position_changed): Handler for VIEW_POSITION.
403     Update the text in the status-bar accordingly.
404    
405     * Thuban/UI/view.py (MapCanvas): Derive from Publisher as well
406     (MapCanvas.__del__): Implement because Publisher.__del__ has to be
407     called.
408     (MapCanvas.__init__): Bind EVT_LEAVE_WINDOW too. Initialize
409     current_position
410     (MapCanvas.set_current_position): New method to set
411     current_position. Issue a VIEW_POSITION event
412     (MapCanvas.CurrentPosition): New public method to return the value
413     of current_position. Should be called when the VIEW_POSITION event
414     is processed.
415     (MapCanvas.OnLeftDown, MapCanvas.OnLeftUp, MapCanvas.OnMotion):
416     Update the position.
417     (MapCanvas.OnLeaveWindow): Set the position to None.
418    
419     * Thuban/UI/messages.py (VIEW_POSITION): New message for the
420     position in the statusbar
421    
422 frank 120 2002-04-26 Frank Koormann <[email protected]>
423    
424     * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
425    
426     2002-04-24 Frank Koormann <[email protected]>
427 frank 118
428     * Resources/Bitmaps/identify.xpm: shadow added
429    
430     * Resources/Bitmaps/fullextent.xpm: new
431    
432 jan 116 2002-04-22 Jan-Oliver Wagner <[email protected]>
433    
434     * Thuban/UI/tree.py (update_tree): added test for None on map bounding box
435    
436 jan 114 2002-04-21 Jan-Oliver Wagner <[email protected]>
437    
438     * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
439    
440     * Thuban/UI/tree.py (update_tree): added added map extent
441    
442     * Thuban/UI/mainwindow.py (_method_command): extended by parameter
443     icon; added map_full_extend as tool
444    
445 jan 107 2002-04-19 Jan-Oliver Wagner <[email protected]>
446    
447     * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
448     saving _new_ sessions
449    
450     * Thuban/Model/session.py (create_empty_session): new session
451     don't have a filename (set to None)
452    
453     * Thuban/UI/tree.py (update_tree): added filename and modified flag
454    
455     * Thuban/Model/load.py (ProcessSession): convert projection
456     parameters from unicode to regular string
457    
458     * Data/iceland_sample.session: Added UTM Zone 26 projection.
459    
460 bh 100 2002-04-11 Bernhard Herzog <[email protected]>
461    
462     * extensions/shapelib/shapefil.h, extensions/shapelib/shpopen.c,
463     extensions/shapelib/dbfopen.c: Update to the versions of shapelib
464     1.2.9
465    
466     * setup.py (Lib.wxproj extension): Don't link shpopen.c and put
467     the pyshapelib directoy into the list of include dirs, so that
468     pyshapelib_api.h can be found.
469    
470     * extensions/thuban/wxproj.cpp (pyshapelib_api): New variable that
471     holds the pyshapelib C-API
472     (draw_polygon_shape, point_in_polygon_shape, shape_centroid): Use
473     pyshapelib_api to access the shapelib functions.
474     (initwxproj): Import the c_api from the shapelib module and
475     initialize pyshapelib_api.
476    
477 bh 89 2002-04-04 Bernhard Herzog <[email protected]>
478    
479 bh 91 * setup.py (thuban_bdist_rpm.initialize_options): Use
480     initialize_options to create the scripts for the rpm.
481    
482 bh 89 * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
483    
484 bh 85 2002-04-03 Bernhard Herzog <[email protected]>
485    
486 bh 87 * setup.py: Increment version to 0.1.1
487    
488 bh 85 * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
489     Layer" and "Remove Layer" commands from the layer menu to the map
490     menu
491    
492 bh 83 2002-02-15 Bernhard Herzog <[email protected]>
493    
494     * Thuban/Model/layer.py (Layer.Shape): list append only takes one
495     argument (python <= 1.5.2 erroneously accepted multiuple
496     arguments)
497    
498 bh 81 2002-02-04 Bernhard Herzog <[email protected]>
499    
500     * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
501     RecordGrid in the identifyview.
502     (IdentifyView.__init__): Use IdentifyGridCtrl instead of
503     IdentifyListCtrl. The grid allows editing of the values.
504    
505     * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
506     implementing a grid for a single row of a thuban table.
507    
508     * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
509     layers by default. Easier to use than the previous default of only
510     searching through the select layer which meant that if no layer
511     was selected, you couldn't select a shape.
512    
513     * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
514    
515     * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
516     stroke_width attribute
517    
518     * Thuban/Model/save.py (save_session): Write the new stroke_width
519     attribute
520    
521     * Thuban/Model/load.py (ProcessSession.startElement): Read the
522     stroke_width attribute
523    
524     * Thuban/Model/layer.py (Layer.__init__): New parameter and
525     instance variable stroke_width
526     (Layer.SetStrokeWidth): Set the stroke_width.
527    
528 bh 72 2002-02-01 Bernhard Herzog <[email protected]>
529    
530     * extensions/thuban/wxproj.cpp (project_points): Fix two
531     off-by-one errors in the last loop that joins the various parts
532     together.
533    
534 bh 71 2002-01-14 Bernhard Herzog <[email protected]>
535    
536     * setup.py (data_dist.make_distribution): Fix some typos
537    
538 bh 70 2001-09-18 Bernhard Herzog <[email protected]>
539    
540     * README: Slight tweaking in preparation for the 0.1 release
541    
542     * setup.cfg: Add section for sdist to create both tgz and zip
543     archives
544    
545     * setup.py: increase version number to 0.1
546     (data_dist): New command class for data distribution
547    
548    
549 bh 64 2001-09-14 Bernhard Herzog <[email protected]>
550    
551 bh 70 * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
552     Handle the case of no layer (i.e. layer is None) properly.
553    
554     * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
555     Set the initial selection of the combo boxes to reflect the
556     projection we're starting with in a way that works on windows,
557     too.
558    
559 bh 64 * Thuban/Lib/connector.py (Connector.print_connections): Print the
560     puiblisher's ids in hex to make it easier to compare them to the
561     standard repr of python methods
562    
563     * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
564     messages
565    
566 bh 59 2001-09-13 Bernhard Herzog <[email protected]>
567    
568 bh 64 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
569     deselect the layer if no layer is selected
570    
571 bh 59 * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
572     idle time when there actually is something to draw. If there's
573     nothing to draw simply clear the window
574     (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
575     (MapCanvas.SetMap): force a redraw in all cases because
576     FitMapToWindow doesn't always do it.
577     (MapCanvas.ZoomFactor): Add an optional parameter, center, to
578     specify the point to move into the center of the window
579     (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
580     dragged, zoon in/out by a factor of 2
581 bh 64 (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
582     index, i.e. reversed drawing order) so that objects appearing to
583     be in from of others are selected first. This is probably mostly
584     relevant for point shapes where the symbols used may overlap
585 bh 59
586     * Thuban/Model/session.py (create_empty_session): Unset the
587     modified bit before returning it
588    
589     * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
590     create_empty_session session to create the new, empty session.
591    
592     * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
593     the tool bitmaps.
594     (MainWindow.OnClose, MainWindow.save_modified_session): Separate
595     the code that asks whether the session should be saved into the
596     new method save_modified_session.
597     (MainWindow.OpenSession, MainWindow.NewSession): Use the new
598     method to save modified session here too.
599    
600 bh 55 2001-09-11 Bernhard Herzog <[email protected]>
601    
602     * setup.py (InnoIconItem): fix typo
603    
604     (thuban_bdist_inno.run):
605     (bdist_inno.run): Move the decision not to create symlinks on
606     non-nt platforms to thuban_bdist_inno and do it unconditinally
607     since we never want to create the symlinks here
608    
609 bh 48 2001-09-10 Bernhard Herzog <[email protected]>
610    
611 bh 53 * Thuban/UI/mainwindow.py (MainWindow.IdentifyTool): Popup the
612     identify view immediately
613    
614     * Thuban/UI/controls.py: New file with two classes RecordListCtrl
615     and SelectableRecordListCtrl that implement the code shared by the
616     identify view and the label dialog
617    
618     * Thuban/UI/identifyview.py (IdentifyListCtrl): Derive from the
619     new class RecordListCtrl
620    
621     * Thuban/UI/labeldialog.py (LabelDialog.OnOK): Check whether the
622     return value of GetValue is None instead of using it as a boolean
623     directly so that Zero numbers are handled properly.
624     (LabelListCtrl): Derive from the new class
625     SelectableRecordListCtrl
626    
627 bh 48 * Thuban/UI/proj4dialog.py (Proj4Dialog.__init__):
628     (Proj4Dialog.dialogLayout): Make the window resizable and set the
629     size of the text control explicitly to make the sizers work on
630     both Windows and X.
631    
632 bh 44 2001-09-07 Bernhard Herzog <[email protected]>
633    
634     * Thuban/UI/view.py (MapCanvas.find_shape_at):Add a new parameter
635     that can limit the search to the currently selected layer.
636     (MapCanvas.SelectShapeAt): Make sure that the currently selected
637     layer stays selected even when no shape is found
638 bh 46 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
639     height do nothing (avoids zero division errors)
640 bh 44
641 bh 32 2001-09-06 Bernhard Herzog <[email protected]>
642    
643 bh 42 * Thuban/UI/tree.py (SessionTreeCtrl, SessionTreeView.__init__):
644     Correct the spelling of SessionTreeCtrl. dabbrev is too damn
645     convenient :-)
646     (SessionTreeCtrl.__init__, SessionTreeCtrl.update_tree): Introduce
647     a new instvar layer_to_item to map layers to tree items
648     (SessionTreeCtrl.layer_selected): Select the appropriate tree item
649     to match the current selection in the interactor
650    
651 bh 40 * Thuban/UI/interactor.py (Interactor.SelectedLayer):
652     (Interactor.HasSelectedLayer): New methods to query the current
653     selection
654    
655     * Thuban/UI/mainwindow.py (MainWindow.current_layer):
656     (MainWindow.has_selected_layer): Simply call the appropriate
657     interactor method
658    
659     * Thuban/UI/mainwindow.py (MainWindow.__init__):
660     (MainWindow.LayerShowTable):
661     (MainWindow.identify_view_on_demand): Store the interactor in an
662     instvar and use that reference instead of going through main.app
663    
664     * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
665     * Thuban/UI/application.py (ThubanApplication.OnInit):
666     * Thuban/UI/main.py (main): Create the session tree view in main
667     with the new mainwindow method ShowSessionTree and not directly
668     the application's OnInit method
669    
670     * Thuban/UI/tree.py (myTreeCtrlPanel):
671     (SessioinTreeCtrl): Rename to SessioinTreeCtrl and turn it into a
672     TreeCtrl isntead of a panel. This affects most method since we now
673     refer to self instead of self.tree
674     (SessionTreeView): New class implementing a non-modal dialog
675     showing the session tree.
676    
677 bh 35 * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Pass the
678     layer to the tableview dialog.
679    
680     * Thuban/UI/tableview.py: Add some doc-strings
681     (TableGrid):
682     (TableGrid.OnRangeSelect):
683     (TableGrid.OnSelectCell):
684     (TableFrame.__init__):
685     (TableFrame.row_selected):
686     Selecting rows in the grid view now updates the selected shapes
687     through the TableFrame. To achieve this we derive TableGrid from
688     Publisher and introduce the message type ROW_SELECTED which the
689     TableFrame subscribes to and which is issued by OnRangeSelect and
690     OnSelectCell
691    
692     (DataTable.SelectRow): Removed because it's no longer needed in
693     the row/shape selection scheme
694    
695 bh 32 * Thuban/UI/dialogs.py: New file implementing common classes for
696     dialogs
697    
698     * Thuban/UI/tableview.py (TableGrid.__init__): Don't subscribe to
699     the SELECTED_SHAPE message anymore. This is now handled by the
700     parent.
701     (TableGrid.select_shape): Only update the selection if the shape
702     is not None.
703     (TableFrame): Inherit from the new NonModalDialog class.
704     (TableFrame.__init__, TableFrame.select_shape): Handle the
705     SELECT_SHAPE message.
706     (TableFrame.OnClose): Extend the inherited method to unsubscribe
707     SELECT_SHAPE
708    
709     * Thuban/UI/mainwindow.py (MainWindow.init_dialogs):
710     (MainWindow.add_dialog):
711     (MainWindow.dialog_open):
712     (MainWindow.remove_dialog):
713     (MainWindow.get_open_dialog): New methods to maintain a dictionary
714     of opened non-modal dialogs.
715    
716     (MainWindow.__init__): Initialize the new non-modal dictionary
717     management code
718     (MainWindow.LayerShowTable): maintain separate dialogs for each
719     table using the non-modal dialog management code to only open a
720     view once for each table.
721    
722     (MainWindow.IdentifyTool):
723     (MainWindow.__init__):
724     (MainWindow.identify_view_on_demand): Don't open the identify view
725     in IdentifyTool anymore. This will be done automatically by the
726     new method identify_view_on_demand which handles the
727     SELECTED_SHAPE message so that the identify view will be opened on
728     demand
729    
730     * Thuban/UI/identifyview.py (IdentifyListCtrl.__init__): Remove
731     the interactor argument. The SELECTED_SHAPE message is now handled
732     by the parent.
733     (IdentifyView.__init__): Add the interactor argument so that we
734     can handle the SELECTED_SHAPE message here
735     (IdentifyView.selected_shape): New method to handle the
736     SELECTED_SHAPE messages
737    
738     * Thuban/UI/identifyview.py (IdentifyView): Derive from the new
739     NonModalDialog class
740     (IdentifyView.OnClose): Extend the inherited version to
741     unsubscribe SELECT_SHAPE
742    
743     * Thuban/Model/session.py (Session.UnsetModified): Remove debug prints
744    
745 bh 26 2001-09-05 Bernhard Herzog <[email protected]>
746    
747     * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
748    
749     * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
750     interactor to pass through to the MapCanvas
751    
752     * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
753     argument to the MainWindow constructor to get rid of the ugly hack
754     that made main.app available early just so that the mapcanvas
755     could access the interactor object.
756    
757 bh 19 2001-09-04 Bernhard Herzog <[email protected]>
758    
759 bh 22 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): New method
760     that runs a modal message box
761     (MainWindow.OnClose): Use the new method
762     (MainWindow.RemoveLayer): Just do nothing in case no layer is
763     selected. The command should be grayed out anyway, so there's no
764     need to pop up a message box.
765     (MainWindow.AddLayer): Pop up a message box with an error message
766     if the shape file can't be opened
767    
768     * Thuban/Model/layer.py (Layer.__init__): Open the shapefile
769     immediately. This will cause an exception in case the file can't
770     be opened and we can display an appropriate message.
771    
772 bh 19 * MANIFEST.in: Add extensions/pyprojection/LICENSE
773    
774     * setup.py (thuban_bdist_rpm): New class implementing a Thuban
775     specific bdist_rpm command.
776    
777     * Thuban/UI/main.py: Catch ImportError exceptions when importing
778     the locale module because it may not be available on some
779     installations.
780    
781     * extensions/pyprojection/LICENSE: Copy of the license text in
782     Projection.i. Having it in a separate file makes it easier to
783     refer to license text in e.g. RPMs
784    
785 bh 18 2001-09-03 Bernhard Herzog <[email protected]>
786    
787 bh 19 * setup.py: use wx-config instead of wxgtk-config because it's
788     more generic
789    
790     * setup.py (ThubanInstall.get_outputs): Add the symlink in
791     <prefix>/bin to the outputs
792     (ThubanInstall.link_file): New method to link files. We need this
793     because the standard copy_files refuses to link non-existing
794     files.
795     (ThubanInstall.run): Remove the leading install root from the
796     script filename if an install root was specified and use the new
797     link_file method
798    
799 bh 18 * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
800     the window when the first layer is added to the map.
801    
802     * setup.py (ThubanInstall.run): Honor the build root (self.root)
803     when linking thuban.py to <prefix>/bin
804    
805 bh 16 2001-08-31 Bernhard Herzog <[email protected]>
806    
807     * setup.py: In the setup call, the install parameters shouldn't
808     have trailing slashes because distutils on non-posix platforms
809     doesn't like that. The same applies to other directories like
810     "Resources/Bitmaps"
811    
812     In the configuration section for nt, move the wxWindows directory
813     optins into the part clearly marked as editable.
814    
815     (InstallLocal.initialize_options):
816     (InstallLocal.user_options): remove the currently unused debug
817     flag
818     (thuban_build_py.find_all_modules): Add this method so that it
819     works for our case of having packages and modules in one
820     distribution as well.
821     (ThubanInstall.initialize_options):
822     (ThubanInstall.finalize_options):
823     (ThubanInstall.user_options):
824     (ThubanInstall.boolean_options): Add new options, do-symlink and
825     extra files. Since these are the first ThubanInstall specific
826     options, override user_options and boolean_options
827     (ThubanInstall.run): Honor the new do-symlink and extra-files
828     options.
829     (ThubanInstall.get_outputs): Add to override the base-class's
830     version and add the extra-files to the outputs
831     (bdist_inno): New class for windows distributions with Inno Setup
832     (InnoIconItem): Helper class for bdist_inno
833     (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
834     this together with the appropriate parameters, to the setup call.
835    
836     * setup.cfg (bdist_inno): added new section for the inno setup
837     installer
838    
839     * Thuban/UI/tree.py (myTreeCtrlPanel.__init__): New inst var
840     changing_selection to avoid recursive selection events when
841     modifying the selection in response to a selection event.
842     (myTreeCtrlPanel.normalize_selection): Set the new inst var when
843     changing the tree's selection.
844     (myTreeCtrlPanel.OnSelChanged): Only normalize the selection when
845     we're not being called indirectly from normalize_selection.
846    
847     * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): Call
848     event.Check only if the command is actuall checkable.
849     (MainWindow.__init__): Call the toolbar's Realize method to make
850     sure that the items are actually shown
851    
852 bh 7 2001-08-28 Bernhard Herzog <[email protected]>
853    
854 bh 9 * setup.py: Fix some doc strings
855    
856 bh 7 * ChangeLog: started
857    

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26