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

Legend:
Removed from v.81  
changed lines
  Added in v.291

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26