This file describes what we need to do before certain milestones.

Mark those tasks that you want to perform with your name:
 INGE   Inge Wallin              ingwa     inge@lysator.liu.se
 TACK   Torsten Rahn             tackat
 CARU   Carlos Licea             carutsu
 MURA   Murad Tagirov
 JM     Jens-Michael Hoffmann    jm        jensmh@gmx.de


Whenever -- not tied to any release
================================================================

Documentation
 * Write more in DESIGN                                                 INGE
   - Describe the view parameters                                       --
   - Describe the vector engine                                         --
   - Describe the placemark engine                                      --
 * Write more in USECASES                                               INGE

Add maps to GHNS:
 * Annual precipation,                                                  DONE
    - precipation July                                                  DONE
    - precipation December                                              DONE
 * Annual temperature                                                   DONE
    - temperature July                                                  DONE
    - temperature December                                              DONE


Before KDE 4.0.2
================================================================

Bugs
 * Fix Double Click on map						----
   (should center the map on the point being double clicked).
 * Find the reason why labels overlap when a KML file gets loaded.	TACK
 * More bugs: See the BUGS file.

Documentation:
 * APIDOX for classes in geodata/data                                   INGE
    - IconStyle                                                         inge
    - HotSpot?                                                          --
    - Serializable?                                                     --
 * APIDOX for classes in AbstractLayer                                  ----
    - ...
 * APIDOX for classes in src/lib:                                       INGE
   - Mainpage.dox                                                       done
   - MarbleWidget                                                       done
   - MarbleControlBox                                                   --
   - MarbleModel                                                        --
   - MarbleNavigator                                                    done
   - MarblePlacemarkModel                                               --
 * Programmers manual for using Marble components in other applications ----
 * Apidox for all public classes                                        ----

Widget:
 * Separate the view from the globe (model)                             INGE
    - Let the view parameters be in the view instead of in the globe    done
    - Don't open any dialogs from the globe, do it from the controller. inge
    - Let the view know about the globe, but not the other way.         done

 
Before KDE 4.1
================================================================

Documentation / Specification
 * Update manual for the new features					----	
    - Update screenshots     						--
 * Add formal description of DGML                                      	TACK


Planning and architecture:
 * write proposals for Marble 0.6 / KDE 4.1                             ----
    - Layer Management class                                            done
    - Data source plugins                                               --
    - Visualization plugins (layers?)                                   TACK in progress
    - Projection class                                                  no
    - Bounding boxes                                                    TACK
    - Model-View concept                                                --
    - Spatial Indices                                                   --

Make it a more complete KDE4 application as a real member of kdeedu.
 * DBus Support                                                         TACK

Vector backend
 * Better scalability                                                   ----

Features:
 * Settings								----
    - DMS  <-->  Degrees (decimal)					done
 * Support for OpenStreetMap                                            JM
    - Load tiles                                                        done
    - Display tiles                                                     done
    - Expiration of tiles                                               done
    - Searching for cities and streets                                  --
 * Support to display Timezones, Data available e.g. at:                ----
        http://sarangworld.com/NMLUG/WorldTZ_102.zip
 * A more general projection system					INGE
    - Move projection stuff to its own subdirectory			done
    - Create a helper class ProjectionHelper to perform actual actions	done
    - Move paintBase to ProjectionHelper				done
    - Move activeRegion to ProjectionHelper				done
    - Move mapCoversImage (prev. globeCoversImage) to Projection	done
 * Mercator Projection                                                  INGE
    - Create a MercatorScanlineTextureMapper	      			inge
    - Make the vector base work (VectorMap)	   			inge
    - ActiveRegion for Mercator.					done
    - Gridmap								done

 * Fix GPS Support (that's a regression) 				ANDR
    - Make it a Marble plugin						--


Internal structure:
 * Create a QPersistentModelIndex for MarblePlaceMarkModel items to     DONE
   improve speed on close up zooms.
 * New class MarbleMap that can paint a map on any QPainter             DONE
    - Check Apidox if there is anything missing.                        --
 * Design and implement Projection class                                DONE
 * Refactor KML to use QXmlStreamReader                                 DONE
 * Make MarbleModel a real model and MarbleWidget a real view           ----
     Move to 4.2?  Probably...
 * Make it possible to paint on whatever QPainter Marble is given       ----
     Move to 4.2?  Probably...
 * Layer Management Class                                               TACK
    - Split off MapTheme / DGML parsing into geodata/parser.            done
      Have a GeoDataMapTheme class that basically only includes
      those parts of the current MapTheme except for parsing.
    - Implement / move <head> features as lined out in                  done
      layermanagement.txt This should happen after the 
      QXmlStreamReader port.
 * Plugin interface (see also GeoPainter)                               TACK
    - Make a QPlugin based interface                                    done
    - Move backends into plugins / threads                              --
 * GeoPainter								----
 * Create a LatLonBoundingBox                                           DONE
    - Use it everywhere :-) 						--
 * Download manager fixes:						----
    - After maps get downloaded sometimes the resolution doesn't get	--
      updated to what is has just been stored on the disc
    - Implement "retry to download the tile 3 times during the current	--
      session if the tile couldn't get fetched on first try"

