/[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 2452 by bh, Mon Dec 13 17:54:36 2004 UTC revision 2694 by bernhard, Fri Sep 15 08:53:04 2006 UTC
# Line 1  Line 1 
1    2006-09-15 Bernhard Reiter <[email protected]>
2    
3            * README: added RXP and pyRXP as optional for tests.
4            * test/localessupport.py: New. Contains a helper function
5            to find a locale with comma used as decimal_point.
6    
7    2006-08-31 Bernhard Reiter <[email protected]>
8    
9            * README: fixed URLs to sqlite and pysqlite.
10            * Thuban/UI/about.py: Added Didrik Pinte as contributor. Extended
11              copyright range to include 2006.
12    
13    
14    2006-06-29 Didrik Pinte <[email protected]>
15    
16            * Thuban/UI/main.py: circular import fix.
17    
18    2006-06-27 Frank Koormann <[email protected]>
19    
20            New Classification "Pattern": Classify text attributes by regexp.
21    
22            * Thuban/Model/classification.py (class ClassGroupPattern):
23            New, group is associated with a regular expression.
24            (Classification._compile_classification): Store compiled regexp and
25            original group for pattern.
26            (Classification.FindGroup): Added pattern.
27    
28            * Thuban/UI/classifier.py
29            (ClassGrid._OnLabelRightClicked, ClassGrid.labelPopup):
30            New, add popup to select singleton/pattern.
31            (ClassTable.GetRowLabelValue, ClassTable.GetValueAsCustom,
32            ClassTable.SetValueAsCustom): Added pattern.
33            (ClassTable.__ParseInput): Autodetect singleton/pattern.
34    
35            * Thuban/Model/save.py (SessionSaver.write_classification):
36            Added pattern.
37    
38            * Thuban/Model/load.py (SessionLoader.start_clpattern,
39            SessionLoader.end_clpattern): New, process pattern elements.
40    
41            * test/test_classification.py (class TestClassGroupPattern): New.
42            (TestClassification.test_add_pattern,
43            TestClassification.test_multiple_groups_textual,
44            TestClassification.test_deepcopy_textual): New.
45            (TestClassification.test_multiple_groups_numerical):
46            Renamed test_multiple_groups.
47            (TestClassification.test_deepcopy_numerical): Renamed test_deepcopy.
48    
49            * test/test_save.py (SaveSessionTest.testClassifiedLayer):
50            Added pattern.
51    
52            * test/test_load.py (ClassificationTest.TestLayers, TestClassification):
53            Added pattern.
54    
55            * test/test_layer.py
56            (TestLayerModification.test_set_classification_textual): New
57            (TestLayerModification.test_set_classification_numerical):
58            Renamed test_set_classification.
59    
60            * Doc/manual/thuban-manual.xml: Added pattern to layer classification
61            description.
62    
63            * Resources/XML/thuban-1.1.dtd: Added clpattern element and attribs.
64    
65    2006-06-29 Didrik Pinte <[email protected]>
66    
67            * Thuban/version.py: Bugfix determination of SQLite, the wright one !
68              
69    2006-06-28 Didrik Pinte <[email protected]>
70    
71            * packaging/windows/thubanstart.py: sample file loading all the stable
72            extensions
73            
74    2006-06-28 Didrik Pinte <[email protected]>
75    
76            * Thuban/version.py: Bugfix determination of SQLite on old and recent
77            systems (support pysqlite1 and pysqlite2)
78    
79    2006-06-27 Frank Koormann <[email protected]>
80    
81            * Thuban/version.py: Bugfix determination of SQLite on old systems.
82    
83    2006-05-17 Didrik Pinte <[email protected]>
84            * Extensions/ogr/__init__.py : updated test for win32 and correct
85            imports
86    
87    2006-05-15 Didrik Pinte <[email protected]>
88            Ashamed ... still some tabs in the files
89    
90      * Thuban/version.py : tabs removed    
91      * Thuban/Model/transientdb.py : tabs removed
92    
93    2006-05-15 Didrik Pinte <[email protected]>
94    
95      * Thuban/version.py : coding style correction
96      * Thuban/Model/transientdb.py : coding style correction
97    
98    2006-05-15 Didrik Pinte <[email protected]>
99    
100      * Thuban/version.py : Updated imports to support pysqlite2
101    
102      * Thuban/Model/transientdb.py : Updated imports to support pysqlite2
103            Patched the querying system to support the param style of pysqlite2
104    
105    >>>>>>> .r2689
106    2006-04-24 Didrik Pinte <[email protected]>
107            * Extensions/svgexport/__init__.py: The extension now works on win32
108            architecture. Bug #87 corrected.
109    
110    2006-04-20 Bernhard Reiter <[email protected]>
111            * Doc/technotes/coding_guidelines.txt: Changed text from CVS to SVN.
112            Removed emacs specific hint and replaced it with a general hint
113            that editors might support writing changelogs.
114    
115    2006-04-12 Bernhard Reiter <[email protected]>
116    
117            * Thuban/version.py: Changed thuban_release mechanism to use "svn"
118            instead of "cvs".
119    
120    2006-03-31  Bernhard Reiter <[email protected]>
121    
122            * libraries/thuban/wxproj.cpp: including proj_api.h instead of
123            projects.h now. According the Frank Warmerdam and man pj_init
124            this is the public interface to proj. Thus I have changed PJ to projPJ.
125            And I could remove the hack to avoid clashes with typedef PVALUE
126            and #define LP in projects.h clashing with symbols when trying to
127            build on windows. The file is cleaner and nicer now.
128    
129    2006-03-29  Bernhard Reiter <[email protected]>
130    
131            * libraries/thuban/wxproj.cpp: undef LP to avoid clash when
132            trying to build with mingw.
133    
134    2005-10-18  Bernhard Reiter <[email protected]>
135    
136            * Thuban/UI/about.py: remove unused import of getdefaultlocale.
137            Added display of internal encoding to the about dialog text.
138    
139            * Extensions/svgexport/__init__.py: changed version to "1.0.0+cvs".
140    
141    2005-10-18  Bernhard Reiter <[email protected]>
142    
143            Startup improved: We fail right away if the internal encoding could
144            not be determined.
145    
146            * Thuban/__init__.py (get_internal_encoding): new.
147    
148            * test/test_stringrepresentation.py (class TestInternalEncoding):
149            Preserve the internal encoding for the tests in this class.
150    
151    2005-10-17  Bernhard Reiter <[email protected]>
152    
153            * test/test_stringrepresentation.py: New file, for now testing
154            that set_internal_coding() is throwing an exception for bad exceptions.
155    
156            * Thuban/__init__.py (set_internal_encoding): added a forwards
157            and backward translation, so that we fail early if the
158            internal_encoding is bad.
159    
160    2005-10-17  Bernhard Reiter <[email protected]>
161    
162            svgexport 1.0.0cvs: Fixed ARC layer writing: No filling is done.
163            You could actually get polylines with filling in between,
164            when the classification for the lines had a fill color.
165            E.g. this happens when you generate a classification from a ramp.
166    
167            * Extensions/svgexport/test/test_svgmapwriter.py:
168            New test_export_arc_no_fill(). Extend copyright notice to 2005.
169    
170            * Extensions/svgexport/svgmapwriter.py
171            (SVGRenderer.draw_shape_layer_incrementally()):
172            Setting TRANSPARENT_BRUSH for shaptype ARC.
173            Extend copyright notice to 2005.
174    
175            * Extensions/svgexport/__init__.py: Extend copyright notice to 2005.
176    
177    2005-09-08  Frank Koormann <[email protected]>
178    
179            * Doc/manual/thuban-manual.xml (Map Management): Fixed typo reported
180            by Erik (sigra.at.home.se)
181    
182    2005-08-18  Jan-Oliver Wagner <[email protected]>
183    
184            * Thuban/UI/renderer.py (ScreenRenderer.draw_selection_incrementally):
185            Call the right method for the default size.
186    
187    2005-08-11  Jan-Oliver Wagner <[email protected]>
188    
189            * Extensions/export_shapefile: New.
190    
191            * Extensions/export_shapefile/__init__.py: New. Initialize
192            the export_shapefile extension.
193    
194            * Extensions/export_shapefile/export_shapefile.py: New.
195            Exports a layer as a Shapefile.
196    
197    2005-08-08  Jan-Oliver Wagner <[email protected]>
198    
199            * po/de.po: String fixes. This fixes Debian bug #313843.
200    
201    2005-07-27  Jan-Oliver Wagner <[email protected]>
202    
203            Remove the attributes from the layer element in
204            .thuban files for the save routine.
205            This also solves RT bug #3149,
206            https://intevation.de/rt/webrt?serial_num=3149
207    
208            * test/test_load.py: (TestSingleLayer, TestNonAsciiColumnName,
209            TestLayerVisibility, TestSymbolSize, TestClassification, TestLabels,
210            TestLayerProjection, TestJoinedTable, TestLabelLayer): Removed
211            attributes from layer element to classification clnull element.
212    
213            * test/test_save.py (SaveSessionTest.testSingleLayer,
214            SaveSessionTest.testLayerProjection,
215            SaveSessionTest.testClassifiedLayer,
216            SaveSessionTest.test_joined_table, SaveSessionTest.test_save_postgis):
217            Removed attributes from layer element to classification clnull element.
218            (test_save_postgis.NonConnectionStore._fetch_table_information):
219            added pretending to have a shape_type.
220    
221            * Resources/XML/thuban-1.1.dtd: Make the attributes field
222            and field_type of classification optional.
223    
224            * Thuban/Model/classification.py (Classification.TreeItem.build_info):
225            Added output of size.
226    
227            * Thuban/Model/load.py (SessionLoader.start_classification):
228            Change attribute 'field' and 'field_type' from obligatory to
229            optional to allow empty classes (ie.  only with a default=clnull).
230    
231            * Thuban/Model/save.py (SessionSaver.write_layer): Don't write
232            any attributes anymore for the layer element.
233            (SessionSaver.write_classification): Even if there is no
234            classification field, still write the classification because
235            the clnull (default) symbol will not be defined anymore as
236            part of the layer element.
237    
238    2005-07-05  Bernhard Herzog  <[email protected]>
239    
240            * setup.py (setup call): Version 1.1.0
241    
242            * NEWS: Update for 1.1.0
243    
244            * MANIFEST.in: Add *.txt to files taken from Doc.  Otherwise the
245            technores won't be included
246    
247            * Thuban/UI/about.py (About.__init__): Extend copyright notice to
248            2005
249    
250            * po/de.po: Updated.
251    
252    2005-07-05  Bernhard Herzog  <[email protected]>
253    
254            * README: gdal 1.1.8 is too old.  1.2.5 works.
255    
256    2005-07-05  Bernhard Herzog  <[email protected]>
257    
258            * Resources/XML/thuban-1.1.dtd (rasterlayer): Add the opacity and
259            masktype attributes.
260    
261    2005-07-05  Bernhard Herzog  <[email protected]>
262    
263            * Thuban/Model/layer.py (Layer.__mangle_bounding_box)
264            (Layer.ClipBoundingBox): Rename ClipBoundingBox to
265            __mangle_bounding_box.  See the comments in the code and RT #2845
266    
267            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
268            Remove the explicit test of ClipBoundingBox.  The method isn't
269            public anymore and the direct call in the test wasn't necessary in
270            the first place.  If ClipBoundingBox (now __mangle_bounding_box)
271            isn't called, the return value of ShapesInRegion will be
272            different.
273    
274    2005-07-05  Bernhard Herzog  <[email protected]>
275    
276            * Thuban/UI/viewport.py (ViewPort.set_view_transform): Handle
277            ZeroDivisionError exceptions.  I don't know when they happen
278            exactly.  It probably happens when the projections aren't set
279            properly.
280    
281    2005-07-01  Bernhard Herzog  <[email protected]>
282    
283            First step towards unicode.  With this roughly we're at step 1
284            string_representation.txt
285    
286            * Doc/technotes/string_representation.txt: New.  Document how
287            strings are represented in Thuban and how to get to a Unicode
288            Thuban.
289    
290            * Thuban/__init__.py (set_internal_encoding)
291            (unicode_from_internal, internal_from_unicode): New. The first few
292            functions for the internal string representation
293    
294            * Thuban/UI/about.py (unicodeToLocale): Removed.  Use
295            internal_from_unicode instead.
296    
297            * Thuban/UI/__init__.py (install_wx_translation): Determine the
298            encoding to use for the internal string representation.  Also,
299            change the translation function to return strings in internal
300            representation even on unicode builds of wxPython
301    
302            * Thuban/Model/load.py (SessionLoader.check_attrs): Decode
303            filenames too.
304            (SessionLoader.start_clrange): Use check_attrs to decode and check
305            the attributes.
306    
307            * Thuban/Model/xmlreader.py (XMLReader.encode): Use
308            internal_from_unicode to convert unicode strings.
309    
310            * Thuban/Model/xmlwriter.py (XMLWriter.encode): Use
311            unicode_from_internal when applicable
312    
313            * test/runtests.py (main): New command line option:
314            internal-encoding to specify the internal string encoding to use
315            in the tests.
316    
317            * test/support.py (initthuban): Set the internal encoding to
318            latin-1
319    
320            * test/test_load.py (TestSingleLayer.test, TestClassification.test)
321            (TestLabelLayer.test): Use the internal string representation when
322            dealing with non-ascii characters
323    
324            * test/test_load_1_0.py (TestSingleLayer.test)
325            (TestClassification.test, TestLabelLayer.test): Use the internal
326            string representation when dealing with non-ascii characters
327    
328            * test/test_load_0_9.py (TestSingleLayer.test)
329            (TestClassification.test): Use the internal string representation
330            when dealing with non-ascii characters
331    
332            * test/test_load_0_8.py (TestUnicodeStrings.test): Use the
333            internal string representation when dealing with non-ascii
334            characters
335    
336            * test/test_save.py (XMLWriterTest.testEncode)
337            (SaveSessionTest.testClassifiedLayer): Use the internal string
338            representation when dealing with non-ascii characters where
339            applicable
340    
341    2005-06-30  Bernhard Herzog  <[email protected]>
342    
343            * test/runtests.py: Untabify.
344    
345    2005-06-30  Bernhard Herzog  <[email protected]>
346    
347            * Thuban/UI/renderer.py (ScreenRenderer.draw_selection_incrementally):
348            untabify.
349    
350    2005-06-30  Bernhard Herzog  <[email protected]>
351    
352            * Extensions/ogr/test/__init__.py: Add missing coding directive
353    
354    2005-06-28  Jan-Oliver Wagner <[email protected]>
355    
356            * Thuban/UI/renderer.py (ScreenRenderer.draw_selection_incrementally):
357            Use the default size for rendering selected items of default type.
358            Fixes part 2 of https://intevation.de/rt/webrt?serial_num=3149
359    
360    2005-06-28  Jan-Oliver Wagner <[email protected]>
361    
362            * Extensions/importAPR/apr.py (APR_BShSym): Extend by 'Stripple'.
363            (APR_TClr.GetThubanColor): Fix bug in color interpretation.
364            Thanks to Frank Koormann who identified this problem.
365    
366            * Extensions/importAPR/importAPR.py (APR_VShSym): New. Just
367            another symbol identified.
368    
369    2005-06-27  Jan-Oliver Wagner <[email protected]>
370    
371            * Doc/manual/thuban-manual-de.xml: More translations.
372    
373    2005-05-12  Jonathan Coles <[email protected]>
374            
375            * Thuban/UI/projdialog.py: Add missing import, which led to an
376            exception when opening a layer's projection.
377    
378    2005-05-09  Bernhard Herzog  <[email protected]>
379    
380            * test/support.py (FileLoadTestCase.filename): Fix doc-string.
381    
382    2005-05-09  Bernhard Herzog  <[email protected]>
383    
384            * Thuban/Model/postgisdb.py (PostGISConnection.connect): Set the
385            connection to autoconnect.  Fixes RT#3148.
386    
387            * test/test_postgis_db.py
388            (TestPostGISSpecialCases.test_simple_error_handling): New test
389            that attempts to reproduce RT#3148.
390    
391    2005-05-06  Jonathan Coles <[email protected]>
392    
393            Add support for saving and loading the opacity and mask type
394            properties of RasterLayers. Also add support for proper use
395            of alpha information while drawing images not in 'RAW' format.
396            If transparency in an image format (e.g, PNG) is supported by
397            wxWidgets then the image would previously have been draw with
398            transparent regions, but the opaque regions would have been
399            unaffected by a change in the layer's opacity. This patch
400            corrects the problem.
401    
402            * Thuban/Model/layer.py (RasterLayer): Added opacity and
403            masktype parameters to the constructor, and set the
404            appropriate variables to those values.
405    
406            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Added
407            code to read the opacity and mask type of the layer and construct
408            a new layer with the additional parameters.
409    
410            * Thuban/Model/save.py (SessionSaver.write_layer): Added code
411            to save the opacity and mask type of a layer.
412    
413            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
414            the opacity of the layer to draw_raster_data rather than the layer.
415            (BaseRenderer.draw_raster_data): Remove the layer parameter because
416            the function doesn't need to know about the layer. Add the optional
417            opacity parameter whose default is 1.0. Add 'PNG' as a supported
418            graphics format.
419    
420            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Fixed
421            signature to match that in BaseRenderer. Use the new opacity argument
422            in place of calling layer.Opacity(). In the case where the
423            format is not 'RAW', alpha_data is None and the loaded image has
424            alpha information, use the file's alpha information. This is
425            still subject to the layer's opacity setting.
426    
427            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
428            Fixed signature to match that in BaseRenderer.
429    
430            * test/test_load.py (TestRasterLayer): Change file_contents to
431            include opacity and masktype variables.
432            (TestRasterLayer.test): Include tests for opacity and masktype
433            changes.
434    
435            * test/test_save.py (SaveSessionTest.testRasterLayer): Restructure
436            test to cover a variety of combinations of masktype and opacity
437            settings.
438    
439    2005-05-02  Jan-Oliver Wagner <[email protected]>
440    
441            * debian/rules: add --use-wx-python-swig-hack
442            to the build command.
443            Thanks to Moritz Lennert for pointing this out.
444    
445    2005-04-28  Jan-Oliver Wagner <[email protected]>
446    
447            Introduce OGRFileShapeStore in ogr extension.
448            This allows at least that loaded shapefile shape stores
449            can be saved correctly in the thuban session file
450            and reloaded again (reload is via core shapefile
451            routine, not OGR). For other types, .thuban files
452            can not be reloaded for the time being.
453    
454            * Extensions/ogr/ogrshapes.py (OGRFileShapeStore): New. This
455            class ist to be used for any file-based shape stores
456            accessed through OGR.
457    
458            * Extensions/ogr/ogrstart.py (open_with_ogr): Added
459            forgotten _ for i18n. Adapted call OpenFileShapestore
460            regarding new parameter.
461            (OpenFileShapestore): Use OGRFileShapeStore instead of
462            OGRShapeStore. Fix return value (None instead of null).
463            Add new parameter "mainwindow" to avoid accessing global
464            context.
465    
466    2005-04-27  Jan-Oliver Wagner <[email protected]>
467    
468            Introduce FileShapeStore as generalization for
469            file-based shape stores. In a first instance
470            this allows additional modules to handle shapefile
471            format as well, namely the OGR extension.
472    
473            * Thuban/Model/data.py: Various small fixes in doc-strings.
474            (FileShapeStore): New class.
475            (ShapefileStore): Derive from FileShapeStore.
476            (ShapefileStore.__init__): Call __init__ of FileShapeStore,
477            rename self.table to self._table, initialize self._bbox
478            (ShapefileStore._open_shapefile): Use self._bbox instead of self.bbox
479            and self.FileName() instead of self.filename.
480            (ShapefileStore.Table): Use self._table instead of self.table.
481            (ShapefileStore.FileName): Removed (moved to FileShapeStore).
482            (ShapefileStore.BoundingBox):  Use self._bbox instead of self.bbox.
483    
484            * Thuban/Model/save.py: Replace ShapefileStore by FileShapeStore.
485            (SessionSaver.write_data_containers): Only use methods of the
486            base class FileShapeStore.
487    
488    2005-04-26  Martin Schulze  <[email protected]>
489    
490            * Extensions/wms/wms.py (render_wms_layer): Adjusted the render
491            function to the modified render engine
492    
493    2005-04-25  Martin Schulze  <[email protected]>
494    
495            * Thuban/UI/renderer.py (MapRenderer.projected_raster_layer):
496            Added a description according to the CVS log message
497    
498    2005-04-23  Martin Schulze  <[email protected]>
499    
500            * Thuban/UI/renderer.py: Added a missing import
501    
502    2005-04-23  Russell Nelson  <[email protected]>
503    
504            * Thuban/UI/view.py (MapCanvas.OnMiddle{Up,Down}): Changed the
505            way the previous tool is remembered, so that middle-button
506            panning works even if you haven't selected a tool.
507    
508    2005-04-11  Bernhard Herzog  <[email protected]>
509    
510            * libraries/thuban/wxproj.cpp: Move the compatibility code that
511            deals with the wxPython 2.4 version of wxPython.h into the #ifdef
512            branch that includes wxPython.h because it's only needed when
513            wxPython.h is used.  Also, it won't compile when
514            USE_WX_PYTHON_SWIG_HACK is set otherwise.
515    
516    2005-04-07  Bernhard Herzog  <[email protected]>
517    
518            * Thuban/UI/classifier.py (ClassGrid.__init__): Use -1 as the ID.
519            (ID_CLASS_TABLE): Removed. It wasn't used anywhere except in
520            ClassGrid.__init__ and it's value is outside of the valid
521            range (must be < 32768).  wxPython 2.5 complains about it with an
522            exception.
523    
524    2005-04-05  Jan-Oliver Wagner <[email protected]>
525    
526            * Doc/manual/thuban-manual-de.xml: More translations.
527    
528    2005-04-05  Bernhard Herzog  <[email protected]>
529    
530            * libraries/thuban/wxproj.cpp: Make it work with a wxPython.h from
531            wxPython 2.4 as well.  Also, remove a now obsolete comment.
532    
533    2005-04-05  Bernhard Herzog  <[email protected]>
534    
535            Use wxPython.h by default but provide a workaround when it isn't
536            available.
537    
538            * setup.py (wxproj_extension): New variable.  Assign the Extension
539            instance for Lib.wxproj to this variable instead of putting it
540            directly into the listso that it can be accessed by other code
541            later.
542            (thuban_build_ext.user_options): Added boolean option
543            --use-wx-python-swig-hack.
544            (thuban_build_ext.initialize_options): Initialize the new option
545            to False.
546            (thuban_build_ext.finalize_options): If the new option was given,
547            define the preprocesser macro USE_WX_PYTHON_SWIG_HACK.
548            (thuban_build_ext): Update the doc-string
549    
550            * libraries/thuban/wxproj.cpp: Normally we use
551            wx/wxPython/wxPython.h now.  Only if USE_WX_PYTHON_SWIG_HACK is
552            defined, use swigPtrConvertHack.h instead.
553    
554            * libraries/thuban/swigPtrConvertHack.h: Remove the code that was
555            copied over from wxPython.h.
556            (decode_pointer_new): New.  Equivalent of decode_pointer for
557            wxPython 2.5.
558            (wxPyConvertSwigPtr): Modified to cope with wxPython 2.5 as well.
559    
560            * README: Add section on potential build problems which explains
561            how the work-around for a missing wxPython.h is activated.
562    
563    2005-03-29  Bernhard Herzog  <[email protected]>
564    
565            * test/postgissupport.py (find_postgis_sql): Added yet another
566            potential location for (lw)postgis.sql because the file has moved
567            again in postgis 1.0.0 rc4.
568    
569    2005-03-29  Bernhard Herzog  <[email protected]>
570    
571            * Thuban/UI/legend.py (BMP_SIZE_W, BMP_SIZE_H): Set both to 16 to
572            match the site of the legend_icon_layer icon.  Otherwise wxpython
573            2.5 complains when the legend is created with the error:
574    
575            PyAssertionError: C++ assertion "(bitmap.GetWidth() == m_width &&
576            bitmap.GetHeight() == m_height) || (m_width == 0 && m_height ==
577            0)" failed in ./src/generic/imaglist.cpp(81): invalid bitmap size
578            in wxImageList: this might work on this platform but definitely
579            won't under Windows.
580    
581    2005-03-23  Jonathan Coles <[email protected]>
582    
583            These changes add support for adjusting the opacity of a raster layer.
584    
585            * Thuban/Model/layer.py (RasterLayer.Opacity): Replaces AlphaOpacity.
586            (RasterLayer.SetOpacity): Replaces SetAlphaOpacity. Also triggers
587            a LAYER_CHANGED event if the opacity actually changes.
588    
589            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_data): Added
590            layer parameter needed in the implementation of this method in
591            renderer.py.
592    
593            * Thuban/UI/layerproperties.py (LayerProperties.dialog_layout): Fixed
594            typo 00 -> 0.
595    
596            * Thuban/UI/rasterlayerproperties.py (RasterLayerProperties): Added
597            control to adjust opacity.
598    
599            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Scale the
600            alpha data based on the opacity level of the layer.
601    
602            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Now
603            accepts a layer parameter.
604    
605            * test/test_layer.py (TestLayerModification.test_raster_layer):
606            Rename opacity method calls and add test for LAYER_CHANGED.
607    
608    2005-03-16  Bernhard Herzog  <[email protected]>
609    
610            * test/test_connector.py (DeletionTestMixin.check_deletions)
611            (DeletionTestMixin.check_deletetions): renamed to check_deletions.
612            update the callers.
613    
614    2005-03-14  Jan-Oliver Wagner <[email protected]>
615    
616            * Doc/manual/thuban-manual-de.xml: More translations.
617    
618    2005-03-10  Jan-Oliver Wagner <[email protected]>
619    
620            Introducing initialization callbacks for extensions.
621    
622            * Thuban/UI/extensionregistry.py (ExtensionDesc.__init__): Added
623            optional parameter init_callback.
624            (ExtensionDesc.init_ext): New. Executes the callback and sets
625            a status.
626    
627            * Thuban/UI/application.py (ThubanApplication.OnInit): Add the
628            initialization of the extensions.
629            (ThubanApplication.init_extensions): Init all extensions.
630    
631            * Thuban/UI/about.py (About.__init__): Added status of the extensions
632            to the about text.
633    
634            * Extensions/gns2shp/__init__.py: Added init method for Extension
635            description.
636            (init): New. Contains the initialization of the module.
637    
638    2005-03-04  Nina H�ffmeyer <[email protected]>
639    
640            * Extensions/ogr/ogrdialog.py: Added a dialog, which asks for
641            OGRConnection to open a datasource. Removed dialog to display all
642            available drivers. Added some doc strings.
643    
644            * Extensions/ogr/ogrstart.py: Added menu entry for opening an
645            OGRDatasource with a string. Added two opening methods which return an
646            OGRDatasource (either data from file or from DB).
647    
648            * Extensions/ogr/ogrshapes.py: Added class OGRGeometry, which
649            represents a geometry reference of an OGRFeature. OGRShape now has a
650            list of referenced geometry objects (important for geometry
651            collections).
652            For OGRShapeStores loaded from a DB an ID column can be specified now.
653    
654    2005-02-22  Jan-Oliver Wagner <[email protected]>
655    
656            * test/test_map.py (TestMapWithContents.test_tree_info):
657            Added label layer for comparison.
658    
659    2005-02-18  Jonathan Coles <[email protected]>
660    
661            * libraries/thuban/gdalwarp.cpp (GetImageData): Optimize the loop
662            which builds a mask. Handle the majority of an image in a loop,
663            creating 8 bits at a time. Later, handle the edge case where less
664            than 8 bits are packed.
665    
666    2005-02-18  Bernhard Herzog  <[email protected]>
667    
668            * test/test_baserenderer.py (TestBaseRenderer.setUp): Fix
669            doc-string
670    
671    2005-02-18  Jonathan Coles <[email protected]>
672    
673            * setup.py: Remove wx_cs_params from gdal compile options.
674    
675    2005-02-18  Jonathan Coles <[email protected]>
676    
677            Refactored baserenderer.py and renderer.py to remove baserenderer.py's
678            dependencies on wxPython. Added a new method projected_raster_layer()
679            that returns a raster layer image in projected space. This must be
680            implemented in classes derived from BaseRenderer. This also eliminates
681            the dependency on gdal in baserenderer.py.
682    
683            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Call
684            new projected_raster_layer() to get projected raster image instead
685            of directly calling ProjectRasterFile().
686            (BaseRenderer.projected_raster_layer): New. This must be implemented
687            by derived classes. It takes almost the same arguments as ProjectRasterFile
688            did and returns a projected image with mask and alpha data (if requested).
689            (BaseRenderer.render_map_incrementally): Remove the check for gdal since
690            that check will be done in MapRenderer.projected_raster_layer(). This
691            also allows other implementations to use different projection code.
692    
693            * Thuban/UI/renderer.py (MapRenderer.projected_raster_layer):
694            Implementation of BaseRenderer.projected_raster_layer. Checks for
695            gdal support and wxPython version. Also handles exceptions from
696            ProjectRasterFile.
697    
698            * libraries/thuban/gdalwarp.cpp: Removed checks for wxPython versions
699            and added a variable which can be set through the options argument
700            of ProjectRasterFile.
701    
702            * test/test_baserenderer.py (SimpleRenderer.projected_raster_layer): New.
703            Calls ProjectRasterFile and returns the result.
704            (TestBaseRenderer.test_projected_raster_layer): New. Tests the results
705            of calling projected_raster_layer() with different options.
706            (TestBaseRenderer.test_raster_no_projection): Removed tests based on
707            wxPython version and all tests of masks and alpha channels. These are
708            now in test_projected_raster_layer().
709    
710    2005-02-17  Jan-Oliver Wagner <[email protected]>
711    
712            * Thuban/Model/map.py, Thuban/Model/label.py: Fixed
713            doc-strings to comply with coding_guidelines.
714    
715    2005-02-17  Jan-Oliver Wagner <[email protected]>
716    
717            Docstring improvements and minor fixes for labellayer.
718    
719            * Thuban/Model/map.py:
720            (Map, Map.Destroy, Map.RemoveLayer, Map.ClearLayers,
721            Map.Layers, Map.HasLayers, Map.MoveLayerToTop,
722            Map.RaiseLayer, Map.LowerLayer, Map.MoveLayerToBottom,
723            Map.ProjectedBoundingBox, Map.GetProjection): Improved/added
724            doc string.
725            (Map.BoundingBox): Removed superfluous test for label_layer
726            and improved doc string.
727            (Map.TreeInfo): Added label_layer and improved sdo string.
728    
729            * Thuban/Model/label.py: Added import of _.
730            (Label, Label.__init__): Improved/added doc string.
731            (LabelLayer, LabelLayer.__init__, LabelLayer.Labels,
732            LabelLayer.RemoveLabel, LabelLayer.ClearLabels):
733            Improved/added doc string.
734            (LabelLayer.AddLabel): Use already defined names for
735            align strings and improved doc string.
736            (LabelLayer.TreeInfo): New. Return the object data for
737            the tree view.
738    
739    2005-02-16  Jonathan Coles <[email protected]>
740    
741            Further wxPython 2.5 changes using patches from Daniel Calvelo Aros
742            so that that wxproj doesn't crash. Added GUI support for selecting
743            alpha channel (opacity can't be selected yet).
744    
745            NOTE: If wxPython.h is including in future distribution packages
746            then it will not be necessary to have the files swigPtrConvertHack.h
747            and wxPython_int.h included with Thuban. This is hopefully
748            a temporary workaround.
749    
750            * setup.py (thuban_build_ext.finalize_options): gdalwarp needs
751            access to the macro wxCHECK_VERSION so that it will properly
752            generate a bit mask. There was a problem between wx2.4 and wx2.5
753            that this works around.
754    
755            * Thuban/Model/layer.py (RasterLayer.UseMask): Removed in favor
756            of RasterLayer.MaskType.
757            (RasterLayer.SetUseMask): Removed in favor of RasterLayer.SetMaskType
758            (RasterLayer.MaskType): New. Returns the type of mask to use. Can
759            specify none, a bitmap, or an alpha channel.
760            (RasterLayer.SetMaskType): New. Set what kind of mask to use.
761    
762            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
763            Set the raster warping options for the mask based on the value
764            of RasterLayer.MaskType.
765    
766            * Thuban/UI/legend.py (LegendTree.__FillTreeLayer): Remove
767            deprecated calls to SetItemSelectedImage in favor of SetItemImage
768            with wxTreeItemIcon_Selected.
769    
770            * Thuban/UI/rasterlayerproperties.py: Support selecting to use
771            an alpha channel for the mask.
772    
773            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Use alpha
774            data if it is available and an alpha channel is supported under
775            the current version of wxPython.
776    
777            * libraries/thuban/gdalwarp.cpp (GetImageData): Added compiler define
778            to select whether 1's or 0's select the desired portion of an image
779            in the bit mask. wx2.4 has a bug where the documentation is the opposite
780            from behavior.
781            (ProjectRasterFile): Only generate an alpha channel if the version
782            of wxPython is >= 2.5.3.
783    
784            * libraries/thuban/wxproj.cpp: Applied patches from Daniel Calvelo Aros.
785            When wxPython >= 2.5.3 use the special swig functions to decode an
786            object's address.
787    
788            * libraries/thuban/swigPtrConvertHack.h: Includes conditional code
789            based on the version of wxPython. If >= 2.5.3 use the special swig
790            functions from wxPython to decode wxPython objects, otherwise use
791            the old method of retrieving the address from the object __repr__ string.
792    
793            * libraries/thuban/wxPython_int.h: Copied from wxPython source.
794            Unnecessary code was removed to make it smaller.
795    
796            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
797            Add tests for returning an alpha channel.
798    
799            * test/test_layer.py (TestLayerModification.test_raster_layer): Fix
800            tests that used removed functions UseMask and SetUseMask
801    
802    
803    2005-02-08  Bernhard Herzog  <[email protected]>
804    
805            More wxPython 2.5 changes.  This time taken from a patch from
806            Daniel Calvelo Aros.
807    
808            * Thuban/UI/tableview.py (QueryTableFrame.__init__)
809            (QueryTableFrame.__init__): Pass the size of a spacer as a single
810            item.
811    
812            * Thuban/UI/projdialog.py (ProjFrame.build_dialog)
813            (ProjFrame.build_dialog): Pass the size of a spacer as a single
814            item.
815    
816            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Pass the
817            size of a spacer as a single item.
818    
819            * Thuban/UI/classifier.py (Classifier.dialog_layout): Pass the
820            size of a spacer as a single item.
821    
822    2005-02-08  Bernhard Herzog  <[email protected]>
823    
824            Compatibility with wxPython 2.5.  The changes should make it work
825            better with 2.5 while still keeping compatibility with 2.4.  There
826            are still problems with 2.5, though.
827    
828            * Thuban/UI/dock.py (DockableWindow.__CreateBorder): Pass the size
829            of a spacer as a single item.
830    
831            * Thuban/UI/classifier.py (ClassGroupPropertiesCtrl): Derive only
832            from wxControl
833    
834            * Thuban/UI/legend.py (LegendTree): When running with wxPython <
835            2.5, add an implementation of the GetFirstChild method that does
836            not require the second parameter.
837            (LegendTree.find_layer, LegendTree._OnMsgMapLayersAdded)
838            (LegendTree._OnMsgMapLayersRemoved, LegendTree.DeleteAllItems)
839            (LegendTree.DeleteChildren, LegendTree.__ShowHideLayer): Do not
840            pass the second parameter to GetFirstChild
841    
842    2005-02-08  Nina H�ffmeyer <[email protected]>
843    
844            * Extensions/ogr/ogrshapes.py: Removed some print commands.
845    
846            * Extensions/ogr/ogrstart.py: Changed the GUI. OGR is no longer an
847            additional menu but appears as a possibility in the menu Map.
848    
849    2005-02-07  Jonathan Coles <[email protected]>
850            * libraries/thuban/gdalwarp.cpp: Removed the macros PYTHON_ERR
851            and PYTHON_ERRF since they were no longer necessary.
852    
853    2005-02-07  Bernhard Reiter <[email protected]>
854            * Thuban/UI/classifier.py (ClassGrid.DeleteSelectedRows):
855            Enable translation for message string.
856    
857    2005-02-06  Martin Schulze  <[email protected]>
858    
859            * Extensions/wms/infodialog.py (wmsInfoDialog.__init__): Adjusted
860            the arguments of the contstructor to fit the global scheme
861    
862    2005-01-31  Nina H�ffmeyer <[email protected]>
863    
864            * Extensions/ogr/ogrdialog.py: Added class ogrdialog.py, which provides
865            some dialogs needed to start ogr.
866            
867            * Extensions/ogr/__init__.py: Changed comments to avoid encoding
868            warnings.
869    
870            * Extensions/ogr/test/test_OGRShapestore.py: Changed comments to avoid
871            encoding warnings.
872    
873    2005-01-28  Jonathan Coles <[email protected]>
874    
875            * libraries/thuban/gdalwarp.cpp (GetImageData): Recode how the
876            mask is packed into a bit array. It's now slightly faster.
877    
878    2005-01-28  Jonathan Coles <[email protected]>
879    
880            * Thuban/Model/layer.py (RasterLayer.__init__): Make use_mask
881            default to true.
882    
883            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Remove
884            code that loads the state of the layer's use_mask flag. Its
885            usefulness is still being debated.
886    
887            * Thuban/Model/save.py (SessionSaver.write_layer): Remove
888            code that saves the state of the layer's use_mask flag. Its
889            usefulness is still being debated.
890    
891            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
892            options to ProjectRasterFile based on the state of layer.UseMask().
893            Catch more exceptions from ProjectRasterFile so that Thuban doesn't
894            quit is there is a problem projecting.
895            (BaseRenderer.draw_raster_data): Change the documentation to
896            describe the new format (XBM) that the mask data will be in.
897    
898            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): The mask
899            data is in XBM format when format='RAW' which means it doesn't
900            need to be converted to a wxImage before being used as a mask
901            for a wxBitmap. Assume that if format != 'RAW' that the image
902            data and mask data are in the same format.
903    
904            * libraries/thuban/gdalwarp.cpp (GetImageData): If alpha is enabled
905            and a mask is requested, convert the alpha band to a bit array in
906            XBM format. if an alpha channel is requested, simply return the
907            data in the alpha band. Provide better error handling by returning
908            python error messages (also fixes RT #2947).
909            (ProjectRasterFile): Support multiple mask options, rather than simply
910            a flag indicating that a mask should or should not be used. Provide
911            better error handling by returning python error messages.
912    
913            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
914            Add mask data to test.
915    
916            * test/test_layer.py (TestLayer.test_raster_layer): Test that a layer
917            should use the mask by default.
918            (TestLayerModificaton.test_raster_layer): Test that a layer should use
919            the mask by default.
920    
921            * test/test_load.py (TestRasterLayer.test): Remove testing for
922            use_mask flag in file.
923    
924            * test/test_save.py (SaveSessionTest.testRasterLayer): Remove testing
925            for use_mask in file.
926    
927            * test/test_load_1_0_1.py: Removed. Shouldn't have been checked in.
928            
929    2005-01-26  Jonathan Coles <[email protected]>
930    
931            Add a new dialog box for raster layers. The dialog box allows
932            the user to toggle a mask that is generated by ProjectRasterFile
933            and is used to only draw the real parts of the projected image.
934    
935            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
936            Instruct the warping code to generate a mask if the raster layer
937            requests one.
938            (BaseRenderer.draw_raster_data): Removed obsolete optional mask argument.
939    
940            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Removed
941            obsolete optional mask argument.
942    
943            * Thuban/UI/classifier.py (Classifier): Change the parent class
944            to LayerProperties and rework the code to support layout calls
945            from the parent.
946            (Classifier.dialog_layout): New. Layout the dialog box.
947            (Classifier.map_layers_removed): Removed. Moved to parent class.
948            (Classifier.map_replaced): Removed. Moved to parent class.
949            (Classifier._OnTry): Renamed to OnTry to support parent class.
950            (Classifier.OnClose): Removed. Supplied in parent class.
951            (Classifier._OnCloseBtn): Removed. Supplied in parent class as OnCloseBtn.
952            (Classifier._OnOK): Renamed to OnOK to support parent class.
953            (Classifier._OnRevert): Renamed to OnRevert to support parent class.
954    
955            * Thuban/UI/layerproperties.py: New. Base class for layer properties
956            dialog boxes.
957    
958            * Thuban/UI/rasterlayerproperties.py: New. Class for displaying
959            raster layer properties.
960    
961            * libraries/thuban/gdalwarp.cpp: Replace the old gdalwarp.cpp code
962            with the non-simple version supplied with gdal. This allows added
963            features such as creating an alpha band.
964            (GetImageData): Generate a mask array from the alpha band that is
965            generated by gdal if the user has selected it. Try to support images
966            that have more than three bands, such as images with RGB plus an
967            alpha band.
968            (ProjectRasterFile): Convert python argument for mask and tell
969            gdal to enable or disable an alpha band.
970    
971            * Thuban/Model/layer.py (BaseLayer.Type): New. Returns a string
972            describing what kind of layer the class is. Defaults to "Unknown",
973            but should be overridden by subclasses.
974            (Layer.Type): New. Override base class method.
975            (RasterLayer.__init__): Create a flag for using a mask. Record extra
976            data from gdal for display in the properties dialog.
977            (RasterLayer.Type): New. Override base class method.
978            (RasterLayer.UseMask): New. Returns True if the mask should be used.
979            (RasterLayer.SetUseMask): New. Set if the mask should be used.
980            (RasterLayer.ImageInfo): New. Return extra information about the image.
981    
982            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Load
983            the mask information.
984    
985            * Thuban/Model/save.py (SessionSaver.write_layer): Save mask information.
986    
987            * Thuban/UI/mainwindow.py: Register the RasterLayerProperties and
988            Classifier classes as dialogs to use with the proper layer types.
989    
990            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
991            Fix test.
992    
993            * test/test_layer.py (TestLayer.test_raster_layer): Test new methods.
994            (TestLayerModification.build_path): New. Support function.
995            (TestLayerModification.test_raster_layer): New. Test new methods.
996    
997            * test/test_save.py (SaveSessionTest.testRasterLayer): Add tests for mask.
998    
999            * test/test_load.py (TestRasterLayer): Add tests for mask.
1000    
1001            * test/test_load_1_0_1.py: New. Copied from test_load.py.
1002    
1003            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Removed
1004            obsolete optional mask argument.
1005    
1006    2005-01-26  Nina H�ffmeyer <[email protected]>
1007    
1008            * Extensions/ogr/ogrshapes.py: Added two dictionaries to ShapeStore
1009            which maps the ids and the ordinals. Fixed RowIdToOrdinal(),
1010            RowOrdinalToId() and ReadRowAsDict().
1011    
1012            * Extensions/ogr/ogrstart.py: Added menu item which opens database
1013            layers for existing database connections.
1014    
1015            * Extensions/ogr/test/test_OGRShapestore.py: Fixed a message string.
1016    
1017    
1018    2005-01-26  Jan-Oliver Wagner <[email protected]>
1019    
1020            * Doc/manual/thuban-manual-de.xml: More translations.
1021    
1022    2005-01-24  Bernhard Herzog  <[email protected]>
1023    
1024            Rework the status bar updates a bit to make sure the message about
1025            the projections is produced at the right times.
1026    
1027            * Thuban/UI/mainwindow.py (MainWindow.update_status_bar_messages):
1028            New class variable with messages that may require a status bar
1029            update.
1030            (MainWindow.view_position_changed)
1031            (MainWindow.update_status_bar): Rename from view_position_changed
1032            to update_status_bar.  It's meaning has changed now that it may
1033            also generate messages about problems with projection settings.
1034            (MainWindow.__init__): Use the new update_status_bar_messages
1035            class variable to subscribe update_status_bar
1036            (MainWindow.set_position_text): Update doc-string.  This method
1037            has to be renamed at some point.  See doc-string and comments.
1038            (MainWindow.OnClose): Unsubscribe update_status_bar from all
1039            messages in update_status_bar_messages
1040    
1041            * Thuban/UI/viewport.py (ViewPort.forwarded_map_messages): New
1042            class attribute.  map messages to be forwarded by the viewport.
1043            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): (un)subscribe
1044            the messages in forwarded_map_messages
1045    
1046    2005-01-21  Bernhard Herzog  <[email protected]>
1047    
1048            * test/postgissupport.py (PostGISDatabase.__init__): Tweak
1049            doc-string
1050            (find_postgis_sql): Update for postgis-1.0.0-rc1, which uses a
1051            different name for the initialization SQL file.
1052    
1053    2005-01-21  Jonathan Coles <[email protected]>
1054    
1055            * Thuban/UI/baserenderer.py (proj_params_to_str): New. Takes
1056            a projection and returns a formatted string representing the
1057            parameters to feed to gdalwarp. This function eliminates
1058            redundancy in draw_raster_layer().
1059            (BaseRenderer.render_map_incrementally): Removed the optimization which
1060            drew the top most raster layer first and then only those vector-
1061            based layers that are above it. With the support for transparency
1062            this optimization breaks correct behaviour.
1063            (BaseRenderer.draw_raster_layer): Reorganize code to support possible
1064            future enhancements to raster layer bounding box. The old behaviour has
1065            not changed. Also, change calling parameters to draw_raster_data()
1066            to specify new RAW data format and mask.
1067            (BaseRenderer.draw_raster_data): Change signature to include an optional
1068            parameter for mask information. Change documentation to mention
1069            support for new parameter and added option for RAW data format.
1070            The data argument is now a list of [width, height, data].
1071    
1072            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Add new optional
1073            mask parameter. Add new condition for RAW format, which
1074            significantly reduces rendering time. Add condition for
1075            mask parameter.
1076    
1077            * libraries/thuban/gdalwarp.cpp (GetImageData): New. Creates a
1078            data array of RGB values from the projected image returned from
1079            the gdal warping functions. In the case of palette based images, it
1080            converts the NO_DATA index to the mask color.
1081            (ProjectRasterFile): Removed all custom memory driver references
1082            and replaced it with the standard in-memory dataset provided
1083            by gdal. The return data is no longer a BMP file, but an array
1084            of RGB values, one set triple per pixel.
1085    
1086            * libraries/thuban/bmpdataset.cpp: Removed. Unnecessary.
1087            * libraries/thuban/cpl_mfile.h: Removed. Unnecessary.
1088            * libraries/thuban/cpl_mfile.cpp: Removed. Unnecessary.
1089    
1090            * setup.py (thuban_build_ext.finalize_options): Removed mention
1091            of cpl_mfile.cpp and bmpdataset.cpp files in the list of source
1092            files. These are obsolete with the new version of gdalwarp.cpp
1093    
1094            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
1095            Updated signature.
1096            (TestBaseRenderer.test_raster_no_projection): Changed the test
1097            data to be data in the uncompressed RAW format returned from
1098            ProjectRasterFile.
1099    
1100    2005-01-21  Jan-Oliver Wagner <[email protected]>
1101    
1102            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Made
1103            string available for i18n.
1104    
1105    2005-01-20  Russell Nelson  <[email protected]>
1106    
1107            * Resources/Projections/defaults.proj: Ruin the speling of the
1108            Lambert-93 projection so it doesn't run into the wx UTF-8 bug.
1109            It's the wrong thing to do in the long run, but it's necessary for
1110            those users until that bug is fixed.  Otherwise the projection
1111            dialog segfaults.  Better to annoy some Lambert-93 users with a
1112            spelling mistake than every Fedora Core 3 user of Thuban-CVS.
1113    
1114    2005-01-20  Bernhard Reiter <[email protected]>
1115    
1116            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Added
1117            docstring and comment that the warning code here is a hack.
1118    
1119    2005-01-20  Russell Nelson  <[email protected]>
1120    
1121            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Warn
1122            user about misprojected layers when their lat/lon bounding
1123            box exceeds rational lat/lon values.
1124    
1125    2005-01-20  Bernhard Reiter <[email protected]>
1126    
1127            * Thuban/UI/about.py (unicodeToLocale): Improved:
1128            Use 'ascii' and then 'replace' for other characters
1129            when getdefaultlocale returns None. Thanks to Bernhard H. .
1130    
1131    2005-01-20  Bernhard Reiter <[email protected]>
1132    
1133            * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Added a comment
1134            that OnRangeText might be called twice and using None as argument.
1135    
1136    2005-01-20  Bernhard Reiter <[email protected]>
1137    
1138            * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Add a
1139            OnRangeText(0) to work around a different in wx Behaviour noticed
1140            on MacOSX, thanks to Lorenzo Moretti and Daniel Calvelo for the fix.
1141    
1142    2005-01-20  Bernhard Reiter <[email protected]>
1143    
1144            * Thuban/UI/about.py: take iso-8859-15 when getdefaultlocale returns
1145            None. (Fixes rt#2910.)
1146            
1147    2005-01-18  Frank Koormann <[email protected]>
1148    
1149            New Extension: mouseposition
1150            Tool to collect mouse click positions (map coordinates) in a dialog.
1151    
1152            * Extensions/mouseposition/__init__.py: New, extension registration
1153    
1154            * Extensions/mouseposition/mouseposition.py: New, implements the
1155            dialog and adds a tool to Thuban mainwindow.
1156    
1157            * Extensions/mouseposition/position.xpm: New, icon for tool.
1158    
1159    2005-01-14  Jan-Oliver Wagner <[email protected]>
1160    
1161            * Doc/manual/thuban-manual-de.xml: More translations.
1162    
1163    2005-01-11  Frank Koormann <[email protected]>
1164    
1165            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
1166            Fix indention bug.
1167    
1168    2005-01-09  Frank Koormann <[email protected]>
1169    
1170            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
1171            BugFix 2901: Explicitly copy layers ClassificationColumn since it
1172            is not part of the layers Classification.
1173    
1174    2005-01-03  Frank Koormann <[email protected]>
1175    
1176            * Thuban/UI/renderer.py (ScreenRendererdraw_selection_incrementally):
1177            BugFix 2883: Former implementation only worked on classified point
1178            layers: KeyError was raised, now use the default size if field is None.
1179    
1180    2004-12-27  Bernhard Reiter <[email protected]>
1181    
1182            svgexport 1.0.0cvs: Fixed label export.
1183    
1184            * Extensions/svgexport/test/test_svgmapwriter.py:
1185            class TestSVGRenderer(): New class; new test test_label_font().
1186    
1187            * Extensions/svgexport/svgmapwriter.py
1188            (SVGRenderer.label_font()): initialised Font size with self.factor now,
1189            makes test_label_font happy.
1190    
1191            * Extensions/svgexport/TODO: crossed out fixed label export item.
1192            Added item for options.
1193    
1194            * Extensions/svgexport/__init__.py: Bumped version to 1.0.0cvs.
1195    
1196    2004-12-27  Russell Nelson  <[email protected]>
1197    
1198            Middle mouse button pans.
1199    
1200            * Thuban/UI/view.py (MapCanvas.__init__): Subscribe also
1201            OnMiddleDown and OnMiddleUp events.
1202            (MapCanvas.OnMiddleDown): New. Activate the pan tool and remember the
1203            previously used tool.
1204            (MapCanvas.OnMiddleUp): New. Reactivate the remebered tool used before
1205            pressing the middle mouse button.
1206    
1207    2004-12-27  Jan-Oliver Wagner <[email protected]>
1208    
1209            * Doc/manual/thuban-manual-de.xml: More translations.
1210    
1211    2004-12-23  Jan-Oliver Wagner <[email protected]>
1212    
1213            * Thuban/UI/projdialog.py (ProjFrame.load_user_proj): Added a
1214            \n to stderr after the warnings. Thanks to Russell Nelson.
1215    
1216    2004-12-20  Nina Hueffmeyer <[email protected]>
1217    
1218            * Extensions/ogr/ogrshapes.py: Fixed some issues from
1219            Bernhard (coding guidelines etc.). Additionally it is now possible to
1220            display shapefiles containing feature collections (e.g.polygons
1221            with holes). Works with gdal 1.2.1 now.
1222    
1223            * Extensions/ogr/test/test_OGRShapestore.py: Fixed some issues
1224            from Bernhard (coding guidelines etc.). If ogr can't be imported,
1225            tests are skipped now.
1226    
1227            * Extensions/ogr/ogrstart.py: Fixed some typings.
1228    
1229    2004-12-20  Bernhard Reiter <[email protected]>
1230    
1231            * Extensions/svgexport/TODO: updated to add support for
1232            raster layers and labels for 1.0.1.
1233    
1234            * Extensions/svgexport/svgmapwriter.py (draw_raster_layer):
1235            Issue a warning now.
1236    
1237    2004-12-19  Bernhard Reiter <[email protected]>
1238    
1239            * Extensions/svgexport/TODO: Added idea to support triggering
1240            the application down the pipe.
1241    
1242    2004-12-19  Bernhard Reiter <[email protected]>
1243    
1244            svgexport: Improved code quality, mainly by better naming.
1245    
1246            * Extensions/svgexport/svgmapwriter.py:
1247            DrawPath() renamed to DrawPolygonPath(),
1248            added documentation, improved comments and variable names.
1249            
1250            * Extensions/svgexport/svgmapwriter.py,
1251              Extensions/svgexport/test/test_svgmapwriter.py:
1252            All using DrawPolygonPath() now, the default parameter closed=True
1253            omitted.
1254    
1255            * Extensions/svgexport/test/test_svgmapwriter.py:
1256            renamed test_polygon_opened() to test_polyline()
1257            renamed test_transparent_polygon() to test_transparent_polyline()
1258    
1259    2004-12-18  Jan-Oliver Wagner <[email protected]>
1260    
1261            Some fixes of gns2shp extension.
1262    
1263            * Extensions/gns2shp/test/__init__.py: New. Make this directory a
1264            package.
1265    
1266            * Extensions/gns2shp/test/test_gns2shp.py: Add some import paths
1267            dynamically.
1268    
1269            * Extensions/gns2shp/test/README: Simplified description how to test.
1270    
1271            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed doc-string,
1272            fixed some dimensions of fields according to the GNS documentation
1273            which seems to change undocumented.
1274            Now killing trailing \n and/or \r from MODIFY_DATE.
1275            This fixes RT#2453.
1276    
1277    2004-12-18  Bernhard Reiter <[email protected]>
1278    
1279            svgexport 1.0.0: Treats holes and islands nicely. Documentation added.
1280    
1281            * Extensions/svgexport/test/test_svgmapwriter.py:
1282            Added new tests: test_export_polygon_with_hole()
1283            and test_polygon_with_hole().
1284    
1285            * Extensions/svgexport/svgmapwriter.py
1286            (draw_polygon_shape()): Uses DrawPath correctly now.
1287    
1288            * Doc/manual/thuban-manual.xml: Added documentation for stable
1289            extention svgexport.    
1290            * Doc/manual/thuban-manual-de.xml: Copied English section about
1291            svexport over.
1292    
1293            * Extensions/svgexport/__init__.py: Bumped version number to 1.0.0.
1294    
1295            * Extensions/svgexport/svgsaver.py,maplegend.py:
1296            Moved from experimental to stable extension menu.
1297    
1298            * Extensions/svgexport/TODO: updated.
1299    
1300    
1301    2004-12-18  Bernhard Reiter <[email protected]>
1302    
1303            Added Extensions/svgexport/TODO
1304    
1305    2004-12-18  Bernhard Reiter <[email protected]>
1306    
1307            Refactored in svgexport:
1308            DrawPath replaces DrawPolygon; added newline in front of "M" in paths.
1309    
1310            * Extensions/svgexport/svgmapwriter.py
1311            Added verbosity level 3 to print out polygon points.
1312            (class Point): added __repr__
1313            (class Brush, __str__()): Added space after ,.
1314            (DrawPolygon): Renamed to DrawPath()
1315            (DrawPath): Takes list of polygons as input now, adds \n before "M"s.
1316            (DrawLines): Using DrawPath now.
1317    
1318            * Extensions/svgexport/test/test_svgmapwriter.py:
1319            Replaced DrawPolygon() calls with DrawPath() and put the first argument
1320            inside another list. Adapted test data with a newline before "M".
1321    
1322    2004-12-18  Bernhard Reiter <[email protected]>
1323            
1324            Refactored svgexport tests: 9 double tests runs eliminated;
1325            code size reduced by 8 lines.
1326    
1327            * Extensions/svgexport/test/test_svgmapwriter.py:
1328            (class TestWithDC): Renamed to BaseTestWithDC, moved to top.
1329            (class BaseWithDCtools): New, subclass from BaseTestWithDC.
1330            (class TestDrawSplines): now subclass from BaseTestWithDCtools,
1331            this fixed the double running of the nine tests of TestVirtualDC.
1332            (class TestVirtualDC): Using self.dc and self.file from setUp().
1333    
1334    2004-12-17  Bernhard Herzog  <[email protected]>
1335    
1336            Two windows specific fixes ported from thuban-1�0-branch:
1337    
1338            * Thuban/UI/about.py (unicodeToLocale): Use getdefaultlocale
1339            instead of getlocale because getlocale doesn't return a usable
1340            encoding name on a german windows 2000
1341    
1342            * setup.py: windows build: Removed the absolute path names and
1343            made all prfixes relative to the directory containing setup.py.
1344            Makes it a little easier to adapt to a different system.
1345    
1346    2004-12-16  Bernhard Herzog  <[email protected]>
1347    
1348            Add support for PostGIS tables with LINESTRING geometries.
1349            Fixes RT#2299
1350    
1351            * Thuban/Model/postgisdb.py (shapetype_map): Add LINESTRING
1352    
1353            * test/postgissupport.py
1354            (PostgreSQLServer.get_default_static_data_db): Rename the "roads"
1355            table to "roads-multi" because it now uses MULTILINESTRING
1356            geometries and introduce a new "roads" table that uses LINESTRING
1357            (coords_to_multilinestring): Make the doc string more precise
1358            (coords_to_linestring): New.  Create a LINESTRING WKT
1359            representatin
1360            (wkt_converter): Add coords_to_linestring
1361            (upload_shapefile): Rephrase the doc-string a bit.
1362    
1363            * test/test_postgis_db.py (TestPostGISShapestoreArc)
1364            (LineStringTests)
1365            (TestPostGISShapestoreLineString)
1366            (TestPostGISShapestoreMultiLineString): Split
1367            TestPostGISShapestoreArc into a base class LineStringTests and two
1368            derived classes TestPostGISShapestoreLineString for LINESTRING
1369            geometries and TestPostGISShapestoreMultiLineString for
1370            MULTILINESTRING geometries.  Most test methods are in the base
1371            class with the exception of tests that explicitly check the raw
1372            format.
1373    
1374    2004-12-16  Bernhard Herzog  <[email protected]>
1375    
1376            Make the test suite work with PostGIS 0.8.2 and PostgreSQL 7.4
1377    
1378            * test/postgissupport.py (find_postgis_sql): Different postgis
1379            versions put the postgis.sql file into slightly different places
1380            so we have to look in both.  The updated doc string describes this
1381            is more detail.
1382    
1383            * test/test_postgis_db.py
1384            (TestPostGISSpecialCases.test_column_name_quoting): The return
1385            value of UniqueValues is unsorted, so it has to be sorted for
1386            comparison.
1387    
1388    2004-12-16  Bernhard Herzog  <[email protected]>
1389    
1390            Fix for RT#2237
1391    
1392            * Thuban/UI/projdialog.py (ProjFrame._show_proj_panel): If the
1393            panel to be shown is the UnknownProjPanel disable the OK and Try
1394            buttons.  Otherwise enable them.
1395            (ProjFrame.__GetProjection): The UnknownProjPanel returns None for
1396            the parameters.  In that case __GetProjection also returns None
1397            now.
1398    
1399    2004-12-15  Bernhard Herzog  <[email protected]>
1400    
1401            * Thuban/UI/classgen.py (GenQuantilesPanel.__init__): Set the
1402            minimum number of classes to 2.  The calculate_quantiles needs at
1403            least two and raises an exception otherwise.  
1404            Fixes RT#2549
1405    
1406    2004-12-15  Bernhard Herzog  <[email protected]>
1407    
1408            * test/postgissupport.py (PostgreSQLServer.execute_sql): Extend to
1409            so that it returns a result for select statements.
1410            (PostgreSQLServer.server_version): New.  Return the version of the
1411            server software.
1412            (PostgreSQLServer.require_authentication): The format of
1413            pg_hba.conf has changed between PostgrSQL 7.2 and 7.3.  Check the
1414            server version and generate the file in the correct format
1415    
1416    2004-12-15  Bernhard Herzog  <[email protected]>
1417    
1418            * test/postgissupport.py (PostgreSQLServer.is_running): Fix typo
1419            in the doc string and rephrase it a little.
1420    
1421    2004-12-15  Frank Koormann <[email protected]>
1422    
1423            * test/test_load.py (TestAltPath.checkSession): New, extended checks if
1424            session has been loaded successfully. The check is called by the relevant
1425            tests after executing load_session().
1426    
1427    2004-12-13  Bernhard Herzog  <[email protected]>
1428    
1429            Make sure the region used to determine which shapes are visible
1430            actually matches the region on the printed page.  If this isn't
1431            done properly some shapes might not be printed.  
1432            Fixes RT #2692
1433    
1434            * Thuban/UI/view.py (MapPrintout.draw_on_dc): The region for the
1435            renderer has to be at the same position as the mapregion
1436    
1437            * Thuban/UI/renderer.py (ExportRenderer.RenderMap): self.region
1438            has to be moved by (self.shiftx, self.shifty) too.
1439    
1440  2004-12-13  Bernhard Herzog  <[email protected]>  2004-12-13  Bernhard Herzog  <[email protected]>
1441    
1442          * libraries/pyprojection/Projection.i: Work around a bug in the          * libraries/pyprojection/Projection.i: Work around a bug in the

Legend:
Removed from v.2452  
changed lines
  Added in v.2694

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26