Unimplemented Feature of KHexEdit:
----------------------------------

+ <Action name="paste_into_new_file" />
+ Zugriffsrechte (Größe)
+ Transcoder
+ bitstream (navigating on bit-level)

Nicht so wichtig:
* Einstellung Anzeige voller Pfad in Titel
* Einstellung Anzeige a-f/A-F
* Einstellung Anzeige Offset Hex/Dez
* Suchleiste
* <Action name="paste_into_new_window" />

Erledigt:
- Zugriffsrechte (Verändern)
- Rückgängig/Wiederherstellen
- Speichern
- revert
- Dokumentenliste
- Letzte Dateien
- Bookmarks
- Drucken
- Binärfilter
- Zeichenkettenextraktion
- Exportieren
- copy_as_text

Done before review:
------------------------
* add bookmarkable to kpiecetablebytearray
* switch licensing
* see why documents don't get removed on close of view -> close for views, not document
* make drag'n'drop work properly again
* complete change notifications
* reset changebuffer if history gets cut
* make filter work on selection
* user documentation in docbook format
* complete i18n (@-stuff)
* fix paste controller and readonly modes

Fixed after 0.1 Beta 1:
-----------------------
* cursor problems

Fixed after 0.1 Beta 2:
-----------------------
* version control ignored readonly status
* adaption of filter parameter edit to char coding changes
* operation box in replace dialog last in tab order
* enable extract strings tool and add copy
* encoders now takes abtractmodel, so a view can be given
* encoders now use current view settings
* add export functionality to libkakao (simple modelencoderfilesystemexporter use encoder)
* make printing support only selection
* value column editing mess, with cursor jumping away on partial edit and ungrouped changes
* operations like filter can set an own description of their action (undo/redo)
* entering 00 in value column does not finish the editing
* tripple click should only select the current line
* clicking in a column if the bytearray is empty does not place the cursor where expected
* after tripple click double click uses wrong index
* word select mode crashes if the mouse gets behind the end
* ensure screen refreshed during blocking processes:
  printing, string search, loading, filter, statistic collection, replacing, copy as
* fix doubled strings in clipboard on copy of extracted strings
* have tools remember for which view they were used and are uptodate
* initial state for statistic table
* fix hardcoded colors
* export (and save/saveas?) did not check if file could be and was successfully written
* filter button does not get activated if first selection and then parameter inserted
* limit zoom range to prevent crash on too large font sizes
* workaround QDockViews non-existing control of the initial layout
* removed bookmark possible behind end, fixed initially enabled bookmark actions
* translation of encoder names working now
* fix crash on align at end
* fix replace problem (undo replace puts the last removed piece as first one)
* catch revert signal to get out of valueeditor if in

Fixed after 0.1.0:
------------------
* all inserts, like from clipboard or tools, in overwrite mode did not place the cursor at the end of the inserted
* undo of a remove from the end of a piece added garbage to the content
* undo of the remove of the end of a piece inserted this two times
* overwriting in the value column blocked after first digit entered
* fixed: changemetrics of groups were not reverted if needed, so e.g. cursor could move into wrong direction

Done for 0.2:
-------------
* turned into AbstractTool: bytetable, info, stringsextract, filter, poddecoder, versionview
* use KXMLGUIClient, not KXmlGuiWindow, if possible, so we can plug controller to any client
* renamed KAbstractDocument*Synchronizer* to AbstractModel*Synchronizer*
* turned poddecoder into two-column table, added int64 and utf-8

merged to 871403: connected-models 851103:871380
besides:
* program.cpp
* libkakao/core/CMakeLists.txt
* libkakao/core/io/network
* libkakao/core/system/kdocumentsyncmanager.*
* libkakao/controllers/documentsystem/connector
* libkakao/controllers/CMakeLists.txt
* libkakao/controllers/io/setremote
* libkakao/controllers/io/offer
* libkakao/controllers/document/users
* oktetakakao/io/CMakeLists.txt
* oktetakakao/io/network

* added first primitive monitor to the view for the status bar
* refactored KByteaArrayView into AbstractByteArrayView and ByteArrayColumnView
* renamed KDataCursor into ByteArrayTableCursor
* renamed KDataRanges into ByteArrayTableRanges
* made KByteArrayDisplay a complete layer to the used view
* ported all controllers and tools to use KByteArrayDisplay, not the byteArray widget
* added: ByteArrayRowView
* added: ByteArrayJanusView, can toggle between a row and a column based view
* ByteArrayJanusView used by KByteArrayDisplay
* added: controller to toggle between a row and a column view mode
* renamed some classes in okteta/core from K* to *, KWordBufferService to WordByteArrayService
* added: ability to close documents by a close button on tabs
* added: urls dropped next to other tabs will be loaded

Fixed after 0.2 Beta 1:
-----------------------
* added some icons to actions previously without
* offset numbers are cleared or added if lines are removed or added
* source code encoder always used data starting at offset 0, not from the selection
* correctly calculate dirty ranges also for multiple undo/redo
* update recently used files also with those from url drop and commandline parameter
* Menus for Export and Copy As could not be added to the toolbar
* only activate tools that are really visible 
* for extracted strings show tooltips with full length (for now simply done for all strings)

Fixed after 0.2 Beta 2:
-----------------------
* make info tool update info on change of file type and url
* readonly in status bar does not get updated, because view did not forward document signal
* disable menu entries for "Replace" and "Insert pattern" if view is readonly
* do not hide "Insert pattern" dialog on readonly view, but block Ok button
* no change signal was emitted on first change after disk synch
* block Goto button in Goto dialog if there is no view
* Insert button of byte table tool disabled if view is readonly

Fixed after 0.2 RC 1:
---------------------
* mininumSizeHint does not get larger than 100x100

