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            inge@lysator.liu.se
 TACK   Tackat (Torsten Rahn)
 CARU   Carlos Licea
 MURA   Murad Tagirov




Before Release of Marble 0.6:
=============================

Layer Management Class tasks: 

*** New widget independent image canvas concept and implementation      DONE
    -- Check Apidox if there is anything missing.                       --

*** Add formal description of DGML                                      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.

*** Implement basic Qt-Plugin based LMC class                           ----

*** Move backends into plugins / threads                                ----

*** Design and implement a QPainter-style API for GeoPainter            ----
    Design								--
    Implement								--

*** Cloud Layer                                                         STRE

*** Mercator Projection                                                 CARU

*** Design and implement Projection class                               INGE

*** Fix GPS Support                                                     ANDR


REFINEMENTS:

Low hanging (but important) fruits:
-----------------------------------


*** Add a *small* percentage bar to the status bar that indicates map   ----
    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.


More sophisticated issues
-------------------------

These need some thinking and discussion

*** 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"

*** Minor Backend feature fixes and polishment:
 - Create a LatLonBoundingBox
 - Create a QPersistentModelIndex for MarblePlaceMarkModel items to
   improve speed on close up zooms.                                     DONE (TACK)



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,                                                  ----
    - precipation July                                                  --
    - precipation December                                              --
 * Annual temperature                                                   ----
    - temperature July                                                  --
    - temperature December                                              --



Integration of Google Summer of Code projects (0.6)
----------------------------------------------------------------

GPS support (Andrew Manson)
 * Read GPX files                                                       ----
 * Show waypoints                                                       ----
 * Show tracks                                                          ----
 * Show 'You are here' using the GPS.                                   ----

KML support (Murad Tagirov)
 * One overall aim: make Digikam KML output and plasma weather applet 
   work together with Marble. 


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 
 * Update manual for the new features					----	
    - Update screenshots     						--

Planning and architecture:
 * write proposals for Marble 0.6 / KDE 4.1                             ----
    - Layer Management class                                            --
    - Data source plugins                                               --
    - Visualization plugins (layers?)                                   --
    - Projection class                                                  --
    - Bounding boxes                                                    --
    - 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:
 * Areas, e.g. countries or districts                                   ----
 * Support for OpenStreetMap                                            TACK
    - load tiles                                                        --
    - display tiles                                                     --
    - Generate tiles (adapt fonts, etc, to Marble)                      --
    - Put tiles on server                                               --
 * Support to display Timezones, Data available e.g. at:                ----
        http://sarangworld.com/NMLUG/WorldTZ_102.zip

Internal structure:
 * New class MarbleMap that can paint a map on any QPainter             DONE
 * Refactor KML to use QXmlStreamReader                                 ----
 * Make MarbleModel a real model and MarbleWidget a real view           ----
 * Make it possible to paint on whatever QPainter Marble is given       ----

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

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.

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

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

Some advanced features
 * 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	--
     "Edit -> Copy" get selected.



Before KDE 4.2
================================================================

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.
