TODO LIST

BUGFIXING

General code auditing/refactoring for 1.0:
    - move code to blogmap.h metadata for large code cleanups:
      - changes backend, [duns_s][done]
        composer [duns_s][done] [done]
        media management [gnuton] [done]
        and profileconfigdialog [duns_s][done]
    - the memory management, document which objects (especially in maps of pointers) are supposed
      to be managed by which class, so we know who has to do the cleanup [duns_s,gnuton]
      - check singletons, e.g. for WaitDialog, if the class is really used in different places, remove
        singleton maybe [duns_s]
    - name of class and functions [duns_s,gnuton]
      - rename KBloggerBlog to BlogBackend/BlogServer (reflecting that we use blogmap.h) [duns_s] [done]
      - rename KBloggerPost, KBloggerMedia to KBlogger::Post KBlogger::Media for shorter strings [duns_s] [done]
    - add comments where needed, in general use doxygen at least for class definitions [duns_s,gnuton]
      - add a simple comment describing one step, where not obvious due to class names
        and seperate logical steps in code with newlines
    - fix english mistakes in the strings [duns_s,gnuton] [in progress..]
    - merge/split classes [duns_s,gnuton][in progress]
      - separe class MediaListWidget and MediaList from the same file [gnuton]
    - converts QDialog in KDialog. [duns_s,gnuton][in progress]
      - do that for the AddLinkWidget, UploadMediaManager..., too [gnuton]
    - merge/split classes where it's needed.
    - move classes to a taskbased subdirectory structure [gnuton] [done]
      src/
       |- Composer/
       |- Plugins/
       |- Media/
       |- Post/
       |- Backend/  <-- Job classes here
       |- All Core classes
     - rename medialist.h/cpp to medialistwidget.h/cpp [gnuton] [done]
     - rename itemlist.h/cpp to itemslistwidget.h/cpp [gnuton]
     - add thumbnail regexp for other blog systems. [gnuton, duns]
     - fix compilation warnings 
     - fix khtml preview. It doesn't show local media
     - fix edit link. if you select a link and press add link you will able to edit link properties.

Code review for classes:

In general I propose to split classes like this, too:
     duns_s: backend stuff, profile configuration
     gnuton: editor magic, main gui

     -----------------------------+---- duns_s ------+------- gnuton -------
     Backend                      |        0         |
     BackendJob                   |        0         |
     BackendJobQueue              |        0         |
     Media                        |        O         |
     Post                         |        O         |
     BlogServer                   |        O         |
     BlogList                     |        B         |
     ProfileList                  |        B         |
     ProfileConfigDialog          |        B         |
     WaitDialog                   |        B         |
     WaitWidget                   |        B         |
     WeblogStyleGetter            |        O         |
     Composer                     |                  |           O
     ComposerEditor               |                  |           O
     ImportMediaDialog            |                  |           O
     ImportMediaWidget            |                  |           O
     MainWidget                   |                  |           O
     PostsList                    |                  |           O
     MediaList                    |                  |           O
     Itemsmanager                 |                  |           O
     VisualEditor                 |                  |           O
     LinkDialog                   |                  |           B
     HtmlExp                      |                  |           A
...
O -> not done yet,
W -> Work in progress (code is not in shape yet).
A -> Alpha Quality (code is in shape generally, memory management required (?))
B -> Beta Quality (code is in shape generally, memory management done)
R -> Release Quality (code is tested and done),
X -> complete (all done, docs added)

After having done the items above, we should check each others classes.

Concrete showstoppers to fix for 1.0:

- picture (thumbnails?) managing at least working basicly but reliably:
  - importing
  - thumbnail creation
  - thumbnail


FEATURE WISHLIST/ROADMAP:

- picture thumbnails managing done properly:
   So we can use
     1) a generic QRegExp that scan the code to search this line it's valid for
         each kind of blog system.
     2) Write a specific code for each tipe of blog system.
        If the blog system is not recognized by kblogger, kblogger will use the
        generic QRegExp.

     Now KBlgger are using the second way. Importing thumbnails works fine with
     wordpress(tested), and it will works also with blogger.com (not tested yet).

   - exporting thumbs:
      - Easy way: KBlogger creates thumbnails for all type of Blog system
                         issue: Some blog Systems creates a thumbnailof every
                                   uploaded image, so if you upload 1 image + 1
                                   kblogger_thumbnail, you have 1image + 3 thumbnails
                                   of the same image! (wrong way for me)
     - other way: KBlogger creates thumbnails for all Blog system for local preview.
                        and upload it only if the Blog System doesn't generate it.
                        (right way for me)
                        issue: none.

- Polish the Composer:
    - Improve/rewrite html2RichText function, it doesn't support well Javascript or
      special tags like <object> used to embedding youtube video.
   - table support
   - lists support
- Create a VisualEditor able to manipulate image (shrink, resize, add bord) to image.
- Add Kate part as Html Editor. (Don't remove the internal Html editor!)
- Add a JobQueue Manager Dialog 
- Write a htmlImporter (JS code are not allowed at moment)
- Improve importMediaDialog usability
- external media handling: e.g. kipi plugin support for youtube, flickr, picasa...