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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 116 - (show annotations)
Mon Apr 22 11:31:08 2002 UTC (22 years, 10 months ago) by jan
Original Path: trunk/thuban/ChangeLog
File size: 16077 byte(s)
bug fix

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26