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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 120 - (show annotations)
Fri Apr 26 09:32:50 2002 UTC (22 years, 10 months ago) by frank
Original Path: trunk/thuban/ChangeLog
File size: 16336 byte(s)
Thuban/UI/mainwindow.py: Dialo title: s/session/data

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26