/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Diff of /branches/greater-ms3/thuban/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 131 by bh, Fri May 3 14:50:27 2002 UTC revision 317 by bh, Thu Sep 12 18:46:09 2002 UTC
# Line 1  Line 1 
1    2002-09-12  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
4            message box on the main window.
5    
6    2002-09-11  Bernhard Herzog  <[email protected]>
7    
8            * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
9            the 'E' because it's less likely to interfere with other menu
10            entries.
11            (MainWindow.build_menu): remove an incorrect comment.
12    
13    2002-09-10  Bernhard Herzog  <[email protected]>
14    
15            * Thuban/UI/mainwindow.py (MainWindow.Map): New.
16            (_tool_command): Add sensitive parameter
17            (_has_visible_map): Sensitivity callback to tools and other
18            commands that require a visible map. Use it in map_zoom_in_tool,
19            map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
20            and map_full_extent
21    
22    2002-09-06  Bernhard Herzog  <[email protected]>
23    
24            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
25            VIEW_POSITION
26    
27    2002-09-04  Frank Koormann   <[email protected]>
28    
29            * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
30    
31    2002-09-02  Bernhard Herzog  <[email protected]>
32    
33            * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
34            wxWindows already and our implementation doesn't work correctly
35            with wxGTK 2.3:
36            (MapCanvas.__init__): Remove the instance variable
37            (MapCanvas.OnPaint): Always call do_redraw when there's a map to
38            be drawin
39            (MapCanvas.OnIdle): Removed.
40    
41            * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
42            a parameter to determine the size of the rectangle.
43            (MapCanvas.find_shape_at): Create the box around the point on a
44            layer by layer basis and make the size depend on the shape type.
45            This solves a problem with the selection of point shapes at the
46            border of the layer's bounding box
47    
48    2002-08-30  Bernhard Herzog  <[email protected]>
49    
50            * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
51            for the sensitivity  of remove layer.
52            (_can_remove_layer): New. Sensitivity callback for remove layer
53            (Command layer_remove): Use _can_remove_layer
54    
55            * Thuban/Model/map.py (Map.CanRemoveLayer): New method to
56            determine whether a given layer can be deleted.
57    
58            * Thuban/UI/view.py (MapCanvas.__init__, MapCanvas.OnPaint)
59            (MapCanvas.do_redraw): Get rid of the unused update_region
60            instance variable
61    
62            * Thuban/UI/view.py: Add/update some doc-strings.
63    
64            * test/: new subdirectory with a bunch of unit tests.
65    
66            * test/README, test/test_table.py, test/test_save.py,
67            test/test_menu.py, test/test_load.py: Initial set of tests and
68            brief instructions on how to run them
69    
70    2002-08-29  Bernhard Herzog  <[email protected]>
71    
72            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
73            arcs with multiple parts.
74    
75            * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
76            Handle degenrate rectangles.
77    
78            * Thuban/Model/table.py: Make writing records work correctly:
79            (Table.__init__): Keep track of whether the DBF is open for
80            writing
81            (Table.write_record): Open the DBF file for writing when necessary
82    
83    2002-08-27  Bernhard Herzog  <[email protected]>
84    
85            * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
86            dbf files only for reading by default. Use a new writable dbf
87            object for writing.
88    
89    2002-08-26  Bernhard Herzog  <[email protected]>
90    
91            * Thuban/UI/mainwindow.py: Refactor the context creation:
92            (MainWindow.Context): New method to return a context
93            (MainWindow.invoke_command, MainWindow.update_command_ui): Use the
94            new method
95    
96            * Thuban/UI/tableview.py (TableGrid, LayerTableGrid): Split the
97            layer table specific code from TableGrid into LayerTableGrid
98            (TableFrame, LayerTableFrame): Split the layer table specific code
99            from TableFrame into LayerTableFrame
100            (LayerTableGrid.select_shape): Remove a debug print
101    
102            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Use the
103            LayerTableFrame
104    
105    2002-08-23  Bernhard Herzog  <[email protected]>
106    
107            * Thuban/Model/layer.py (Layer.__init__): Make sure we have an
108            absolute filename.
109    
110    2002-08-22  Bernhard Herzog  <[email protected]>
111    
112            * Thuban/Model/table.py (Table.write_record): New method to write
113            records.
114            (Table.__init__): Open the DBF file for writing too.
115    
116            * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
117            into the underlying table.
118    
119            * extensions/shapelib/shapefil.h (DBFCommit),
120            extensions/shapelib/dbfopen.c (DBFCommit): New API function to
121            commit any changes made to the DBF file.
122    
123            * Thuban/UI/mainwindow.py (make_check_current_tool)
124            (_tool_command): Put the code that generates the "checked"
125            callback into a separate function so that we can reuse it
126            elsewhere
127    
128            * Thuban/Model/save.py (Saver): New class to handle serializing a
129            session into an XML file. The main reason to introduce a class is
130            that applications built on Thuban can derive from it so that they
131            can save additional information in a session file.
132            (save_session): Delegate almost all the work to the Saver class.
133            Rename the filename argument to file because it may be a file like
134            object now.
135    
136            * Thuban/Model/load.py: Get rid of the Python 1.5.2 compatibility
137            code. Remove the little test code which would be executed when the
138            module is run as a script which didn't work anymore since it can't
139            import the other Thuban modules.
140            (ProcessSession, load_session): Refactor the ProcessSession to
141            have one method for each element start and end tag so that derived
142            classes can easily override the processing of individual tags.
143            Also, always parse with namespaces enabled because applications
144            built on top of Thuban will likely use namespaces if they extend
145            the session file format.
146    
147    2002-08-21  Bernhard Herzog  <[email protected]>
148    
149            * setup.py (ThubanInstall.run): Don't repr install_lib_orig
150            because thubaninit_contents will do it for us.
151    
152    2002-08-16      Jan-Oliver Wagner <[email protected]>
153    
154            * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
155            tree window already open
156    
157    2002-08-15  Bernhard Herzog  <[email protected]>
158    
159            * Thuban/Model/layer.py (Layer.Destroy): Call the unboundd method
160            with self.
161    
162            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Only release the mouse
163            when we have actually captured it.
164    
165            * Thuban/Model/layer.py (Layer.Destroy): New. Explicitly close the
166            shapefile and destroy the table.
167    
168            * Thuban/Model/table.py (Table.Destroy): New. Close the DBF file.
169    
170    2002-08-14  Bernhard Herzog  <[email protected]>
171    
172            * Thuban/UI/controls.py (RecordTable.__init__): Remove the unused
173            instance variable columns
174            (RecordTable.GetTypeName): row and col may be negative in some
175            cases.
176    
177            * setup.py (InstallLocal.initialize_options)
178            (InstallLocal.finalize_options, InstallLocal.user_options): New
179            option create-init-file to build a thubaninit.py when running
180            install_local
181            (InstallLocal.run): Create the thubaninit.py module when requested
182            (thubaninit_contents): Split the template into several parts and
183            create a new function thubaninit_contents that creates the
184            contents of a thubaninit module.
185            (ThubanInstall.run): Use the new function to create the thubaninit
186            module.
187    
188    2002-07-30  Bernhard Herzog  <[email protected]>
189    
190            * Thuban/UI/application.py (ThubanApplication.OnExit): Do some
191            cleanup.
192            (ThubanApplication.MainLoop): Extend to automatically call OnExit.
193    
194            * Thuban/Model/session.py (Session.Destroy): Don't bypass the
195            direct base class' Destroy method.
196    
197            * Thuban/Model/map.py (Map.ClearLayers): New method to delete all
198            layers.
199            (Map.Destroy): Destroy the label_layer as well and call the
200            inherited Desatroymethod first so that no more messages are
201            issued.
202            (Map.RaiseLayer, Map.LowerLayer): Only issue LAYERS_CHANGED
203            message if the stacking order actually has changed. Add
204            doc-strings.
205            (Map.BoundingBox): Correct the doc-string.
206            (Map.AddLayer, Map.RemoveLayer, Map.Layers, Map.HasLayers)
207            (Map.ProjectedBoundingBox, Map.SetProjection): Add doc-strings.
208    
209            * Thuban/Model/label.py (LabelLayer.ClearLabels): New to delete
210            all labels.
211    
212    2002-07-29  Bernhard Herzog  <[email protected]>
213    
214            * Thuban/Model/map.py (Map.subscribe_layer_channels)
215            (Map.unsubscribe_layer_channels): Put the code that (un)subscribes
216            to a layer's channels into separate methods.
217            (Map.RemoveLayer, Map.AddLayer): Call the new methods
218            (Map.Destroy): Unsubscribe from a layer's channels before
219            destroying it.
220    
221            * Thuban/UI/view.py (MapCanvas.find_shape_at): Change the
222            selected_layer parameter to searched_layer which is the layer to
223            search in.
224            (MapCanvas.SelectShapeAt): New parameter layer to restrict the
225            search to that layer. Return the selected layer and shape.
226    
227            * Examples/simple_extensions/simple_tool.py (simple_tool): Fix a
228            typo
229    
230    2002-07-24  Bernhard Herzog  <[email protected]>
231    
232            * Thuban/UI/application.py (ThubanApplication.create_session):
233            Extend the doc string.
234            (ThubanApplication.subscribe_session)
235            (ThubanApplication.unsubscribe_session): New methods to
236            subscribe/unsubscribe to/from session channels.
237            (ThubanApplication.SetSession): Call the new methods here.
238            (ThubanApplication.maps_changed, ThubanApplication.set_map):
239            Renamed set_map to maps_changed. Its now a subscriber for
240            MAPS_CHANGED.
241    
242            * Thuban/UI/view.py (ZoomOutTool.MouseUp): Use the correct
243            x-coordinate in case of simple clicks
244    
245            * Thuban/Model/base.py (Modifiable.changed): Apply the args tuple,
246            don't pass it as a parameter
247    
248            * Thuban/Model/session.py (Session.RemoveMap): New
249    
250            * Thuban/UI/mainwindow.py (MainWindow.__init__): Turn the initial
251            window size into a parameter.
252    
253    2002-07-23  Bernhard Herzog  <[email protected]>
254    
255            * Thuban/UI/menu.py (Menu.item_index): Also search for menus not
256            just commands.
257    
258            * Thuban/UI/mainwindow.py (MainWindow.__init__): Change the
259            parameter list a bit to allow setting the window title and the
260            initial message in the status bar. Update the callers.
261    
262            * Thuban/UI/application.py (ThubanApplication.OnInit)
263            (ThubanApplication.CreateMainWindow): Put the mainwindow
264            instantiation into a separate method so that it can be overridden
265            by a subclass.
266    
267    2002-07-19  Bernhard Herzog  <[email protected]>
268    
269            * Thuban/Model/session.py: Issue a CHANGED message every time
270            another changed message is issued to make it easier to get
271            notified of changes.
272            (Session): Update the doc string
273            (Session.forward): Issue changed-events as CHANGED as well.
274            (Session.changed): Overwrite the inherited version to issue
275            CHANGED events as well.
276    
277            * Thuban/UI/tree.py: We can now simply subscribe to the session's
278            CHANGED channel to be informed of changes.
279            (SessionTreeCtrl.session_channels): Not needed any longer.
280            (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
281            Only have to (un)subscribe CHANGED
282    
283            * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
284    
285            * Thuban/UI/main.py, Thuban/UI/__init__.py: Move the work-around
286            for the wxPython locale bug to __init__.py so that it's
287            automatically executed by anybody using UI code from Thuban.
288    
289    2002-07-18  Bernhard Herzog  <[email protected]>
290    
291            * Thuban/UI/main.py (main): app no longer needs to be global
292    
293            * Thuban/UI/mainwindow.py (MainWindow.__init__): Add application
294            as parameter and store it in an instance variable
295            (MainWindow.invoke_command, MainWindow.update_command_ui)
296            (MainWindow.save_modified_session, MainWindow.NewSession)
297            (MainWindow.OpenSession, MainWindow.SaveSession)
298            (MainWindow.SaveSessionAs, MainWindow.ShowSessionTree): Use self's
299            application object.
300    
301            * Thuban/UI/application.py (ThubanApplication.OnInit): Instantiate
302            the main window with self.
303    
304            * Thuban/UI/context.py: New module with the context class
305    
306            * Thuban/UI/command.py (Command): Update doc string.
307    
308            * Thuban/UI/mainwindow.py (MainWindow.invoke_command,
309            MainWindow.update_command_ui): Pass an instance of the context
310            class to the command's methods
311            (check_current_tool, call_method): Handle the new context
312            implementation
313    
314            * Examples/simple_extensions/simple_tool.py (simple_tool,
315            check_simple_tool): Handle the new context implementation
316    
317            * Examples/simple_extensions/simple_command.py (simple_command):
318            Handle the new context implementation. Update the comments about
319            the context.
320    
321            * Thuban/UI/application.py (ThubanApplication.SetSession): Add
322            doc-string
323            (ThubanApplication.Session): New method to return the session
324            object
325    
326            * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): The
327            interactor's selected_layer may not be a layer of the current
328            session when the tree is updated while a new session is being set.
329    
330    2002-07-17  Bernhard Herzog  <[email protected]>
331    
332            * Thuban/UI/tree.py (color_string): Removed. No longer used.
333            (SessionTreeCtrl.update_tree, SessionTreeCtrl.add_items): Split
334            update_tree into update_tree and add_items. The tree now uses a
335            more generic way to display the contents of the tree.
336            (SessionTreeCtrl): Add a doc string explaining the TreeInfo method
337    
338            * Thuban/Model/layer.py (Layer.TreeInfo),
339            Thuban/Model/extension.py (Extension.TreeInfo),
340            Thuban/Model/map.py (Map.TreeInfo),
341            Thuban/Model/session.py (Session.TreeInfo):
342            Add TreeInfo methods to implement the new tree view update scheme
343    
344    2002-07-16  Bernhard Herzog  <[email protected]>
345    
346            * Thuban/UI/application.py: Don't use "import from" for the
347            MainWindow. It can't always be resolved.
348            (ThubanApplication.OnInit): change reference to MainWindow
349            accordingly.
350    
351            * Thuban/UI/menu.py (Menu.SetItems): New method to replace a menu
352            completely
353    
354    2002-07-10  Bernhard Herzog  <[email protected]>
355    
356            * setup.py (create_init_module): New configurable variable whose
357            default depends on the platform we're running on.
358            (ThubanInstall.initialize_options): Initialize
359            self.create_init_module from the global create_init_module
360            (ThubanInstall.user_options): indictate that the options
361            create-init-module and init-module-dir have arguments.
362    
363            * setup.py: In the setup call change the version number to include
364            cvs.
365    
366            * MANIFEST.in: Add the files in Examples
367    
368    2002-07-09  Bernhard Herzog  <[email protected]>
369    
370            * setup.py: In the setup call, use the thuban homepage as the
371            value of the url parameter.
372    
373            * Examples: New subdirectory for examples.
374    
375            * Examples/simple_extensions/simple_tool.xpm,
376            Examples/simple_extensions/simple_tool.py,
377            Examples/simple_extensions/simple_command.py,
378            Examples/simple_extensions/README: Simple examples showing how to
379            add new commands and tools.
380    
381            * setup.cfg (bdist_rpm): Add the default value for prefix and tell
382            bdist_rpm that we also have an install script.
383            (bdist_inno): Add 2002 to the copyright notice.
384    
385            * setup.py: Create a file in python's site-packages directory to
386            make installation of Thuban as a library easier.
387            (ThubanInstall.user_options): Add two new options,
388            create-init-module and init-module-dir
389            (ThubanInstall.expand_with_pure_python_dirs): New method to expand
390            filenames for installation in the default directories.
391            (ThubanInstall.select_scheme, ThubanInstall.convert_paths): Extend
392            the inherited methods to capture some filenames before they're
393            transformed too much by distutils.
394            (ThubanInstall.run): Create the init module if requested.
395            (ThubanInstall.thuban_init_filename): New method to return the
396            full name of the init module.
397            (ThubanInstall.get_outputs): Append the filename of the init
398            module.
399    
400    2002-07-08  Bernhard Herzog  <[email protected]>
401    
402            * setup.py (thuban_bdist_rpm): Extend this version of bdist_rpm to
403            handle the prefix properly which means that the default for the
404            installation prefix should be /usr for RPMs and /usr/local when
405            doing a normal source install.
406            (bdist_rpm_install_script): Script to override the default install
407            commands in the specfile generated by the bdist_rpm command.
408            (thuban_bdist_rpm.user_options): Add a prefix option
409            (thuban_bdist_rpm.initialize_options): Init the prefix option.
410            Create the script files for the spec files as empty files here
411            (thuban_bdist_rpm._make_spec_file): Override the inherited method
412            to fill the script files with content.
413    
414            * Thuban/Model/save.py (relative_filename): Wrapper around
415            Thuban.Lib.fileutil.relative_filename that accepts an empty dir
416            argument. save_session now automatically uses this version,
417            solving a problem when saving to a relative filename.
418    
419            * setup.py: In the setup call, make sure that the library
420            directories are under $prefix/lib not directly under $prefix.
421    
422    2002-06-20      Jan-Oliver Wagner <[email protected]>
423    
424            * Thuban/Model/extension.py: new module to handle extension objects.
425            * Thuban/Model/messages.py: new messages for extensions.
426            * Thuban/Model/session.py (Session.Extensions, Session.HasExtensions,
427            Session.AddExtension): new for handling extensions.
428            Also some other minor changes to round up extension handling.
429            * Thuban/UI/tree.py (SessionTreeCrtl:update_tree): Added visualization
430            of Extension titles and title and names of its objects.
431    
432    2002-05-29  Bernhard Herzog  <[email protected]>
433    
434            * Thuban/UI/mainwindow.py (MainWindow.bind_command_events): Bind
435            the events for a command.
436            (MainWindow.add_toolbar_command, MainWindow.add_menu_command):
437            Call bind_command_events to bind the events. add_toolbar_command
438            can now bind events too so that it's possible to have commands
439            that are only available through the toolbar.
440            (MainWindow.init_ids): New instance variable events_bound to keep
441            track of for which commands events have been bound.
442    
443    2002-05-28  Bernhard Herzog  <[email protected]>
444    
445            * Thuban/UI/menu.py: New module to build and manage menus.
446    
447            * Thuban/UI/mainwindow.py: Remove some unused imports.
448            (MainWindow.__init__, main_menu): move the definition of the main
449            menu from __init__ to the Menu instance main_menu.
450            (MainWindow.build_menu_bar, MainWindow.build_menu): New methods to
451            build the menu bar and sub-menus from a menu description.
452    
453            * Thuban/UI/application.py (ThubanApplication.OnInit): Read the
454            startup file
455            (ThubanApplication.read_startup_files): New method to run
456            ~/.thuban/thubanstart.py
457    
458            * Thuban/UI/mainwindow.py (MainWindow.__init__, main_toolbar):
459            Move the toolbar definition to the Menu instance main_toolbar.
460            (MainWindow.build_toolbar): New method to build the toolbar
461            similar to the build_menu methods
462    
463    2002-05-23  Bernhard Herzog  <[email protected]>
464    
465            * Thuban/UI/mainwindow.py (MainWindow.__init__): Fix spelling of
466            layer_outline_color. Fix it in the definition of the command too.
467    
468            * Thuban/UI/command.py (Command): Fix typo in doc string
469    
470    2002-05-22  Bernhard Herzog  <[email protected]>
471    
472            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Fix a typo
473            in the docstring
474    
475    2002-05-15  Bernhard Herzog  <[email protected]>
476    
477            * Thuban/Model/layer.py (Layer.open_shapefile): Set bbox to None
478            when the shapefile is empty.
479            (Layer.BoundingBox, Layer.LatLongBoundingBox): Both methods may
480            now return None for empty shapefiles. Update doc-strings.
481    
482            * Thuban/Model/map.py (Map.BoundingBox): Add doc-string. Deal with
483            the layer's bbox being None.
484    
485            * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): Deal with the
486            layer's bbox being None.
487    
488            * Thuban/UI/view.py (MapCanvas.shape_selected): Only redraw when
489            necessary.
490            (MapCanvas.__init__): New instance variables, last_selected_layer
491            and last_selected_shape to determine how the selection has
492            changed.
493    
494            * Thuban/UI/tableview.py (TableGrid.__init__): Do not call
495            AutoSizeColumns because it will cause a traversal of the entire
496            table which for large .dbf files will take a very long time.
497    
498    2002-05-14  Bernhard Herzog  <[email protected]>
499    
500            * Thuban/Model/layer.py (Layer.open_shapefile): Choose a better
501            maximum depth for the tree than shapelib does by default.
502    
503    2002-05-10  Bernhard Herzog  <[email protected]>
504    
505            * setup.py (py_modules): The shptree modules doesn't have a
506            wrapper, so don't include it in the py_modules
507    
508    2002-05-08  Bernhard Herzog  <[email protected]>
509    
510            * extensions/shapelib/shptree.c (compare_ints): Make arguments
511            const void * as in the qsort prototype
512            (SHPTreeFindLikelyShapes): Remove some unused variables.
513    
514            * Thuban/UI/view.py (PanTool.MouseMove): Use the bitmap the view
515            maintains to redraw the window during a drag.
516            (MapCanvas.unprojected_rect_around_point): New method to determine
517            a small region around a point for hit-testing.
518            (MapCanvas.find_shape_at): Only test the shapes in a small region
519            around the point.
520    
521            * setup.py: Increment the version to 0.1.2
522    
523            * Thuban/UI/tree.py (SessionTreeCtrl.unsubscribe_all): Remove a
524            debug print and set session to None after unsubscribing
525    
526    2002-05-07  Bernhard Herzog  <[email protected]>
527    
528            * Data/iceland_sample.session, Data/iceland_sample.thuban: Rename
529            the file to have a .thuban extension.
530    
531            * Thuban/UI/tree.py (session_channels): New class constant with
532            all the session channels to subscribe to to update the tree
533            (SessionTreeCtrl.session_changed): Remember the session so that we
534            can unsubscribe properly. Use the new class constant to
535            unsubscribe from the old session and subscribe to the new one.
536            (SessionTreeCtrl.unsubscribe_all): New method to unsubscribe all
537            subscriptions of the SessionTreeCtrl.
538            (SessionTreeView.OnClose): Call the tree's unsubscribe_all method.
539    
540            * Thuban/UI/mainwindow.py (MainWindow.__init__): Add the "Show
541            Session Tree" command to the file menu.
542    
543            * Thuban/UI/view.py (MapCanvas.do_redraw): Pass the entire bitmap
544            as update_region to the renderer.
545    
546            * Thuban/UI/renderer.py
547            (ScreenRenderer.layer_ids, ScreenRenderer.draw_shape_layer): The
548            update box is now directly a tuple, not a wxRect anymore.
549    
550            * Thuban/Model/layer.py (Layer.ShapesInRegion): Remove some debug
551            prints.
552    
553    2002-05-07  Bernhard Herzog  <[email protected]>
554    
555            * setup.py: Add the shptree extension module. See
556            extensions/pyshapelib/ChangeLog for more details.
557    
558            * extensions/shapelib/shpopen.c, extensions/shapelib/shapefil.h,
559            extensions/shapelib/dbfopen.c: Really update to the versions of
560            shapelib 1.2.9. For some reason it wasn't really done on
561            2002-04-11.
562    
563            * extensions/shapelib/shptree.c: Modified version of shptree.c of
564            shapelib 1.2.9. The only real difference is the use of qsort
565            instead of a bubble sort implementation
566    
567            * Thuban/Model/layer.py (Layer.__init__): New instance variable
568            shapetree to hold the shapelib quadtree for the shapefile
569            (Layer.open_shapefile): Create the quad tree.
570            (Layer.ShapesInRegion): New method to return the ids of shapes in
571            a given region using the quad tree.
572    
573            * extensions/thuban/wxproj.cpp (project_points): Fix some typos in
574            comment
575            (draw_polygon_shape): Accept both arcs and polygons.
576            (initwxproj): Use the new PYSHAPELIB_IMPORT_API macro to import
577            the api.
578    
579            * Thuban/UI/renderer.py (MapRenderer.layer_ids): New method to
580            return the shape ids to be rendered in a given layer.
581            (MapRenderer.draw_shape_layer): Call layer_ids to get the list of
582            ids. Use draw_polygon_shape to draw arc shapes as well.
583            (ScreenRenderer.RenderMap): New parameter for the rectangle that
584            has to be updated
585            (ScreenRenderer.layer_ids): Make use of the layer's quadtree by
586            calling it's ShapesInRegion method.
587    
588            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
589            update_region for the update region.
590            (MapCanvas.OnPaint): Maintain the update region
591            (MapCanvas.do_redraw): Pass the bounding box of the update_region
592            to the renderer when drawing the bitmap. Reset the update_region.
593    
594  2002-05-03  Bernhard Herzog  <[email protected]>  2002-05-03  Bernhard Herzog  <[email protected]>
595    
596          * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs,          * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs,
# Line 6  Line 599 
599    
600          * Thuban/Model/session.py (Session.AddMap, forwarded_channels):          * Thuban/Model/session.py (Session.AddMap, forwarded_channels):
601          Move the map channels to be forwarded by the session into the          Move the map channels to be forwarded by the session into the
602          class constant with forwarded_channels.          class constant with forwarded_channels. Also add
603            LAYER_PROJECTION_CHANGED and LAYER_VISIBILITY_CHANGED to
604            forwarded_channels
605    
606          * Thuban/Model/base.py (Modifiable.changed): Fix doc-string (a          * Thuban/Model/base.py (Modifiable.changed): Fix doc-string (a
607          typo and some rewording).          typo and some rewording).

Legend:
Removed from v.131  
changed lines
  Added in v.317

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26