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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 208 - (hide annotations)
Tue Jul 9 14:57:03 2002 UTC (22 years, 8 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 27745 byte(s)
* Examples/simple_extensions/simple_tool.xpm,
Examples/simple_extensions/simple_tool.py,
Examples/simple_extensions/simple_command.py,
Examples/simple_extensions/README: Simple examples showing how to
add new commands and tools.

1 bh 205 2002-07-09 Bernhard Herzog <[email protected]>
2    
3 bh 208 * Examples: New subdirectory for examples.
4    
5     * Examples/simple_extensions/simple_tool.xpm,
6     Examples/simple_extensions/simple_tool.py,
7     Examples/simple_extensions/simple_command.py,
8     Examples/simple_extensions/README: Simple examples showing how to
9     add new commands and tools.
10    
11 bh 207 * setup.cfg (bdist_rpm): Add the default value for prefix and tell
12     bdist_rpm that we also have an install script.
13     (bdist_inno): Add 2002 to the copyright notice.
14    
15 bh 205 * setup.py: Create a file in python's site-packages directory to
16     make installation of Thuban as a library easier.
17     (ThubanInstall.user_options): Add two new options,
18     create-init-module and init-module-dir
19     (ThubanInstall.expand_with_pure_python_dirs): New method to expand
20     filenames for installation in the default directories.
21     (ThubanInstall.select_scheme, ThubanInstall.convert_paths): Extend
22     the inherited methods to capture some filenames before they're
23     transformed too much by distutils.
24     (ThubanInstall.run): Create the init module if requested.
25     (ThubanInstall.thuban_init_filename): New method to return the
26     full name of the init module.
27     (ThubanInstall.get_outputs): Append the filename of the init
28     module.
29    
30 bh 202 2002-07-08 Bernhard Herzog <[email protected]>
31    
32 bh 205 * setup.py (thuban_bdist_rpm): Extend this version of bdist_rpm to
33     handle the prefix properly which means that the default for the
34     installation prefix should be /usr for RPMs and /usr/local when
35     doing a normal source install.
36     (bdist_rpm_install_script): Script to override the default install
37     commands in the specfile generated by the bdist_rpm command.
38     (thuban_bdist_rpm.user_options): Add a prefix option
39     (thuban_bdist_rpm.initialize_options): Init the prefix option.
40     Create the script files for the spec files as empty files here
41     (thuban_bdist_rpm._make_spec_file): Override the inherited method
42     to fill the script files with content.
43    
44 bh 202 * Thuban/Model/save.py (relative_filename): Wrapper around
45     Thuban.Lib.fileutil.relative_filename that accepts an empty dir
46     argument. save_session now automatically uses this version,
47     solving a problem when saving to a relative filename.
48    
49     * setup.py: In the setup call, make sure that the library
50     directories are under $prefix/lib not directly under $prefix.
51    
52 jan 199 2002-06-20 Jan-Oliver Wagner <[email protected]>
53    
54     * Thuban/Model/extension.py: new module to handle extension objects.
55     * Thuban/Model/messages.py: new messages for extensions.
56     * Thuban/Model/session.py (Session.Extensions, Session.HasExtensions,
57     Session.AddExtension): new for handling extensions.
58     Also some other minor changes to round up extension handling.
59     * Thuban/UI/tree.py (SessionTreeCrtl:update_tree): Added visualization
60     of Extension titles and title and names of its objects.
61    
62 bh 194 2002-05-29 Bernhard Herzog <[email protected]>
63    
64     * Thuban/UI/mainwindow.py (MainWindow.bind_command_events): Bind
65 bh 202 the events for a command.
66 bh 194 (MainWindow.add_toolbar_command, MainWindow.add_menu_command):
67     Call bind_command_events to bind the events. add_toolbar_command
68     can now bind events too so that it's possible to have commands
69     that are only available through the toolbar.
70     (MainWindow.init_ids): New instance variable events_bound to keep
71     track of for which commands events have been bound.
72    
73 bh 190 2002-05-28 Bernhard Herzog <[email protected]>
74    
75     * Thuban/UI/menu.py: New module to build and manage menus.
76    
77     * Thuban/UI/mainwindow.py: Remove some unused imports.
78     (MainWindow.__init__, main_menu): move the definition of the main
79     menu from __init__ to the Menu instance main_menu.
80     (MainWindow.build_menu_bar, MainWindow.build_menu): New methods to
81     build the menu bar and sub-menus from a menu description.
82    
83     * Thuban/UI/application.py (ThubanApplication.OnInit): Read the
84     startup file
85     (ThubanApplication.read_startup_files): New method to run
86     ~/.thuban/thubanstart.py
87    
88 bh 192 * Thuban/UI/mainwindow.py (MainWindow.__init__, main_toolbar):
89     Move the toolbar definition to the Menu instance main_toolbar.
90     (MainWindow.build_toolbar): New method to build the toolbar
91     similar to the build_menu methods
92    
93 bh 184 2002-05-23 Bernhard Herzog <[email protected]>
94    
95 bh 186 * Thuban/UI/mainwindow.py (MainWindow.__init__): Fix spelling of
96     layer_outline_color. Fix it in the definition of the command too.
97    
98 bh 184 * Thuban/UI/command.py (Command): Fix typo in doc string
99    
100 bh 182 2002-05-22 Bernhard Herzog <[email protected]>
101    
102     * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Fix a typo
103     in the docstring
104    
105 bh 175 2002-05-15 Bernhard Herzog <[email protected]>
106    
107 bh 180 * Thuban/Model/layer.py (Layer.open_shapefile): Set bbox to None
108     when the shapefile is empty.
109     (Layer.BoundingBox, Layer.LatLongBoundingBox): Both methods may
110     now return None for empty shapefiles. Update doc-strings.
111    
112     * Thuban/Model/map.py (Map.BoundingBox): Add doc-string. Deal with
113     the layer's bbox being None.
114    
115     * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): Deal with the
116     layer's bbox being None.
117    
118 bh 175 * Thuban/UI/view.py (MapCanvas.shape_selected): Only redraw when
119     necessary.
120     (MapCanvas.__init__): New instance variables, last_selected_layer
121     and last_selected_shape to determine how the selection has
122     changed.
123    
124     * Thuban/UI/tableview.py (TableGrid.__init__): Do not call
125     AutoSizeColumns because it will cause a traversal of the entire
126     table which for large .dbf files will take a very long time.
127    
128 bh 172 2002-05-14 Bernhard Herzog <[email protected]>
129    
130     * Thuban/Model/layer.py (Layer.open_shapefile): Choose a better
131     maximum depth for the tree than shapelib does by default.
132    
133 bh 165 2002-05-10 Bernhard Herzog <[email protected]>
134    
135     * setup.py (py_modules): The shptree modules doesn't have a
136     wrapper, so don't include it in the py_modules
137    
138 bh 163 2002-05-08 Bernhard Herzog <[email protected]>
139    
140     * extensions/shapelib/shptree.c (compare_ints): Make arguments
141     const void * as in the qsort prototype
142     (SHPTreeFindLikelyShapes): Remove some unused variables.
143    
144     * Thuban/UI/view.py (PanTool.MouseMove): Use the bitmap the view
145     maintains to redraw the window during a drag.
146     (MapCanvas.unprojected_rect_around_point): New method to determine
147     a small region around a point for hit-testing.
148     (MapCanvas.find_shape_at): Only test the shapes in a small region
149     around the point.
150    
151     * setup.py: Increment the version to 0.1.2
152    
153     * Thuban/UI/tree.py (SessionTreeCtrl.unsubscribe_all): Remove a
154     debug print and set session to None after unsubscribing
155    
156 bh 146 2002-05-07 Bernhard Herzog <[email protected]>
157    
158 bh 154 * Data/iceland_sample.session, Data/iceland_sample.thuban: Rename
159     the file to have a .thuban extension.
160    
161 bh 152 * Thuban/UI/tree.py (session_channels): New class constant with
162     all the session channels to subscribe to to update the tree
163     (SessionTreeCtrl.session_changed): Remember the session so that we
164     can unsubscribe properly. Use the new class constant to
165     unsubscribe from the old session and subscribe to the new one.
166     (SessionTreeCtrl.unsubscribe_all): New method to unsubscribe all
167     subscriptions of the SessionTreeCtrl.
168     (SessionTreeView.OnClose): Call the tree's unsubscribe_all method.
169    
170     * Thuban/UI/mainwindow.py (MainWindow.__init__): Add the "Show
171     Session Tree" command to the file menu.
172    
173     * Thuban/UI/view.py (MapCanvas.do_redraw): Pass the entire bitmap
174     as update_region to the renderer.
175    
176     * Thuban/UI/renderer.py
177     (ScreenRenderer.layer_ids, ScreenRenderer.draw_shape_layer): The
178     update box is now directly a tuple, not a wxRect anymore.
179    
180     * Thuban/Model/layer.py (Layer.ShapesInRegion): Remove some debug
181     prints.
182    
183     2002-05-07 Bernhard Herzog <[email protected]>
184    
185 bh 146 * setup.py: Add the shptree extension module. See
186     extensions/pyshapelib/ChangeLog for more details.
187    
188     * extensions/shapelib/shpopen.c, extensions/shapelib/shapefil.h,
189     extensions/shapelib/dbfopen.c: Really update to the versions of
190     shapelib 1.2.9. For some reason it wasn't really done on
191     2002-04-11.
192    
193     * extensions/shapelib/shptree.c: Modified version of shptree.c of
194     shapelib 1.2.9. The only real difference is the use of qsort
195     instead of a bubble sort implementation
196    
197     * Thuban/Model/layer.py (Layer.__init__): New instance variable
198     shapetree to hold the shapelib quadtree for the shapefile
199     (Layer.open_shapefile): Create the quad tree.
200     (Layer.ShapesInRegion): New method to return the ids of shapes in
201     a given region using the quad tree.
202    
203     * extensions/thuban/wxproj.cpp (project_points): Fix some typos in
204     comment
205     (draw_polygon_shape): Accept both arcs and polygons.
206     (initwxproj): Use the new PYSHAPELIB_IMPORT_API macro to import
207     the api.
208    
209     * Thuban/UI/renderer.py (MapRenderer.layer_ids): New method to
210     return the shape ids to be rendered in a given layer.
211     (MapRenderer.draw_shape_layer): Call layer_ids to get the list of
212     ids. Use draw_polygon_shape to draw arc shapes as well.
213     (ScreenRenderer.RenderMap): New parameter for the rectangle that
214     has to be updated
215     (ScreenRenderer.layer_ids): Make use of the layer's quadtree by
216     calling it's ShapesInRegion method.
217    
218     * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
219     update_region for the update region.
220     (MapCanvas.OnPaint): Maintain the update region
221     (MapCanvas.do_redraw): Pass the bounding box of the update_region
222     to the renderer when drawing the bitmap. Reset the update_region.
223    
224 bh 129 2002-05-03 Bernhard Herzog <[email protected]>
225    
226 bh 131 * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs,
227     MainWindow.OpenSession): Change the file extension of the session
228     files to .thuban
229    
230 bh 129 * Thuban/Model/session.py (Session.AddMap, forwarded_channels):
231     Move the map channels to be forwarded by the session into the
232 bh 146 class constant with forwarded_channels. Also add
233     LAYER_PROJECTION_CHANGED and LAYER_VISIBILITY_CHANGED to
234     forwarded_channels
235 bh 129
236     * Thuban/Model/base.py (Modifiable.changed): Fix doc-string (a
237     typo and some rewording).
238    
239 bh 126 2002-05-02 Bernhard Herzog <[email protected]>
240    
241     * Thuban/UI/view.py: Keep the temporary bitmap used during drawing
242     around to speed up most redraws:
243     (MapCanvas.__init__): New instance variable bitmap which holds the
244     bitmap
245     (MapCanvas.do_redraw): Redraw self.bitmap if necessary. Use
246     self.bitmap to draw.
247     (MapCanvas.full_redraw): New method to force a full redraw
248     including the bitmap
249     (MapCanvas.SetMap): Subscribe full_redraw instead of redraw to
250     make sure the bitmap is redrawn.
251     (MapCanvas.projection_changed, MapCanvas.set_view_transform,
252     MapCanvas.shape_selected): Call full_redraw instead of readraw to
253     make sure the bitmap is redrawn.
254     (MapCanvas.OnSize): New method to handle size events so that the
255     bitmap can be redrawn.
256    
257 bh 124 2002-04-29 Bernhard Herzog <[email protected]>
258    
259     * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
260     canvas' VIEW_POSITION event
261     (MainWindow.view_position_changed): Handler for VIEW_POSITION.
262     Update the text in the status-bar accordingly.
263    
264     * Thuban/UI/view.py (MapCanvas): Derive from Publisher as well
265     (MapCanvas.__del__): Implement because Publisher.__del__ has to be
266     called.
267     (MapCanvas.__init__): Bind EVT_LEAVE_WINDOW too. Initialize
268     current_position
269     (MapCanvas.set_current_position): New method to set
270     current_position. Issue a VIEW_POSITION event
271     (MapCanvas.CurrentPosition): New public method to return the value
272     of current_position. Should be called when the VIEW_POSITION event
273     is processed.
274     (MapCanvas.OnLeftDown, MapCanvas.OnLeftUp, MapCanvas.OnMotion):
275     Update the position.
276     (MapCanvas.OnLeaveWindow): Set the position to None.
277    
278     * Thuban/UI/messages.py (VIEW_POSITION): New message for the
279     position in the statusbar
280    
281 frank 120 2002-04-26 Frank Koormann <[email protected]>
282    
283     * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
284    
285     2002-04-24 Frank Koormann <[email protected]>
286 frank 118
287     * Resources/Bitmaps/identify.xpm: shadow added
288    
289     * Resources/Bitmaps/fullextent.xpm: new
290    
291 jan 116 2002-04-22 Jan-Oliver Wagner <[email protected]>
292    
293     * Thuban/UI/tree.py (update_tree): added test for None on map bounding box
294    
295 jan 114 2002-04-21 Jan-Oliver Wagner <[email protected]>
296    
297     * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
298    
299     * Thuban/UI/tree.py (update_tree): added added map extent
300    
301     * Thuban/UI/mainwindow.py (_method_command): extended by parameter
302     icon; added map_full_extend as tool
303    
304 jan 107 2002-04-19 Jan-Oliver Wagner <[email protected]>
305    
306     * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
307     saving _new_ sessions
308    
309     * Thuban/Model/session.py (create_empty_session): new session
310     don't have a filename (set to None)
311    
312     * Thuban/UI/tree.py (update_tree): added filename and modified flag
313    
314     * Thuban/Model/load.py (ProcessSession): convert projection
315     parameters from unicode to regular string
316    
317     * Data/iceland_sample.session: Added UTM Zone 26 projection.
318    
319 bh 100 2002-04-11 Bernhard Herzog <[email protected]>
320    
321     * extensions/shapelib/shapefil.h, extensions/shapelib/shpopen.c,
322     extensions/shapelib/dbfopen.c: Update to the versions of shapelib
323     1.2.9
324    
325     * setup.py (Lib.wxproj extension): Don't link shpopen.c and put
326     the pyshapelib directoy into the list of include dirs, so that
327     pyshapelib_api.h can be found.
328    
329     * extensions/thuban/wxproj.cpp (pyshapelib_api): New variable that
330     holds the pyshapelib C-API
331     (draw_polygon_shape, point_in_polygon_shape, shape_centroid): Use
332     pyshapelib_api to access the shapelib functions.
333     (initwxproj): Import the c_api from the shapelib module and
334     initialize pyshapelib_api.
335    
336 bh 89 2002-04-04 Bernhard Herzog <[email protected]>
337    
338 bh 91 * setup.py (thuban_bdist_rpm.initialize_options): Use
339     initialize_options to create the scripts for the rpm.
340    
341 bh 89 * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
342    
343 bh 85 2002-04-03 Bernhard Herzog <[email protected]>
344    
345 bh 87 * setup.py: Increment version to 0.1.1
346    
347 bh 85 * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
348     Layer" and "Remove Layer" commands from the layer menu to the map
349     menu
350    
351 bh 83 2002-02-15 Bernhard Herzog <[email protected]>
352    
353     * Thuban/Model/layer.py (Layer.Shape): list append only takes one
354     argument (python <= 1.5.2 erroneously accepted multiuple
355     arguments)
356    
357 bh 81 2002-02-04 Bernhard Herzog <[email protected]>
358    
359     * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
360     RecordGrid in the identifyview.
361     (IdentifyView.__init__): Use IdentifyGridCtrl instead of
362     IdentifyListCtrl. The grid allows editing of the values.
363    
364     * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
365     implementing a grid for a single row of a thuban table.
366    
367     * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
368     layers by default. Easier to use than the previous default of only
369     searching through the select layer which meant that if no layer
370     was selected, you couldn't select a shape.
371    
372     * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
373    
374     * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
375     stroke_width attribute
376    
377     * Thuban/Model/save.py (save_session): Write the new stroke_width
378     attribute
379    
380     * Thuban/Model/load.py (ProcessSession.startElement): Read the
381     stroke_width attribute
382    
383     * Thuban/Model/layer.py (Layer.__init__): New parameter and
384     instance variable stroke_width
385     (Layer.SetStrokeWidth): Set the stroke_width.
386    
387 bh 72 2002-02-01 Bernhard Herzog <[email protected]>
388    
389     * extensions/thuban/wxproj.cpp (project_points): Fix two
390     off-by-one errors in the last loop that joins the various parts
391     together.
392    
393 bh 71 2002-01-14 Bernhard Herzog <[email protected]>
394    
395     * setup.py (data_dist.make_distribution): Fix some typos
396    
397 bh 70 2001-09-18 Bernhard Herzog <[email protected]>
398    
399     * README: Slight tweaking in preparation for the 0.1 release
400    
401     * setup.cfg: Add section for sdist to create both tgz and zip
402     archives
403    
404     * setup.py: increase version number to 0.1
405     (data_dist): New command class for data distribution
406    
407    
408 bh 64 2001-09-14 Bernhard Herzog <[email protected]>
409    
410 bh 70 * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
411     Handle the case of no layer (i.e. layer is None) properly.
412    
413     * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
414     Set the initial selection of the combo boxes to reflect the
415     projection we're starting with in a way that works on windows,
416     too.
417    
418 bh 64 * Thuban/Lib/connector.py (Connector.print_connections): Print the
419     puiblisher's ids in hex to make it easier to compare them to the
420     standard repr of python methods
421    
422     * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
423     messages
424    
425 bh 59 2001-09-13 Bernhard Herzog <[email protected]>
426    
427 bh 64 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
428     deselect the layer if no layer is selected
429    
430 bh 59 * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
431     idle time when there actually is something to draw. If there's
432     nothing to draw simply clear the window
433     (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
434     (MapCanvas.SetMap): force a redraw in all cases because
435     FitMapToWindow doesn't always do it.
436     (MapCanvas.ZoomFactor): Add an optional parameter, center, to
437     specify the point to move into the center of the window
438     (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
439     dragged, zoon in/out by a factor of 2
440 bh 64 (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
441     index, i.e. reversed drawing order) so that objects appearing to
442     be in from of others are selected first. This is probably mostly
443     relevant for point shapes where the symbols used may overlap
444 bh 59
445     * Thuban/Model/session.py (create_empty_session): Unset the
446     modified bit before returning it
447    
448     * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
449     create_empty_session session to create the new, empty session.
450    
451     * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
452     the tool bitmaps.
453     (MainWindow.OnClose, MainWindow.save_modified_session): Separate
454     the code that asks whether the session should be saved into the
455     new method save_modified_session.
456     (MainWindow.OpenSession, MainWindow.NewSession): Use the new
457     method to save modified session here too.
458    
459 bh 55 2001-09-11 Bernhard Herzog <[email protected]>
460    
461     * setup.py (InnoIconItem): fix typo
462    
463     (thuban_bdist_inno.run):
464     (bdist_inno.run): Move the decision not to create symlinks on
465     non-nt platforms to thuban_bdist_inno and do it unconditinally
466     since we never want to create the symlinks here
467    
468 bh 48 2001-09-10 Bernhard Herzog <[email protected]>
469    
470 bh 53 * Thuban/UI/mainwindow.py (MainWindow.IdentifyTool): Popup the
471     identify view immediately
472    
473     * Thuban/UI/controls.py: New file with two classes RecordListCtrl
474     and SelectableRecordListCtrl that implement the code shared by the
475     identify view and the label dialog
476    
477     * Thuban/UI/identifyview.py (IdentifyListCtrl): Derive from the
478     new class RecordListCtrl
479    
480     * Thuban/UI/labeldialog.py (LabelDialog.OnOK): Check whether the
481     return value of GetValue is None instead of using it as a boolean
482     directly so that Zero numbers are handled properly.
483     (LabelListCtrl): Derive from the new class
484     SelectableRecordListCtrl
485    
486 bh 48 * Thuban/UI/proj4dialog.py (Proj4Dialog.__init__):
487     (Proj4Dialog.dialogLayout): Make the window resizable and set the
488     size of the text control explicitly to make the sizers work on
489     both Windows and X.
490    
491 bh 44 2001-09-07 Bernhard Herzog <[email protected]>
492    
493     * Thuban/UI/view.py (MapCanvas.find_shape_at):Add a new parameter
494     that can limit the search to the currently selected layer.
495     (MapCanvas.SelectShapeAt): Make sure that the currently selected
496     layer stays selected even when no shape is found
497 bh 46 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
498     height do nothing (avoids zero division errors)
499 bh 44
500 bh 32 2001-09-06 Bernhard Herzog <[email protected]>
501    
502 bh 42 * Thuban/UI/tree.py (SessionTreeCtrl, SessionTreeView.__init__):
503     Correct the spelling of SessionTreeCtrl. dabbrev is too damn
504     convenient :-)
505     (SessionTreeCtrl.__init__, SessionTreeCtrl.update_tree): Introduce
506     a new instvar layer_to_item to map layers to tree items
507     (SessionTreeCtrl.layer_selected): Select the appropriate tree item
508     to match the current selection in the interactor
509    
510 bh 40 * Thuban/UI/interactor.py (Interactor.SelectedLayer):
511     (Interactor.HasSelectedLayer): New methods to query the current
512     selection
513    
514     * Thuban/UI/mainwindow.py (MainWindow.current_layer):
515     (MainWindow.has_selected_layer): Simply call the appropriate
516     interactor method
517    
518     * Thuban/UI/mainwindow.py (MainWindow.__init__):
519     (MainWindow.LayerShowTable):
520     (MainWindow.identify_view_on_demand): Store the interactor in an
521     instvar and use that reference instead of going through main.app
522    
523     * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
524     * Thuban/UI/application.py (ThubanApplication.OnInit):
525     * Thuban/UI/main.py (main): Create the session tree view in main
526     with the new mainwindow method ShowSessionTree and not directly
527     the application's OnInit method
528    
529     * Thuban/UI/tree.py (myTreeCtrlPanel):
530     (SessioinTreeCtrl): Rename to SessioinTreeCtrl and turn it into a
531     TreeCtrl isntead of a panel. This affects most method since we now
532     refer to self instead of self.tree
533     (SessionTreeView): New class implementing a non-modal dialog
534     showing the session tree.
535    
536 bh 35 * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Pass the
537     layer to the tableview dialog.
538    
539     * Thuban/UI/tableview.py: Add some doc-strings
540     (TableGrid):
541     (TableGrid.OnRangeSelect):
542     (TableGrid.OnSelectCell):
543     (TableFrame.__init__):
544     (TableFrame.row_selected):
545     Selecting rows in the grid view now updates the selected shapes
546     through the TableFrame. To achieve this we derive TableGrid from
547     Publisher and introduce the message type ROW_SELECTED which the
548     TableFrame subscribes to and which is issued by OnRangeSelect and
549     OnSelectCell
550    
551     (DataTable.SelectRow): Removed because it's no longer needed in
552     the row/shape selection scheme
553    
554 bh 32 * Thuban/UI/dialogs.py: New file implementing common classes for
555     dialogs
556    
557     * Thuban/UI/tableview.py (TableGrid.__init__): Don't subscribe to
558     the SELECTED_SHAPE message anymore. This is now handled by the
559     parent.
560     (TableGrid.select_shape): Only update the selection if the shape
561     is not None.
562     (TableFrame): Inherit from the new NonModalDialog class.
563     (TableFrame.__init__, TableFrame.select_shape): Handle the
564     SELECT_SHAPE message.
565     (TableFrame.OnClose): Extend the inherited method to unsubscribe
566     SELECT_SHAPE
567    
568     * Thuban/UI/mainwindow.py (MainWindow.init_dialogs):
569     (MainWindow.add_dialog):
570     (MainWindow.dialog_open):
571     (MainWindow.remove_dialog):
572     (MainWindow.get_open_dialog): New methods to maintain a dictionary
573     of opened non-modal dialogs.
574    
575     (MainWindow.__init__): Initialize the new non-modal dictionary
576     management code
577     (MainWindow.LayerShowTable): maintain separate dialogs for each
578     table using the non-modal dialog management code to only open a
579     view once for each table.
580    
581     (MainWindow.IdentifyTool):
582     (MainWindow.__init__):
583     (MainWindow.identify_view_on_demand): Don't open the identify view
584     in IdentifyTool anymore. This will be done automatically by the
585     new method identify_view_on_demand which handles the
586     SELECTED_SHAPE message so that the identify view will be opened on
587     demand
588    
589     * Thuban/UI/identifyview.py (IdentifyListCtrl.__init__): Remove
590     the interactor argument. The SELECTED_SHAPE message is now handled
591     by the parent.
592     (IdentifyView.__init__): Add the interactor argument so that we
593     can handle the SELECTED_SHAPE message here
594     (IdentifyView.selected_shape): New method to handle the
595     SELECTED_SHAPE messages
596    
597     * Thuban/UI/identifyview.py (IdentifyView): Derive from the new
598     NonModalDialog class
599     (IdentifyView.OnClose): Extend the inherited version to
600     unsubscribe SELECT_SHAPE
601    
602     * Thuban/Model/session.py (Session.UnsetModified): Remove debug prints
603    
604 bh 26 2001-09-05 Bernhard Herzog <[email protected]>
605    
606     * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
607    
608     * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
609     interactor to pass through to the MapCanvas
610    
611     * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
612     argument to the MainWindow constructor to get rid of the ugly hack
613     that made main.app available early just so that the mapcanvas
614     could access the interactor object.
615    
616 bh 19 2001-09-04 Bernhard Herzog <[email protected]>
617    
618 bh 22 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): New method
619     that runs a modal message box
620     (MainWindow.OnClose): Use the new method
621     (MainWindow.RemoveLayer): Just do nothing in case no layer is
622     selected. The command should be grayed out anyway, so there's no
623     need to pop up a message box.
624     (MainWindow.AddLayer): Pop up a message box with an error message
625     if the shape file can't be opened
626    
627     * Thuban/Model/layer.py (Layer.__init__): Open the shapefile
628     immediately. This will cause an exception in case the file can't
629     be opened and we can display an appropriate message.
630    
631 bh 19 * MANIFEST.in: Add extensions/pyprojection/LICENSE
632    
633     * setup.py (thuban_bdist_rpm): New class implementing a Thuban
634     specific bdist_rpm command.
635    
636     * Thuban/UI/main.py: Catch ImportError exceptions when importing
637     the locale module because it may not be available on some
638     installations.
639    
640     * extensions/pyprojection/LICENSE: Copy of the license text in
641     Projection.i. Having it in a separate file makes it easier to
642     refer to license text in e.g. RPMs
643    
644 bh 18 2001-09-03 Bernhard Herzog <[email protected]>
645    
646 bh 19 * setup.py: use wx-config instead of wxgtk-config because it's
647     more generic
648    
649     * setup.py (ThubanInstall.get_outputs): Add the symlink in
650     <prefix>/bin to the outputs
651     (ThubanInstall.link_file): New method to link files. We need this
652     because the standard copy_files refuses to link non-existing
653     files.
654     (ThubanInstall.run): Remove the leading install root from the
655     script filename if an install root was specified and use the new
656     link_file method
657    
658 bh 18 * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
659     the window when the first layer is added to the map.
660    
661     * setup.py (ThubanInstall.run): Honor the build root (self.root)
662     when linking thuban.py to <prefix>/bin
663    
664 bh 16 2001-08-31 Bernhard Herzog <[email protected]>
665    
666     * setup.py: In the setup call, the install parameters shouldn't
667     have trailing slashes because distutils on non-posix platforms
668     doesn't like that. The same applies to other directories like
669     "Resources/Bitmaps"
670    
671     In the configuration section for nt, move the wxWindows directory
672     optins into the part clearly marked as editable.
673    
674     (InstallLocal.initialize_options):
675     (InstallLocal.user_options): remove the currently unused debug
676     flag
677     (thuban_build_py.find_all_modules): Add this method so that it
678     works for our case of having packages and modules in one
679     distribution as well.
680     (ThubanInstall.initialize_options):
681     (ThubanInstall.finalize_options):
682     (ThubanInstall.user_options):
683     (ThubanInstall.boolean_options): Add new options, do-symlink and
684     extra files. Since these are the first ThubanInstall specific
685     options, override user_options and boolean_options
686     (ThubanInstall.run): Honor the new do-symlink and extra-files
687     options.
688     (ThubanInstall.get_outputs): Add to override the base-class's
689     version and add the extra-files to the outputs
690     (bdist_inno): New class for windows distributions with Inno Setup
691     (InnoIconItem): Helper class for bdist_inno
692     (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
693     this together with the appropriate parameters, to the setup call.
694    
695     * setup.cfg (bdist_inno): added new section for the inno setup
696     installer
697    
698     * Thuban/UI/tree.py (myTreeCtrlPanel.__init__): New inst var
699     changing_selection to avoid recursive selection events when
700     modifying the selection in response to a selection event.
701     (myTreeCtrlPanel.normalize_selection): Set the new inst var when
702     changing the tree's selection.
703     (myTreeCtrlPanel.OnSelChanged): Only normalize the selection when
704     we're not being called indirectly from normalize_selection.
705    
706     * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): Call
707     event.Check only if the command is actuall checkable.
708     (MainWindow.__init__): Call the toolbar's Realize method to make
709     sure that the items are actually shown
710    
711 bh 7 2001-08-28 Bernhard Herzog <[email protected]>
712    
713 bh 9 * setup.py: Fix some doc strings
714    
715 bh 7 * ChangeLog: started
716    

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26