##Main Tasks
-------------

##For KDE4.5+:
--------------

- Offer option to "subscribe" (addToCC) to a bug report

#P1:

- Check the wording of the new introduced texts (common crashes warnings and notes)

- Implement inline help (tooltip/whatsthis) for Bugzilla Duplicate Confirmation dialog

#P2

#- Have a "canceled " page (instead of directly exiting the assistant) ?????

- If the report was "dismissed" because it was not really useful, and the backtrace was not generated;
  allow the advanced users to generate it later (on the "Show report's content" button or in the backtrace tab)

#P3

- Merge the two main dialogs (?)

#Other

- If attaching, include in the attach'description, a condensed string with the app/kdesc version

- Check for plugins / Read memory-maps (/proc/PID/maps) and upload as attachment
    (example, if plasma crashes, which libs were loaded, which lib caused the crash)
    This is useful to determine if some external plugin is involved
    (I don't know if this is technically possible)

- Implement TerminalDebuggerLauncher (the idea is to use the same trick as the one used in the installdbgsymbols.sh examples)

- BacktraceGenerator should not be allowed to start if another debugger is running.
  Add some check and possibly some signal indicating this state. As a consequence,
  remove the call to DrKonqi::debuggerManager()->debuggerIsRunning() from BacktraceWidget
  to make it trully independent from drkonqi.

- Make a docs dir and add documentation for:
  1) the format of the debugger files
  2) The dbus interface
  + move README.packagers in there with a proper name.
  
- Register dynamic debug area (see dfaure's mail on k-c-d).

- Use external .desktop files to provide examples of "useful crash details" for external applications
  (ex. Amarok installs a amarokdrkonqiexamples.desktop file with a content like "Type of music you were listening to..."
  - It can contain translations too.
  
## FUTURE
---------------

- Update DrKonqi to use the remote product mapping implementation (being done by Mattr)
    [[ currently bugzillalib detects unexistent products to later use the "kde" product ]]
    ##Update: local mappings file support already implemented.
    ##Sample PHP script sent
    Waiting for remote implementation to be complete.

- Implement a bugzilla field "Fixed at" X version, to show to the user... (mattr)

- Detect app versions and encourage the user to test new version?
  (detect stable or devel)

- Custom usefulness values needed by application
    (ex. Amarok wants only perfect backtraces...)

##Brainstorming
--------------

- Try to also provide full backtraces ("bt full")
    The simple backtrace is going to be pasted inline as always
    The complete backtrace could be added as an attachment
    (how to retrieve both versions at the same time?, fetch only the full and "manually strip it" to get the simple one ?)

- Implement bugtracking-system-agnostic interface on KDE servers and adapt DrKonqi to interact with it
    (this will also remove the HTML parsing code from DrKonqi itself, to put it on a remote script)

- Display the time of the crash
    ("I came back to the computer some time later and drkonqi was there..
    when the application crashed? during the night?") (by sreich)

- Usability review and suggestions:
    http://blogs.msdn.com/oldnewthing/archive/2003/09/01/54734.aspx (by Maciej)

- Hide backtrace from user (only show progress and backtrace status)??

- Search in backtrace (esp. for [KCrash Handler])

- Backtrace syntax highlighting (xml parser+ some qt/kde class ?)

- Option to "don't show DrKonqi for this(X) app"
    (Do we want this?)

- Option to avoid drkonqi at all (setting KDE_DEBUG=1), and GUI to renable it
    (Do we want this?)

#Later
---------

- Implement a proper DBus interface.
- Include help in the details page, near the "Details:" label (ex. "What should I write this?" link with help)

#DONE
-------

- Improve the "Enter manual bug ID" option in the Duplicates page to be more discoverable

- Improve the help about the information the user needs to provide

- Show the minimum text require length / or a "progress bar"(or capacitybar)

- If we are going to attach the bug report to an existent one, and that one has too much duplicates, warn the user that his/her attachment is only going to be useful if s/he provides good info

- In the "Details page" (user enters description) write the headers like
"What I was doing when app crashed: \n\n Other useful config details:" (depending on the options checked before)

- Exclude some backtrace functions to improve the search feature (like Qt base stuff at the top of the bt)

- Replace the progressbar of the StatusWidget with a throbber....

- The reporting dialog should check (on start) if the backtrace was already generated by the main dialog
(to use it when saving the report to a file, even when the backtrace page is not shown)

- If reproducibility is Always or Sometimes, set a minimum required char ammount in the details page

- Title is not needed when attaching the report to an existant one

- Remove the "Are you ready to submit this bug report" in the Preview page

- Application detection: ask for or detect specific things depending on application
   ie konqueror: url, plasma: plasmoids in use, kopete: protocol, etc.

- REVIEW criteria of minimum chars/words to use in the Title and Details fields
"- If a possible duplicate is marked as FIXED, show a better (banner) message so the user will notice....

!!IMPORTANT: (to be done before 2009Nov25 / String Freeze)
- Update "AboutBugReporting" guide to reflect the new workflow
- Review the confirmation dialog in the Bug Report Information page:
if the text is not long enough, we dismiss the whole report saying something like "a report without a good description
will only waste bug triagers and developers time"...

##- Use https://bugs.kde.org/enter_bug.cgi?product=X to fetch product versions... (it will reduce server load)

##Bugzilla DrKonqi reports cleanup:
Wontfix: 143243, 185547

---------
---------

* Crashes on Shutdown:

https://bugs.kde.org/show_bug.cgi?id=126073 ->
**** Restore block shutdown/logout while DrKonqi window is up
(to catch crashes on shutdown)
- Config option to:
  - (default) Show a feedback indicator for a "automatically closing window" timer (and continue with shutdown)
  - non-default Block shutdown/logout completely, do not use a closing timer.

- Ask Seli for Session Management stuff (we need to ask from code if we are in the middle of a shutdown process)
- Use " unsetenv("SESSION_MANAGER");" again on main.cpp  (http://websvn.kde.org/trunk/kdebase/drkonqi/main.cpp?r1=408177&r2=408176&pathrev=408177)

- Startkde waiting for drkonqi to exit->
     # wait if there's any crashhandler shown
318          while dcop | grep -q ^drkonqi- ; do
319              sleep 5
320          done

"   while qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do sleep 5; done  "
http://websvn.kde.org/trunk/kdebase/startkde?r1=408177&r2=408176&pathrev=408177

http://websvn.kde.org/?view=rev&revision=408177

bool KSessionManager::saveState     (   QSessionManager &        sm      )       [virtual]
void QApplication::saveState ( QSessionManager & manager ) 

---------------------
---------------------
Improving symbol loading speed using GDB
---

- Create a temp file "init"

"init" contents:
set auto-solib-add off

(this will disable the symbols autoload)

Start gdb with .. "-x init" (init includes the fullpath)

"bt full" will show an empty backtrace, but with the libraries path.

Use "shar path" to load the debug symbols for that file

"bt full" will now be more complete (but it may need more symbols to be loaded)


--

The current gdb commands could be adapted to...
- Do not include the PID on the command line
- "set auto-solib-add off" could be the first command of the BatchCommands (passed tempfile with -x)
- "attach PID" could be the second command
