/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Annotation of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 131 - (hide annotations)
Fri May 3 14:50:27 2002 UTC (22 years, 10 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 18492 byte(s)
update ChangeLog

1 bh 129 2002-05-03 Bernhard Herzog <[email protected]>
2    
3 bh 131 * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs,
4     MainWindow.OpenSession): Change the file extension of the session
5     files to .thuban
6    
7 bh 129 * Thuban/Model/session.py (Session.AddMap, forwarded_channels):
8     Move the map channels to be forwarded by the session into the
9     class constant with forwarded_channels.
10    
11     * Thuban/Model/base.py (Modifiable.changed): Fix doc-string (a
12     typo and some rewording).
13    
14 bh 126 2002-05-02 Bernhard Herzog <[email protected]>
15    
16     * Thuban/UI/view.py: Keep the temporary bitmap used during drawing
17     around to speed up most redraws:
18     (MapCanvas.__init__): New instance variable bitmap which holds the
19     bitmap
20     (MapCanvas.do_redraw): Redraw self.bitmap if necessary. Use
21     self.bitmap to draw.
22     (MapCanvas.full_redraw): New method to force a full redraw
23     including the bitmap
24     (MapCanvas.SetMap): Subscribe full_redraw instead of redraw to
25     make sure the bitmap is redrawn.
26     (MapCanvas.projection_changed, MapCanvas.set_view_transform,
27     MapCanvas.shape_selected): Call full_redraw instead of readraw to
28     make sure the bitmap is redrawn.
29     (MapCanvas.OnSize): New method to handle size events so that the
30     bitmap can be redrawn.
31    
32 bh 124 2002-04-29 Bernhard Herzog <[email protected]>
33    
34     * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
35     canvas' VIEW_POSITION event
36     (MainWindow.view_position_changed): Handler for VIEW_POSITION.
37     Update the text in the status-bar accordingly.
38    
39     * Thuban/UI/view.py (MapCanvas): Derive from Publisher as well
40     (MapCanvas.__del__): Implement because Publisher.__del__ has to be
41     called.
42     (MapCanvas.__init__): Bind EVT_LEAVE_WINDOW too. Initialize
43     current_position
44     (MapCanvas.set_current_position): New method to set
45     current_position. Issue a VIEW_POSITION event
46     (MapCanvas.CurrentPosition): New public method to return the value
47     of current_position. Should be called when the VIEW_POSITION event
48     is processed.
49     (MapCanvas.OnLeftDown, MapCanvas.OnLeftUp, MapCanvas.OnMotion):
50     Update the position.
51     (MapCanvas.OnLeaveWindow): Set the position to None.
52    
53     * Thuban/UI/messages.py (VIEW_POSITION): New message for the
54     position in the statusbar
55    
56 frank 120 2002-04-26 Frank Koormann <[email protected]>
57    
58     * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
59    
60     2002-04-24 Frank Koormann <[email protected]>
61 frank 118
62     * Resources/Bitmaps/identify.xpm: shadow added
63    
64     * Resources/Bitmaps/fullextent.xpm: new
65    
66 jan 116 2002-04-22 Jan-Oliver Wagner <[email protected]>
67    
68     * Thuban/UI/tree.py (update_tree): added test for None on map bounding box
69    
70 jan 114 2002-04-21 Jan-Oliver Wagner <[email protected]>
71    
72     * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
73    
74     * Thuban/UI/tree.py (update_tree): added added map extent
75    
76     * Thuban/UI/mainwindow.py (_method_command): extended by parameter
77     icon; added map_full_extend as tool
78    
79 jan 107 2002-04-19 Jan-Oliver Wagner <[email protected]>
80    
81     * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
82     saving _new_ sessions
83    
84     * Thuban/Model/session.py (create_empty_session): new session
85     don't have a filename (set to None)
86    
87     * Thuban/UI/tree.py (update_tree): added filename and modified flag
88    
89     * Thuban/Model/load.py (ProcessSession): convert projection
90     parameters from unicode to regular string
91    
92     * Data/iceland_sample.session: Added UTM Zone 26 projection.
93    
94 bh 100 2002-04-11 Bernhard Herzog <[email protected]>
95    
96     * extensions/shapelib/shapefil.h, extensions/shapelib/shpopen.c,
97     extensions/shapelib/dbfopen.c: Update to the versions of shapelib
98     1.2.9
99    
100     * setup.py (Lib.wxproj extension): Don't link shpopen.c and put
101     the pyshapelib directoy into the list of include dirs, so that
102     pyshapelib_api.h can be found.
103    
104     * extensions/thuban/wxproj.cpp (pyshapelib_api): New variable that
105     holds the pyshapelib C-API
106     (draw_polygon_shape, point_in_polygon_shape, shape_centroid): Use
107     pyshapelib_api to access the shapelib functions.
108     (initwxproj): Import the c_api from the shapelib module and
109     initialize pyshapelib_api.
110    
111 bh 89 2002-04-04 Bernhard Herzog <[email protected]>
112    
113 bh 91 * setup.py (thuban_bdist_rpm.initialize_options): Use
114     initialize_options to create the scripts for the rpm.
115    
116 bh 89 * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
117    
118 bh 85 2002-04-03 Bernhard Herzog <[email protected]>
119    
120 bh 87 * setup.py: Increment version to 0.1.1
121    
122 bh 85 * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
123     Layer" and "Remove Layer" commands from the layer menu to the map
124     menu
125    
126 bh 83 2002-02-15 Bernhard Herzog <[email protected]>
127    
128     * Thuban/Model/layer.py (Layer.Shape): list append only takes one
129     argument (python <= 1.5.2 erroneously accepted multiuple
130     arguments)
131    
132 bh 81 2002-02-04 Bernhard Herzog <[email protected]>
133    
134     * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
135     RecordGrid in the identifyview.
136     (IdentifyView.__init__): Use IdentifyGridCtrl instead of
137     IdentifyListCtrl. The grid allows editing of the values.
138    
139     * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
140     implementing a grid for a single row of a thuban table.
141    
142     * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
143     layers by default. Easier to use than the previous default of only
144     searching through the select layer which meant that if no layer
145     was selected, you couldn't select a shape.
146    
147     * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
148    
149     * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
150     stroke_width attribute
151    
152     * Thuban/Model/save.py (save_session): Write the new stroke_width
153     attribute
154    
155     * Thuban/Model/load.py (ProcessSession.startElement): Read the
156     stroke_width attribute
157    
158     * Thuban/Model/layer.py (Layer.__init__): New parameter and
159     instance variable stroke_width
160     (Layer.SetStrokeWidth): Set the stroke_width.
161    
162 bh 72 2002-02-01 Bernhard Herzog <[email protected]>
163    
164     * extensions/thuban/wxproj.cpp (project_points): Fix two
165     off-by-one errors in the last loop that joins the various parts
166     together.
167    
168 bh 71 2002-01-14 Bernhard Herzog <[email protected]>
169    
170     * setup.py (data_dist.make_distribution): Fix some typos
171    
172 bh 70 2001-09-18 Bernhard Herzog <[email protected]>
173    
174     * README: Slight tweaking in preparation for the 0.1 release
175    
176     * setup.cfg: Add section for sdist to create both tgz and zip
177     archives
178    
179     * setup.py: increase version number to 0.1
180     (data_dist): New command class for data distribution
181    
182    
183 bh 64 2001-09-14 Bernhard Herzog <[email protected]>
184    
185 bh 70 * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
186     Handle the case of no layer (i.e. layer is None) properly.
187    
188     * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
189     Set the initial selection of the combo boxes to reflect the
190     projection we're starting with in a way that works on windows,
191     too.
192    
193 bh 64 * Thuban/Lib/connector.py (Connector.print_connections): Print the
194     puiblisher's ids in hex to make it easier to compare them to the
195     standard repr of python methods
196    
197     * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
198     messages
199    
200 bh 59 2001-09-13 Bernhard Herzog <[email protected]>
201    
202 bh 64 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
203     deselect the layer if no layer is selected
204    
205 bh 59 * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
206     idle time when there actually is something to draw. If there's
207     nothing to draw simply clear the window
208     (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
209     (MapCanvas.SetMap): force a redraw in all cases because
210     FitMapToWindow doesn't always do it.
211     (MapCanvas.ZoomFactor): Add an optional parameter, center, to
212     specify the point to move into the center of the window
213     (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
214     dragged, zoon in/out by a factor of 2
215 bh 64 (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
216     index, i.e. reversed drawing order) so that objects appearing to
217     be in from of others are selected first. This is probably mostly
218     relevant for point shapes where the symbols used may overlap
219 bh 59
220     * Thuban/Model/session.py (create_empty_session): Unset the
221     modified bit before returning it
222    
223     * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
224     create_empty_session session to create the new, empty session.
225    
226     * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
227     the tool bitmaps.
228     (MainWindow.OnClose, MainWindow.save_modified_session): Separate
229     the code that asks whether the session should be saved into the
230     new method save_modified_session.
231     (MainWindow.OpenSession, MainWindow.NewSession): Use the new
232     method to save modified session here too.
233    
234 bh 55 2001-09-11 Bernhard Herzog <[email protected]>
235    
236     * setup.py (InnoIconItem): fix typo
237    
238     (thuban_bdist_inno.run):
239     (bdist_inno.run): Move the decision not to create symlinks on
240     non-nt platforms to thuban_bdist_inno and do it unconditinally
241     since we never want to create the symlinks here
242    
243 bh 48 2001-09-10 Bernhard Herzog <[email protected]>
244    
245 bh 53 * Thuban/UI/mainwindow.py (MainWindow.IdentifyTool): Popup the
246     identify view immediately
247    
248     * Thuban/UI/controls.py: New file with two classes RecordListCtrl
249     and SelectableRecordListCtrl that implement the code shared by the
250     identify view and the label dialog
251    
252     * Thuban/UI/identifyview.py (IdentifyListCtrl): Derive from the
253     new class RecordListCtrl
254    
255     * Thuban/UI/labeldialog.py (LabelDialog.OnOK): Check whether the
256     return value of GetValue is None instead of using it as a boolean
257     directly so that Zero numbers are handled properly.
258     (LabelListCtrl): Derive from the new class
259     SelectableRecordListCtrl
260    
261 bh 48 * Thuban/UI/proj4dialog.py (Proj4Dialog.__init__):
262     (Proj4Dialog.dialogLayout): Make the window resizable and set the
263     size of the text control explicitly to make the sizers work on
264     both Windows and X.
265    
266 bh 44 2001-09-07 Bernhard Herzog <[email protected]>
267    
268     * Thuban/UI/view.py (MapCanvas.find_shape_at):Add a new parameter
269     that can limit the search to the currently selected layer.
270     (MapCanvas.SelectShapeAt): Make sure that the currently selected
271     layer stays selected even when no shape is found
272 bh 46 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
273     height do nothing (avoids zero division errors)
274 bh 44
275 bh 32 2001-09-06 Bernhard Herzog <[email protected]>
276    
277 bh 42 * Thuban/UI/tree.py (SessionTreeCtrl, SessionTreeView.__init__):
278     Correct the spelling of SessionTreeCtrl. dabbrev is too damn
279     convenient :-)
280     (SessionTreeCtrl.__init__, SessionTreeCtrl.update_tree): Introduce
281     a new instvar layer_to_item to map layers to tree items
282     (SessionTreeCtrl.layer_selected): Select the appropriate tree item
283     to match the current selection in the interactor
284    
285 bh 40 * Thuban/UI/interactor.py (Interactor.SelectedLayer):
286     (Interactor.HasSelectedLayer): New methods to query the current
287     selection
288    
289     * Thuban/UI/mainwindow.py (MainWindow.current_layer):
290     (MainWindow.has_selected_layer): Simply call the appropriate
291     interactor method
292    
293     * Thuban/UI/mainwindow.py (MainWindow.__init__):
294     (MainWindow.LayerShowTable):
295     (MainWindow.identify_view_on_demand): Store the interactor in an
296     instvar and use that reference instead of going through main.app
297    
298     * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
299     * Thuban/UI/application.py (ThubanApplication.OnInit):
300     * Thuban/UI/main.py (main): Create the session tree view in main
301     with the new mainwindow method ShowSessionTree and not directly
302     the application's OnInit method
303    
304     * Thuban/UI/tree.py (myTreeCtrlPanel):
305     (SessioinTreeCtrl): Rename to SessioinTreeCtrl and turn it into a
306     TreeCtrl isntead of a panel. This affects most method since we now
307     refer to self instead of self.tree
308     (SessionTreeView): New class implementing a non-modal dialog
309     showing the session tree.
310    
311 bh 35 * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Pass the
312     layer to the tableview dialog.
313    
314     * Thuban/UI/tableview.py: Add some doc-strings
315     (TableGrid):
316     (TableGrid.OnRangeSelect):
317     (TableGrid.OnSelectCell):
318     (TableFrame.__init__):
319     (TableFrame.row_selected):
320     Selecting rows in the grid view now updates the selected shapes
321     through the TableFrame. To achieve this we derive TableGrid from
322     Publisher and introduce the message type ROW_SELECTED which the
323     TableFrame subscribes to and which is issued by OnRangeSelect and
324     OnSelectCell
325    
326     (DataTable.SelectRow): Removed because it's no longer needed in
327     the row/shape selection scheme
328    
329 bh 32 * Thuban/UI/dialogs.py: New file implementing common classes for
330     dialogs
331    
332     * Thuban/UI/tableview.py (TableGrid.__init__): Don't subscribe to
333     the SELECTED_SHAPE message anymore. This is now handled by the
334     parent.
335     (TableGrid.select_shape): Only update the selection if the shape
336     is not None.
337     (TableFrame): Inherit from the new NonModalDialog class.
338     (TableFrame.__init__, TableFrame.select_shape): Handle the
339     SELECT_SHAPE message.
340     (TableFrame.OnClose): Extend the inherited method to unsubscribe
341     SELECT_SHAPE
342    
343     * Thuban/UI/mainwindow.py (MainWindow.init_dialogs):
344     (MainWindow.add_dialog):
345     (MainWindow.dialog_open):
346     (MainWindow.remove_dialog):
347     (MainWindow.get_open_dialog): New methods to maintain a dictionary
348     of opened non-modal dialogs.
349    
350     (MainWindow.__init__): Initialize the new non-modal dictionary
351     management code
352     (MainWindow.LayerShowTable): maintain separate dialogs for each
353     table using the non-modal dialog management code to only open a
354     view once for each table.
355    
356     (MainWindow.IdentifyTool):
357     (MainWindow.__init__):
358     (MainWindow.identify_view_on_demand): Don't open the identify view
359     in IdentifyTool anymore. This will be done automatically by the
360     new method identify_view_on_demand which handles the
361     SELECTED_SHAPE message so that the identify view will be opened on
362     demand
363    
364     * Thuban/UI/identifyview.py (IdentifyListCtrl.__init__): Remove
365     the interactor argument. The SELECTED_SHAPE message is now handled
366     by the parent.
367     (IdentifyView.__init__): Add the interactor argument so that we
368     can handle the SELECTED_SHAPE message here
369     (IdentifyView.selected_shape): New method to handle the
370     SELECTED_SHAPE messages
371    
372     * Thuban/UI/identifyview.py (IdentifyView): Derive from the new
373     NonModalDialog class
374     (IdentifyView.OnClose): Extend the inherited version to
375     unsubscribe SELECT_SHAPE
376    
377     * Thuban/Model/session.py (Session.UnsetModified): Remove debug prints
378    
379 bh 26 2001-09-05 Bernhard Herzog <[email protected]>
380    
381     * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
382    
383     * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
384     interactor to pass through to the MapCanvas
385    
386     * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
387     argument to the MainWindow constructor to get rid of the ugly hack
388     that made main.app available early just so that the mapcanvas
389     could access the interactor object.
390    
391 bh 19 2001-09-04 Bernhard Herzog <[email protected]>
392    
393 bh 22 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): New method
394     that runs a modal message box
395     (MainWindow.OnClose): Use the new method
396     (MainWindow.RemoveLayer): Just do nothing in case no layer is
397     selected. The command should be grayed out anyway, so there's no
398     need to pop up a message box.
399     (MainWindow.AddLayer): Pop up a message box with an error message
400     if the shape file can't be opened
401    
402     * Thuban/Model/layer.py (Layer.__init__): Open the shapefile
403     immediately. This will cause an exception in case the file can't
404     be opened and we can display an appropriate message.
405    
406 bh 19 * MANIFEST.in: Add extensions/pyprojection/LICENSE
407    
408     * setup.py (thuban_bdist_rpm): New class implementing a Thuban
409     specific bdist_rpm command.
410    
411     * Thuban/UI/main.py: Catch ImportError exceptions when importing
412     the locale module because it may not be available on some
413     installations.
414    
415     * extensions/pyprojection/LICENSE: Copy of the license text in
416     Projection.i. Having it in a separate file makes it easier to
417     refer to license text in e.g. RPMs
418    
419 bh 18 2001-09-03 Bernhard Herzog <[email protected]>
420    
421 bh 19 * setup.py: use wx-config instead of wxgtk-config because it's
422     more generic
423    
424     * setup.py (ThubanInstall.get_outputs): Add the symlink in
425     <prefix>/bin to the outputs
426     (ThubanInstall.link_file): New method to link files. We need this
427     because the standard copy_files refuses to link non-existing
428     files.
429     (ThubanInstall.run): Remove the leading install root from the
430     script filename if an install root was specified and use the new
431     link_file method
432    
433 bh 18 * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
434     the window when the first layer is added to the map.
435    
436     * setup.py (ThubanInstall.run): Honor the build root (self.root)
437     when linking thuban.py to <prefix>/bin
438    
439 bh 16 2001-08-31 Bernhard Herzog <[email protected]>
440    
441     * setup.py: In the setup call, the install parameters shouldn't
442     have trailing slashes because distutils on non-posix platforms
443     doesn't like that. The same applies to other directories like
444     "Resources/Bitmaps"
445    
446     In the configuration section for nt, move the wxWindows directory
447     optins into the part clearly marked as editable.
448    
449     (InstallLocal.initialize_options):
450     (InstallLocal.user_options): remove the currently unused debug
451     flag
452     (thuban_build_py.find_all_modules): Add this method so that it
453     works for our case of having packages and modules in one
454     distribution as well.
455     (ThubanInstall.initialize_options):
456     (ThubanInstall.finalize_options):
457     (ThubanInstall.user_options):
458     (ThubanInstall.boolean_options): Add new options, do-symlink and
459     extra files. Since these are the first ThubanInstall specific
460     options, override user_options and boolean_options
461     (ThubanInstall.run): Honor the new do-symlink and extra-files
462     options.
463     (ThubanInstall.get_outputs): Add to override the base-class's
464     version and add the extra-files to the outputs
465     (bdist_inno): New class for windows distributions with Inno Setup
466     (InnoIconItem): Helper class for bdist_inno
467     (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
468     this together with the appropriate parameters, to the setup call.
469    
470     * setup.cfg (bdist_inno): added new section for the inno setup
471     installer
472    
473     * Thuban/UI/tree.py (myTreeCtrlPanel.__init__): New inst var
474     changing_selection to avoid recursive selection events when
475     modifying the selection in response to a selection event.
476     (myTreeCtrlPanel.normalize_selection): Set the new inst var when
477     changing the tree's selection.
478     (myTreeCtrlPanel.OnSelChanged): Only normalize the selection when
479     we're not being called indirectly from normalize_selection.
480    
481     * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): Call
482     event.Check only if the command is actuall checkable.
483     (MainWindow.__init__): Call the toolbar's Realize method to make
484     sure that the items are actually shown
485    
486 bh 7 2001-08-28 Bernhard Herzog <[email protected]>
487    
488 bh 9 * setup.py: Fix some doc strings
489    
490 bh 7 * ChangeLog: started
491    

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26