Fixed after 0.2.0:
------------------
* removed Print from toolbar, added Save As instead
* fixed: enable filtering only if view is not readonly
* fixed: disable copy for strings if all are deselected (workaround Qt bug)
* fixed: set all listviews in tools to autoresize to content

Done for 0.3:
-------------
* added a ToggleButton, to be used for the statusbar
* standalone readonly statusbar controller
* ZoomSlider, working directly on a model
* zoom statusbar controller, using the ZoomSlider (unused due to space problems in the status bar)
* turned value and char coding displays in the statusbar into active selections  (hidden due to space problems in the status bar)
* added a filesystem browser tool
* added a documents management tool
* added a controller to switch between view by Alt + ->/<-
* turned the overwrite mode display in the status bar into active display
* added a bookmarks tool
* added name property to bookmarks
* added popup editor for the name of bookmarks on creation
* added option to edit the name of a bookmark to the bookmark tool
* reworked Bookmarkable to simulate a list interface, including a wrapping iterator with an abstract adapter
* turned Goto, Search and Replace utils into kind of tools/controllers (first step, needs more refinement)
* added a checksum calculator tool (using also QCA2, but got just MD5 and SHA-1 from it for now, hm)

Fixed after 0.3 Beta 1:
-----------------------
* fixed: ensure unsigned values if calculating modsum
* fixed: make modsum algorithms endianness aware (controlled by parameter endianess)
* fixed: make change of selection also emitted on mouse move with pressed button

Fixed after 0.3 Beta 2:
-----------------------
* bookmark is not painted correctly if cursor moves from it
* minimumsize of status bar no longer limited to sum of size of embedded widgets, using new class Statusbar/StatusBarLayout

Next to work on:
----------------------------------
Important:
* delayed filebrowser init to speedup start
* improve resize of status bar with priority-based limiting of shown items, use perhaps SqueezedLabel for Selection
* width calculation for resize seems to need to include some margins
* old wrong sized cursor picture gets painted on zoom change
* QActionGroups are cleared on setupGui, e.g. if toolbar gets edited
Less important:
* some more unit tests
* fix wrong font width calculation for offset and selection in statusbar
* do not show Paste from clipboard if not possible (at end or overwrite at line end), also for other tools
* cursor does not get redone on color change
* on tripple click turn into selecting just whole lines if button kept pressed
* ask artists for own icon
* scroll on drag in first and last line

Later on:
---------
* make offset 64-Bit, in the whole Api, best by using own datatype/define/typedef
* make status bar tools more flat, e.g. see how the zoom tool of KOffice is done
* add border to BookmarkEditPopup, perhaps like that of QMenu
* add direction to tool views, so that e.g. the file info tool view puts the icon left to the data in vertical mode
* see how Tool and Document menus can be turned into KActionMenu (and add clear() call to KActionMenu)
* see how the cursor and the value editor could be turned into tool+view
* fix info and string docker (all with update function) to just work on update, react to change of data origin
* name Resize style to Relayout modus
* add option for offset and char comments to Source code encoder (cmp #163204)
* Support for Drop, both Import into and Open
* Make tabs click proxies
* Better handling of file errors:
  exact problem descriptions,
  options to solve problem (e.g. make file readable)
* add proper support for blocking processes like printing, string search, loading or filter:
  show progress, allow cancelling, block only related model
* input of offset or data should detect type by prefixes like 0x or such, by new variant Auto.
* test handling of readonly files
* more explicit titels for undo/redo actions (range, data), also paste, drag, and cut
* add support for memory mapped files (includes enabling overwrite controller again)
* think about turning insert pattern & Co. into a tool
* session support: full storing and restoring of view/model state
* port KPart to libkakao
* add support for more commandline options
* port bytearrayview to bytearrayrenderer (esp. non-line-centric paiting)
* complete work on input controllers for the bytearray view
* rename AbstractDocument into AbstractObjectModel
* add AbstractTool, ToolManager and ToolManagerControl
* Prepare libframesprint for inclusion into kdelibs
* find good name for libkakao
* add profiles with loaded tools and their positions (environments)
* add splitting of views
* templates
* + and - operates on whole selections
* better selection by mouse using the offset column 
* syntax highlighting
* support for formated bytearray formats, load/save as well as import/export
* shellwindow:
  * hovering of drag about tab changes to tab
  * dropping next to tab creates new data object by the drop data
* copy also for all tables, e.g. statistic
* mouse shadow cursor, shows where cursor would be positioned, also useful for drops
* option to split in regular sections, than show only one section or all with a line between,
  similar to page modi of Okular (so page=section)
* make all jobs (searching, filter operations, ...) cancellable, e.g. using ESC
* add versions to view model, to be synched with the data model (if created later, create prior versions on demand)
* make status bar entries non-readonly, e.g. for offset->goto, readonly, codings, selection,...
* add Modified state symbol for Readonly to statusbar
* search for other ideas in Inkscape
* make bookmarks program-wide, switch doc if needed.
* add bookmark tool
* hovering drag over bookmark in tool should select it
* store bookmarks for usage on further opening, similar to Okular's memory
* bookmarks to load vs. bookmarks/marked regions in loaded documents? lokal vs. global perhaps? search inside.
* in-place saving instead of new-and-delete-old (ZFS Snpashots work blockbased, so only changed blocks get snapshotted)
* for processes show estimated rest time
* goto tool shows shadow cursor to see where current would go
* goto, search, replace and similar tools could be triggered by calls for handlers,
  so a click on the offset status would trigger the goto tool
  (or better do in-place/by-model editing, e.g. offset status would mean editing number?)
* all KDE inputs should show state with colors (invalid, okay)

Future plans:
-------------
* a binary diff editor widget in the Okteta libs
* binary diff editor widget based parts
