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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 89 - (show annotations)
Thu Apr 4 14:22:49 2002 UTC (22 years, 11 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 14429 byte(s)
update ChangeLog

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26