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

Legend:
Removed from v.228  
changed lines
  Added in v.448

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26