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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 237 by bh, Tue Jul 23 16:53:35 2002 UTC revision 447 by jonathan, Thu Feb 27 16:05:51 2003 UTC
# Line 1  Line 1 
1    2003-02-27  Jonathan Coles   <[email protected]>
2    
3            * Thuban/common.py: Moved color conversion functions into
4            Thuban/UI/common.py.
5            (Str2Num): Now converts the float (not the string) to a long/int
6            so that an exception isn't thrown.
7    
8            * Thuban/UI/common.py: Common functions used in several UI modules
9    
10            * Thuban/Model/classification.py: Changed the class hierarchy
11            so that a Classification consists of Groups which return
12            Properties when a value matches a Group.
13    
14            * Thuban/Model/layer.py: Fixed name resolution problem.
15    
16            * Thuban/Model/load.py: Use new Classification and Group functions.
17    
18            * Thuban/Model/save.py (Saver.write_attribs): Fixes a test case
19            failure.
20            (Saver.write_classification): Use new Classification and Group
21            functions.
22    
23            * Thuban/UI/classifier.py: Changes to use new Classification and Group
24            functions. Fix to create a tuple with a single value instead of
25            simply returning the value.
26    
27            * Thuban/UI/renderer.py: Use new Classification and Group functions.
28            Use common.py functions.
29    
30            * Thuban/UI/tree.py: Use common.py functions.
31            
32            * test/test_classification.py: Use new Classification and Group
33            classes.
34    
35    2003-02-24  Jonathan Coles   <[email protected]>
36    
37            * Thuban/common.py (Color2wxColour, wxColour2Color): Conversion
38            functions from Thuban color objects to wxWindow colour objects.
39    
40            * Thuban/Model/classification.py (Classification): Renamed
41            GetProperties() to GetClassData(). Used the new iterator
42            in TreeInfo().
43            (ClassIterator): Iterator implementation to iterate over the
44            ClassData objects in a classification object.
45    
46            * Thuban/Model/save.py (Saver.write_classificaton): Uses
47            the new iterator to save the classification information.
48    
49            * Thuban/UI/classifier.py (SelectPropertiesDialog): Support
50            for changing the stroke and fill colors and previewing the
51            changes.
52    
53            * Thuban/UI/mainwindow.py (MainWindow.OpenSession,
54            MainWindow.SaveSessionAs): Text string changes so the dialogs
55            have more meaningful titles.
56    
57            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Change
58            Classification method name from GetProperties to GetClassData.
59    
60            * Thuban/UI/view.py (MapCanvas.find_shape_at): Use method calls
61            instead of accessing now non-existent class variables.
62    
63    2003-02-24  Bernhard Herzog  <[email protected]>
64    
65            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Remove
66            unneeded Shape() call. Rendering is substantially faster without
67            it and it avoids some problems with broken shape files.
68    
69    2003-02-20  Frank Koormann   <[email protected]>
70    
71            Force minimal size of identify and label dialogs. The autosizing
72            looked too ugly.
73    
74            * Thuban/UI/controls.py (RecordListCtrl): Set minimal width for columns.
75            * Thuban/UI/labeldialog.py (LabelDialog.dialog_layout):
76            Set size of listctrl.
77            * Thuban/UI/identifyview.py (IdentifyView.__init__):
78            Set size of dialog.
79    
80    2003-02-19  Jonathan Coles   <[email protected]>
81    
82            * test/test_classification.py, test/test_layer.py,
83            test/test_load.py, test/test_map.py, test/test_session.py:
84            Updated the tests to use the new functions that are in the
85            respective classes.
86    
87            * Thuban/Model/classification.py (Classification):
88            Uses the new ClassData* classes. Modification messages are
89            passed up to the parent layer (if it exists).
90            (ClassData): New class to encapsulate the common data in each
91            classification property.
92            (ClassDataDefault): Represents the Default class. data.
93            (ClassDataPoint): Represents a single class. data point
94            (ClassDataRange): Represents a class. range
95            (ClassDataMap): Represents a class. map (unused).
96    
97            * Thuban/Model/color.py: Added Color.None to represent something
98            with no color. Color.Black represents the color black.
99            (NoColor): Helper class derived from Color to represent something
100            with no color.
101    
102            * Thuban/Model/layer.py (Layer): Removed references to fill, stroke,
103            stroke_width attributes. Made the 'classification' attribute private.
104            New methods for setting/getting the classification.
105    
106            * Thuban/Model/load.py (ProcessSession): Use new methods on Layer
107            to get the classifcation and use the new ClassData* classes to
108            hold the classification data. Use Str2Num to convert numbers
109            properly.
110    
111            * Thuban/Model/save.py (Saver): Use new Color and Classification
112            methods
113    
114            * Thuban/UI/classifier.py (ClassGrid): New class to represent a
115            custom grid.
116            (ClassTable): Support for editing Values and Labels and for
117            changing what type (point or range) of data is stored in each
118            property based on how the user enters the data.
119            (Classifier): Support for saving the new classifications and
120            launching the dialog to edit a property.
121            (SelectPropertiesDialog): New class for editing the visual
122            properties of a classification (stroke color, width, and fill color)
123            (ClassPreviewer): Took the Draw method from ClassRenderer and
124            made most of it into this new class. Intend to use this class in
125            the SelectPropertiesDialog for previewing changes.
126    
127            * Thuban/UI/renderer.py: Use new Color and Classification methods.
128    
129            * Thuban/UI/tree.py: Formatting changes.
130    
131            * Doc/thuban.dtd: Add 'label' element
132    
133            * Thuban/common.py: New. Contains common routines used throughout
134            the code.
135            (Str2Num): Takes a string and converts it to the "best" type of
136            number.
137    
138    2003-02-14  Bernhard Herzog  <[email protected]>
139    
140            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Make sure that the
141            dragging flag is always set to 0 even when the tool implementation
142            raises an exception
143    
144    2003-02-11  Bernhard Herzog  <[email protected]>
145    
146            * Thuban/UI/application.py (ThubanApplication.splash_screen): New
147            method to create a splash screen.
148            (ThubanApplication.ShowMainWindow): New. Show the main window.
149            Needed so the splash screen can display the mainwindow
150            (ThubanApplication.OnInit): Call the
151            new splash_screen method to determine whether the application
152            should display a splash screen. If it displays a splash screen do
153            not immediately show the main window.
154    
155    2003-02-11  Jonathan Coles  <[email protected]>
156    
157            * Thuban/Model/classification.py: Added import line to fix
158            feature conflicts between running on python2.2 and python2.1.
159    
160            * Thuban/UI/classifier.py (ClassTable): Didn't need to hang
161            onto the clinfo parameter, so removed the deepcopy().
162    
163    2003-02-10  Jonathan Coles  <[email protected]>
164    
165            * Thuban/Model/save.py (Saver.open_element, Saver.close_element):
166            Added element_open variable to track opening and closing of tags
167            so that tags that don't span more than one line are closed with
168            /> instead of </tag_name>. Use the GetDefault*() methods of
169            the Classification class.
170    
171            * Thuban/Model/classification.py (Classificaton): Added set and
172            get methods for the default data. The class also takes a layer
173            reference so that modification messages can be sent. Fixed the
174            methods to use the new ClassData class.
175            (ClassData): New class to encapsulate the classification data
176    
177            * Thuban/Model/layer.py (Layer): Remove the
178            Set[Fill|Stroke|StrokeWidth]() methods. Code should call the
179            SetDefault*() methods on the layer's classification object.
180            (Layer.__init__): Use the new SetDefault*() methods in the
181            Classification class.
182    
183            * Thuban/Model/load.py (ProcessSession): Use the new ClassData
184            object instead of a dictionary.
185    
186            * Thuban/UI/classifier.py (ClassRenderer): New class to
187            draw the classifications in the dialog box's table.
188            (Classifier): Modified to use the ClassRenderer class.
189    
190            * Thuban/UI/mainwindow.py (MainWindow): Use the SetDefault*()
191            methods of the Classification class.
192    
193            * Thuban/UI/renderer.py (MapRenderer): Use the Get*() methods
194            of the ClassData class.
195    
196            * test/test_classification.py, test/test_layer.py,
197            test/test_map.py, test/test_session.py: Fix the tests to work
198            with the above code changes.
199    
200    2003-02-03  Jonathan Coles  <[email protected]>
201    
202            * Thuban/Model/classification.py (Classification): Added getNull()
203            to return the NullData reference
204    
205            * Thuban/Model/layer.py (Layer.SetFill, Layer.SetStroke,
206            Layer.SetStrokeWidth): Modified these functions to change the
207            null data in the classification rather than keep these values
208            directly in the Layer class. Menu options to change these values
209            work again.
210    
211    2003-01-28  Jonathan Coles  <[email protected]>
212    
213            * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.
214            Fixed crashing problem on some systems. Dialog box shows
215            classification data.
216    
217            * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing
218            Colors in the tree view.
219    
220            * Thuban/Model/layer.py (Layer.TreeInfo): Added a call to build
221            the tree info for classifications. Commented out unnecessary lines.
222    
223            * Thuban/Model/classification.py (Classification.TreeInfo): New
224            function to add information about the classification into the
225            tree view.
226    
227    2003-01-27  Jan-Oliver Wagner <[email protected]>
228    
229            * Thuban/__init__.py (_): New.
230    
231            * Thuban/Model/classification.py, Thuban/Model/extension.py,
232            Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
233            Thuban/Model/session.py, Thuban/UI/application.py,
234            Thuban/UI/classifier.py, Thuban/UI/context.py, Thuban/UI/controls.py,
235            Thuban/UI/identifyview.py, Thuban/UI/labeldialog.py,
236            Thuban/UI/mainwindow.py, Thuban/UI/menu.py, Thuban/UI/proj4dialog.py,
237            Thuban/UI/renderer.py, Thuban/UI/tree.py, Thuban/Lib/connector.py,
238            Thuban/Lib/fileutil.py: Replace user string by _() for i18n.
239    
240    2003-01-27  Jonathan Coles  <[email protected]>
241    
242            * Thuban/Model/layer.py: Classification initialization calls.
243    
244            * Thuban/Model/classification.py: Created class to encapsulate
245            a layer classification. Supports specific data points and
246            ranges.
247    
248            * Thuban/Model/load.py: Added support for loading classification
249            information.
250    
251            * Thuban/Model/save.py: Added support for saving classification
252            information.
253    
254            * Thuban/UI/classifier.py: Initial class for a dialog box for
255            specifying classification information.
256    
257            * Thuban/UI/mainwindows.py: Support for opening the classifier
258            dialog.
259    
260            * Thuban/UI/renderer.py: Support for drawing a layer with the
261            classification information.
262    
263            * Data/iceland_sample_class.thuban: iceland_sample with
264            classification data.
265    
266            * test/test_classification: Tests for the Classification class.
267    
268    2002-12-09  Bernhard Herzog  <[email protected]>
269    
270            * test/test_command.py: New. Tests for the command classes.
271    
272            * Thuban/UI/command.py (ToolCommand): New class for tool commands.
273            (Command.IsTool): New method to distinguish between command
274            switching tools and other commands.
275    
276            * Thuban/UI/view.py (MapCanvas.SelectTool): New method to select
277            the tool to avoid direct assignments to instance variables
278            (MapCanvas.ZoomInTool, MapCanvas.ZoomOutTool, MapCanvas.PanTool)
279            (MapCanvas.IdentifyTool, MapCanvas.LabelTool): Use SelectTool to
280            change the tool
281    
282            * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): If an
283            active tool's command turns insensitive, disable the tool.
284            (_tool_command): Use the new ToolCommand class
285    
286            * Examples/simple_extensions/simple_tool.py (simple_tool): Use the
287            SelectTool method to change the tool
288            (iconfile): Use the ToolCommand class
289    
290    2002-12-03  Bernhard Herzog  <[email protected]>
291    
292            * Thuban/UI/tree.py (SessionTreeCtrl.normalize_selection): Handle
293            the case of selected items that are not children of Layers or Maps
294            properly. Previously this bug would trigger an assertion in
295            wxWindows.
296    
297    2002-11-06  Frank Koormann  <[email protected]>
298    
299            * Thuban/UI/mainwindow.py: Altered the order of tools in the
300            toolbar: First now are all navigation tools (Zoom In/Out, Pan,
301            Full Extent).
302    
303    2002-10-23  Bernhard Herzog  <[email protected]>
304    
305            * setup.py (setup call): version now 0.1.3
306    
307            * MANIFEST.in: Add the files in test/
308    
309            * test/README: Add note about tests requiring the iceland data
310    
311            * Thuban/UI/mainwindow.py (MainWindow.About): Add 2002 to
312            copyright notice.
313    
314    2002-10-18  Bernhard Herzog  <[email protected]>
315    
316            * test/test_map.py
317            (TestMapWithContents.test_projected_bounding_box): Use an explicit
318            epsilon.
319    
320            * test/support.py (FloatComparisonMixin.assertFloatEqual)
321            (FloatComparisonMixin.assertFloatSeqEqual): give a more useful
322            message if the assertion fails and don't return the return value
323            of self.assert_. In assertFloatSeqEqual the return meant that not
324            all items of the sequence were compared.
325    
326    2002-09-20  Bernhard Herzog  <[email protected]>
327    
328            * test/test_fileutil.py: New. Test cases for Thuban.Lib.fileutil
329    
330            * Thuban/Lib/fileutil.py: Fixup some whitespace and typos
331    
332            * test/test_map.py (TestMapWithContents.test_tree_info): Create
333            the string with the bounding box on the fly because of platform
334            differences in the way %g is handled.
335    
336            * test/test_layer.py (TestLayer.test_empty_layer): Create an empty
337            DBFfile too because Thuban layers can't yet cope missing DBF
338            files.
339    
340    2002-09-20  Bernhard Herzog  <[email protected]>
341    
342            * test/test_menu.py: Use initthuban instead of
343            add_thuban_dir_to_path to initialize Thuban.
344    
345            * test/support.py (FloatComparisonMixin.assertFloatEqual): New.
346            Mixin class for float comparisons
347            (SubscriberMixin): New. Mixin class to test messages sent through
348            the Connector class
349    
350            * test/README: Fix a typo and add the -v flag to the command for
351            individual tests
352    
353            * test/test_session.py: New. Test cases for Thuban.Model.session
354    
355            * test/test_proj.py: New. Test cases for Thuban.Model.proj
356    
357            * test/test_map.py: New. Test cases for Thuban.Model.map
358    
359            * test/test_layer.py: New. Test cases for Thuban.Model.layer
360    
361            * test/test_label.py: New. Test cases for Thuban.Model.label
362    
363            * test/test_connector.py: New. Test cases for Thuban.Lib.connector
364    
365            * test/test_color.py: New. Test cases for Thuban.Model.color
366    
367            * test/test_base.py: New. Test cases for Thuban.Model.base
368    
369    2002-09-13  Bernhard Herzog  <[email protected]>
370    
371            * Thuban/Model/session.py (Session.forwarded_channels): Forward
372            the CHANGED channel too.
373    
374            * Thuban/Model/map.py (Map.forwarded_channels): Forward the
375            CHANGED channel too.
376            (Map.__init__): Call the Modifiable constructor as well.
377    
378            * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
379            event if the modified flag changes.
380            (Modifiable.changed): Tweak the doc-string.
381    
382            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
383            (MainWindow.set_position_text): Put the code that puts the text
384            with the mouse position into the status bar into the new method
385            set_position_text so that it can overwritten in derived classes.
386    
387    2002-09-12  Bernhard Herzog  <[email protected]>
388    
389            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
390            message box on the main window.
391    
392    2002-09-11  Bernhard Herzog  <[email protected]>
393    
394            * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
395            the 'E' because it's less likely to interfere with other menu
396            entries.
397            (MainWindow.build_menu): remove an incorrect comment.
398    
399    2002-09-10  Bernhard Herzog  <[email protected]>
400    
401            * Thuban/UI/mainwindow.py (MainWindow.Map): New.
402            (_tool_command): Add sensitive parameter
403            (_has_visible_map): Sensitivity callback to tools and other
404            commands that require a visible map. Use it in map_zoom_in_tool,
405            map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
406            and map_full_extent
407    
408    2002-09-06  Bernhard Herzog  <[email protected]>
409    
410            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
411            VIEW_POSITION
412    
413    2002-09-04  Frank Koormann  <[email protected]>
414    
415            * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
416    
417    2002-09-02  Bernhard Herzog  <[email protected]>
418    
419            * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
420            wxWindows already and our implementation doesn't work correctly
421            with wxGTK 2.3:
422            (MapCanvas.__init__): Remove the instance variable
423            (MapCanvas.OnPaint): Always call do_redraw when there's a map to
424            be drawin
425            (MapCanvas.OnIdle): Removed.
426    
427            * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
428            a parameter to determine the size of the rectangle.
429            (MapCanvas.find_shape_at): Create the box around the point on a
430            layer by layer basis and make the size depend on the shape type.
431            This solves a problem with the selection of point shapes at the
432            border of the layer's bounding box
433    
434    2002-08-30  Bernhard Herzog  <[email protected]>
435    
436            * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
437            for the sensitivity  of remove layer.
438            (_can_remove_layer): New. Sensitivity callback for remove layer
439            (Command layer_remove): Use _can_remove_layer
440    
441            * Thuban/Model/map.py (Map.CanRemoveLayer): New method to
442            determine whether a given layer can be deleted.
443    
444            * Thuban/UI/view.py (MapCanvas.__init__, MapCanvas.OnPaint)
445            (MapCanvas.do_redraw): Get rid of the unused update_region
446            instance variable
447    
448            * Thuban/UI/view.py: Add/update some doc-strings.
449    
450            * test/: new subdirectory with a bunch of unit tests.
451    
452            * test/README, test/test_table.py, test/test_save.py,
453            test/test_menu.py, test/test_load.py: Initial set of tests and
454            brief instructions on how to run them
455    
456    2002-08-29  Bernhard Herzog  <[email protected]>
457    
458            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
459            arcs with multiple parts.
460    
461            * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
462            Handle degenrate rectangles.
463    
464            * Thuban/Model/table.py: Make writing records work correctly:
465            (Table.__init__): Keep track of whether the DBF is open for
466            writing
467            (Table.write_record): Open the DBF file for writing when necessary
468    
469    2002-08-27  Bernhard Herzog  <[email protected]>
470    
471            * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
472            dbf files only for reading by default. Use a new writable dbf
473            object for writing.
474    
475    2002-08-26  Bernhard Herzog  <[email protected]>
476    
477            * Thuban/UI/mainwindow.py: Refactor the context creation:
478            (MainWindow.Context): New method to return a context
479            (MainWindow.invoke_command, MainWindow.update_command_ui): Use the
480            new method
481    
482            * Thuban/UI/tableview.py (TableGrid, LayerTableGrid): Split the
483            layer table specific code from TableGrid into LayerTableGrid
484            (TableFrame, LayerTableFrame): Split the layer table specific code
485            from TableFrame into LayerTableFrame
486            (LayerTableGrid.select_shape): Remove a debug print
487    
488            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Use the
489            LayerTableFrame
490    
491    2002-08-23  Bernhard Herzog  <[email protected]>
492    
493            * Thuban/Model/layer.py (Layer.__init__): Make sure we have an
494            absolute filename.
495    
496    2002-08-22  Bernhard Herzog  <[email protected]>
497    
498            * Thuban/Model/table.py (Table.write_record): New method to write
499            records.
500            (Table.__init__): Open the DBF file for writing too.
501    
502            * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
503            into the underlying table.
504    
505            * extensions/shapelib/shapefil.h (DBFCommit),
506            extensions/shapelib/dbfopen.c (DBFCommit): New API function to
507            commit any changes made to the DBF file.
508    
509            * Thuban/UI/mainwindow.py (make_check_current_tool)
510            (_tool_command): Put the code that generates the "checked"
511            callback into a separate function so that we can reuse it
512            elsewhere
513    
514            * Thuban/Model/save.py (Saver): New class to handle serializing a
515            session into an XML file. The main reason to introduce a class is
516            that applications built on Thuban can derive from it so that they
517            can save additional information in a session file.
518            (save_session): Delegate almost all the work to the Saver class.
519            Rename the filename argument to file because it may be a file like
520            object now.
521    
522            * Thuban/Model/load.py: Get rid of the Python 1.5.2 compatibility
523            code. Remove the little test code which would be executed when the
524            module is run as a script which didn't work anymore since it can't
525            import the other Thuban modules.
526            (ProcessSession, load_session): Refactor the ProcessSession to
527            have one method for each element start and end tag so that derived
528            classes can easily override the processing of individual tags.
529            Also, always parse with namespaces enabled because applications
530            built on top of Thuban will likely use namespaces if they extend
531            the session file format.
532    
533    2002-08-21  Bernhard Herzog  <[email protected]>
534    
535            * setup.py (ThubanInstall.run): Don't repr install_lib_orig
536            because thubaninit_contents will do it for us.
537    
538    2002-08-16  Jan-Oliver Wagner <[email protected]>
539    
540            * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
541            tree window already open
542    
543    2002-08-15  Bernhard Herzog  <[email protected]>
544    
545            * Thuban/Model/layer.py (Layer.Destroy): Call the unboundd method
546            with self.
547    
548            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Only release the mouse
549            when we have actually captured it.
550    
551            * Thuban/Model/layer.py (Layer.Destroy): New. Explicitly close the
552            shapefile and destroy the table.
553    
554            * Thuban/Model/table.py (Table.Destroy): New. Close the DBF file.
555    
556    2002-08-14  Bernhard Herzog  <[email protected]>
557    
558            * Thuban/UI/controls.py (RecordTable.__init__): Remove the unused
559            instance variable columns
560            (RecordTable.GetTypeName): row and col may be negative in some
561            cases.
562    
563            * setup.py (InstallLocal.initialize_options)
564            (InstallLocal.finalize_options, InstallLocal.user_options): New
565            option create-init-file to build a thubaninit.py when running
566            install_local
567            (InstallLocal.run): Create the thubaninit.py module when requested
568            (thubaninit_contents): Split the template into several parts and
569            create a new function thubaninit_contents that creates the
570            contents of a thubaninit module.
571            (ThubanInstall.run): Use the new function to create the thubaninit
572            module.
573    
574    2002-07-30  Bernhard Herzog  <[email protected]>
575    
576            * Thuban/UI/application.py (ThubanApplication.OnExit): Do some
577            cleanup.
578            (ThubanApplication.MainLoop): Extend to automatically call OnExit.
579    
580            * Thuban/Model/session.py (Session.Destroy): Don't bypass the
581            direct base class' Destroy method.
582    
583            * Thuban/Model/map.py (Map.ClearLayers): New method to delete all
584            layers.
585            (Map.Destroy): Destroy the label_layer as well and call the
586            inherited Desatroymethod first so that no more messages are
587            issued.
588            (Map.RaiseLayer, Map.LowerLayer): Only issue LAYERS_CHANGED
589            message if the stacking order actually has changed. Add
590            doc-strings.
591            (Map.BoundingBox): Correct the doc-string.
592            (Map.AddLayer, Map.RemoveLayer, Map.Layers, Map.HasLayers)
593            (Map.ProjectedBoundingBox, Map.SetProjection): Add doc-strings.
594    
595            * Thuban/Model/label.py (LabelLayer.ClearLabels): New to delete
596            all labels.
597    
598    2002-07-29  Bernhard Herzog  <[email protected]>
599    
600            * Thuban/Model/map.py (Map.subscribe_layer_channels)
601            (Map.unsubscribe_layer_channels): Put the code that (un)subscribes
602            to a layer's channels into separate methods.
603            (Map.RemoveLayer, Map.AddLayer): Call the new methods
604            (Map.Destroy): Unsubscribe from a layer's channels before
605            destroying it.
606    
607            * Thuban/UI/view.py (MapCanvas.find_shape_at): Change the
608            selected_layer parameter to searched_layer which is the layer to
609            search in.
610            (MapCanvas.SelectShapeAt): New parameter layer to restrict the
611            search to that layer. Return the selected layer and shape.
612    
613            * Examples/simple_extensions/simple_tool.py (simple_tool): Fix a
614            typo
615    
616    2002-07-24  Bernhard Herzog  <[email protected]>
617    
618            * Thuban/UI/application.py (ThubanApplication.create_session):
619            Extend the doc string.
620            (ThubanApplication.subscribe_session)
621            (ThubanApplication.unsubscribe_session): New methods to
622            subscribe/unsubscribe to/from session channels.
623            (ThubanApplication.SetSession): Call the new methods here.
624            (ThubanApplication.maps_changed, ThubanApplication.set_map):
625            Renamed set_map to maps_changed. Its now a subscriber for
626            MAPS_CHANGED.
627    
628            * Thuban/UI/view.py (ZoomOutTool.MouseUp): Use the correct
629            x-coordinate in case of simple clicks
630    
631            * Thuban/Model/base.py (Modifiable.changed): Apply the args tuple,
632            don't pass it as a parameter
633    
634            * Thuban/Model/session.py (Session.RemoveMap): New
635    
636            * Thuban/UI/mainwindow.py (MainWindow.__init__): Turn the initial
637            window size into a parameter.
638    
639  2002-07-23  Bernhard Herzog  <[email protected]>  2002-07-23  Bernhard Herzog  <[email protected]>
640    
641          * Thuban/UI/menu.py (Menu.item_index): Also search for menus not          * Thuban/UI/menu.py (Menu.item_index): Also search for menus not
# Line 25  Line 663 
663          * Thuban/UI/tree.py: We can now simply subscribe to the session's          * Thuban/UI/tree.py: We can now simply subscribe to the session's
664          CHANGED channel to be informed of changes.          CHANGED channel to be informed of changes.
665          (SessionTreeCtrl.session_channels): Not needed any longer.          (SessionTreeCtrl.session_channels): Not needed any longer.
666          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
667          Only have to (un)subscribe CHANGED          Only have to (un)subscribe CHANGED
668    
669          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
# Line 86  Line 724 
724          * Thuban/Model/layer.py (Layer.TreeInfo),          * Thuban/Model/layer.py (Layer.TreeInfo),
725          Thuban/Model/extension.py (Extension.TreeInfo),          Thuban/Model/extension.py (Extension.TreeInfo),
726          Thuban/Model/map.py (Map.TreeInfo),          Thuban/Model/map.py (Map.TreeInfo),
727          Thuban/Model/session.py (Session.TreeInfo):          Thuban/Model/session.py (Session.TreeInfo):
728          Add TreeInfo methods to implement the new tree view update scheme          Add TreeInfo methods to implement the new tree view update scheme
729    
730  2002-07-16  Bernhard Herzog  <[email protected]>  2002-07-16  Bernhard Herzog  <[email protected]>
# Line 167  Line 805 
805          * setup.py: In the setup call, make sure that the library          * setup.py: In the setup call, make sure that the library
806          directories are under $prefix/lib not directly under $prefix.          directories are under $prefix/lib not directly under $prefix.
807    
808  2002-06-20      Jan-Oliver Wagner <[email protected]>  2002-06-20  Jan-Oliver Wagner <[email protected]>
809    
810          * Thuban/Model/extension.py: new module to handle extension objects.          * Thuban/Model/extension.py: new module to handle extension objects.
811          * Thuban/Model/messages.py: new messages for extensions.          * Thuban/Model/messages.py: new messages for extensions.
# Line 396  Line 1034 
1034          * Thuban/UI/messages.py (VIEW_POSITION): New message for the          * Thuban/UI/messages.py (VIEW_POSITION): New message for the
1035          position in the statusbar          position in the statusbar
1036    
1037  2002-04-26      Frank Koormann <[email protected]>  2002-04-26  Frank Koormann <[email protected]>
1038    
1039          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
1040    
1041  2002-04-24      Frank Koormann <[email protected]>  2002-04-24  Frank Koormann <[email protected]>
1042            
1043          * Resources/Bitmaps/identify.xpm: shadow added          * Resources/Bitmaps/identify.xpm: shadow added
1044    
1045          * Resources/Bitmaps/fullextent.xpm: new          * Resources/Bitmaps/fullextent.xpm: new
           
 2002-04-22      Jan-Oliver Wagner <[email protected]>  
