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

Legend:
Removed from v.44  
changed lines
  Added in v.175

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26