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

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

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

revision 1705 by jan, Wed Sep 3 07:03:06 2003 UTC revision 1913 by bh, Mon Nov 3 13:55:52 2003 UTC
# Line 1  Line 1 
1    2003-11-03  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/Model/classification.py (Classification.__getattr__)
4            (Classification._compile_classification)
5            (Classification._clear_compiled_classification): New. Methods to
6            manage a 'compiled' representation of the classification groups
7            which is created on demand
8            (Classification.InsertGroup, Classification.RemoveGroup)
9            (Classification.ReplaceGroup): reset the compiled representation
10            (Classification.FindGroup): Use the compiled representation to
11            find the matching group
12            (ClassGroupRange.GetRangeTuple): New. Return the range as a tuple
13    
14    2003-10-31  Bernhard Herzog  <[email protected]>
15    
16            * Thuban/Model/classification.py (Classification.SetDefaultGroup):
17            Send a CLASS_CHANGED message
18            (Classification.RemoveGroup): Send a CLASS_CHANGED message and do
19            not return the removed group since it wasn't used.
20    
21            * test/test_classification.py
22            (TestClassification.test_set_default_group): New. Test the
23            SetDefaultGroup method
24            (TestClassification.test_insert_group): New. Test the InsertGroup
25            method
26            (TestClassification.test_remove_group): New. Test the RemoveGroup
27            method
28            (TestClassification.test_replace_group): New. Test the
29            ReplaceGroup method
30    
31    2003-10-31  Bernhard Herzog  <[email protected]>
32    
33            * test/test_classification.py (TestClassification.setUp):
34            Subscribe to the CLASS_CHANGED messages
35            (TestClassification.tearDown): New. Destroy the classification
36            properly
37            (TestClassification.test_defaults): Add tests for the default line
38            width and whether no messages were sent yet
39            (TestClassification.test_set_default_properties): Add tests for
40            messages and setting the default line width
41            (TestClassification.test_add_singleton)
42            (TestClassification.test_add_range)
43            (TestClassification.test_multiple_groups): Add tests for messages
44    
45    2003-10-31  Bernhard Herzog  <[email protected]>
46    
47            Some more refactoring in preparation for new tests:
48    
49            * test/test_classification.py (TestClassification.setUp): New.
50            Instantiate the classification here. Update the test methods
51            accordingly.
52            (TestClassification.test_multiple_groups): Make sure that the two
53            singletons matching 1 are considered different.
54    
55    2003-10-31  Bernhard Herzog  <[email protected]>
56    
57            * test/test_classification.py (red, green, blue): New. These
58            constants were used in several cases. Update the relevant methods.
59            (TestClassification.test_defaults)
60            (TestClassification.test_set_default_properties)
61            (TestClassification.test_add_singleton)
62            (TestClassification.test_add_range)
63            (TestClassification.test_multiple_groups)
64            (TestClassification.test_deepcopy): New. These were formerly all
65            part of the single method test.
66            (TestClassification.test_deepcopy): Removed.
67            (TestClassIterator): Removed. The test case is now a method of
68            TestClassification since it tests part of the public interface of
69            Classification
70            (TestClassification.test_iterator): New. Used to be
71            TestClassIterator effectively
72    
73    2003-10-31  Jan-Oliver Wagner <[email protected]>
74    
75            GUIfied the functions of the profiling extension.
76    
77            * /Extensions/profiling/__init__.py: New: Init to make this
78            directory a package.
79    
80            * Extensions/profiling/profiling.py: Moved menu entries to
81            the Extensions menu. Applied _() for strings.
82            (profile_screen_renderer): Catch the detailed printout and present
83            it in a dialog.
84            (time_screen_renderer): Raise a dialog to present the result instead
85            of printing it to stdout.
86    
87    2003-10-31  Bernhard Herzog  <[email protected]>
88    
89            * test/test_classification.py (TestClassGroupProperties)
90            (TestClassGroup, TestClassGroupDefault, TestClassGroupRange)
91            (TestClassGroupSingleton, TestClassIterator, TestClassification):
92            Split TestClassification into several classes, one for each class
93            being tested. TestClassification itself now only tests
94            Classification. This split makes changes to the tests a bit easier
95    
96    2003-10-31  Bernhard Herzog  <[email protected]>
97    
98            * Extensions/profiling/profiling.py: New. Extension to measure
99            Thuban performance
100    
101    2003-10-31  Frank Koormann <[email protected]>
102    
103            Added two items to legend popup menu: Remove Layer and Show Layer Table
104    
105            * Thuban/UI/legend.py (LegendPanel._OnRemoveLayer,
106            LegendPanel._OnShowTable): New event handlers, call the corresponding
107            mainwindow methods.
108            (LegendTree._OnRightClick): Added items to popup menu.
109    
110    2003-10-30  Bernhard Herzog  <[email protected]>
111    
112            * Thuban/UI/dialogs.py (ThubanFrame.__init__): Handle
113            EVT_WINDOW_DESTROY
114            (ThubanFrame.OnDestroy): New. Handler for EVT_WINDOW_DESTROY. Does
115            nothing but is convenient for the derived classes.
116    
117            * Thuban/UI/tableview.py
118            (TableFrame.OnDestroy, LayerTableFrame.OnDestroy): New.
119            Unsubscribe the messages here not in OnClose because that might
120            get called multiple times. Fixes RT #2196
121            (TableFrame.OnClose, LayerTableFrame.OnClose): Removed. Not needed
122            anymore.
123    
124            * README: Update the minimum requirement for wxPython. Since we
125            now use the EVT_WINDOW_DESTROY event, we need at least 2.4.0.4,
126            the version in which that was introduced for all platforms
127    
128    2003-10-30  Frank Koormann <[email protected]>
129    
130            * Thuban/UI/join.py (JoinDialog.OnJoin): Wrapped the major parts of
131            the join process in a ThubanBeginBusyCursor, ThubanEndBusyCursor
132            frame.
133    
134    2003-10-30  Jan-Oliver Wagner <[email protected]>
135    
136            Improved APR import extension, added further EPSG definitions
137            and some cleanup regarding string class.
138    
139            * test/test_proj.py (TestProjection.test_get_projection_units_geo):
140            Added test for alias 'longlat'.
141    
142            * Resources/Projections/epsg-deprecated.proj: New. Contains
143            deprecated EPSG definitions.
144    
145            * Extensions/importAPR/odb.py (ODBBaseObject.TreeInfo): Added
146            the variable names for objects.
147    
148            * Extensions/importAPR/apr.py (APR_BLnSym, APR_BMkSym, APR_BShSym): New.
149            Copied from importAPR and provided with documentation.
150    
151            * Extensions/importAPR/importAPR.py (APR_BLnSym, APR_BMkSym, APR_BShSym):
152            Moved to apr.py.
153            (APR_View): Added object ref 'ITheme'.
154    
155            * Thuban/Lib/fileutil.py, Thuban/UI/proj4dialog.py: Replaced string
156            split function by corresponding use of the string class method.
157    
158            * Thuban/Model/xmlwriter.py: Replaced string replace function by
159            corresponding string method.
160    
161    2003-10-29  Bernhard Herzog  <[email protected]>
162    
163            * Thuban/UI/baserenderer.py
164            (BaseRenderer.draw_shape_layer_incrementally): Speed up the
165            special case of a classification that only has the default group
166    
167    2003-10-27  Bernhard Herzog  <[email protected]>
168    
169            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
170    
171            * po/de.po: Update.
172    
173            * Thuban/UI/application.py
174            (ThubanApplication.ShowExceptionDialog): Handle translation of the
175            dialog message properly
176    
177    2003-10-27  Bernhard Herzog  <[email protected]>
178    
179            Rework how localization works so that we use wx's translation
180            functions when running Thuban as a normal application but not when
181            we don't need any UI, such as in the test suite. See the comment
182            in Thuban/__init__.py for details
183    
184            * Thuban/__init__.py (_): Add one level of indirection to make the
185            translation handling more flexible and to make it possible to use
186            either wx's translation services or not.
187            (gettext_identity, translation_function_installed)
188            (install_translation_function): New function to help with this
189    
190            * Thuban/UI/__init__.py: Install the wx specific translation
191            function if it's OK to do that
192    
193            * test/support.py (initthuban): Install a dummy translation
194            function so that importing Thuban.UI doesn't install a wx specific
195            one for which would need to import wxPython
196    
197    2003-10-27  Bernhard Herzog  <[email protected]>
198    
199            * HOWTO-Release: Source archives should be created first and the
200            binary packages should be created from the source archives.
201            There's an official debian package now so there's no need to test
202            the rpm on debian anymore
203    
204    2003-10-27  Bernhard Herzog  <[email protected]>
205    
206            Several rendering changes:
207    
208             - Render the selection into a separate bitmap so that only that
209               bitmap needs to be redrawn when the selection changes
210    
211             - Render incrementally showing previews and allowing interaction
212               before rendering is complete
213    
214             - Update the renderer interface a bit. Most parameters of
215               RenderMap are now parameters of the constructor
216    
217            * Thuban/UI/baserenderer.py (BaseRenderer.__init__): Add the map
218            and the update region as parameters. Update the doc-string
219            (BaseRenderer.render_map_incrementally): New. Generator function
220            to renders the map incrementally
221            (BaseRenderer.render_map): Remove the map argument (it's now in
222            the constructor) and simply iterate over the
223            render_map_incrementally generator to draw the map.
224            (BaseRenderer.draw_shape_layer_incrementally)
225            (BaseRenderer.draw_shape_layer): Renamed to
226            draw_shape_layer_incrementally and changed into a generator that
227            yields True every 500 shapes. Used by render_map_incrementally to
228            render shape layers incrementally
229    
230            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Removed the
231            map and region parameters which are now in the constructor
232            (ScreenRenderer.RenderMapIncrementally): New. Public frontend for
233            the inherited render_map_incrementally.
234            (BaseRenderer.draw_shape_layer): Removed.
235            (ScreenRenderer.draw_selection_incrementally): New. The selection
236            drawing part of the removed draw_shape_layer as a generator
237            (ScreenRenderer.layer_shapes): Update because of the region
238            parameter change
239            (ExportRenderer.__init__): New. Extend the inherited constructor
240            with the destination region for the drawing
241            (ExportRenderer.RenderMap): Removed the map and region parameters
242            which are now in the constructor
243    
244            * Thuban/UI/view.py (MapCanvas.PreviewBitmap): New. Return a
245            bitmap suitable for a preview in a tool
246            (CanvasPanTool.MouseMove): Use the PreviewBitmap method to get the
247            bitmap
248            (MapPrintout.draw_on_dc): Adapt to new renderer interface
249            (MapCanvas.OnPaint): Handle drawing the selection bitmap if it
250            exists
251            (MapCanvas.OnIdle): Update the logic to deal with incremental
252            rendering and the selection bitmap
253            (MapCanvas._do_redraw): Handle the instantiation of the render
254            iterator and the redraws during rendering
255            (MapCanvas._render_iterator): New. Generator to incrementally
256            redraw both bitmaps
257            (MapCanvas.Export): Adapt to new renderer interface.
258            (MapCanvas.full_redraw): Reset the selection bitmap and the
259            renderer iterator too
260            (MapCanvas.redraw_selection): New. Force a redraw of the selection
261            bitmap
262            (MapCanvas.shape_selected): Only redraw the selection bitmap
263    
264            * test/test_baserenderer.py
265            (TestBaseRenderer.test_polygon_no_projection)
266            (TestBaseRenderer.test_raster_no_projection)
267            (TestBaseRenderer.test_point_map_projection)
268            (TestBaseRenderer.test_point_layer_and_map_projection)
269            (TestBaseRenderer.test_point_layer_projection)
270            (TestBaseRenderer.test_point_with_classification): Adapt to new
271            renderer interface
272    
273    2003-10-24  Bernhard Herzog  <[email protected]>
274    
275            * libraries/thuban/wxproj.cpp (draw_polygon_shape)
276            (point_in_polygon_shape, shape_centroid): Raise an exception if
277            the shape can't be read. Previously invalid shape ids would lead
278            to a segfault.
279    
280            * test/test_wxproj.py (TestShapeCentroid.test_invalid_shape_id):
281            New. test whether an exception is raised for invalid shape ids
282    
283    2003-10-24  Jan-Oliver Wagner <[email protected]>
284    
285            * Thuban/Model/proj.py (Projection.GetProjectedUnits): Added 'longlat'
286            as alias for 'latlong'.
287    
288            * Thuban/UI/projdialog.py (ProjFrame.__init__): Added 'longlat'
289            as alias for 'latlong'.
290    
291    2003-10-24  Jan-Oliver Wagner <[email protected]>
292    
293            * Thuban/UI/projdialog.py (ProjFrame.proj_selection_changed): Set
294            the projection even for the UnknownPanel.
295            (UnknownProjPanel.__init__): Define the text and create the textctrl
296            widget.
297            (UnknownProjPanel._DoLayout): Replaced static text widget by the
298            textctrl created in __init__.
299            (UnknownProjPanel.SetProjection): Set the text for the text ctrl
300            including the parameters of the projection.
301            
302    2003-10-24  Jan-Oliver Wagner <[email protected]>
303    
304            * Resources/Projections/epsg.proj: New. This is a list of
305            EPSG codes with parameters for proj. The list has been
306            generated using devtools/create_epsg.py based on the
307            file nad/epsg of the proj 4.4.7 package. Four projection
308            definitions have been deleted as they are not accepted by proj:
309            "CH1903+ / LV95", "Bern 1898 (Bern) / LV03C", "CH1903 / LV03"
310            and "HD72 / EOV".
311    
312    2003-10-22  Bernhard Herzog  <[email protected]>
313    
314            Some more tweaks to the projection dialog which should fix RT
315            #1886.
316    
317            * Thuban/UI/projlist.py (ProjectionList.Destroy): Unsubscribe from
318            the ProjFile's messages and call the base class methods correctly
319            (ProjectionList.SelectProjection): Set the wxLIST_STATE_FOCUSED
320            flag on the newly selected item too. Otherwise some other item is
321            focused and the first time the focus is moved with the keyboard
322            the selection moves in unexpected ways.
323    
324            * Thuban/UI/projdialog.py (ProjFrame.__init__): Do not set the
325            focus on the OK button, only on the projection list. That way the
326            list really has the focus initially
327            (ProjFrame.OnClose): Call the projection list's Destroy method to
328            make it unsubscribe all messages
329    
330    2003-10-21  Bernhard Herzog  <[email protected]>
331    
332            Rework the projection dialog to fix a few bugs, including RT 2166
333            and most of 2168
334    
335            * Thuban/UI/projlist.py: New. The class ProjectionList is a
336            special wxListCtrl to show a list of projections in a more MVC
337            fashion
338    
339            * Thuban/UI/projdialog.py (ProjFrame): Substantial changes
340            throughout the class. The main change is to use the ProjectionList
341            class instead of a normal wxListBox. Also, add an explicit
342            "Unknown" projection to the projection choice control.
343            (ProjPanel.__init__): Add an "unknown" ellipsoid
344            (TMPanel.__init__, LCCPanel.__init__): Tweak the order of
345            instantiation of the panel's controls to make the tab-order more
346            natural
347    
348    2003-10-21  Bernhard Herzog  <[email protected]>
349    
350            * test/test_load.py (TestSingleLayer.file_contents)
351            (TestSingleLayer.test): Add non-ascii characters to the titles of
352            session, map and layer. This is effectively a port of the
353            TestUnicodeStrings test in test_load_0_8.py which for some reason
354            was only added there.
355    
356            * test/test_load_0_9.py (TestSingleLayer.file_contents)
357            (TestSingleLayer.test): Same as in test_load.py: add non-ascii
358            characters to the titles of session, map and layer,.
359    
360    2003-10-21  Bernhard Herzog  <[email protected]>
361    
362            Add EPSG projection handling to .thuban files
363    
364            * test/test_save.py (SaveSessionTest.dtd)
365            (SaveSessionTest.testEmptySession)
366            (SaveSessionTest.testLayerProjection)
367            (SaveSessionTest.testRasterLayer)
368            (SaveSessionTest.testClassifiedLayer)
369            (SaveSessionTest.test_dbf_table)
370            (SaveSessionTest.test_joined_table)
371            (SaveSessionTest.test_save_postgis): Update to 1.0-dev namespace
372            (SaveSessionTest.testSingleLayer): Update to 1.0-dev namespace and
373            use a and epsg projection to test saving them
374    
375            * test/test_load.py (LoadSessionTest.dtd): Update to 1.0-dev
376            namespace
377            (TestLayerVisibility.file_contents, TestLabels.file_contents)
378            (TestLayerProjection.file_contents)
379            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
380            (TestPostGISLayer.file_contents)
381            (TestPostGISLayerPassword.file_contents)
382            (TestLoadError.file_contents, TestLoadError.test): Update to use
383            1.0-dev namespace
384            (TestSingleLayer.file_contents, TestSingleLayer.test): Update to
385            use 1.0-dev namespace and use an EPSG projection to test whether
386            loading it works
387    
388            * test/test_load_0_9.py: New. Effectively a copy of test_load.py
389            as of Thuban 0.9. These are now tests to determine whether Thuban
390            can still read files generated by Thuban 0.9
391    
392            * Thuban/Model/save.py (SessionSaver.write)
393            (SessionSaver.write_session): Use the 1.0 dtd and 1.0-dev
394            namespace
395            (SessionSaver.write_projection): Write the projection's epsg
396            attribute
397    
398            * Thuban/Model/load.py (SessionLoader.__init__): Also accept the
399            thuban-1.0-dev.dtd namespace
400            (SessionLoader.check_attrs): Allow a callable object as conversion
401            too
402            (SessionLoader.start_projection, SessionLoader.end_projection)
403            (SessionLoader.start_parameter): Handle the epsg attribute and
404            rename a few instance variables to lower case
405    
406            * Resources/XML/thuban-1.0.dtd: New. Only difference to
407            thuban-0.9.dtd is the epsg attribute for projections.
408    
409    2003-10-21  Bernhard Herzog  <[email protected]>
410    
411            * test/runtests.py (main): Let the user specify which tests to run
412            on the command line
413    
414            * test/support.py (ThubanTestResult.getDescription): Override to
415            give a better short description. The description can be used as a
416            parameter to run_tests to run that particular test in isolation.
417    
418    2003-10-21  Frank Koormann   <[email protected]>
419    
420            Popup menu for legend. Scheduled for the 1.2 release this was too
421            simple to implement: The popup menu is bound to the legend tree, while
422            the events are hanlded by its anchestor, the legend panel. This
423            allows reuse of all the event handlers already implemented for the
424            legend toolbar buttons.
425    
426            * Thuban/UI/legend.py (LegendPanel.__init__): EVT_MENU macros
427            to add handlers for the events issued by the popup menu.
428            (LegendPanel._OnToggleVisibility): Handler for toggling layer
429            visibility event
430            (LegendPanel._OnProjection): Handler for layer projection event.
431            (LegendTree.__init__): Added EVT_TREE_ITEM_RIGHT_CLICK
432            (LegendTree._OnRightClick): Event handler for right click, select item
433            and pop up menu.
434            (LegendTree.ToggleVisibility): Toggle layer visibility
435            (LegendTree.LayerProjection): Raise layer projection dialog for
436            current layer.
437    
438    2003-10-21  Bernhard Herzog  <[email protected]>
439    
440            * Resources/Projections/defaults.proj: Use correct DOCTYPE
441            declaration. The top-level element is projectionlist not projfile
442    
443    2003-10-20  Bernhard Herzog  <[email protected]>
444    
445            * Thuban/UI/projdialog.py (ProjFrame.write_proj_file): New. helper
446            method to write a projfile and display a busy cursor and error
447            dialogs.
448            (ProjFrame._OnSave, ProjFrame._OnAddToList, ProjFrame._OnImport)
449            (ProjFrame._OnExport, ProjFrame._OnRemove): Use write_proj_file
450            (ProjFrame.__FillAvailList): Translate "<None>" too and display a
451            busy cursor while loading the user and system prj files.
452    
453    2003-10-16  Bernhard Herzog  <[email protected]>
454    
455            * Thuban/Model/resource.py (projfile_cache): Introduce a cache for
456            ProjFile objects
457            (clear_proj_file_cache): New function to clear the cache. Mainly
458            useful for use by the test suite
459            (read_proj_file): Use the cache.
460    
461            * test/test_proj.py (TestProjFile): Clarify the doc-string
462            (ProjFileReadTests): Update doc-string
463            (ProjFileReadTests.test_get_system_proj_file): Check whether the
464            system proj files is cached.
465            (ProjFileLoadTestCase): New base class for the proj file tests
466            derived from support.FileLoadTestCase to provide some common
467            behavior.
468            (TestLoadingProjFile)
469            (TestLoadingProjFileWithEmptyProjectionlist.file_contents)
470            (TestProjFileWithInvalidParameters.file_contents): Derive from
471            ProjFileLoadTestCase
472            (TestLoadingProjFile.test_caching): New. Test whether the cache
473            works
474    
475    2003-10-16      Silke Reimer    <[email protected]>
476    
477            * debian/*: New directory with configuration files for building a thuban
478              deb-package.
479    
480    2003-10-14  Bernhard Herzog  <[email protected]>
481    
482            * test/test_proj.py: Execute support.run_tests when run as
483            __main__ so that missing unsubscribes are detected
484            (TestProjFile.tearDown): Destroy the proj_file properly
485    
486    2003-10-14  Bernhard Herzog  <[email protected]>
487    
488            * Thuban/Model/messages.py (PROJECTION_ADDED)
489            (PROJECTION_REPLACED, PROJECTION_REMOVED): New message types for
490            the ProjFile objects
491    
492            * Thuban/Model/proj.py (ProjFile): Derive from Publisher so we can
493            easily send messages when the projections change
494            (ProjFile.Add, ProjFile.Remove, ProjFile.Replace): Issue messages
495            when the change was successful
496    
497            * test/test_proj.py (TestProjFile.setUp): Subscribe to some of the
498            proj file messages
499            (TestProjFile.test_add_remove)
500            (TestProjFile.test_remove_non_existing)
501            (TestProjFile.test_replace)
502            (TestProjFile.test_replace_non_existing): Test whether the right
503            messages are sent
504    
505    2003-10-14  Bernhard Herzog  <[email protected]>
506    
507            * test/test_proj.py (TestProjFile.test): Refactor into several
508            tests
509            (TestProjFile.test_add_remove)
510            (TestProjFile.test_remove_non_existing)
511            (TestProjFile.test_replace)
512            (TestProjFile.test_replace_non_existing): Some of the new
513            individual test cases
514            (TestProjFileSimple): New class for the rest of the test cases
515            that came out of the refactoring
516            (ProjFileTest): Derive from xmlsupport.ValidationTest so that the
517            derived classes don't have to
518    
519    2003-10-13  Bernhard Herzog  <[email protected]>
520    
521            Add an optional EPSG code to the projection objects and extend the
522            .proj file format accordingly.
523    
524            * Resources/XML/projfile.dtd (element projection): Add epsg
525            attribute
526    
527            * Thuban/Model/proj.py (Projection.__init__): New parameter and
528            instance variable epsg. Update doc-string
529            (Projection.EPSGCode, Projection.Label): New methods to provide
530            access to EPSG code and a label for use in dialogs
531    
532            * Thuban/Model/resource.py (ProjFileReader.start_projection)
533            (ProjFileReader.end_projection, ProjFileSaver.write_projfile):
534            Handle the epsg code attribute when reading or writing proj files
535    
536            * Thuban/UI/projdialog.py (ProjFrame._OnSave)
537            (ProjFrame._OnAddToList, ProjFrame.__DoOnProjAvail)
538            (ProjFrame.__FillAvailList): Use the projection's Label method to
539            get the string for the list box
540    
541            * test/test_proj.py (TestProjection.test_label)
542            (TestProjection.test_label_epsg)
543            (TestProjection.test_epsgcode_for_non_epsg_projection)
544            (TestProjection.test_epsgcode_for_real_epsg_projection): New tests
545            for the label and EPSGCode methods
546            (WriteProjFileTests.doTestWrite, WriteProjFileTests.test_write)
547            (WriteProjFileTests.test_write_empty_file): Create the ProjFile
548            objects in the test cases and put the expected contents into the
549            test case methods too. Update doTestWrite accordingly
550            (TestLoadingProjFile)
551            (TestLoadingProjFileWithEmptyProjectionlist): New classes with the
552            read tests from TestProjFile.
553            (TestProjFile.doTestRead, TestProjFile.testRead): Removed. These
554            tests are now in the new classes.
555            (sample_projfile, sample_projfile_data)
556            (sample_projfile2, sample_projfile_data2): Removed. Not used
557            anymore.
558            (TestProjFile.test_read_unreadable_file): No need to reset the
559            permissions at the end anymore since we use a unique filename
560    
561    2003-10-13  Bernhard Herzog  <[email protected]>
562    
563            * test/test_proj.py: Some more refactoring of the test cases
564            (ProjFileTest): New base class for the proj file tests.
565            (TestProjFile): Derive from ProjFileTest
566            (TestProjFile.test_read_unreadable_file)
567            (TestProjFile.test_read_empty_file, TestProjFile.doTestRead): Use
568            the new filename method to get a unique filename
569            (TestProjFile.doTestWrite, TestProjFile.testWrite): Removed.
570            (WriteProjFileTests): New class for proj file write tests.
571            Contains the write test that were in TestProjFile originally.
572    
573    2003-10-13  Bernhard Herzog  <[email protected]>
574    
575            * test/test_proj.py (TestProjFile.testRead)
576            (TestProjFile.test_read_non_existing_file)
577            (TestProjFile.test_read_unreadable_file)
578            (TestProjFile.test_read_empty_file): Split into several methods.
579    
580    2003-10-10  Bernhard Herzog  <[email protected]>
581    
582            * Thuban/UI/sizers.py: New file with custom sizers.
583    
584            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Instantiate
585            all projection type specific panels and put them into a
586            NotebookLikeSizer. This way the dialog doesn't change its size
587            when a different projection is selected
588            (ProjFrame.__init__): Rename projection_panels
589            projection_panel_defs and reuse projection_panels for a list of
590            the instantiated panels.
591            (ProjFrame._show_proj_panel, ProjFrame.__DoOnProjAvail)
592            (ProjFrame.__DoOnProjChoice): Changes due to the new handling of
593            the panels
594            (UnknownProjPanel._DoLayout): Place the newlines in the message
595            differently to make the panel narrower.
596            (TMPanel._DoLayout): Layout the parameters in one column.
597    
598    2003-10-10  Bernhard Herzog  <[email protected]>
599    
600            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): New method
601            that contains all the setup for the dialog's widgets, layout and
602            event handling.
603            (__): Call build_dialog to build the dialog.
604            (ProjFrame.__set_properties, ProjFrame.__do_layout): Removed.
605            Their functionality is now in build_dialog
606            (ProjFrame.__VerifyButtons, ProjFrame.__VerifyButtons)
607            (ProjFrame.__DoOnProjAvail, ProjFrame.__DoOnProjAvail)
608            (ProjFrame.__DoOnProjChoice): Small updates due to slightly
609            different widget names and hierarchy introduced with build_dialog.
610    
611    2003-10-10  Bernhard Herzog  <[email protected]>
612    
613            * README: Fix typo.
614    
615    2003-10-09  Bernhard Herzog  <[email protected]>
616    
617            * Thuban/Model/proj.py (ProjFile.Add): Do not check whether the
618            projection is already in the list. This is *a lot* faster when
619            loading files with hundreds of projections since it saves a linear
620            search. OTOH this will allow adding the same projection to the
621            user.proj file multiple times in the projection dialog but we'll
622            deal with that later
623    
624    2003-10-09  Jan-Oliver Wagner <[email protected]>
625    
626            * devtools: New. Directory for developer tools that are not intended
627            for the regular user.
628    
629            * devtools/create_epsg.py: New. Convert the epsg file of proj into
630            a python .proj file.
631    
632    2003-10-09  Bernhard Herzog  <[email protected]>
633    
634            * test/test_proj.py
635            (TestProjection.test_get_parameter_without_equals_sign): New. Test
636            whether GetParameter handles parameters without "=" sign correctly
637    
638            * Thuban/Model/proj.py (Projection.GetParameter): Handle
639            parameters that do not contain a "=". Update the doc-string
640    
641    2003-10-08  Bernhard Herzog  <[email protected]>
642    
643            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
644            length limit on the projname text control
645    
646    2003-10-08  Bernhard Herzog  <[email protected]>
647    
648            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
649            (TestProjection.test_get_projection_units_normal): New. Tests for
650            the Projection.GetProjectedUnits method
651    
652    2003-10-08  Jan-Oliver Wagner <[email protected]>
653    
654            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
655            Added missing 'val' parameter.
656    
657    2003-10-08  Bernhard Herzog  <[email protected]>
658    
659            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
660            projection type of the currently selected projection is not known,
661            i.e. there's no panel for it, use the UnknownProjPanel
662            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
663            the actual replacing of the proj panel into the new method
664            _show_proj_panel.
665            (UnknownProjPanel): Add doc-string.
666            (UnknownProjPanel._DoLayout): Insert a newline into the text so
667            that the panel is not so wide.
668    
669    2003-10-08  Bernhard Herzog  <[email protected]>
670    
671            * Thuban/Model/resource.py (read_proj_file): Return the warnings
672            too. Update the doc-string
673            (get_proj_files): Removed. It wasn't used anywhere
674            (get_system_proj_files, get_system_proj_file): Rename to
675            get_system_proj_file and return the ProjFile object and not a list
676            of ProjFile objects. Update the callers.
677            (get_user_proj_files, get_user_proj_file): Rename to
678            get_user_proj_file return the ProjFile object and not a list of
679            ProjFile objects. Update the callers.
680            (ProjFileReader.__init__): New instance variable for the warnings.
681            Rename the __pf ivar to projfile. Update the methods referring to
682            __pf
683            (ProjFileReader.end_projection): Catch any errors raised when
684            instantiating the projection and record that as an error. The
685            projection will not be in the final ProjFile object.
686            (ProjFileReader.GetWarnings): New method to return the warnings.
687    
688            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
689            show the warnings from the projfile reader
690            (ProjFrame._OnImport): Deal with any warnings returned by
691            read_proj_file
692            (ProjFrame.__FillAvailList): Deal with any warnings returned by
693            get_system_proj_file or get_user_proj_file.
694    
695            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
696            (TestProjFileWithInvalidParameters.file_contents): New test cases
697            to test whether read_proj_file handles invalid projection
698            parameters correctly
699            (TestProjFile.test_get_system_proj_file): New. Simple test for
700            resource.get_system_proj_file
701    
702    2003-10-07  Bernhard Herzog  <[email protected]>
703    
704            * test/test_derivedshapestore.py
705            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
706            properly so that the temporary directories get deleted correctly
707    
708    2003-10-06  Bernhard Herzog  <[email protected]>
709    
710            Handle the title changes in a proper MVC way.
711    
712            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
713            canvas' TITLE_CHANGED messages
714            (MainWindow.update_title): New. Update the main window's title
715            (MainWindow.__SetTitle): Removed. Use update_title instead.
716            (MainWindow.SetMap): Use update_title instead of __SetTitle
717            (MainWindow.RenameMap): Do change the window title explicitly
718            here. That's handled in a proper MVC way now.
719            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
720            messages
721    
722            * Thuban/Lib/connector.py (Conduit): New class to help classes
723            that forward messages
724    
725            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
726            (ViewPort): Derive from Conduit instead of Publisher
727            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
728            when calling the inherited versions
729            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
730            methods to subscribe and unsubscribe map messages
731            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
732            handle the map subscriptions
733            (ViewPort.Map, ViewPort.map_projection_changed)
734            (ViewPort.layer_projection_changed): Add or update doc-strings
735    
736            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
737            typo
738            (MyConduit): Helper class for the Conduit test.
739            (TestConduit): Test cases for Conduit
740    
741            * test/test_connector.py: Use support.run_tests as main.
742    
743            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
744            the TITLE_CHANGED messages
745            (ViewPortTest.test_forwarding_title_changed): New test to check
746            whether the viewport forwards the map's TITLE_CHANGED messages
747            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
748            after the port's because the latter may require a still functional
749            map.
750    
751    2003-10-06  Bernhard Herzog  <[email protected]>
752    
753            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
754            doc-string
755    
756    2003-10-06  Bernhard Herzog  <[email protected]>
757    
758            * test/test_viewport.py (ViewPortTest.setUp)
759            (SimpleViewPortTest.test_init_with_size): Move the test for the
760            initial size as a constructor parameter from ViewPortTest.setUp
761            method to a new separate test in SimpleViewPortTest.
762    
763    2003-10-06  Bernhard Herzog  <[email protected]>
764    
765            * test/test_viewport.py (MockView): New class derived from
766            ViewPort with a mock implementation of GetTextExtent to be used in
767            the test cases
768            (ViewPortTest.setUp): Use MockView instead of ViewPort
769    
770            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
771            into what would be a "pure virtual function" in C++: always raise
772            NotImplementedError. Mock implementations for test cases don't
773            belong into the real code
774    
775    2003-10-02  Bernhard Herzog  <[email protected]>
776    
777            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
778            close the dbf file we create so that it's contents have been
779            written properly.
780    
781            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
782            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
783            Update to shapelib 1.2.10
784    
785    2003-10-01  Jan-Oliver Wagner <[email protected]>
786    
787            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
788            it annoys lintian which warns about these files not being
789            executable. The #! isn't necessary here since if you absolutely
790            must execute them you can always say "python <filename>".
791    
792    2003-09-26  Bernhard Herzog  <[email protected]>
793    
794            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
795            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
796            is ported to a newer the import will fail, so it should be noticed
797            immediately that this function is gone.
798            Fixes RT#1919
799    
800    2003-09-26  Bernhard Herzog  <[email protected]>
801    
802            Add a DTD for the projection files and make thuban write valid
803            projection files
804    
805            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
806            files
807    
808            * Thuban/Model/resource.py (ProjFileSaver.write): Use
809            'projectionlist' as the name in the document type declaration so
810            that it matches the element type of the root element.
811    
812            * test/test_proj.py (sample_projfile, sample_projfile2): Use
813            'projectionlist' as the name in the document type declaration just
814            as it is done now in the files thuban would write
815            (sample_projfile, sample_projfile_data): Fix spelling of
816            "Mercator"
817            (TestProjFile.doTestWrite): Validate the written and the expected
818            XML data
819            (TestProjFile): Derive from ValidationTest so that we can run xml
820            validation tests
821    
822    2003-09-24  Bernhard Herzog  <[email protected]>
823    
824            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
825            modify the list returned by map.Layers() in place since it is the
826            actual list of layers used by the map.
827    
828    2003-09-23  Jan-Oliver Wagner <[email protected]>
829    
830            * Doc/manual/thuban-manual.xml: Added subsection to chapter
831            Extensions to describe the extensions coming with the Thuban
832            standard package (gns2shp and importAPR).
833    
834    2003-09-23  Bernhard Herzog  <[email protected]>
835    
836            * libraries/thuban/wxproj.cpp (project_point): if there's an
837            inverse but no forward projection, convert to degrees after
838            applying the inverse projection. Fixes RT#2096
839    
840            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
841            implicitly tests for the fix to RT#2096
842    
843            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
844            Check that the sequences have the same lengths
845    
846            * Resources/Projections/defaults.proj (Geographic projection): Use
847            a much more precise value for the to_meter attribute.
848    
849    2003-09-22  Bernhard Herzog  <[email protected]>
850    
851            * test/support.py (initthuban): Make sure to unset the LANG env.
852            var. so that tests that compare translated strings work. Solves RT
853            #2094
854    
855    2003-09-22  Jan-Oliver Wagner <[email protected]>
856    
857            Small improvement of APR import.
858    
859            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
860            Added tests for text-ranges.
861    
862            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
863            returns a string object if the range is based on text.
864    
865            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
866            range retrieval.
867    
868    2003-09-22  Jan-Oliver Wagner <[email protected]>
869    
870            Initial version of the importAPR extension which is in
871            experimental state.
872    
873            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
874            /Extensions/importAPR/test/: New directories.
875    
876            * /Extensions/importAPR/samples/README: New: Howto load the samples.
877    
878            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
879            file which refers to the Thuban Iceland demo data.
880    
881            * /Extensions/importAPR/test/README: New: Howto execute the tests.
882    
883            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
884    
885            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
886            as in '.apr'-files.
887    
888            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
889            ODB Objects as in '.apr', '.avl' and other files.
890    
891            * /Extensions/importAPR/__init__.py: New: Init to make this
892            directory a package.
893    
894            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
895            project file (.apr) and convert it to Thuban.
896    
897    2003-09-22  Jan-Oliver Wagner <[email protected]>
898    
899            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
900    
901    2003-09-19  Jan-Oliver Wagner <[email protected]>
902    
903            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
904            with description on RPM installation and RPM binary package
905            creation.
906    
907    2003-09-18  Bernhard Herzog  <[email protected]>
908    
909            * setup.py (data_files): Only add the mo files if the Locales
910            directory actually exists, so that setup.py works with a fresh CVS
911            checkout
912    
913    2003-09-12  Jan-Oliver Wagner <[email protected]>
914    
915            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
916            in viewport, not anymore in view
917    
918    2003-09-04  Jan-Oliver Wagner <[email protected]>
919    
920            Introducing first Extension (gns2shp).
921    
922            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
923    
924            * Extensions/__init__.py: New. init to make this dir a package.
925    
926            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
927    
928            * Extensions/gns2shp/test/README: New. some info on this test directory.
929    
930            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
931    
932            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
933            of Shapefile from GNS text file format
934    
935    2003-09-03  Jan-Oliver Wagner <[email protected]>
936    
937            Fix/workaround for bug #2019:
938            https://intevation.de/rt/webrt?serial_num=2019
939    
940            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
941            (IdentifyView.__init__): Added another button that allows to
942            stop the identify mode.
943            (IdentifyView.OnStop): New. Stops the identify mode.
944    
945  2003-09-03  Jan-Oliver Wagner <[email protected]>  2003-09-03  Jan-Oliver Wagner <[email protected]>
946    
947          Introducing a new exception dialog that allows to exit the          Introducing a new exception dialog that allows to exit the
# Line 1268  Line 2212 
2212    
2213          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
2214          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
2215          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
2216          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
2217    
2218          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1705  
changed lines
  Added in v.1913

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26