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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 124 - (hide annotations)
Mon Apr 29 18:05:31 2002 UTC (22 years, 10 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 17297 byte(s)
update ChangeLog

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26