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

Legend:
Removed from v.59  
changed lines
  Added in v.194

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26