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

Legend:
Removed from v.129  
changed lines
  Added in v.308

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26