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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 124 - (show 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 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 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
31 * Resources/Bitmaps/identify.xpm: shadow added
32
33 * Resources/Bitmaps/fullextent.xpm: new
34
35 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 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 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 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 2002-04-04 Bernhard Herzog <[email protected]>
81
82 * setup.py (thuban_bdist_rpm.initialize_options): Use
83 initialize_options to create the scripts for the rpm.
84
85 * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
86
87 2002-04-03 Bernhard Herzog <[email protected]>
88
89 * setup.py: Increment version to 0.1.1
90
91 * 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 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 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 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 2002-01-14 Bernhard Herzog <[email protected]>
138
139 * setup.py (data_dist.make_distribution): Fix some typos
140
141 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 2001-09-14 Bernhard Herzog <[email protected]>
153
154 * 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 * 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 2001-09-13 Bernhard Herzog <[email protected]>
170
171 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
172 deselect the layer if no layer is selected
173
174 * 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 (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
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 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 2001-09-10 Bernhard Herzog <[email protected]>
213
214 * 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 * 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 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 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
242 height do nothing (avoids zero division errors)
243
244 2001-09-06 Bernhard Herzog <[email protected]>
245
246 * 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 * 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 * 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 * 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 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 2001-09-04 Bernhard Herzog <[email protected]>
361
362 * 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 * 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 2001-09-03 Bernhard Herzog <[email protected]>
389
390 * 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 * 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 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 2001-08-28 Bernhard Herzog <[email protected]>
456
457 * setup.py: Fix some doc strings
458
459 * 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