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

Legend:
Removed from v.53  
changed lines
  Added in v.180

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26