/[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 55 by bh, Tue Sep 11 11:45:27 2001 UTC revision 190 by bh, Tue May 28 12:39:49 2002 UTC
# Line 1  Line 1 
1    2002-05-28  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/menu.py: New module to build and manage menus.
4    
5            * Thuban/UI/mainwindow.py: Remove some unused imports.
6            (MainWindow.__init__, main_menu): move the definition of the main
7            menu from __init__ to the Menu instance main_menu.
8            (MainWindow.build_menu_bar, MainWindow.build_menu): New methods to
9            build the menu bar and sub-menus from a menu description.
10    
11            * Thuban/UI/application.py (ThubanApplication.OnInit): Read the
12            startup file
13            (ThubanApplication.read_startup_files): New method to run
14            ~/.thuban/thubanstart.py
15    
16    2002-05-23  Bernhard Herzog  <[email protected]>
17    
18            * Thuban/UI/mainwindow.py (MainWindow.__init__): Fix spelling of
19            layer_outline_color. Fix it in the definition of the command too.
20    
21            * Thuban/UI/command.py (Command): Fix typo in doc string
22    
23    2002-05-22  Bernhard Herzog  <[email protected]>
24    
25            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Fix a typo
26            in the docstring
27    
28    2002-05-15  Bernhard Herzog  <[email protected]>
29    
30            * Thuban/Model/layer.py (Layer.open_shapefile): Set bbox to None
31            when the shapefile is empty.
32            (Layer.BoundingBox, Layer.LatLongBoundingBox): Both methods may
33            now return None for empty shapefiles. Update doc-strings.
34    
35            * Thuban/Model/map.py (Map.BoundingBox): Add doc-string. Deal with
36            the layer's bbox being None.
37    
38            * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): Deal with the
39            layer's bbox being None.
40    
41            * Thuban/UI/view.py (MapCanvas.shape_selected): Only redraw when
42            necessary.
43            (MapCanvas.__init__): New instance variables, last_selected_layer
44            and last_selected_shape to determine how the selection has
45            changed.
46    
47            * Thuban/UI/tableview.py (TableGrid.__init__): Do not call
48            AutoSizeColumns because it will cause a traversal of the entire
49            table which for large .dbf files will take a very long time.
50    
51    2002-05-14  Bernhard Herzog  <[email protected]>
52    
53            * Thuban/Model/layer.py (Layer.open_shapefile): Choose a better
54            maximum depth for the tree than shapelib does by default.
55    
56    2002-05-10  Bernhard Herzog  <[email protected]>
57    
58            * setup.py (py_modules): The shptree modules doesn't have a
59            wrapper, so don't include it in the py_modules
60    
61    2002-05-08  Bernhard Herzog  <[email protected]>
62    
63            * extensions/shapelib/shptree.c (compare_ints): Make arguments
64            const void * as in the qsort prototype
65            (SHPTreeFindLikelyShapes): Remove some unused variables.
66    
67            * Thuban/UI/view.py (PanTool.MouseMove): Use the bitmap the view
68            maintains to redraw the window during a drag.
69            (MapCanvas.unprojected_rect_around_point): New method to determine
70            a small region around a point for hit-testing.
71            (MapCanvas.find_shape_at): Only test the shapes in a small region
72            around the point.
73    
74            * setup.py: Increment the version to 0.1.2
75    
76            * Thuban/UI/tree.py (SessionTreeCtrl.unsubscribe_all): Remove a
77            debug print and set session to None after unsubscribing
78    
79    2002-05-07  Bernhard Herzog  <[email protected]>
80    
81            * Data/iceland_sample.session, Data/iceland_sample.thuban: Rename
82            the file to have a .thuban extension.
83    
84            * Thuban/UI/tree.py (session_channels): New class constant with
85            all the session channels to subscribe to to update the tree
86            (SessionTreeCtrl.session_changed): Remember the session so that we
87            can unsubscribe properly. Use the new class constant to
88            unsubscribe from the old session and subscribe to the new one.
89            (SessionTreeCtrl.unsubscribe_all): New method to unsubscribe all
90            subscriptions of the SessionTreeCtrl.
91            (SessionTreeView.OnClose): Call the tree's unsubscribe_all method.
92    
93            * Thuban/UI/mainwindow.py (MainWindow.__init__): Add the "Show
94            Session Tree" command to the file menu.
95    
96            * Thuban/UI/view.py (MapCanvas.do_redraw): Pass the entire bitmap
97            as update_region to the renderer.
98    
99            * Thuban/UI/renderer.py
100            (ScreenRenderer.layer_ids, ScreenRenderer.draw_shape_layer): The
101            update box is now directly a tuple, not a wxRect anymore.
102    
103            * Thuban/Model/layer.py (Layer.ShapesInRegion): Remove some debug
104            prints.
105    
106    2002-05-07  Bernhard Herzog  <[email protected]>
107    
108            * setup.py: Add the shptree extension module. See
109            extensions/pyshapelib/ChangeLog for more details.
110    
111            * extensions/shapelib/shpopen.c, extensions/shapelib/shapefil.h,
112            extensions/shapelib/dbfopen.c: Really update to the versions of
113            shapelib 1.2.9. For some reason it wasn't really done on
114            2002-04-11.
115    
116            * extensions/shapelib/shptree.c: Modified version of shptree.c of
117            shapelib 1.2.9. The only real difference is the use of qsort
118            instead of a bubble sort implementation
119    
120            * Thuban/Model/layer.py (Layer.__init__): New instance variable
121            shapetree to hold the shapelib quadtree for the shapefile
122            (Layer.open_shapefile): Create the quad tree.
123            (Layer.ShapesInRegion): New method to return the ids of shapes in
124            a given region using the quad tree.
125    
126            * extensions/thuban/wxproj.cpp (project_points): Fix some typos in
127            comment
128            (draw_polygon_shape): Accept both arcs and polygons.
129            (initwxproj): Use the new PYSHAPELIB_IMPORT_API macro to import
130            the api.
131    
132            * Thuban/UI/renderer.py (MapRenderer.layer_ids): New method to
133            return the shape ids to be rendered in a given layer.
134            (MapRenderer.draw_shape_layer): Call layer_ids to get the list of
135            ids. Use draw_polygon_shape to draw arc shapes as well.
136            (ScreenRenderer.RenderMap): New parameter for the rectangle that
137            has to be updated
138            (ScreenRenderer.layer_ids): Make use of the layer's quadtree by
139            calling it's ShapesInRegion method.
140    
141            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
142            update_region for the update region.
143            (MapCanvas.OnPaint): Maintain the update region
144            (MapCanvas.do_redraw): Pass the bounding box of the update_region
145            to the renderer when drawing the bitmap. Reset the update_region.
146    
147    2002-05-03  Bernhard Herzog  <[email protected]>
148    
149            * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs,
150            MainWindow.OpenSession): Change the file extension of the session
151            files to .thuban
152    
153            * Thuban/Model/session.py (Session.AddMap, forwarded_channels):
154            Move the map channels to be forwarded by the session into the
155            class constant with forwarded_channels. Also add
156            LAYER_PROJECTION_CHANGED and LAYER_VISIBILITY_CHANGED to
157            forwarded_channels
158    
159            * Thuban/Model/base.py (Modifiable.changed): Fix doc-string (a
160            typo and some rewording).
161    
162    2002-05-02  Bernhard Herzog  <[email protected]>
163    
164            * Thuban/UI/view.py: Keep the temporary bitmap used during drawing
165            around to speed up most redraws:
166            (MapCanvas.__init__): New instance variable bitmap which holds the
167            bitmap
168            (MapCanvas.do_redraw): Redraw self.bitmap if necessary. Use
169            self.bitmap to draw.
170            (MapCanvas.full_redraw): New method to force a full redraw
171            including the bitmap
172            (MapCanvas.SetMap): Subscribe full_redraw instead of redraw to
173            make sure the bitmap is redrawn.
174            (MapCanvas.projection_changed, MapCanvas.set_view_transform,
175            MapCanvas.shape_selected): Call full_redraw instead of readraw to
176            make sure the bitmap is redrawn.
177            (MapCanvas.OnSize): New method to handle size events so that the
178            bitmap can be redrawn.
179    
180    2002-04-29  Bernhard Herzog  <[email protected]>
181    
182            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
183            canvas' VIEW_POSITION event
184            (MainWindow.view_position_changed): Handler for VIEW_POSITION.
185            Update the text in the status-bar accordingly.
186    
187            * Thuban/UI/view.py (MapCanvas): Derive from Publisher as well
188            (MapCanvas.__del__): Implement because Publisher.__del__ has to be
189            called.
190            (MapCanvas.__init__): Bind EVT_LEAVE_WINDOW too. Initialize
191            current_position
192            (MapCanvas.set_current_position): New method to set
193            current_position. Issue a VIEW_POSITION event
194            (MapCanvas.CurrentPosition): New public method to return the value
195            of current_position. Should be called when the VIEW_POSITION event
196            is processed.
197            (MapCanvas.OnLeftDown, MapCanvas.OnLeftUp, MapCanvas.OnMotion):
198            Update the position.
199            (MapCanvas.OnLeaveWindow): Set the position to None.
200    
201            * Thuban/UI/messages.py (VIEW_POSITION): New message for the
202            position in the statusbar
203    
204    2002-04-26      Frank Koormann <[email protected]>
205    
206            * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
207    
208    2002-04-24      Frank Koormann <[email protected]>
209            
210            * Resources/Bitmaps/identify.xpm: shadow added
211    
212            * Resources/Bitmaps/fullextent.xpm: new
213            
214    2002-04-22      Jan-Oliver Wagner <[email protected]>
215    
216            * Thuban/UI/tree.py (update_tree): added test for None on map bounding box
217    
218    2002-04-21      Jan-Oliver Wagner <[email protected]>
219    
220            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
221    
222            * Thuban/UI/tree.py (update_tree): added added map extent
223    
224            * Thuban/UI/mainwindow.py (_method_command): extended by parameter
225            icon; added map_full_extend as tool
226    
227    2002-04-19      Jan-Oliver Wagner <[email protected]>
228    
229            * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
230            saving _new_ sessions
231    
232            * Thuban/Model/session.py (create_empty_session): new session
233            don't have a filename (set to None)
234    
235            * Thuban/UI/tree.py (update_tree): added filename and modified flag
236    
237            * Thuban/Model/load.py (ProcessSession): convert projection
238            parameters from unicode to regular string
239    
240            * Data/iceland_sample.session: Added UTM Zone 26 projection.
241    
242    2002-04-11  Bernhard Herzog  <[email protected]>
243    
244            * extensions/shapelib/shapefil.h, extensions/shapelib/shpopen.c,
245            extensions/shapelib/dbfopen.c: Update to the versions of shapelib
246            1.2.9
247    
248            * setup.py (Lib.wxproj extension): Don't link shpopen.c and put
249            the pyshapelib directoy into the list of include dirs, so that
250            pyshapelib_api.h can be found.
251    
252            * extensions/thuban/wxproj.cpp (pyshapelib_api): New variable that
253            holds the pyshapelib C-API
254            (draw_polygon_shape, point_in_polygon_shape, shape_centroid): Use
255            pyshapelib_api to access the shapelib functions.
256            (initwxproj): Import the c_api from the shapelib module and
257            initialize pyshapelib_api.
258    
259    2002-04-04  Bernhard Herzog  <[email protected]>
260    
261            * setup.py (thuban_bdist_rpm.initialize_options): Use
262            initialize_options to create the scripts for the rpm.
263    
264            * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
265    
266    2002-04-03  Bernhard Herzog  <[email protected]>
267    
268            * setup.py: Increment version to 0.1.1
269    
270            * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
271            Layer" and "Remove Layer" commands from the layer menu to the map
272            menu
273    
274    2002-02-15  Bernhard Herzog  <[email protected]>
275    
276            * Thuban/Model/layer.py (Layer.Shape): list append only takes one
277            argument (python <= 1.5.2 erroneously accepted multiuple
278            arguments)
279    
280    2002-02-04  Bernhard Herzog  <[email protected]>
281    
282            * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
283            RecordGrid in the identifyview.
284            (IdentifyView.__init__): Use IdentifyGridCtrl instead of
285            IdentifyListCtrl. The grid allows editing of the values.
286    
287            * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
288            implementing a grid for a single row of a thuban table.
289    
290            * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
291            layers by default. Easier to use than the previous default of only
292            searching through the select layer which meant that if no layer
293            was selected, you couldn't select a shape.
294    
295            * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
296    
297            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
298            stroke_width attribute
299    
300            * Thuban/Model/save.py (save_session): Write the new stroke_width
301            attribute
302    
303            * Thuban/Model/load.py (ProcessSession.startElement): Read the
304            stroke_width attribute
305    
306            * Thuban/Model/layer.py (Layer.__init__): New parameter and
307            instance variable stroke_width
308            (Layer.SetStrokeWidth): Set the stroke_width.
309    
310    2002-02-01  Bernhard Herzog  <[email protected]>
311    
312            * extensions/thuban/wxproj.cpp (project_points): Fix two
313            off-by-one errors in the last loop that joins the various parts
314            together.
315    
316    2002-01-14  Bernhard Herzog  <[email protected]>
317    
318            * setup.py (data_dist.make_distribution): Fix some typos
319    
320    2001-09-18  Bernhard Herzog  <[email protected]>
321    
322            * README: Slight tweaking in preparation for the 0.1 release
323    
324            * setup.cfg: Add section for sdist to create both tgz and zip
325            archives
326    
327            * setup.py: increase version number to 0.1
328            (data_dist): New command class for data distribution
329            
330    
331    2001-09-14  Bernhard Herzog  <[email protected]>
332    
333            * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
334            Handle the case of no layer (i.e. layer is None) properly.
335    
336            * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
337            Set the initial selection of the combo boxes to reflect the
338            projection we're starting with in a way that works on windows,
339            too.
340    
341            * Thuban/Lib/connector.py (Connector.print_connections): Print the
342            puiblisher's ids in hex to make it easier to compare them to the
343            standard repr of python methods
344    
345            * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
346            messages
347    
348    2001-09-13  Bernhard Herzog  <[email protected]>
349    
350            * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
351            deselect the layer if no layer is selected
352    
353            * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
354            idle time when there actually is something to draw. If there's
355            nothing to draw simply clear the window
356            (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
357            (MapCanvas.SetMap): force a redraw in all cases because
358            FitMapToWindow doesn't always do it.
359            (MapCanvas.ZoomFactor): Add an optional parameter, center, to
360            specify the point to move into the center of the window
361            (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
362            dragged, zoon in/out by a factor of 2
363            (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
364            index, i.e. reversed drawing order) so that objects appearing to
365            be in from of others are selected first. This is probably mostly
366            relevant for point shapes where the symbols used may overlap
367    
368            * Thuban/Model/session.py (create_empty_session): Unset the
369            modified bit before returning it
370    
371            * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
372            create_empty_session session to create the new, empty session.
373    
374            * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
375            the tool bitmaps.
376            (MainWindow.OnClose, MainWindow.save_modified_session): Separate
377            the code that asks whether the session should be saved into the
378            new method save_modified_session.
379            (MainWindow.OpenSession, MainWindow.NewSession): Use the new
380            method to save modified session here too.
381    
382  2001-09-11  Bernhard Herzog  <[email protected]>  2001-09-11  Bernhard Herzog  <[email protected]>
383    
384          * setup.py (InnoIconItem): fix typo          * setup.py (InnoIconItem): fix typo

Legend:
Removed from v.55  
changed lines
  Added in v.190

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26