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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 107 - (hide annotations)
Fri Apr 19 16:02:55 2002 UTC (22 years, 10 months ago) by jan
Original Path: trunk/thuban/ChangeLog
File size: 15676 byte(s)
some fixes and tiny features

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26