/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Contents of /branches/greater-ms3/thuban/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 118 - (show annotations)
Wed Apr 24 09:03:04 2002 UTC (22 years, 10 months ago) by frank
Original Path: trunk/thuban/ChangeLog
File size: 16220 byte(s)
Toolbar icon changes added.

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26