User experience / Usability
 * Make Marble have a RenderingQuality setting in ViewParams:           DONE
   - Use different render settings while panning (MOVE) and             done
     after releasing the mouse (DROP).
   - Rerender the map at "PRINT quality" once "File -> Print" or        done
     "Edit -> Copy" get selected.
 * Add a small indicator to the status bar indicates map downloads      ----
   (see explanation below)

Smaller issues
 * Make the about dialog for MarbleWidget more consistent with the      ----
   application About dialog.  Or perhaps disable it for the KDE
   version?
 * Cloud Layer                                                          STRE

Installation issues
 * Only install the public include files                                ----
 * Creating tiles during build instead of first run                     DONE
    - Create all maps?	       	       	  				--

Integration with Qt designer
 * control files for the following widgets                              TACK
   - MarbleControlBox                                                   --
   - MarbleLocator (search field for placemarks)                        --
   - MarbleLegendBrowser                                                --

Data
 * Evaluate the implementation of tile specifications like              ----
   - http://wiki.osgeo.org/index.php/WMS_Tiling_Client_Recommendation   --
   - http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification     --

   for practical relevance and implement those bits into our client
   that make sense for us to have.


Moved to KDE 4.2
================================================================

Features:
 * Areas, e.g. countries or districts                                   ----

To be populated...



Longer Explanations for some things
================================================================

The following are longer explanations for some features so that we
don't have to explain them in the list above and thus get better
overview.


RenderingQuality in ViewParams
------------------------------

For performance reasons, Marble should render the map in different
qualities in different situations.

 - LOW: For slow hardware with different defaults
    - No relief in Atlas View
    - using setShowQuickAndDirty(true) for really sloppy interpolation
 - MEDIUM: Basically what we have now
 - HIGH: Uses Antialiased vector lines
 - PRINT: Adds some Really Slow (TM) nice things that are typical for
   printed maps: e.g. Blue antialiased coast lines for the Atlas map.

 ** Make Marble use different render settings while panning (MOVE) and
    after releasing the mouse (DROP)

    For KDE 4.0.1 it should use the render quality MEDIUM for panning
    and HIGH or PRINT after the mouse button has been released. Note:
    For KDE 4.1 there should be two comboboxes in the settings dialog:

    Display Quality:

    During mouse move: [^ Medium ]
    On mouse drop:     [^ High   ]

 ** Rerender the map at "PRINT quality" once "File -> Print" or 
    "Edit -> Copy" get selected.


Small indicator in the status bar for downloads
-----------------------------------------------
    downloads (should be really tiny and not obtrusive just to see
    that something is going on). Ideally the user would get a tooltip
    once he hovers that progress bar with numbers of files in the
    queue, maybe amount of data that has been downloaded during the
    session.