1046    
1047          * Thuban/UI/tree.py (update_tree): added test for None on map bounding box  2002-04-22  Jan-Oliver Wagner <[email protected]>
1048    
1049            * Thuban/UI/tree.py (update_tree): added test for None on map bounding
1050            box
1051    
1052  2002-04-21      Jan-Oliver Wagner <[email protected]>  2002-04-21  Jan-Oliver Wagner <[email protected]>
1053    
1054          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
1055    
1056          * Thuban/UI/tree.py (update_tree): added added map extent          * Thuban/UI/tree.py (update_tree): added added map extent
1057    
1058          * Thuban/UI/mainwindow.py (_method_command): extended by parameter          * Thuban/UI/mainwindow.py (_method_command): extended by parameter
1059          icon; added map_full_extend as tool          icon; added map_full_extend as tool
1060    
1061  2002-04-19      Jan-Oliver Wagner <[email protected]>  2002-04-19  Jan-Oliver Wagner <[email protected]>
1062    
1063          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
1064          saving _new_ sessions          saving _new_ sessions
# Line 521  Line 1160 
1160    
1161          * setup.py: increase version number to 0.1          * setup.py: increase version number to 0.1
1162          (data_dist): New command class for data distribution          (data_dist): New command class for data distribution
           
1163    
1164  2001-09-14  Bernhard Herzog  <[email protected]>  2001-09-14  Bernhard Herzog  <[email protected]>
1165    
1166          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
1167          Handle the case of no layer (i.e. layer is None) properly.          Handle the case of no layer (i.e. layer is None) properly.
1168    
1169          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
1170          Set the initial selection of the combo boxes to reflect the          Set the initial selection of the combo boxes to reflect the
1171          projection we're starting with in a way that works on windows,          projection we're starting with in a way that works on windows,
1172          too.          too.
# Line 638  Line 1276 
1276          (MainWindow.identify_view_on_demand): Store the interactor in an          (MainWindow.identify_view_on_demand): Store the interactor in an
1277          instvar and use that reference instead of going through main.app          instvar and use that reference instead of going through main.app
1278    
1279          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
1280          * Thuban/UI/application.py (ThubanApplication.OnInit):          * Thuban/UI/application.py (ThubanApplication.OnInit):
1281          * Thuban/UI/main.py (main): Create the session tree view in main          * Thuban/UI/main.py (main): Create the session tree view in main
1282          with the new mainwindow method ShowSessionTree and not directly          with the new mainwindow method ShowSessionTree and not directly
1283          the application's OnInit method          the application's OnInit method
# Line 655  Line 1293 
1293          layer to the tableview dialog.          layer to the tableview dialog.
1294    
1295          * Thuban/UI/tableview.py: Add some doc-strings          * Thuban/UI/tableview.py: Add some doc-strings
1296          (TableGrid):          (TableGrid):
1297          (TableGrid.OnRangeSelect):          (TableGrid.OnRangeSelect):
1298          (TableGrid.OnSelectCell):          (TableGrid.OnSelectCell):
1299          (TableFrame.__init__):          (TableFrame.__init__):
# Line 722  Line 1360 
1360  2001-09-05  Bernhard Herzog  <[email protected]>  2001-09-05  Bernhard Herzog  <[email protected]>
1361    
1362          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
1363            
1364          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
1365          interactor to pass through to the MapCanvas          interactor to pass through to the MapCanvas
1366            
1367          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
1368          argument to the MainWindow constructor to get rid of the ugly hack          argument to the MainWindow constructor to get rid of the ugly hack
1369          that made main.app available early just so that the mapcanvas          that made main.app available early just so that the mapcanvas
# Line 772  Line 1410 
1410          (ThubanInstall.run): Remove the leading install root from the          (ThubanInstall.run): Remove the leading install root from the
1411          script filename if an install root was specified and use the new          script filename if an install root was specified and use the new
1412          link_file method          link_file method
1413            
1414          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
1415          the window when the first layer is added to the map.          the window when the first layer is added to the map.
1416    
# Line 809  Line 1447 
1447          (InnoIconItem): Helper class for bdist_inno          (InnoIconItem): Helper class for bdist_inno
1448          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
1449          this together with the appropriate parameters, to the setup call.          this together with the appropriate parameters, to the setup call.
1450            
1451          * setup.cfg (bdist_inno): added new section for the inno setup          * setup.cfg (bdist_inno): added new section for the inno setup
1452          installer          installer
1453    

Legend:
Removed from v.237  
changed lines
  Added in v.447

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26