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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 107 - (show 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 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 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 2002-04-04 Bernhard Herzog <[email protected]>
34
35 * setup.py (thuban_bdist_rpm.initialize_options): Use
36 initialize_options to create the scripts for the rpm.
37
38 * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
39
40 2002-04-03 Bernhard Herzog <[email protected]>
41
42 * setup.py: Increment version to 0.1.1
43
44 * 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 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 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 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 2002-01-14 Bernhard Herzog <[email protected]>
91
92 * setup.py (data_dist.make_distribution): Fix some typos
93
94 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 2001-09-14 Bernhard Herzog <[email protected]>
106
107 * 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 * 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 2001-09-13 Bernhard Herzog <[email protected]>
123
124 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
125 deselect the layer if no layer is selected
126
127 * 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 (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
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 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 2001-09-10 Bernhard Herzog <[email protected]>
166
167 * 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 * 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 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 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
195 height do nothing (avoids zero division errors)
196
197 2001-09-06 Bernhard Herzog <[email protected]>
198
199 * 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 * 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 * 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 * 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 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 2001-09-04 Bernhard Herzog <[email protected]>
314
315 * 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 * 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 2001-09-03 Bernhard Herzog <[email protected]>
342
343 * 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 * 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 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 2001-08-28 Bernhard Herzog <[email protected]>
409
410 * setup.py: Fix some doc strings
411
412 * 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