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

Legend:
Removed from v.35  
changed lines
  Added in v.165

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26