/[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 1767 by jan, Wed Oct 1 09:52:52 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]>  2003-10-01  Jan-Oliver Wagner <[email protected]>
786    
787          * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as          * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26