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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26