Merged with patches created by Tobias.

Sun, 17 Jan 2016 15:15:15 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 17 Jan 2016 15:15:15 +0100
changeset 4684
ff9bce0e0424
parent 4682
a2f30c80f66c (diff)
parent 4683
1ba6ba86b383 (current diff)
child 4686
5f8a5c568230

Merged with patches created by Tobias.

--- a/APIs/Python3/eric6.api	Sun Jan 10 13:55:21 2016 +0100
+++ b/APIs/Python3/eric6.api	Sun Jan 17 15:15:15 2016 +0100
@@ -175,6 +175,7 @@
 eric6.DebugClients.Python.DebugBase.DebugBase.step?4(traceMode)
 eric6.DebugClients.Python.DebugBase.DebugBase.stepOut?4()
 eric6.DebugClients.Python.DebugBase.DebugBase.stop_here?4(frame)
+eric6.DebugClients.Python.DebugBase.DebugBase.storeFrameLocals?4(frmnr=0)
 eric6.DebugClients.Python.DebugBase.DebugBase.trace_dispatch?4(frame, event, arg)
 eric6.DebugClients.Python.DebugBase.DebugBase.user_exception?4(frame, (exctype, excval, exctb), unhandled=0)
 eric6.DebugClients.Python.DebugBase.DebugBase.user_line?4(frame)
@@ -392,6 +393,7 @@
 eric6.DebugClients.Python3.DebugBase.DebugBase.step?4(traceMode)
 eric6.DebugClients.Python3.DebugBase.DebugBase.stepOut?4()
 eric6.DebugClients.Python3.DebugBase.DebugBase.stop_here?4(frame)
+eric6.DebugClients.Python3.DebugBase.DebugBase.storeFrameLocals?4(frmnr=0)
 eric6.DebugClients.Python3.DebugBase.DebugBase.trace_dispatch?4(frame, event, arg)
 eric6.DebugClients.Python3.DebugBase.DebugBase.user_exception?4(frame, excinfo, unhandled=False)
 eric6.DebugClients.Python3.DebugBase.DebugBase.user_line?4(frame)
@@ -3523,6 +3525,163 @@
 eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel.removeRows?4(row, count, parent=QModelIndex())
 eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel.rowCount?4(parent=QModelIndex())
 eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel?1(manager, parent=None)
+eric6.HexEdit.HexEditChunks.HexEditChunk?1()
+eric6.HexEdit.HexEditChunks.HexEditChunks.BUFFER_SIZE?7
+eric6.HexEdit.HexEditChunks.HexEditChunks.CHUNK_SIZE?7
+eric6.HexEdit.HexEditChunks.HexEditChunks.READ_CHUNK_MASK?7
+eric6.HexEdit.HexEditChunks.HexEditChunks.data?4(pos=0, maxSize=-1, highlighted=None)
+eric6.HexEdit.HexEditChunks.HexEditChunks.dataChanged?4(pos)
+eric6.HexEdit.HexEditChunks.HexEditChunks.indexOf?4(byteArray, start)
+eric6.HexEdit.HexEditChunks.HexEditChunks.insert?4(pos, data)
+eric6.HexEdit.HexEditChunks.HexEditChunks.lastIndexOf?4(byteArray, start)
+eric6.HexEdit.HexEditChunks.HexEditChunks.overwrite?4(pos, data)
+eric6.HexEdit.HexEditChunks.HexEditChunks.pos?4()
+eric6.HexEdit.HexEditChunks.HexEditChunks.removeAt?4(pos)
+eric6.HexEdit.HexEditChunks.HexEditChunks.setDataChanged?4(pos, dataChanged)
+eric6.HexEdit.HexEditChunks.HexEditChunks.setIODevice?4(ioDevice)
+eric6.HexEdit.HexEditChunks.HexEditChunks.size?4()
+eric6.HexEdit.HexEditChunks.HexEditChunks.write?4(ioDevice, pos=0, count=-1)
+eric6.HexEdit.HexEditChunks.HexEditChunks?1(ioDevice=None)
+eric6.HexEdit.HexEditGotoWidget.HexEditGotoWidget.keyPressEvent?4(event)
+eric6.HexEdit.HexEditGotoWidget.HexEditGotoWidget.on_closeButton_clicked?4()
+eric6.HexEdit.HexEditGotoWidget.HexEditGotoWidget.on_formatCombo_currentIndexChanged?4(idx)
+eric6.HexEdit.HexEditGotoWidget.HexEditGotoWidget.on_gotoButton_clicked?4()
+eric6.HexEdit.HexEditGotoWidget.HexEditGotoWidget.on_offsetEdit_textChanged?4(offset)
+eric6.HexEdit.HexEditGotoWidget.HexEditGotoWidget.show?4()
+eric6.HexEdit.HexEditGotoWidget.HexEditGotoWidget?1(editor, parent=None)
+eric6.HexEdit.HexEditMainWindow.HexEditMainWindow.closeEvent?4(evt)
+eric6.HexEdit.HexEditMainWindow.HexEditMainWindow.editorClosed?7
+eric6.HexEdit.HexEditMainWindow.HexEditMainWindow.getSRHistory?4(key)
+eric6.HexEdit.HexEditMainWindow.HexEditMainWindow.preferencesChanged?4()
+eric6.HexEdit.HexEditMainWindow.HexEditMainWindow.setRecentPaths?4(openPath, savePath)
+eric6.HexEdit.HexEditMainWindow.HexEditMainWindow.windows?7
+eric6.HexEdit.HexEditMainWindow.HexEditMainWindow?1(fileName="", parent=None, fromEric=False, project=None)
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.findPrevNext?4(prev=False)
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.keyPressEvent?4(event)
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_closeButton_clicked?4()
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_findFormatCombo_currentIndexChanged?4(idx)
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_findNextButton_clicked?4()
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_findPrevButton_clicked?4()
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_findtextCombo_activated?4(idx)
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_findtextCombo_editTextChanged?4(txt)
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_replaceAllButton_clicked?4()
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_replaceButton_clicked?4()
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_replaceFormatCombo_currentIndexChanged?4(idx)
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_replaceSearchButton_clicked?4()
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.on_replacetextCombo_activated?4(idx)
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget.show?4(text='')
+eric6.HexEdit.HexEditSearchReplaceWidget.HexEditSearchReplaceWidget?1(editor, mainWindow, replace=False, parent=None)
+eric6.HexEdit.HexEditUndoStack.HexEditCommand.Insert?7
+eric6.HexEdit.HexEditUndoStack.HexEditCommand.Overwrite?7
+eric6.HexEdit.HexEditUndoStack.HexEditCommand.RemoveAt?7
+eric6.HexEdit.HexEditUndoStack.HexEditUndoCommand.id?4()
+eric6.HexEdit.HexEditUndoStack.HexEditUndoCommand.mergeWith?4(command)
+eric6.HexEdit.HexEditUndoStack.HexEditUndoCommand.redo?4()
+eric6.HexEdit.HexEditUndoStack.HexEditUndoCommand.undo?4()
+eric6.HexEdit.HexEditUndoStack.HexEditUndoCommand?1(chunks, cmd, pos, newByte, parent=None)
+eric6.HexEdit.HexEditUndoStack.HexEditUndoStack.insert?4(pos, data)
+eric6.HexEdit.HexEditUndoStack.HexEditUndoStack.insertByteArray?4(pos, byteArray)
+eric6.HexEdit.HexEditUndoStack.HexEditUndoStack.overwrite?4(pos, data)
+eric6.HexEdit.HexEditUndoStack.HexEditUndoStack.overwriteByteArray?4(pos, length, byteArray)
+eric6.HexEdit.HexEditUndoStack.HexEditUndoStack.removeAt?4(pos, length=1)
+eric6.HexEdit.HexEditUndoStack.HexEditUndoStack?1(chunks, parent=None)
+eric6.HexEdit.HexEditWidget.HexEditWidget.BYTES_PER_LINE?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.HEXCHARS_PER_LINE?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.addressArea?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.addressAreaColors?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.addressOffset?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.addressWidth?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.asciiArea?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.canRedoChanged?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.canUndoChanged?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.copy?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.currentAddressChanged?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.currentSizeChanged?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.cursorBytePosition?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.cursorPosition?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.cursorPositionFromPoint?4(point)
+eric6.HexEdit.HexEditWidget.HexEditWidget.cut?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.data?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.dataAt?4(pos, count=-1)
+eric6.HexEdit.HexEditWidget.HexEditWidget.dataChanged?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.deleteByte?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.deleteByteBack?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.deselectAll?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.editorCommand?4(cmd)
+eric6.HexEdit.HexEditWidget.HexEditWidget.ensureVisible?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.font?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.getSelectionBegin?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.getSelectionEnd?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.getSelectionLength?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.goto?4(offset, fromCursor=False, backwards=False, extendSelection=False)
+eric6.HexEdit.HexEditWidget.HexEditWidget.hasSelection?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.highlightColors?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.highlighting?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.indexOf?4(byteArray, start)
+eric6.HexEdit.HexEditWidget.HexEditWidget.insert?4(pos, ch)
+eric6.HexEdit.HexEditWidget.HexEditWidget.insertByteArray?4(pos, byteArray)
+eric6.HexEdit.HexEditWidget.HexEditWidget.isModified?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.isReadOnly?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.keyPressEvent?4(evt)
+eric6.HexEdit.HexEditWidget.HexEditWidget.lastIndexOf?4(byteArray, start)
+eric6.HexEdit.HexEditWidget.HexEditWidget.mouseMoveEvent?4(evt)
+eric6.HexEdit.HexEditWidget.HexEditWidget.mousePressEvent?4(evt)
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToEndOfDocument?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToEndOfLine?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToNextChar?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToNextLine?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToNextPage?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToPreviousChar?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToPreviousLine?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToPreviousPage?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToStartOfDocument?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.moveCursorToStartOfLine?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.overwriteMode?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.overwriteModeChanged?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.paintEvent?4(evt)
+eric6.HexEdit.HexEditWidget.HexEditWidget.paste?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.readOnlyChanged?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.redo?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.remove?4(pos, length=1)
+eric6.HexEdit.HexEditWidget.HexEditWidget.replace?4(pos, ch)
+eric6.HexEdit.HexEditWidget.HexEditWidget.replaceByteArray?4(pos, len, byteArray)
+eric6.HexEdit.HexEditWidget.HexEditWidget.resizeEvent?4(evt)
+eric6.HexEdit.HexEditWidget.HexEditWidget.revertToUnmodified?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectAll?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectEndOfDocument?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectNextChar?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectNextLine?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectNextPage?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectPreviousChar?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectPreviousLine?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectPreviousPage?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectStartOfDocument?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectToEndOfLine?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectToStartOfLine?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectionAvailable?7
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectionColors?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectionToHexString?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.selectionToReadableString?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.setAddressArea?4(on)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setAddressAreaColors?4(foreground, background)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setAddressOffset?4(offset)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setAddressWidth?4(width)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setAsciiArea?4(on)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setCursorBytePosition?4(pos)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setCursorPosition?4(pos)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setData?4(dataOrDevice)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setFont?4(font)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setHighlightColors?4(foreground, background)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setHighlighting?4(on)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setModified?4(modified, setCleanState=False)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setOverwriteMode?4(on)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setReadOnly?4(on)
+eric6.HexEdit.HexEditWidget.HexEditWidget.setSelectionColors?4(foreground, background)
+eric6.HexEdit.HexEditWidget.HexEditWidget.toReadableString?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.undo?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.undoStack?4()
+eric6.HexEdit.HexEditWidget.HexEditWidget.write?4(device, pos=0, count=-1)
+eric6.HexEdit.HexEditWidget.HexEditWidget?1(parent=None, embedded=False)
 eric6.IconEditor.IconEditorGrid.IconEditCommand.redo?4()
 eric6.IconEditor.IconEditorGrid.IconEditCommand.setAfterImage?4(image)
 eric6.IconEditor.IconEditorGrid.IconEditCommand.undo?4()
@@ -6191,6 +6350,7 @@
 eric6.Plugins.WizardPlugins.QRegularExpressionWizard.QRegularExpressionWizardServer.rxValidate?4(regexp, options)
 eric6.Preferences.ConfigurationDialog.ConfigurationDialog.DefaultMode?7
 eric6.Preferences.ConfigurationDialog.ConfigurationDialog.HelpBrowserMode?7
+eric6.Preferences.ConfigurationDialog.ConfigurationDialog.HexEditorMode?7
 eric6.Preferences.ConfigurationDialog.ConfigurationDialog.TrayStarterMode?7
 eric6.Preferences.ConfigurationDialog.ConfigurationDialog.accept?4()
 eric6.Preferences.ConfigurationDialog.ConfigurationDialog.getConfigurationPageName?4()
@@ -6204,6 +6364,7 @@
 eric6.Preferences.ConfigurationDialog.ConfigurationPageItem?1(parent, text, pageName, iconFile)
 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.DefaultMode?7
 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.HelpBrowserMode?7
+eric6.Preferences.ConfigurationDialog.ConfigurationWidget.HexEditorMode?7
 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.TrayStarterMode?7
 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.accept?4()
 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.accepted?7
@@ -6233,7 +6394,7 @@
 eric6.Preferences.ConfigurationPages.ConfigurationPageBase.ConfigurationPageBase.polishPage?4()
 eric6.Preferences.ConfigurationPages.ConfigurationPageBase.ConfigurationPageBase.saveColours?4(prefMethod)
 eric6.Preferences.ConfigurationPages.ConfigurationPageBase.ConfigurationPageBase.saveState?4()
-eric6.Preferences.ConfigurationPages.ConfigurationPageBase.ConfigurationPageBase.selectFont?4(fontSample, fontVar, showFontInfo=False)
+eric6.Preferences.ConfigurationPages.ConfigurationPageBase.ConfigurationPageBase.selectFont?4(fontSample, fontVar, showFontInfo=False, options=QFontDialog.FontDialogOptions(0))
 eric6.Preferences.ConfigurationPages.ConfigurationPageBase.ConfigurationPageBase.setState?4(state)
 eric6.Preferences.ConfigurationPages.ConfigurationPageBase.ConfigurationPageBase?1()
 eric6.Preferences.ConfigurationPages.CooperationPage.CooperationPage.on_addBannedUserButton_clicked?4()
@@ -6413,6 +6574,11 @@
 eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.save?4()
 eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage?1(configDialog)
 eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.create?4(dlg)
+eric6.Preferences.ConfigurationPages.HexEditorPage.HexEditorPage.on_monospacedFontButton_clicked?4()
+eric6.Preferences.ConfigurationPages.HexEditorPage.HexEditorPage.polishPage?4()
+eric6.Preferences.ConfigurationPages.HexEditorPage.HexEditorPage.save?4()
+eric6.Preferences.ConfigurationPages.HexEditorPage.HexEditorPage?1()
+eric6.Preferences.ConfigurationPages.HexEditorPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.IconsPage.IconsPage.on_addIconDirectoryButton_clicked?4()
 eric6.Preferences.ConfigurationPages.IconsPage.IconsPage.on_deleteIconDirectoryButton_clicked?4()
 eric6.Preferences.ConfigurationPages.IconsPage.IconsPage.on_downButton_clicked?4()
@@ -6544,6 +6710,7 @@
 eric6.Preferences.Prefs.geometryDefaults?7
 eric6.Preferences.Prefs.graphicsDefaults?7
 eric6.Preferences.Prefs.helpDefaults?7
+eric6.Preferences.Prefs.hexEditorDefaults?7
 eric6.Preferences.Prefs.iconEditorDefaults?7
 eric6.Preferences.Prefs.iconsDefaults?7
 eric6.Preferences.Prefs.initWebSettingsDefaults?4()
@@ -6640,6 +6807,7 @@
 eric6.Preferences.getGeometry?4(key, prefClass=Prefs)
 eric6.Preferences.getGraphics?4(key, prefClass=Prefs)
 eric6.Preferences.getHelp?4(key, prefClass=Prefs)
+eric6.Preferences.getHexEditor?4(key, prefClass=Prefs)
 eric6.Preferences.getIconEditor?4(key, prefClass=Prefs)
 eric6.Preferences.getIcons?4(key, prefClass=Prefs)
 eric6.Preferences.getIrc?4(key, prefClass=Prefs)
@@ -6690,6 +6858,7 @@
 eric6.Preferences.setGeometry?4(key, value, prefClass=Prefs)
 eric6.Preferences.setGraphics?4(key, value, prefClass=Prefs)
 eric6.Preferences.setHelp?4(key, value, prefClass=Prefs)
+eric6.Preferences.setHexEditor?4(key, value, prefClass=Prefs)
 eric6.Preferences.setIconEditor?4(key, value, prefClass=Prefs)
 eric6.Preferences.setIcons?4(key, value, prefClass=Prefs)
 eric6.Preferences.setIrc?4(key, value, prefClass=Prefs)
@@ -7049,6 +7218,7 @@
 eric6.Project.ProjectOthersBrowser.ProjectOthersBrowser._contextMenuRequested?5(coord)
 eric6.Project.ProjectOthersBrowser.ProjectOthersBrowser._createPopupMenus?5()
 eric6.Project.ProjectOthersBrowser.ProjectOthersBrowser._editPixmap?5()
+eric6.Project.ProjectOthersBrowser.ProjectOthersBrowser._openHexEditor?5()
 eric6.Project.ProjectOthersBrowser.ProjectOthersBrowser._openItem?5()
 eric6.Project.ProjectOthersBrowser.ProjectOthersBrowser._showContextMenu?5(menu)
 eric6.Project.ProjectOthersBrowser.ProjectOthersBrowser.showMenu?7
@@ -7468,6 +7638,8 @@
 eric6.QScintilla.Exporters.getSupportedFormats?4()
 eric6.QScintilla.GotoDialog.GotoDialog.getLinenumber?4()
 eric6.QScintilla.GotoDialog.GotoDialog?1(maximum, curLine, parent, name=None, modal=False)
+eric6.QScintilla.KeySequenceTranslator.Scintilla2QKeySequence?7
+eric6.QScintilla.KeySequenceTranslator.s2qTranslate?4(scintillaCommand)
 eric6.QScintilla.Lexers.Lexer.Lexer.alwaysKeepTabs?4()
 eric6.QScintilla.Lexers.Lexer.Lexer.autoCompletionWordSeparators?4()
 eric6.QScintilla.Lexers.Lexer.Lexer.boxCommentStr?4()
@@ -8248,10 +8420,12 @@
 eric6.UI.Browser.Browser._editPixmap?5()
 eric6.UI.Browser.Browser._gotoAttribute?5(act)
 eric6.UI.Browser.Browser._init?5()
+eric6.UI.Browser.Browser._openHexEditor?5()
 eric6.UI.Browser.Browser._openItem?5()
 eric6.UI.Browser.Browser._resizeColumns?5(index)
 eric6.UI.Browser.Browser._resort?5()
 eric6.UI.Browser.Browser._showGotoMenu?5()
+eric6.UI.Browser.Browser.binaryFile?7
 eric6.UI.Browser.Browser.designerFile?7
 eric6.UI.Browser.Browser.getSelectedItems?4(filter=None)
 eric6.UI.Browser.Browser.getSelectedItemsCount?4(filter=None)
@@ -9316,6 +9490,8 @@
 eric6.eric6_doc.version?4()
 eric6.eric6_editor.createMainWidget?4(argv)
 eric6.eric6_editor.main?4()
+eric6.eric6_hexeditor.createMainWidget?4(argv)
+eric6.eric6_hexeditor.main?4()
 eric6.eric6_iconeditor.createMainWidget?4(argv)
 eric6.eric6_iconeditor.main?4()
 eric6.eric6_plugininstall.createMainWidget?4(argv)
--- a/APIs/Python3/eric6.bas	Sun Jan 10 13:55:21 2016 +0100
+++ b/APIs/Python3/eric6.bas	Sun Jan 17 15:15:15 2016 +0100
@@ -170,7 +170,7 @@
 E5ModelMenu QMenu
 E5ModelToolBar QToolBar
 E5NetworkHeaderDetailsDialog QDialog Ui_E5NetworkHeaderDetailsDialog
-E5NetworkIcon E5ClickableLabel
+E5NetworkIcon QLabel
 E5NetworkMonitor QDialog Ui_E5NetworkMonitor
 E5NetworkProxyFactory QNetworkProxyFactory
 E5PassivePopup QFrame
@@ -313,6 +313,14 @@
 HelpWebPage QWebPage
 HelpWebSearchWidget E5ClearableLineEdit
 HelpWindow E5MainWindow
+HexEditCommand Enum
+HexEditGotoWidget QWidget Ui_HexEditGotoWidget
+HexEditMainWindow E5MainWindow
+HexEditSearchReplaceWidget QWidget
+HexEditUndoCommand QUndoCommand
+HexEditUndoStack QUndoStack
+HexEditWidget QAbstractScrollArea
+HexEditorPage ConfigurationPageBase Ui_HexEditorPage
 Hg VersionControl
 HgAddSubrepositoryDialog QDialog Ui_HgAddSubrepositoryDialog
 HgAnnotateDialog QDialog Ui_HgAnnotateDialog
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Help/source.qhp	Sun Jan 17 15:15:15 2016 +0100
@@ -433,6 +433,14 @@
             <section title="eric6.Helpviewer.QtHelpFiltersDialog" ref="eric6.Helpviewer.QtHelpFiltersDialog.html" />
             <section title="eric6.Helpviewer.SearchWidget" ref="eric6.Helpviewer.SearchWidget.html" />
           </section>
+          <section title="eric6.HexEdit" ref="index-eric6.HexEdit.html">
+            <section title="eric6.HexEdit.HexEditChunks" ref="eric6.HexEdit.HexEditChunks.html" />
+            <section title="eric6.HexEdit.HexEditGotoWidget" ref="eric6.HexEdit.HexEditGotoWidget.html" />
+            <section title="eric6.HexEdit.HexEditMainWindow" ref="eric6.HexEdit.HexEditMainWindow.html" />
+            <section title="eric6.HexEdit.HexEditSearchReplaceWidget" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html" />
+            <section title="eric6.HexEdit.HexEditUndoStack" ref="eric6.HexEdit.HexEditUndoStack.html" />
+            <section title="eric6.HexEdit.HexEditWidget" ref="eric6.HexEdit.HexEditWidget.html" />
+          </section>
           <section title="eric6.IconEditor" ref="index-eric6.IconEditor.html">
             <section title="eric6.IconEditor.cursors" ref="index-eric6.IconEditor.cursors.html">
             </section>
@@ -798,6 +806,7 @@
               <section title="eric6.Preferences.ConfigurationPages.HelpViewersPage" ref="eric6.Preferences.ConfigurationPages.HelpViewersPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html" />
+              <section title="eric6.Preferences.ConfigurationPages.HexEditorPage" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.IconsPage" ref="eric6.Preferences.ConfigurationPages.IconsPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.IconsPreviewDialog" ref="eric6.Preferences.ConfigurationPages.IconsPreviewDialog.html" />
               <section title="eric6.Preferences.ConfigurationPages.InterfacePage" ref="eric6.Preferences.ConfigurationPages.InterfacePage.html" />
@@ -926,6 +935,7 @@
             <section title="eric6.QScintilla.EditorAssembly" ref="eric6.QScintilla.EditorAssembly.html" />
             <section title="eric6.QScintilla.EditorMarkerMap" ref="eric6.QScintilla.EditorMarkerMap.html" />
             <section title="eric6.QScintilla.GotoDialog" ref="eric6.QScintilla.GotoDialog.html" />
+            <section title="eric6.QScintilla.KeySequenceTranslator" ref="eric6.QScintilla.KeySequenceTranslator.html" />
             <section title="eric6.QScintilla.MiniEditor" ref="eric6.QScintilla.MiniEditor.html" />
             <section title="eric6.QScintilla.Printer" ref="eric6.QScintilla.Printer.html" />
             <section title="eric6.QScintilla.QsciScintillaCompat" ref="eric6.QScintilla.QsciScintillaCompat.html" />
@@ -1056,6 +1066,7 @@
           <section title="eric6.eric6_diff" ref="eric6.eric6_diff.html" />
           <section title="eric6.eric6_doc" ref="eric6.eric6_doc.html" />
           <section title="eric6.eric6_editor" ref="eric6.eric6_editor.html" />
+          <section title="eric6.eric6_hexeditor" ref="eric6.eric6_hexeditor.html" />
           <section title="eric6.eric6_iconeditor" ref="eric6.eric6_iconeditor.html" />
           <section title="eric6.eric6_plugininstall" ref="eric6.eric6_plugininstall.html" />
           <section title="eric6.eric6_pluginrepository" ref="eric6.eric6_pluginrepository.html" />
@@ -1779,6 +1790,7 @@
       <keyword name="Browser._editPixmap" id="Browser._editPixmap" ref="eric6.UI.Browser.html#Browser._editPixmap" />
       <keyword name="Browser._gotoAttribute" id="Browser._gotoAttribute" ref="eric6.UI.Browser.html#Browser._gotoAttribute" />
       <keyword name="Browser._init" id="Browser._init" ref="eric6.UI.Browser.html#Browser._init" />
+      <keyword name="Browser._openHexEditor" id="Browser._openHexEditor" ref="eric6.UI.Browser.html#Browser._openHexEditor" />
       <keyword name="Browser._openItem" id="Browser._openItem" ref="eric6.UI.Browser.html#Browser._openItem" />
       <keyword name="Browser._resizeColumns" id="Browser._resizeColumns" ref="eric6.UI.Browser.html#Browser._resizeColumns" />
       <keyword name="Browser._resort" id="Browser._resort" ref="eric6.UI.Browser.html#Browser._resort" />
@@ -2668,6 +2680,8 @@
       <keyword name="DebugBase.stepOut" id="DebugBase.stepOut" ref="eric6.DebugClients.Python3.DebugBase.html#DebugBase.stepOut" />
       <keyword name="DebugBase.stop_here" id="DebugBase.stop_here" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.stop_here" />
       <keyword name="DebugBase.stop_here" id="DebugBase.stop_here" ref="eric6.DebugClients.Python3.DebugBase.html#DebugBase.stop_here" />
+      <keyword name="DebugBase.storeFrameLocals" id="DebugBase.storeFrameLocals" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.storeFrameLocals" />
+      <keyword name="DebugBase.storeFrameLocals" id="DebugBase.storeFrameLocals" ref="eric6.DebugClients.Python3.DebugBase.html#DebugBase.storeFrameLocals" />
       <keyword name="DebugBase.trace_dispatch" id="DebugBase.trace_dispatch" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.trace_dispatch" />
       <keyword name="DebugBase.trace_dispatch" id="DebugBase.trace_dispatch" ref="eric6.DebugClients.Python3.DebugBase.html#DebugBase.trace_dispatch" />
       <keyword name="DebugBase.user_exception" id="DebugBase.user_exception" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.user_exception" />
@@ -5730,6 +5744,235 @@
       <keyword name="HelpWindow.userAgentsManager" id="HelpWindow.userAgentsManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.userAgentsManager" />
       <keyword name="HelpWindow.zoomManager" id="HelpWindow.zoomManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.zoomManager" />
       <keyword name="Helpviewer (Package)" id="Helpviewer (Package)" ref="index-eric6.Helpviewer.html" />
+      <keyword name="HexEdit (Package)" id="HexEdit (Package)" ref="index-eric6.HexEdit.html" />
+      <keyword name="HexEditChunk" id="HexEditChunk" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunk" />
+      <keyword name="HexEditChunk (Constructor)" id="HexEditChunk (Constructor)" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunk.__init__" />
+      <keyword name="HexEditChunks" id="HexEditChunks" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks" />
+      <keyword name="HexEditChunks (Constructor)" id="HexEditChunks (Constructor)" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.__init__" />
+      <keyword name="HexEditChunks (Module)" id="HexEditChunks (Module)" ref="eric6.HexEdit.HexEditChunks.html" />
+      <keyword name="HexEditChunks.__getChunkIndex" id="HexEditChunks.__getChunkIndex" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.__getChunkIndex" />
+      <keyword name="HexEditChunks.__getitem__" id="HexEditChunks.__getitem__" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.__getitem__" />
+      <keyword name="HexEditChunks.data" id="HexEditChunks.data" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.data" />
+      <keyword name="HexEditChunks.dataChanged" id="HexEditChunks.dataChanged" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.dataChanged" />
+      <keyword name="HexEditChunks.indexOf" id="HexEditChunks.indexOf" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.indexOf" />
+      <keyword name="HexEditChunks.insert" id="HexEditChunks.insert" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.insert" />
+      <keyword name="HexEditChunks.lastIndexOf" id="HexEditChunks.lastIndexOf" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.lastIndexOf" />
+      <keyword name="HexEditChunks.overwrite" id="HexEditChunks.overwrite" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.overwrite" />
+      <keyword name="HexEditChunks.pos" id="HexEditChunks.pos" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.pos" />
+      <keyword name="HexEditChunks.removeAt" id="HexEditChunks.removeAt" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.removeAt" />
+      <keyword name="HexEditChunks.setDataChanged" id="HexEditChunks.setDataChanged" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.setDataChanged" />
+      <keyword name="HexEditChunks.setIODevice" id="HexEditChunks.setIODevice" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.setIODevice" />
+      <keyword name="HexEditChunks.size" id="HexEditChunks.size" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.size" />
+      <keyword name="HexEditChunks.write" id="HexEditChunks.write" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunks.write" />
+      <keyword name="HexEditCommand" id="HexEditCommand" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditCommand" />
+      <keyword name="HexEditGotoWidget" id="HexEditGotoWidget" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget" />
+      <keyword name="HexEditGotoWidget (Constructor)" id="HexEditGotoWidget (Constructor)" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget.__init__" />
+      <keyword name="HexEditGotoWidget (Module)" id="HexEditGotoWidget (Module)" ref="eric6.HexEdit.HexEditGotoWidget.html" />
+      <keyword name="HexEditGotoWidget.__convertText" id="HexEditGotoWidget.__convertText" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget.__convertText" />
+      <keyword name="HexEditGotoWidget.keyPressEvent" id="HexEditGotoWidget.keyPressEvent" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget.keyPressEvent" />
+      <keyword name="HexEditGotoWidget.on_closeButton_clicked" id="HexEditGotoWidget.on_closeButton_clicked" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget.on_closeButton_clicked" />
+      <keyword name="HexEditGotoWidget.on_formatCombo_currentIndexChanged" id="HexEditGotoWidget.on_formatCombo_currentIndexChanged" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget.on_formatCombo_currentIndexChanged" />
+      <keyword name="HexEditGotoWidget.on_gotoButton_clicked" id="HexEditGotoWidget.on_gotoButton_clicked" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget.on_gotoButton_clicked" />
+      <keyword name="HexEditGotoWidget.on_offsetEdit_textChanged" id="HexEditGotoWidget.on_offsetEdit_textChanged" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget.on_offsetEdit_textChanged" />
+      <keyword name="HexEditGotoWidget.show" id="HexEditGotoWidget.show" ref="eric6.HexEdit.HexEditGotoWidget.html#HexEditGotoWidget.show" />
+      <keyword name="HexEditMainWindow" id="HexEditMainWindow" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow" />
+      <keyword name="HexEditMainWindow (Constructor)" id="HexEditMainWindow (Constructor)" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__init__" />
+      <keyword name="HexEditMainWindow (Module)" id="HexEditMainWindow (Module)" ref="eric6.HexEdit.HexEditMainWindow.html" />
+      <keyword name="HexEditMainWindow.__about" id="HexEditMainWindow.__about" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__about" />
+      <keyword name="HexEditMainWindow.__aboutQt" id="HexEditMainWindow.__aboutQt" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__aboutQt" />
+      <keyword name="HexEditMainWindow.__checkActions" id="HexEditMainWindow.__checkActions" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__checkActions" />
+      <keyword name="HexEditMainWindow.__closeAll" id="HexEditMainWindow.__closeAll" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__closeAll" />
+      <keyword name="HexEditMainWindow.__closeOthers" id="HexEditMainWindow.__closeOthers" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__closeOthers" />
+      <keyword name="HexEditMainWindow.__createStatusBar" id="HexEditMainWindow.__createStatusBar" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__createStatusBar" />
+      <keyword name="HexEditMainWindow.__goto" id="HexEditMainWindow.__goto" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__goto" />
+      <keyword name="HexEditMainWindow.__initActions" id="HexEditMainWindow.__initActions" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__initActions" />
+      <keyword name="HexEditMainWindow.__initConfigActions" id="HexEditMainWindow.__initConfigActions" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__initConfigActions" />
+      <keyword name="HexEditMainWindow.__initEditActions" id="HexEditMainWindow.__initEditActions" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__initEditActions" />
+      <keyword name="HexEditMainWindow.__initFileActions" id="HexEditMainWindow.__initFileActions" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__initFileActions" />
+      <keyword name="HexEditMainWindow.__initHelpActions" id="HexEditMainWindow.__initHelpActions" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__initHelpActions" />
+      <keyword name="HexEditMainWindow.__initMenus" id="HexEditMainWindow.__initMenus" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__initMenus" />
+      <keyword name="HexEditMainWindow.__initToolbars" id="HexEditMainWindow.__initToolbars" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__initToolbars" />
+      <keyword name="HexEditMainWindow.__loadHexFile" id="HexEditMainWindow.__loadHexFile" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__loadHexFile" />
+      <keyword name="HexEditMainWindow.__maybeSave" id="HexEditMainWindow.__maybeSave" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__maybeSave" />
+      <keyword name="HexEditMainWindow.__modificationChanged" id="HexEditMainWindow.__modificationChanged" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__modificationChanged" />
+      <keyword name="HexEditMainWindow.__openHexFile" id="HexEditMainWindow.__openHexFile" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__openHexFile" />
+      <keyword name="HexEditMainWindow.__openHexFileNewWindow" id="HexEditMainWindow.__openHexFileNewWindow" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__openHexFileNewWindow" />
+      <keyword name="HexEditMainWindow.__openHexFileReadOnly" id="HexEditMainWindow.__openHexFileReadOnly" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__openHexFileReadOnly" />
+      <keyword name="HexEditMainWindow.__preferencesChangedByLocalPreferencesDialog" id="HexEditMainWindow.__preferencesChangedByLocalPreferencesDialog" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__preferencesChangedByLocalPreferencesDialog" />
+      <keyword name="HexEditMainWindow.__replace" id="HexEditMainWindow.__replace" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__replace" />
+      <keyword name="HexEditMainWindow.__saveHexDataFile" id="HexEditMainWindow.__saveHexDataFile" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__saveHexDataFile" />
+      <keyword name="HexEditMainWindow.__saveHexFile" id="HexEditMainWindow.__saveHexFile" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__saveHexFile" />
+      <keyword name="HexEditMainWindow.__saveHexFileAs" id="HexEditMainWindow.__saveHexFileAs" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__saveHexFileAs" />
+      <keyword name="HexEditMainWindow.__saveHexFileReadable" id="HexEditMainWindow.__saveHexFileReadable" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__saveHexFileReadable" />
+      <keyword name="HexEditMainWindow.__saveSelectionReadable" id="HexEditMainWindow.__saveSelectionReadable" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__saveSelectionReadable" />
+      <keyword name="HexEditMainWindow.__search" id="HexEditMainWindow.__search" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__search" />
+      <keyword name="HexEditMainWindow.__setCurrentFile" id="HexEditMainWindow.__setCurrentFile" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__setCurrentFile" />
+      <keyword name="HexEditMainWindow.__setReadOnlyActionTexts" id="HexEditMainWindow.__setReadOnlyActionTexts" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__setReadOnlyActionTexts" />
+      <keyword name="HexEditMainWindow.__showAddress" id="HexEditMainWindow.__showAddress" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__showAddress" />
+      <keyword name="HexEditMainWindow.__showEditMode" id="HexEditMainWindow.__showEditMode" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__showEditMode" />
+      <keyword name="HexEditMainWindow.__showPreferences" id="HexEditMainWindow.__showPreferences" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__showPreferences" />
+      <keyword name="HexEditMainWindow.__showReadOnlyMode" id="HexEditMainWindow.__showReadOnlyMode" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__showReadOnlyMode" />
+      <keyword name="HexEditMainWindow.__showSelectionInfo" id="HexEditMainWindow.__showSelectionInfo" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__showSelectionInfo" />
+      <keyword name="HexEditMainWindow.__showSize" id="HexEditMainWindow.__showSize" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__showSize" />
+      <keyword name="HexEditMainWindow.__strippedName" id="HexEditMainWindow.__strippedName" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__strippedName" />
+      <keyword name="HexEditMainWindow.__toggleEditMode" id="HexEditMainWindow.__toggleEditMode" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__toggleEditMode" />
+      <keyword name="HexEditMainWindow.__toggleReadOnlyMode" id="HexEditMainWindow.__toggleReadOnlyMode" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__toggleReadOnlyMode" />
+      <keyword name="HexEditMainWindow.__whatsThis" id="HexEditMainWindow.__whatsThis" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.__whatsThis" />
+      <keyword name="HexEditMainWindow.closeEvent" id="HexEditMainWindow.closeEvent" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.closeEvent" />
+      <keyword name="HexEditMainWindow.getSRHistory" id="HexEditMainWindow.getSRHistory" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.getSRHistory" />
+      <keyword name="HexEditMainWindow.preferencesChanged" id="HexEditMainWindow.preferencesChanged" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.preferencesChanged" />
+      <keyword name="HexEditMainWindow.setRecentPaths" id="HexEditMainWindow.setRecentPaths" ref="eric6.HexEdit.HexEditMainWindow.html#HexEditMainWindow.setRecentPaths" />
+      <keyword name="HexEditSearchReplaceWidget" id="HexEditSearchReplaceWidget" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget" />
+      <keyword name="HexEditSearchReplaceWidget (Constructor)" id="HexEditSearchReplaceWidget (Constructor)" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__init__" />
+      <keyword name="HexEditSearchReplaceWidget (Module)" id="HexEditSearchReplaceWidget (Module)" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html" />
+      <keyword name="HexEditSearchReplaceWidget.__bytearray2int" id="HexEditSearchReplaceWidget.__bytearray2int" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__bytearray2int" />
+      <keyword name="HexEditSearchReplaceWidget.__bytearray2text" id="HexEditSearchReplaceWidget.__bytearray2text" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__bytearray2text" />
+      <keyword name="HexEditSearchReplaceWidget.__convertText" id="HexEditSearchReplaceWidget.__convertText" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__convertText" />
+      <keyword name="HexEditSearchReplaceWidget.__doReplace" id="HexEditSearchReplaceWidget.__doReplace" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__doReplace" />
+      <keyword name="HexEditSearchReplaceWidget.__findByReturnPressed" id="HexEditSearchReplaceWidget.__findByReturnPressed" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__findByReturnPressed" />
+      <keyword name="HexEditSearchReplaceWidget.__getContent" id="HexEditSearchReplaceWidget.__getContent" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__getContent" />
+      <keyword name="HexEditSearchReplaceWidget.__int2bytearray" id="HexEditSearchReplaceWidget.__int2bytearray" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__int2bytearray" />
+      <keyword name="HexEditSearchReplaceWidget.__showFind" id="HexEditSearchReplaceWidget.__showFind" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__showFind" />
+      <keyword name="HexEditSearchReplaceWidget.__showReplace" id="HexEditSearchReplaceWidget.__showReplace" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__showReplace" />
+      <keyword name="HexEditSearchReplaceWidget.__text2bytearray" id="HexEditSearchReplaceWidget.__text2bytearray" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.__text2bytearray" />
+      <keyword name="HexEditSearchReplaceWidget.findPrevNext" id="HexEditSearchReplaceWidget.findPrevNext" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.findPrevNext" />
+      <keyword name="HexEditSearchReplaceWidget.keyPressEvent" id="HexEditSearchReplaceWidget.keyPressEvent" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.keyPressEvent" />
+      <keyword name="HexEditSearchReplaceWidget.on_closeButton_clicked" id="HexEditSearchReplaceWidget.on_closeButton_clicked" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_closeButton_clicked" />
+      <keyword name="HexEditSearchReplaceWidget.on_findFormatCombo_currentIndexChanged" id="HexEditSearchReplaceWidget.on_findFormatCombo_currentIndexChanged" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_findFormatCombo_currentIndexChanged" />
+      <keyword name="HexEditSearchReplaceWidget.on_findNextButton_clicked" id="HexEditSearchReplaceWidget.on_findNextButton_clicked" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_findNextButton_clicked" />
+      <keyword name="HexEditSearchReplaceWidget.on_findPrevButton_clicked" id="HexEditSearchReplaceWidget.on_findPrevButton_clicked" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_findPrevButton_clicked" />
+      <keyword name="HexEditSearchReplaceWidget.on_findtextCombo_activated" id="HexEditSearchReplaceWidget.on_findtextCombo_activated" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_findtextCombo_activated" />
+      <keyword name="HexEditSearchReplaceWidget.on_findtextCombo_editTextChanged" id="HexEditSearchReplaceWidget.on_findtextCombo_editTextChanged" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_findtextCombo_editTextChanged" />
+      <keyword name="HexEditSearchReplaceWidget.on_replaceAllButton_clicked" id="HexEditSearchReplaceWidget.on_replaceAllButton_clicked" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_replaceAllButton_clicked" />
+      <keyword name="HexEditSearchReplaceWidget.on_replaceButton_clicked" id="HexEditSearchReplaceWidget.on_replaceButton_clicked" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_replaceButton_clicked" />
+      <keyword name="HexEditSearchReplaceWidget.on_replaceFormatCombo_currentIndexChanged" id="HexEditSearchReplaceWidget.on_replaceFormatCombo_currentIndexChanged" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_replaceFormatCombo_currentIndexChanged" />
+      <keyword name="HexEditSearchReplaceWidget.on_replaceSearchButton_clicked" id="HexEditSearchReplaceWidget.on_replaceSearchButton_clicked" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_replaceSearchButton_clicked" />
+      <keyword name="HexEditSearchReplaceWidget.on_replacetextCombo_activated" id="HexEditSearchReplaceWidget.on_replacetextCombo_activated" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.on_replacetextCombo_activated" />
+      <keyword name="HexEditSearchReplaceWidget.show" id="HexEditSearchReplaceWidget.show" ref="eric6.HexEdit.HexEditSearchReplaceWidget.html#HexEditSearchReplaceWidget.show" />
+      <keyword name="HexEditUndoCommand" id="HexEditUndoCommand" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoCommand" />
+      <keyword name="HexEditUndoCommand (Constructor)" id="HexEditUndoCommand (Constructor)" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoCommand.__init__" />
+      <keyword name="HexEditUndoCommand.id" id="HexEditUndoCommand.id" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoCommand.id" />
+      <keyword name="HexEditUndoCommand.mergeWith" id="HexEditUndoCommand.mergeWith" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoCommand.mergeWith" />
+      <keyword name="HexEditUndoCommand.redo" id="HexEditUndoCommand.redo" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoCommand.redo" />
+      <keyword name="HexEditUndoCommand.undo" id="HexEditUndoCommand.undo" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoCommand.undo" />
+      <keyword name="HexEditUndoStack" id="HexEditUndoStack" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoStack" />
+      <keyword name="HexEditUndoStack (Constructor)" id="HexEditUndoStack (Constructor)" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoStack.__init__" />
+      <keyword name="HexEditUndoStack (Module)" id="HexEditUndoStack (Module)" ref="eric6.HexEdit.HexEditUndoStack.html" />
+      <keyword name="HexEditUndoStack.insert" id="HexEditUndoStack.insert" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoStack.insert" />
+      <keyword name="HexEditUndoStack.insertByteArray" id="HexEditUndoStack.insertByteArray" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoStack.insertByteArray" />
+      <keyword name="HexEditUndoStack.overwrite" id="HexEditUndoStack.overwrite" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoStack.overwrite" />
+      <keyword name="HexEditUndoStack.overwriteByteArray" id="HexEditUndoStack.overwriteByteArray" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoStack.overwriteByteArray" />
+      <keyword name="HexEditUndoStack.removeAt" id="HexEditUndoStack.removeAt" ref="eric6.HexEdit.HexEditUndoStack.html#HexEditUndoStack.removeAt" />
+      <keyword name="HexEditWidget" id="HexEditWidget" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget" />
+      <keyword name="HexEditWidget (Constructor)" id="HexEditWidget (Constructor)" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__init__" />
+      <keyword name="HexEditWidget (Module)" id="HexEditWidget (Module)" ref="eric6.HexEdit.HexEditWidget.html" />
+      <keyword name="HexEditWidget.__adjust" id="HexEditWidget.__adjust" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__adjust" />
+      <keyword name="HexEditWidget.__canRedoChanged" id="HexEditWidget.__canRedoChanged" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__canRedoChanged" />
+      <keyword name="HexEditWidget.__canUndoChanged" id="HexEditWidget.__canUndoChanged" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__canUndoChanged" />
+      <keyword name="HexEditWidget.__dataChangedPrivate" id="HexEditWidget.__dataChangedPrivate" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__dataChangedPrivate" />
+      <keyword name="HexEditWidget.__fromHex" id="HexEditWidget.__fromHex" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__fromHex" />
+      <keyword name="HexEditWidget.__initialize" id="HexEditWidget.__initialize" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__initialize" />
+      <keyword name="HexEditWidget.__readBuffers" id="HexEditWidget.__readBuffers" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__readBuffers" />
+      <keyword name="HexEditWidget.__refresh" id="HexEditWidget.__refresh" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__refresh" />
+      <keyword name="HexEditWidget.__resetSelection" id="HexEditWidget.__resetSelection" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__resetSelection" />
+      <keyword name="HexEditWidget.__setData" id="HexEditWidget.__setData" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__setData" />
+      <keyword name="HexEditWidget.__setHexCursorRect" id="HexEditWidget.__setHexCursorRect" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__setHexCursorRect" />
+      <keyword name="HexEditWidget.__setSelection" id="HexEditWidget.__setSelection" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__setSelection" />
+      <keyword name="HexEditWidget.__toHex" id="HexEditWidget.__toHex" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__toHex" />
+      <keyword name="HexEditWidget.__toReadable" id="HexEditWidget.__toReadable" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__toReadable" />
+      <keyword name="HexEditWidget.__updateCursor" id="HexEditWidget.__updateCursor" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.__updateCursor" />
+      <keyword name="HexEditWidget.addressArea" id="HexEditWidget.addressArea" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.addressArea" />
+      <keyword name="HexEditWidget.addressAreaColors" id="HexEditWidget.addressAreaColors" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.addressAreaColors" />
+      <keyword name="HexEditWidget.addressOffset" id="HexEditWidget.addressOffset" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.addressOffset" />
+      <keyword name="HexEditWidget.addressWidth" id="HexEditWidget.addressWidth" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.addressWidth" />
+      <keyword name="HexEditWidget.asciiArea" id="HexEditWidget.asciiArea" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.asciiArea" />
+      <keyword name="HexEditWidget.copy" id="HexEditWidget.copy" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.copy" />
+      <keyword name="HexEditWidget.cursorBytePosition" id="HexEditWidget.cursorBytePosition" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.cursorBytePosition" />
+      <keyword name="HexEditWidget.cursorPosition" id="HexEditWidget.cursorPosition" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.cursorPosition" />
+      <keyword name="HexEditWidget.cursorPositionFromPoint" id="HexEditWidget.cursorPositionFromPoint" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.cursorPositionFromPoint" />
+      <keyword name="HexEditWidget.cut" id="HexEditWidget.cut" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.cut" />
+      <keyword name="HexEditWidget.data" id="HexEditWidget.data" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.data" />
+      <keyword name="HexEditWidget.dataAt" id="HexEditWidget.dataAt" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.dataAt" />
+      <keyword name="HexEditWidget.deleteByte" id="HexEditWidget.deleteByte" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.deleteByte" />
+      <keyword name="HexEditWidget.deleteByteBack" id="HexEditWidget.deleteByteBack" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.deleteByteBack" />
+      <keyword name="HexEditWidget.deselectAll" id="HexEditWidget.deselectAll" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.deselectAll" />
+      <keyword name="HexEditWidget.editorCommand" id="HexEditWidget.editorCommand" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.editorCommand" />
+      <keyword name="HexEditWidget.ensureVisible" id="HexEditWidget.ensureVisible" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.ensureVisible" />
+      <keyword name="HexEditWidget.font" id="HexEditWidget.font" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.font" />
+      <keyword name="HexEditWidget.getSelectionBegin" id="HexEditWidget.getSelectionBegin" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.getSelectionBegin" />
+      <keyword name="HexEditWidget.getSelectionEnd" id="HexEditWidget.getSelectionEnd" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.getSelectionEnd" />
+      <keyword name="HexEditWidget.getSelectionLength" id="HexEditWidget.getSelectionLength" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.getSelectionLength" />
+      <keyword name="HexEditWidget.goto" id="HexEditWidget.goto" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.goto" />
+      <keyword name="HexEditWidget.hasSelection" id="HexEditWidget.hasSelection" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.hasSelection" />
+      <keyword name="HexEditWidget.highlightColors" id="HexEditWidget.highlightColors" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.highlightColors" />
+      <keyword name="HexEditWidget.highlighting" id="HexEditWidget.highlighting" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.highlighting" />
+      <keyword name="HexEditWidget.indexOf" id="HexEditWidget.indexOf" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.indexOf" />
+      <keyword name="HexEditWidget.insert" id="HexEditWidget.insert" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.insert" />
+      <keyword name="HexEditWidget.insertByteArray" id="HexEditWidget.insertByteArray" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.insertByteArray" />
+      <keyword name="HexEditWidget.isModified" id="HexEditWidget.isModified" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.isModified" />
+      <keyword name="HexEditWidget.isReadOnly" id="HexEditWidget.isReadOnly" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.isReadOnly" />
+      <keyword name="HexEditWidget.keyPressEvent" id="HexEditWidget.keyPressEvent" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.keyPressEvent" />
+      <keyword name="HexEditWidget.lastIndexOf" id="HexEditWidget.lastIndexOf" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.lastIndexOf" />
+      <keyword name="HexEditWidget.mouseMoveEvent" id="HexEditWidget.mouseMoveEvent" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.mouseMoveEvent" />
+      <keyword name="HexEditWidget.mousePressEvent" id="HexEditWidget.mousePressEvent" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.mousePressEvent" />
+      <keyword name="HexEditWidget.moveCursorToEndOfDocument" id="HexEditWidget.moveCursorToEndOfDocument" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToEndOfDocument" />
+      <keyword name="HexEditWidget.moveCursorToEndOfLine" id="HexEditWidget.moveCursorToEndOfLine" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToEndOfLine" />
+      <keyword name="HexEditWidget.moveCursorToNextChar" id="HexEditWidget.moveCursorToNextChar" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToNextChar" />
+      <keyword name="HexEditWidget.moveCursorToNextLine" id="HexEditWidget.moveCursorToNextLine" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToNextLine" />
+      <keyword name="HexEditWidget.moveCursorToNextPage" id="HexEditWidget.moveCursorToNextPage" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToNextPage" />
+      <keyword name="HexEditWidget.moveCursorToPreviousChar" id="HexEditWidget.moveCursorToPreviousChar" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToPreviousChar" />
+      <keyword name="HexEditWidget.moveCursorToPreviousLine" id="HexEditWidget.moveCursorToPreviousLine" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToPreviousLine" />
+      <keyword name="HexEditWidget.moveCursorToPreviousPage" id="HexEditWidget.moveCursorToPreviousPage" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToPreviousPage" />
+      <keyword name="HexEditWidget.moveCursorToStartOfDocument" id="HexEditWidget.moveCursorToStartOfDocument" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToStartOfDocument" />
+      <keyword name="HexEditWidget.moveCursorToStartOfLine" id="HexEditWidget.moveCursorToStartOfLine" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.moveCursorToStartOfLine" />
+      <keyword name="HexEditWidget.overwriteMode" id="HexEditWidget.overwriteMode" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.overwriteMode" />
+      <keyword name="HexEditWidget.paintEvent" id="HexEditWidget.paintEvent" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.paintEvent" />
+      <keyword name="HexEditWidget.paste" id="HexEditWidget.paste" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.paste" />
+      <keyword name="HexEditWidget.redo" id="HexEditWidget.redo" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.redo" />
+      <keyword name="HexEditWidget.remove" id="HexEditWidget.remove" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.remove" />
+      <keyword name="HexEditWidget.replace" id="HexEditWidget.replace" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.replace" />
+      <keyword name="HexEditWidget.replaceByteArray" id="HexEditWidget.replaceByteArray" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.replaceByteArray" />
+      <keyword name="HexEditWidget.resizeEvent" id="HexEditWidget.resizeEvent" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.resizeEvent" />
+      <keyword name="HexEditWidget.revertToUnmodified" id="HexEditWidget.revertToUnmodified" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.revertToUnmodified" />
+      <keyword name="HexEditWidget.selectAll" id="HexEditWidget.selectAll" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectAll" />
+      <keyword name="HexEditWidget.selectEndOfDocument" id="HexEditWidget.selectEndOfDocument" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectEndOfDocument" />
+      <keyword name="HexEditWidget.selectNextChar" id="HexEditWidget.selectNextChar" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectNextChar" />
+      <keyword name="HexEditWidget.selectNextLine" id="HexEditWidget.selectNextLine" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectNextLine" />
+      <keyword name="HexEditWidget.selectNextPage" id="HexEditWidget.selectNextPage" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectNextPage" />
+      <keyword name="HexEditWidget.selectPreviousChar" id="HexEditWidget.selectPreviousChar" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectPreviousChar" />
+      <keyword name="HexEditWidget.selectPreviousLine" id="HexEditWidget.selectPreviousLine" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectPreviousLine" />
+      <keyword name="HexEditWidget.selectPreviousPage" id="HexEditWidget.selectPreviousPage" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectPreviousPage" />
+      <keyword name="HexEditWidget.selectStartOfDocument" id="HexEditWidget.selectStartOfDocument" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectStartOfDocument" />
+      <keyword name="HexEditWidget.selectToEndOfLine" id="HexEditWidget.selectToEndOfLine" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectToEndOfLine" />
+      <keyword name="HexEditWidget.selectToStartOfLine" id="HexEditWidget.selectToStartOfLine" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectToStartOfLine" />
+      <keyword name="HexEditWidget.selectionColors" id="HexEditWidget.selectionColors" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectionColors" />
+      <keyword name="HexEditWidget.selectionToHexString" id="HexEditWidget.selectionToHexString" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectionToHexString" />
+      <keyword name="HexEditWidget.selectionToReadableString" id="HexEditWidget.selectionToReadableString" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.selectionToReadableString" />
+      <keyword name="HexEditWidget.setAddressArea" id="HexEditWidget.setAddressArea" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setAddressArea" />
+      <keyword name="HexEditWidget.setAddressAreaColors" id="HexEditWidget.setAddressAreaColors" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setAddressAreaColors" />
+      <keyword name="HexEditWidget.setAddressOffset" id="HexEditWidget.setAddressOffset" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setAddressOffset" />
+      <keyword name="HexEditWidget.setAddressWidth" id="HexEditWidget.setAddressWidth" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setAddressWidth" />
+      <keyword name="HexEditWidget.setAsciiArea" id="HexEditWidget.setAsciiArea" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setAsciiArea" />
+      <keyword name="HexEditWidget.setCursorBytePosition" id="HexEditWidget.setCursorBytePosition" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setCursorBytePosition" />
+      <keyword name="HexEditWidget.setCursorPosition" id="HexEditWidget.setCursorPosition" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setCursorPosition" />
+      <keyword name="HexEditWidget.setData" id="HexEditWidget.setData" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setData" />
+      <keyword name="HexEditWidget.setFont" id="HexEditWidget.setFont" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setFont" />
+      <keyword name="HexEditWidget.setHighlightColors" id="HexEditWidget.setHighlightColors" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setHighlightColors" />
+      <keyword name="HexEditWidget.setHighlighting" id="HexEditWidget.setHighlighting" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setHighlighting" />
+      <keyword name="HexEditWidget.setModified" id="HexEditWidget.setModified" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setModified" />
+      <keyword name="HexEditWidget.setOverwriteMode" id="HexEditWidget.setOverwriteMode" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setOverwriteMode" />
+      <keyword name="HexEditWidget.setReadOnly" id="HexEditWidget.setReadOnly" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setReadOnly" />
+      <keyword name="HexEditWidget.setSelectionColors" id="HexEditWidget.setSelectionColors" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.setSelectionColors" />
+      <keyword name="HexEditWidget.toReadableString" id="HexEditWidget.toReadableString" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.toReadableString" />
+      <keyword name="HexEditWidget.undo" id="HexEditWidget.undo" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.undo" />
+      <keyword name="HexEditWidget.undoStack" id="HexEditWidget.undoStack" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.undoStack" />
+      <keyword name="HexEditWidget.write" id="HexEditWidget.write" ref="eric6.HexEdit.HexEditWidget.html#HexEditWidget.write" />
+      <keyword name="HexEditorPage" id="HexEditorPage" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html#HexEditorPage" />
+      <keyword name="HexEditorPage (Constructor)" id="HexEditorPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html#HexEditorPage.__init__" />
+      <keyword name="HexEditorPage (Module)" id="HexEditorPage (Module)" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html" />
+      <keyword name="HexEditorPage.on_monospacedFontButton_clicked" id="HexEditorPage.on_monospacedFontButton_clicked" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html#HexEditorPage.on_monospacedFontButton_clicked" />
+      <keyword name="HexEditorPage.polishPage" id="HexEditorPage.polishPage" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html#HexEditorPage.polishPage" />
+      <keyword name="HexEditorPage.save" id="HexEditorPage.save" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html#HexEditorPage.save" />
       <keyword name="Hg" id="Hg" ref="eric6.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg" />
       <keyword name="Hg (Constructor)" id="Hg (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.__init__" />
       <keyword name="Hg.__checkDefaults" id="Hg.__checkDefaults" ref="eric6.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.__checkDefaults" />
@@ -7419,6 +7662,7 @@
       <keyword name="JavaScriptExternalObject (Constructor)" id="JavaScriptExternalObject (Constructor)" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptExternalObject.__init__" />
       <keyword name="JavaScriptExternalObject.AddSearchProvider" id="JavaScriptExternalObject.AddSearchProvider" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptExternalObject.AddSearchProvider" />
       <keyword name="JavaScriptResources (Module)" id="JavaScriptResources (Module)" ref="eric6.Helpviewer.JavaScriptResources.html" />
+      <keyword name="KeySequenceTranslator (Module)" id="KeySequenceTranslator (Module)" ref="eric6.QScintilla.KeySequenceTranslator.html" />
       <keyword name="Language" id="Language" ref="eric6.E5Network.E5RFC6266.html#Language" />
       <keyword name="Largefiles" id="Largefiles" ref="eric6.Plugins.VcsPlugins.vcsMercurial.LargefilesExtension.largefiles.html#Largefiles" />
       <keyword name="Largefiles (Constructor)" id="Largefiles (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.LargefilesExtension.largefiles.html#Largefiles.__init__" />
@@ -9297,6 +9541,7 @@
       <keyword name="ProjectOthersBrowser._contextMenuRequested" id="ProjectOthersBrowser._contextMenuRequested" ref="eric6.Project.ProjectOthersBrowser.html#ProjectOthersBrowser._contextMenuRequested" />
       <keyword name="ProjectOthersBrowser._createPopupMenus" id="ProjectOthersBrowser._createPopupMenus" ref="eric6.Project.ProjectOthersBrowser.html#ProjectOthersBrowser._createPopupMenus" />
       <keyword name="ProjectOthersBrowser._editPixmap" id="ProjectOthersBrowser._editPixmap" ref="eric6.Project.ProjectOthersBrowser.html#ProjectOthersBrowser._editPixmap" />
+      <keyword name="ProjectOthersBrowser._openHexEditor" id="ProjectOthersBrowser._openHexEditor" ref="eric6.Project.ProjectOthersBrowser.html#ProjectOthersBrowser._openHexEditor" />
       <keyword name="ProjectOthersBrowser._openItem" id="ProjectOthersBrowser._openItem" ref="eric6.Project.ProjectOthersBrowser.html#ProjectOthersBrowser._openItem" />
       <keyword name="ProjectOthersBrowser._showContextMenu" id="ProjectOthersBrowser._showContextMenu" ref="eric6.Project.ProjectOthersBrowser.html#ProjectOthersBrowser._showContextMenu" />
       <keyword name="ProjectPage" id="ProjectPage" ref="eric6.Preferences.ConfigurationPages.ProjectPage.html#ProjectPage" />
@@ -12052,6 +12297,7 @@
       <keyword name="TrayStarter.__startDiff" id="TrayStarter.__startDiff" ref="eric6.Tools.TrayStarter.html#TrayStarter.__startDiff" />
       <keyword name="TrayStarter.__startEric" id="TrayStarter.__startEric" ref="eric6.Tools.TrayStarter.html#TrayStarter.__startEric" />
       <keyword name="TrayStarter.__startHelpViewer" id="TrayStarter.__startHelpViewer" ref="eric6.Tools.TrayStarter.html#TrayStarter.__startHelpViewer" />
+      <keyword name="TrayStarter.__startHexEditor" id="TrayStarter.__startHexEditor" ref="eric6.Tools.TrayStarter.html#TrayStarter.__startHexEditor" />
       <keyword name="TrayStarter.__startIconEditor" id="TrayStarter.__startIconEditor" ref="eric6.Tools.TrayStarter.html#TrayStarter.__startIconEditor" />
       <keyword name="TrayStarter.__startMiniEditor" id="TrayStarter.__startMiniEditor" ref="eric6.Tools.TrayStarter.html#TrayStarter.__startMiniEditor" />
       <keyword name="TrayStarter.__startPluginInstall" id="TrayStarter.__startPluginInstall" ref="eric6.Tools.TrayStarter.html#TrayStarter.__startPluginInstall" />
@@ -12364,6 +12610,7 @@
       <keyword name="UserInterface.__newProject" id="UserInterface.__newProject" ref="eric6.UI.UserInterface.html#UserInterface.__newProject" />
       <keyword name="UserInterface.__newWindow" id="UserInterface.__newWindow" ref="eric6.UI.UserInterface.html#UserInterface.__newWindow" />
       <keyword name="UserInterface.__onlineStateChanged" id="UserInterface.__onlineStateChanged" ref="eric6.UI.UserInterface.html#UserInterface.__onlineStateChanged" />
+      <keyword name="UserInterface.__openHexEditor" id="UserInterface.__openHexEditor" ref="eric6.UI.UserInterface.html#UserInterface.__openHexEditor" />
       <keyword name="UserInterface.__openMiniEditor" id="UserInterface.__openMiniEditor" ref="eric6.UI.UserInterface.html#UserInterface.__openMiniEditor" />
       <keyword name="UserInterface.__openOnStartup" id="UserInterface.__openOnStartup" ref="eric6.UI.UserInterface.html#UserInterface.__openOnStartup" />
       <keyword name="UserInterface.__pluginsConfigure" id="UserInterface.__pluginsConfigure" ref="eric6.UI.UserInterface.html#UserInterface.__pluginsConfigure" />
@@ -13347,6 +13594,7 @@
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpViewersPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#create" />
+      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.IconsPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.InterfacePage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.IrcPage.html#create" />
@@ -13385,6 +13633,7 @@
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_configure.html#createMainWidget" />
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_diff.html#createMainWidget" />
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_editor.html#createMainWidget" />
+      <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_hexeditor.html#createMainWidget" />
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_iconeditor.html#createMainWidget" />
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_plugininstall.html#createMainWidget" />
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_pluginrepository.html#createMainWidget" />
@@ -13433,6 +13682,7 @@
       <keyword name="eric6_diff (Module)" id="eric6_diff (Module)" ref="eric6.eric6_diff.html" />
       <keyword name="eric6_doc (Module)" id="eric6_doc (Module)" ref="eric6.eric6_doc.html" />
       <keyword name="eric6_editor (Module)" id="eric6_editor (Module)" ref="eric6.eric6_editor.html" />
+      <keyword name="eric6_hexeditor (Module)" id="eric6_hexeditor (Module)" ref="eric6.eric6_hexeditor.html" />
       <keyword name="eric6_iconeditor (Module)" id="eric6_iconeditor (Module)" ref="eric6.eric6_iconeditor.html" />
       <keyword name="eric6_plugininstall (Module)" id="eric6_plugininstall (Module)" ref="eric6.eric6_plugininstall.html" />
       <keyword name="eric6_pluginrepository (Module)" id="eric6_pluginrepository (Module)" ref="eric6.eric6_pluginrepository.html" />
@@ -13528,6 +13778,7 @@
       <keyword name="getGeometry" id="getGeometry" ref="eric6.Preferences.__init__.html#getGeometry" />
       <keyword name="getGraphics" id="getGraphics" ref="eric6.Preferences.__init__.html#getGraphics" />
       <keyword name="getHelp" id="getHelp" ref="eric6.Preferences.__init__.html#getHelp" />
+      <keyword name="getHexEditor" id="getHexEditor" ref="eric6.Preferences.__init__.html#getHexEditor" />
       <keyword name="getHomeDir" id="getHomeDir" ref="eric6.Utilities.__init__.html#getHomeDir" />
       <keyword name="getIcon" id="getIcon" ref="eric6.UI.PixmapCache.html#getIcon" />
       <keyword name="getIconEditor" id="getIconEditor" ref="eric6.Preferences.__init__.html#getIconEditor" />
@@ -13682,6 +13933,7 @@
       <keyword name="main" id="main" ref="eric6.eric6_diff.html#main" />
       <keyword name="main" id="main" ref="eric6.eric6_doc.html#main" />
       <keyword name="main" id="main" ref="eric6.eric6_editor.html#main" />
+      <keyword name="main" id="main" ref="eric6.eric6_hexeditor.html#main" />
       <keyword name="main" id="main" ref="eric6.eric6_iconeditor.html#main" />
       <keyword name="main" id="main" ref="eric6.eric6_plugininstall.html#main" />
       <keyword name="main" id="main" ref="eric6.eric6_pluginrepository.html#main" />
@@ -13802,6 +14054,7 @@
       <keyword name="runcall" id="runcall" ref="eric6.DebugClients.Python3.eric6dbgstub.html#runcall" />
       <keyword name="rxExecute" id="rxExecute" ref="eric6.Plugins.WizardPlugins.QRegularExpressionWizard.QRegularExpressionWizardServer.html#rxExecute" />
       <keyword name="rxValidate" id="rxValidate" ref="eric6.Plugins.WizardPlugins.QRegularExpressionWizard.QRegularExpressionWizardServer.html#rxValidate" />
+      <keyword name="s2qTranslate" id="s2qTranslate" ref="eric6.QScintilla.KeySequenceTranslator.html#s2qTranslate" />
       <keyword name="samefilepath" id="samefilepath" ref="eric6.Utilities.__init__.html#samefilepath" />
       <keyword name="samepath" id="samepath" ref="eric6.Utilities.__init__.html#samepath" />
       <keyword name="saveResetLayout" id="saveResetLayout" ref="eric6.Preferences.__init__.html#saveResetLayout" />
@@ -13826,6 +14079,7 @@
       <keyword name="setGeometry" id="setGeometry" ref="eric6.Preferences.__init__.html#setGeometry" />
       <keyword name="setGraphics" id="setGraphics" ref="eric6.Preferences.__init__.html#setGraphics" />
       <keyword name="setHelp" id="setHelp" ref="eric6.Preferences.__init__.html#setHelp" />
+      <keyword name="setHexEditor" id="setHexEditor" ref="eric6.Preferences.__init__.html#setHexEditor" />
       <keyword name="setIconEditor" id="setIconEditor" ref="eric6.Preferences.__init__.html#setIconEditor" />
       <keyword name="setIcons" id="setIcons" ref="eric6.Preferences.__init__.html#setIcons" />
       <keyword name="setIrc" id="setIrc" ref="eric6.Preferences.__init__.html#setIrc" />
@@ -14271,6 +14525,12 @@
       <file>eric6.Helpviewer.ZoomManager.ZoomManager.html</file>
       <file>eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html</file>
       <file>eric6.Helpviewer.ZoomManager.ZoomValuesModel.html</file>
+      <file>eric6.HexEdit.HexEditChunks.html</file>
+      <file>eric6.HexEdit.HexEditGotoWidget.html</file>
+      <file>eric6.HexEdit.HexEditMainWindow.html</file>
+      <file>eric6.HexEdit.HexEditSearchReplaceWidget.html</file>
+      <file>eric6.HexEdit.HexEditUndoStack.html</file>
+      <file>eric6.HexEdit.HexEditWidget.html</file>
       <file>eric6.IconEditor.IconEditorGrid.html</file>
       <file>eric6.IconEditor.IconEditorPalette.html</file>
       <file>eric6.IconEditor.IconEditorWindow.html</file>
@@ -14549,6 +14809,7 @@
       <file>eric6.Preferences.ConfigurationPages.HelpViewersPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html</file>
+      <file>eric6.Preferences.ConfigurationPages.HexEditorPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.IconsPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.IconsPreviewDialog.html</file>
       <file>eric6.Preferences.ConfigurationPages.InterfacePage.html</file>
@@ -14621,6 +14882,7 @@
       <file>eric6.QScintilla.Exporters.ExporterTEX.html</file>
       <file>eric6.QScintilla.Exporters.__init__.html</file>
       <file>eric6.QScintilla.GotoDialog.html</file>
+      <file>eric6.QScintilla.KeySequenceTranslator.html</file>
       <file>eric6.QScintilla.Lexers.Lexer.html</file>
       <file>eric6.QScintilla.Lexers.LexerBash.html</file>
       <file>eric6.QScintilla.Lexers.LexerBatch.html</file>
@@ -14766,6 +15028,7 @@
       <file>eric6.eric6_diff.html</file>
       <file>eric6.eric6_doc.html</file>
       <file>eric6.eric6_editor.html</file>
+      <file>eric6.eric6_hexeditor.html</file>
       <file>eric6.eric6_iconeditor.html</file>
       <file>eric6.eric6_plugininstall.html</file>
       <file>eric6.eric6_pluginrepository.html</file>
@@ -14826,6 +15089,7 @@
       <file>index-eric6.Helpviewer.ZoomManager.html</file>
       <file>index-eric6.Helpviewer.data.html</file>
       <file>index-eric6.Helpviewer.html</file>
+      <file>index-eric6.HexEdit.html</file>
       <file>index-eric6.IconEditor.cursors.html</file>
       <file>index-eric6.IconEditor.html</file>
       <file>index-eric6.MultiProject.html</file>
--- a/Documentation/Source/eric6.DebugClients.Python.DebugBase.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.DebugClients.Python.DebugBase.html	Sun Jan 17 15:15:15 2016 +0100
@@ -159,6 +159,9 @@
 <td><a href="#DebugBase.stop_here">stop_here</a></td>
 <td>Public method reimplemented to filter out debugger files.</td>
 </tr><tr>
+<td><a href="#DebugBase.storeFrameLocals">storeFrameLocals</a></td>
+<td>Public method to store the locals into the frame, so an access to frame.f_locals returns the last data.</td>
+</tr><tr>
 <td><a href="#DebugBase.trace_dispatch">trace_dispatch</a></td>
 <td>Public method reimplemented from bdb.py to do some special things.</td>
 </tr><tr>
@@ -630,6 +633,18 @@
 <dd>
 flag indicating whether the debugger should stop here
 </dd>
+</dl><a NAME="DebugBase.storeFrameLocals" ID="DebugBase.storeFrameLocals"></a>
+<h4>DebugBase.storeFrameLocals</h4>
+<b>storeFrameLocals</b>(<i>frmnr=0</i>)
+<p>
+        Public method to store the locals into the frame, so an access to
+        frame.f_locals returns the last data.
+</p><dl>
+<dt><i>frmnr=</i></dt>
+<dd>
+distance of frame to store locals dictionary to. 0 is
+            the current frame (int)
+</dd>
 </dl><a NAME="DebugBase.trace_dispatch" ID="DebugBase.trace_dispatch"></a>
 <h4>DebugBase.trace_dispatch</h4>
 <b>trace_dispatch</b>(<i>frame, event, arg</i>)
--- a/Documentation/Source/eric6.DebugClients.Python3.DebugBase.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.DebugClients.Python3.DebugBase.html	Sun Jan 17 15:15:15 2016 +0100
@@ -162,6 +162,9 @@
 <td><a href="#DebugBase.stop_here">stop_here</a></td>
 <td>Public method reimplemented to filter out debugger files.</td>
 </tr><tr>
+<td><a href="#DebugBase.storeFrameLocals">storeFrameLocals</a></td>
+<td>Public method to store the locals into the frame, so an access to frame.f_locals returns the last data.</td>
+</tr><tr>
 <td><a href="#DebugBase.trace_dispatch">trace_dispatch</a></td>
 <td>Public method reimplemented from bdb.py to do some special things.</td>
 </tr><tr>
@@ -649,6 +652,18 @@
 <dd>
 flag indicating whether the debugger should stop here
 </dd>
+</dl><a NAME="DebugBase.storeFrameLocals" ID="DebugBase.storeFrameLocals"></a>
+<h4>DebugBase.storeFrameLocals</h4>
+<b>storeFrameLocals</b>(<i>frmnr=0</i>)
+<p>
+        Public method to store the locals into the frame, so an access to
+        frame.f_locals returns the last data.
+</p><dl>
+<dt><i>frmnr=</i></dt>
+<dd>
+distance of frame to store locals dictionary to. 0 is
+            the current frame (int)
+</dd>
 </dl><a NAME="DebugBase.trace_dispatch" ID="DebugBase.trace_dispatch"></a>
 <h4>DebugBase.trace_dispatch</h4>
 <b>trace_dispatch</b>(<i>frame, event, arg</i>)
--- a/Documentation/Source/eric6.E5Network.E5NetworkIcon.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.E5Network.E5NetworkIcon.html	Sun Jan 17 15:15:15 2016 +0100
@@ -52,7 +52,7 @@
 </dd>
 </dl>
 <h3>Derived from</h3>
-E5ClickableLabel
+QLabel
 <h3>Class Attributes</h3>
 <table>
 <tr><td>None</td></tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.HexEdit.HexEditChunks.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,466 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.HexEdit.HexEditChunks</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.HexEdit.HexEditChunks</h1>
+<p>
+Module implementing the storage backend for the hex editor.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#HexEditChunk">HexEditChunk</a></td>
+<td>Class implementing a container for the data chunks.</td>
+</tr><tr>
+<td><a href="#HexEditChunks">HexEditChunks</a></td>
+<td>Class implementing the storage backend for the hex editor.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="HexEditChunk" ID="HexEditChunk"></a>
+<h2>HexEditChunk</h2>
+<p>
+    Class implementing a container for the data chunks.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditChunk.__init__">HexEditChunk</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditChunk.__init__" ID="HexEditChunk.__init__"></a>
+<h4>HexEditChunk (Constructor)</h4>
+<b>HexEditChunk</b>(<i></i>)
+<p>
+        Constructor
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="HexEditChunks" ID="HexEditChunks"></a>
+<h2>HexEditChunks</h2>
+<p>
+    Class implementing the storage backend for the hex editor.
+</p><p>
+    When HexEditWidget loads data, HexEditChunks access them using a QIODevice
+    interface. When the app uses a QByteArray or Python bytearray interface,
+    QBuffer is used to provide again a QIODevice like interface. No data will
+    be changed, therefore HexEditChunks opens the QIODevice in
+    QIODevice.ReadOnly mode. After every access HexEditChunks closes the
+    QIODevice. That's why external applications can overwrite files while
+    HexEditWidget shows them.
+</p><p>
+    When the the user starts to edit the data, HexEditChunks creates a local
+    copy of a chunk of data (4 kilobytes) and notes all changes there. Parallel
+    to that chunk, there is a second chunk, which keeps track of which bytes
+    are changed and which are not.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+<table>
+<tr><td>BUFFER_SIZE</td></tr><tr><td>CHUNK_SIZE</td></tr><tr><td>READ_CHUNK_MASK</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditChunks.__init__">HexEditChunks</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HexEditChunks.__getChunkIndex">__getChunkIndex</a></td>
+<td>Private method to get the chunk index for a position.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.__getitem__">__getitem__</a></td>
+<td>Special method to get a byte at a position.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.data">data</a></td>
+<td>Public method to get data out of the chunks.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.dataChanged">dataChanged</a></td>
+<td>Public method to test, if some data was changed.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.indexOf">indexOf</a></td>
+<td>Public method to search the first occurrence of some data.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.insert">insert</a></td>
+<td>Public method to insert a byte.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.lastIndexOf">lastIndexOf</a></td>
+<td>Public method to search the last occurrence of some data.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.overwrite">overwrite</a></td>
+<td>Public method to overwrite a byte.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.pos">pos</a></td>
+<td>Public method to get the current position.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.removeAt">removeAt</a></td>
+<td>Public method to remove a byte.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.setDataChanged">setDataChanged</a></td>
+<td>Public method to set highlighting info.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.setIODevice">setIODevice</a></td>
+<td>Public method to set an io device to read the binary data from.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.size">size</a></td>
+<td>Public method to get the current data size.</td>
+</tr><tr>
+<td><a href="#HexEditChunks.write">write</a></td>
+<td>Public method to write data to an io device.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditChunks.__init__" ID="HexEditChunks.__init__"></a>
+<h4>HexEditChunks (Constructor)</h4>
+<b>HexEditChunks</b>(<i>ioDevice=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>ioDevice</i> (QIODevice)</dt>
+<dd>
+io device to get the data from
+</dd>
+</dl><a NAME="HexEditChunks.__getChunkIndex" ID="HexEditChunks.__getChunkIndex"></a>
+<h4>HexEditChunks.__getChunkIndex</h4>
+<b>__getChunkIndex</b>(<i>absPos</i>)
+<p>
+        Private method to get the chunk index for a position.
+</p><p>
+        This method checks, if there is already a copied chunk available. If
+        there is one, it returns its index. If there is no copied chunk
+        available, original data will be copied into a new chunk.
+</p><dl>
+<dt><i>absPos</i> (int)</dt>
+<dd>
+absolute position of the data.
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+index of the chunk containing the position
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditChunks.__getitem__" ID="HexEditChunks.__getitem__"></a>
+<h4>HexEditChunks.__getitem__</h4>
+<b>__getitem__</b>(<i>pos</i>)
+<p>
+        Special method to get a byte at a position.
+</p><p>
+        Note: This realizes the [] get operator.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position of byte to get
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+requested byte
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int (range 0 to 255)
+</dd>
+</dl><a NAME="HexEditChunks.data" ID="HexEditChunks.data"></a>
+<h4>HexEditChunks.data</h4>
+<b>data</b>(<i>pos=0, maxSize=-1, highlighted=None</i>)
+<p>
+        Public method to get data out of the chunks.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to get bytes from
+</dd><dt><i>maxSize</i> (int)</dt>
+<dd>
+maximum amount of bytes to get
+</dd><dt><i>highlighted</i> (bytearray)</dt>
+<dd>
+reference to a byte array storing highlighting info
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+retrieved data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bytearray
+</dd>
+</dl><a NAME="HexEditChunks.dataChanged" ID="HexEditChunks.dataChanged"></a>
+<h4>HexEditChunks.dataChanged</h4>
+<b>dataChanged</b>(<i>pos</i>)
+<p>
+        Public method to test, if some data was changed.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+byte position to check
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the changed state
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditChunks.indexOf" ID="HexEditChunks.indexOf"></a>
+<h4>HexEditChunks.indexOf</h4>
+<b>indexOf</b>(<i>byteArray, start</i>)
+<p>
+        Public method to search the first occurrence of some data.
+</p><dl>
+<dt><i>byteArray</i> (bytearray)</dt>
+<dd>
+data to search for
+</dd><dt><i>start</i> (int)</dt>
+<dd>
+position to start the search at
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+position the data was found at or -1 if nothing could be found
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditChunks.insert" ID="HexEditChunks.insert"></a>
+<h4>HexEditChunks.insert</h4>
+<b>insert</b>(<i>pos, data</i>)
+<p>
+        Public method to insert a byte.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to insert at
+</dd><dt><i>data</i> (int (range 0 to 255))</dt>
+<dd>
+byte to insert
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditChunks.lastIndexOf" ID="HexEditChunks.lastIndexOf"></a>
+<h4>HexEditChunks.lastIndexOf</h4>
+<b>lastIndexOf</b>(<i>byteArray, start</i>)
+<p>
+        Public method to search the last occurrence of some data.
+</p><dl>
+<dt><i>byteArray</i> (bytearray)</dt>
+<dd>
+data to search for
+</dd><dt><i>start</i> (int)</dt>
+<dd>
+position to start the search at
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+position the data was found at or -1 if nothing could be found
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditChunks.overwrite" ID="HexEditChunks.overwrite"></a>
+<h4>HexEditChunks.overwrite</h4>
+<b>overwrite</b>(<i>pos, data</i>)
+<p>
+        Public method to overwrite a byte.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to overwrite
+</dd><dt><i>data</i> (int (range 0 to 255))</dt>
+<dd>
+byte to overwrite with
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditChunks.pos" ID="HexEditChunks.pos"></a>
+<h4>HexEditChunks.pos</h4>
+<b>pos</b>(<i></i>)
+<p>
+        Public method to get the current position.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+current position
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditChunks.removeAt" ID="HexEditChunks.removeAt"></a>
+<h4>HexEditChunks.removeAt</h4>
+<b>removeAt</b>(<i>pos</i>)
+<p>
+        Public method to remove a byte.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to remove
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditChunks.setDataChanged" ID="HexEditChunks.setDataChanged"></a>
+<h4>HexEditChunks.setDataChanged</h4>
+<b>setDataChanged</b>(<i>pos, dataChanged</i>)
+<p>
+        Public method to set highlighting info.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to set highlighting info for
+</dd><dt><i>dataChanged</i> (bool)</dt>
+<dd>
+flag indicating changed data
+</dd>
+</dl><a NAME="HexEditChunks.setIODevice" ID="HexEditChunks.setIODevice"></a>
+<h4>HexEditChunks.setIODevice</h4>
+<b>setIODevice</b>(<i>ioDevice</i>)
+<p>
+        Public method to set an io device to read the binary data from.
+</p><dl>
+<dt><i>ioDevice</i> (QIODevice)</dt>
+<dd>
+io device to get the data from
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating successful operation
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditChunks.size" ID="HexEditChunks.size"></a>
+<h4>HexEditChunks.size</h4>
+<b>size</b>(<i></i>)
+<p>
+        Public method to get the current data size.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+current data size
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditChunks.write" ID="HexEditChunks.write"></a>
+<h4>HexEditChunks.write</h4>
+<b>write</b>(<i>ioDevice, pos=0, count=-1</i>)
+<p>
+        Public method to write data to an io device.
+</p><dl>
+<dt><i>ioDevice</i> (QIODevice)</dt>
+<dd>
+io device to write the data to
+</dd><dt><i>pos</i> (int)</dt>
+<dd>
+position to write bytes from
+</dd><dt><i>count</i> (int)</dt>
+<dd>
+amount of bytes to write
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.HexEdit.HexEditGotoWidget.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,176 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.HexEdit.HexEditGotoWidget</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.HexEdit.HexEditGotoWidget</h1>
+<p>
+Module implementing a movement (goto) widget for the hex editor.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#HexEditGotoWidget">HexEditGotoWidget</a></td>
+<td>Class implementing a movement (goto) widget for the hex editor.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="HexEditGotoWidget" ID="HexEditGotoWidget"></a>
+<h2>HexEditGotoWidget</h2>
+<p>
+    Class implementing a movement (goto) widget for the hex editor.
+</p>
+<h3>Derived from</h3>
+QWidget, Ui_HexEditGotoWidget
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditGotoWidget.__init__">HexEditGotoWidget</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HexEditGotoWidget.__convertText">__convertText</a></td>
+<td>Private method to convert text from one format into another.</td>
+</tr><tr>
+<td><a href="#HexEditGotoWidget.keyPressEvent">keyPressEvent</a></td>
+<td>Protected slot to handle key press events.</td>
+</tr><tr>
+<td><a href="#HexEditGotoWidget.on_closeButton_clicked">on_closeButton_clicked</a></td>
+<td>Private slot to close the widget.</td>
+</tr><tr>
+<td><a href="#HexEditGotoWidget.on_formatCombo_currentIndexChanged">on_formatCombo_currentIndexChanged</a></td>
+<td>Private slot to handle a selection of the format.</td>
+</tr><tr>
+<td><a href="#HexEditGotoWidget.on_gotoButton_clicked">on_gotoButton_clicked</a></td>
+<td>Private slot to move the cursor and extend the selection.</td>
+</tr><tr>
+<td><a href="#HexEditGotoWidget.on_offsetEdit_textChanged">on_offsetEdit_textChanged</a></td>
+<td>Private slot handling a change of the entered offset.</td>
+</tr><tr>
+<td><a href="#HexEditGotoWidget.show">show</a></td>
+<td>Public slot to show the widget.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditGotoWidget.__init__" ID="HexEditGotoWidget.__init__"></a>
+<h4>HexEditGotoWidget (Constructor)</h4>
+<b>HexEditGotoWidget</b>(<i>editor, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>editor</i> (HexEditWidget)</dt>
+<dd>
+reference to the hex editor widget
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="HexEditGotoWidget.__convertText" ID="HexEditGotoWidget.__convertText"></a>
+<h4>HexEditGotoWidget.__convertText</h4>
+<b>__convertText</b>(<i>txt, oldFormat, newFormat</i>)
+<p>
+        Private method to convert text from one format into another.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+text to be converted
+</dd><dt><i>oldFormat</i> (str)</dt>
+<dd>
+current format of the text
+</dd><dt><i>newFormat</i> (str)</dt>
+<dd>
+format to convert to
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+converted text
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="HexEditGotoWidget.keyPressEvent" ID="HexEditGotoWidget.keyPressEvent"></a>
+<h4>HexEditGotoWidget.keyPressEvent</h4>
+<b>keyPressEvent</b>(<i>event</i>)
+<p>
+        Protected slot to handle key press events.
+</p><dl>
+<dt><i>event</i> (QKeyEvent)</dt>
+<dd>
+reference to the key press event
+</dd>
+</dl><a NAME="HexEditGotoWidget.on_closeButton_clicked" ID="HexEditGotoWidget.on_closeButton_clicked"></a>
+<h4>HexEditGotoWidget.on_closeButton_clicked</h4>
+<b>on_closeButton_clicked</b>(<i></i>)
+<p>
+        Private slot to close the widget.
+</p><a NAME="HexEditGotoWidget.on_formatCombo_currentIndexChanged" ID="HexEditGotoWidget.on_formatCombo_currentIndexChanged"></a>
+<h4>HexEditGotoWidget.on_formatCombo_currentIndexChanged</h4>
+<b>on_formatCombo_currentIndexChanged</b>(<i>idx</i>)
+<p>
+        Private slot to handle a selection of the format.
+</p><dl>
+<dt><i>idx</i> (int)</dt>
+<dd>
+index of the selected entry
+</dd>
+</dl><a NAME="HexEditGotoWidget.on_gotoButton_clicked" ID="HexEditGotoWidget.on_gotoButton_clicked"></a>
+<h4>HexEditGotoWidget.on_gotoButton_clicked</h4>
+<b>on_gotoButton_clicked</b>(<i></i>)
+<p>
+        Private slot to move the cursor and extend the selection.
+</p><a NAME="HexEditGotoWidget.on_offsetEdit_textChanged" ID="HexEditGotoWidget.on_offsetEdit_textChanged"></a>
+<h4>HexEditGotoWidget.on_offsetEdit_textChanged</h4>
+<b>on_offsetEdit_textChanged</b>(<i>offset</i>)
+<p>
+        Private slot handling a change of the entered offset.
+</p><dl>
+<dt><i>offset</i> (str)</dt>
+<dd>
+entered offset
+</dd>
+</dl><a NAME="HexEditGotoWidget.show" ID="HexEditGotoWidget.show"></a>
+<h4>HexEditGotoWidget.show</h4>
+<b>show</b>(<i></i>)
+<p>
+        Public slot to show the widget.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.HexEdit.HexEditMainWindow.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,588 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.HexEdit.HexEditMainWindow</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.HexEdit.HexEditMainWindow</h1>
+<p>
+Module implementing the hex editor main window.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#HexEditMainWindow">HexEditMainWindow</a></td>
+<td>Class implementing the web browser main window.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="HexEditMainWindow" ID="HexEditMainWindow"></a>
+<h2>HexEditMainWindow</h2>
+<p>
+    Class implementing the web browser main window.
+</p><h3>Signals</h3>
+<dl>
+<dt>editorClosed()</dt>
+<dd>
+emitted after the window was requested to close down
+</dd>
+</dl>
+<h3>Derived from</h3>
+E5MainWindow
+<h3>Class Attributes</h3>
+<table>
+<tr><td>windows</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditMainWindow.__init__">HexEditMainWindow</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__about">__about</a></td>
+<td>Private slot to show a little About message.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__aboutQt">__aboutQt</a></td>
+<td>Private slot to handle the About Qt dialog.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__checkActions">__checkActions</a></td>
+<td>Private slot to check some actions for their enable/disable status.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__closeAll">__closeAll</a></td>
+<td>Private slot to close all windows.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__closeOthers">__closeOthers</a></td>
+<td>Private slot to close all other windows.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__createStatusBar">__createStatusBar</a></td>
+<td>Private method to initialize the status bar.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__goto">__goto</a></td>
+<td>Private method to handle the goto action.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__initActions">__initActions</a></td>
+<td>Private method to define the user interface actions.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__initConfigActions">__initConfigActions</a></td>
+<td>Private method to create the Settings actions.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__initEditActions">__initEditActions</a></td>
+<td>Private method to create the Edit actions.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__initFileActions">__initFileActions</a></td>
+<td>Private method to define the file related user interface actions.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__initHelpActions">__initHelpActions</a></td>
+<td>Private method to create the Help actions.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__initMenus">__initMenus</a></td>
+<td>Private method to create the menus.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__initToolbars">__initToolbars</a></td>
+<td>Private method to create the toolbars.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__loadHexFile">__loadHexFile</a></td>
+<td>Private method to load a binary file.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__maybeSave">__maybeSave</a></td>
+<td>Private method to ask the user to save the file, if it was modified.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__modificationChanged">__modificationChanged</a></td>
+<td>Private slot to handle the dataChanged signal.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__openHexFile">__openHexFile</a></td>
+<td>Private slot to open a binary file.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__openHexFileNewWindow">__openHexFileNewWindow</a></td>
+<td>Private slot called to open a binary file in new hex editor window.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__openHexFileReadOnly">__openHexFileReadOnly</a></td>
+<td>Private slot to open a binary file in read only mode.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__preferencesChangedByLocalPreferencesDialog">__preferencesChangedByLocalPreferencesDialog</a></td>
+<td>Private slot to handle preferences changes by our local dialog.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__replace">__replace</a></td>
+<td>Private method to handle the replace action.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__saveHexDataFile">__saveHexDataFile</a></td>
+<td>Private method to save the binary data to a file.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__saveHexFile">__saveHexFile</a></td>
+<td>Private method to save a binary file.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__saveHexFileAs">__saveHexFileAs</a></td>
+<td>Private method to save the data to a new file.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__saveHexFileReadable">__saveHexFileReadable</a></td>
+<td>Private method to save the binary data in readable format.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__saveSelectionReadable">__saveSelectionReadable</a></td>
+<td>Private method to save the data of the current selection in readable format.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__search">__search</a></td>
+<td>Private method to handle the search action.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__setCurrentFile">__setCurrentFile</a></td>
+<td>Private method to register the file name of the current file.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__setReadOnlyActionTexts">__setReadOnlyActionTexts</a></td>
+<td>Private method to switch the 'Open Read Only' action between 'read only' and 'read write'.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__showAddress">__showAddress</a></td>
+<td>Private slot to show the address of the cursor position.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__showEditMode">__showEditMode</a></td>
+<td>Private slot to show the edit mode.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__showPreferences">__showPreferences</a></td>
+<td>Private slot to set the preferences.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__showReadOnlyMode">__showReadOnlyMode</a></td>
+<td>Private slot to show the read only mode.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__showSelectionInfo">__showSelectionInfo</a></td>
+<td>Private slot to show selection information.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__showSize">__showSize</a></td>
+<td>Private slot to show the binary data size.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__strippedName">__strippedName</a></td>
+<td>Private method to return the filename part of the given path.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__toggleEditMode">__toggleEditMode</a></td>
+<td>Private slot to toggle the edit mode upon a click on the status bar label.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__toggleReadOnlyMode">__toggleReadOnlyMode</a></td>
+<td>Private slot to toggle the read only mode upon a click on the status bar label.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.__whatsThis">__whatsThis</a></td>
+<td>Private slot called in to enter Whats This mode.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.closeEvent">closeEvent</a></td>
+<td>Protected event handler for the close event.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.getSRHistory">getSRHistory</a></td>
+<td>Public method to get the search or replace history list.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.preferencesChanged">preferencesChanged</a></td>
+<td>Public method to (re-)read the various settings.</td>
+</tr><tr>
+<td><a href="#HexEditMainWindow.setRecentPaths">setRecentPaths</a></td>
+<td>Public method to set the last open and save paths.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditMainWindow.__init__" ID="HexEditMainWindow.__init__"></a>
+<h4>HexEditMainWindow (Constructor)</h4>
+<b>HexEditMainWindow</b>(<i>fileName="", parent=None, fromEric=False, project=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>fileName</i></dt>
+<dd>
+name of a file to load on startup (string)
+</dd><dt><i>parent</i></dt>
+<dd>
+parent widget of this window (QWidget)
+</dd><dt><i>fromEric=</i></dt>
+<dd>
+flag indicating whether it was called from within
+            eric6 (boolean)
+</dd><dt><i>project=</i></dt>
+<dd>
+reference to the project object (Project)
+</dd>
+</dl><a NAME="HexEditMainWindow.__about" ID="HexEditMainWindow.__about"></a>
+<h4>HexEditMainWindow.__about</h4>
+<b>__about</b>(<i></i>)
+<p>
+        Private slot to show a little About message.
+</p><a NAME="HexEditMainWindow.__aboutQt" ID="HexEditMainWindow.__aboutQt"></a>
+<h4>HexEditMainWindow.__aboutQt</h4>
+<b>__aboutQt</b>(<i></i>)
+<p>
+        Private slot to handle the About Qt dialog.
+</p><a NAME="HexEditMainWindow.__checkActions" ID="HexEditMainWindow.__checkActions"></a>
+<h4>HexEditMainWindow.__checkActions</h4>
+<b>__checkActions</b>(<i></i>)
+<p>
+        Private slot to check some actions for their enable/disable status.
+</p><a NAME="HexEditMainWindow.__closeAll" ID="HexEditMainWindow.__closeAll"></a>
+<h4>HexEditMainWindow.__closeAll</h4>
+<b>__closeAll</b>(<i></i>)
+<p>
+        Private slot to close all windows.
+</p><a NAME="HexEditMainWindow.__closeOthers" ID="HexEditMainWindow.__closeOthers"></a>
+<h4>HexEditMainWindow.__closeOthers</h4>
+<b>__closeOthers</b>(<i></i>)
+<p>
+        Private slot to close all other windows.
+</p><a NAME="HexEditMainWindow.__createStatusBar" ID="HexEditMainWindow.__createStatusBar"></a>
+<h4>HexEditMainWindow.__createStatusBar</h4>
+<b>__createStatusBar</b>(<i></i>)
+<p>
+        Private method to initialize the status bar.
+</p><a NAME="HexEditMainWindow.__goto" ID="HexEditMainWindow.__goto"></a>
+<h4>HexEditMainWindow.__goto</h4>
+<b>__goto</b>(<i></i>)
+<p>
+        Private method to handle the goto action.
+</p><a NAME="HexEditMainWindow.__initActions" ID="HexEditMainWindow.__initActions"></a>
+<h4>HexEditMainWindow.__initActions</h4>
+<b>__initActions</b>(<i></i>)
+<p>
+        Private method to define the user interface actions.
+</p><a NAME="HexEditMainWindow.__initConfigActions" ID="HexEditMainWindow.__initConfigActions"></a>
+<h4>HexEditMainWindow.__initConfigActions</h4>
+<b>__initConfigActions</b>(<i></i>)
+<p>
+        Private method to create the Settings actions.
+</p><a NAME="HexEditMainWindow.__initEditActions" ID="HexEditMainWindow.__initEditActions"></a>
+<h4>HexEditMainWindow.__initEditActions</h4>
+<b>__initEditActions</b>(<i></i>)
+<p>
+        Private method to create the Edit actions.
+</p><a NAME="HexEditMainWindow.__initFileActions" ID="HexEditMainWindow.__initFileActions"></a>
+<h4>HexEditMainWindow.__initFileActions</h4>
+<b>__initFileActions</b>(<i></i>)
+<p>
+        Private method to define the file related user interface actions.
+</p><a NAME="HexEditMainWindow.__initHelpActions" ID="HexEditMainWindow.__initHelpActions"></a>
+<h4>HexEditMainWindow.__initHelpActions</h4>
+<b>__initHelpActions</b>(<i></i>)
+<p>
+        Private method to create the Help actions.
+</p><a NAME="HexEditMainWindow.__initMenus" ID="HexEditMainWindow.__initMenus"></a>
+<h4>HexEditMainWindow.__initMenus</h4>
+<b>__initMenus</b>(<i></i>)
+<p>
+        Private method to create the menus.
+</p><a NAME="HexEditMainWindow.__initToolbars" ID="HexEditMainWindow.__initToolbars"></a>
+<h4>HexEditMainWindow.__initToolbars</h4>
+<b>__initToolbars</b>(<i></i>)
+<p>
+        Private method to create the toolbars.
+</p><a NAME="HexEditMainWindow.__loadHexFile" ID="HexEditMainWindow.__loadHexFile"></a>
+<h4>HexEditMainWindow.__loadHexFile</h4>
+<b>__loadHexFile</b>(<i>fileName</i>)
+<p>
+        Private method to load a binary file.
+</p><dl>
+<dt><i>fileName</i> (str)</dt>
+<dd>
+name of the binary file to load
+</dd>
+</dl><a NAME="HexEditMainWindow.__maybeSave" ID="HexEditMainWindow.__maybeSave"></a>
+<h4>HexEditMainWindow.__maybeSave</h4>
+<b>__maybeSave</b>(<i></i>)
+<p>
+        Private method to ask the user to save the file, if it was modified.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating, if it is ok to continue
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditMainWindow.__modificationChanged" ID="HexEditMainWindow.__modificationChanged"></a>
+<h4>HexEditMainWindow.__modificationChanged</h4>
+<b>__modificationChanged</b>(<i>m</i>)
+<p>
+        Private slot to handle the dataChanged signal.
+</p><dl>
+<dt><i>m</i> (bool)</dt>
+<dd>
+modification status
+</dd>
+</dl><a NAME="HexEditMainWindow.__openHexFile" ID="HexEditMainWindow.__openHexFile"></a>
+<h4>HexEditMainWindow.__openHexFile</h4>
+<b>__openHexFile</b>(<i></i>)
+<p>
+        Private slot to open a binary file.
+</p><a NAME="HexEditMainWindow.__openHexFileNewWindow" ID="HexEditMainWindow.__openHexFileNewWindow"></a>
+<h4>HexEditMainWindow.__openHexFileNewWindow</h4>
+<b>__openHexFileNewWindow</b>(<i></i>)
+<p>
+        Private slot called to open a binary file in new hex editor window.
+</p><a NAME="HexEditMainWindow.__openHexFileReadOnly" ID="HexEditMainWindow.__openHexFileReadOnly"></a>
+<h4>HexEditMainWindow.__openHexFileReadOnly</h4>
+<b>__openHexFileReadOnly</b>(<i></i>)
+<p>
+        Private slot to open a binary file in read only mode.
+</p><a NAME="HexEditMainWindow.__preferencesChangedByLocalPreferencesDialog" ID="HexEditMainWindow.__preferencesChangedByLocalPreferencesDialog"></a>
+<h4>HexEditMainWindow.__preferencesChangedByLocalPreferencesDialog</h4>
+<b>__preferencesChangedByLocalPreferencesDialog</b>(<i></i>)
+<p>
+        Private slot to handle preferences changes by our local dialog.
+</p><a NAME="HexEditMainWindow.__replace" ID="HexEditMainWindow.__replace"></a>
+<h4>HexEditMainWindow.__replace</h4>
+<b>__replace</b>(<i></i>)
+<p>
+        Private method to handle the replace action.
+</p><a NAME="HexEditMainWindow.__saveHexDataFile" ID="HexEditMainWindow.__saveHexDataFile"></a>
+<h4>HexEditMainWindow.__saveHexDataFile</h4>
+<b>__saveHexDataFile</b>(<i>fileName</i>)
+<p>
+        Private method to save the binary data to a file.
+</p><dl>
+<dt><i>fileName</i> (str)</dt>
+<dd>
+name of the file to write to
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditMainWindow.__saveHexFile" ID="HexEditMainWindow.__saveHexFile"></a>
+<h4>HexEditMainWindow.__saveHexFile</h4>
+<b>__saveHexFile</b>(<i></i>)
+<p>
+        Private method to save a binary file.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditMainWindow.__saveHexFileAs" ID="HexEditMainWindow.__saveHexFileAs"></a>
+<h4>HexEditMainWindow.__saveHexFileAs</h4>
+<b>__saveHexFileAs</b>(<i></i>)
+<p>
+        Private method to save the data to a new file.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditMainWindow.__saveHexFileReadable" ID="HexEditMainWindow.__saveHexFileReadable"></a>
+<h4>HexEditMainWindow.__saveHexFileReadable</h4>
+<b>__saveHexFileReadable</b>(<i>selectionOnly=False</i>)
+<p>
+        Private method to save the binary data in readable format.
+</p><dl>
+<dt><i>selectionOnly</i> (bool)</dt>
+<dd>
+flag indicating to save the selection only
+</dd>
+</dl><a NAME="HexEditMainWindow.__saveSelectionReadable" ID="HexEditMainWindow.__saveSelectionReadable"></a>
+<h4>HexEditMainWindow.__saveSelectionReadable</h4>
+<b>__saveSelectionReadable</b>(<i></i>)
+<p>
+        Private method to save the data of the current selection in readable
+        format.
+</p><a NAME="HexEditMainWindow.__search" ID="HexEditMainWindow.__search"></a>
+<h4>HexEditMainWindow.__search</h4>
+<b>__search</b>(<i></i>)
+<p>
+        Private method to handle the search action.
+</p><a NAME="HexEditMainWindow.__setCurrentFile" ID="HexEditMainWindow.__setCurrentFile"></a>
+<h4>HexEditMainWindow.__setCurrentFile</h4>
+<b>__setCurrentFile</b>(<i>fileName</i>)
+<p>
+        Private method to register the file name of the current file.
+</p><dl>
+<dt><i>fileName</i> (str)</dt>
+<dd>
+name of the file to register
+</dd>
+</dl><a NAME="HexEditMainWindow.__setReadOnlyActionTexts" ID="HexEditMainWindow.__setReadOnlyActionTexts"></a>
+<h4>HexEditMainWindow.__setReadOnlyActionTexts</h4>
+<b>__setReadOnlyActionTexts</b>(<i></i>)
+<p>
+        Private method to switch the 'Open Read Only' action between
+        'read only' and 'read write'.
+</p><a NAME="HexEditMainWindow.__showAddress" ID="HexEditMainWindow.__showAddress"></a>
+<h4>HexEditMainWindow.__showAddress</h4>
+<b>__showAddress</b>(<i>address</i>)
+<p>
+        Private slot to show the address of the cursor position.
+</p><dl>
+<dt><i>address</i> (int)</dt>
+<dd>
+address of the cursor
+</dd>
+</dl><a NAME="HexEditMainWindow.__showEditMode" ID="HexEditMainWindow.__showEditMode"></a>
+<h4>HexEditMainWindow.__showEditMode</h4>
+<b>__showEditMode</b>(<i>overwrite</i>)
+<p>
+        Private slot to show the edit mode.
+</p><dl>
+<dt><i>overwrite</i> (bool)</dt>
+<dd>
+flag indicating overwrite mode
+</dd>
+</dl><a NAME="HexEditMainWindow.__showPreferences" ID="HexEditMainWindow.__showPreferences"></a>
+<h4>HexEditMainWindow.__showPreferences</h4>
+<b>__showPreferences</b>(<i></i>)
+<p>
+        Private slot to set the preferences.
+</p><a NAME="HexEditMainWindow.__showReadOnlyMode" ID="HexEditMainWindow.__showReadOnlyMode"></a>
+<h4>HexEditMainWindow.__showReadOnlyMode</h4>
+<b>__showReadOnlyMode</b>(<i>on</i>)
+<p>
+        Private slot to show the read only mode.
+</p><dl>
+<dt><i>on</i> (bool)</dt>
+<dd>
+flag indicating the read only state
+</dd>
+</dl><a NAME="HexEditMainWindow.__showSelectionInfo" ID="HexEditMainWindow.__showSelectionInfo"></a>
+<h4>HexEditMainWindow.__showSelectionInfo</h4>
+<b>__showSelectionInfo</b>(<i>avail</i>)
+<p>
+        Private slot to show selection information.
+</p><dl>
+<dt><i>avail</i> (bool)</dt>
+<dd>
+flag indicating the availability of a selection.
+</dd>
+</dl><a NAME="HexEditMainWindow.__showSize" ID="HexEditMainWindow.__showSize"></a>
+<h4>HexEditMainWindow.__showSize</h4>
+<b>__showSize</b>(<i>size</i>)
+<p>
+        Private slot to show the binary data size.
+</p><dl>
+<dt><i>size</i> (int)</dt>
+<dd>
+size of the binary data
+</dd>
+</dl><a NAME="HexEditMainWindow.__strippedName" ID="HexEditMainWindow.__strippedName"></a>
+<h4>HexEditMainWindow.__strippedName</h4>
+<b>__strippedName</b>(<i>fullFileName</i>)
+<p>
+        Private method to return the filename part of the given path.
+</p><dl>
+<dt><i>fullFileName</i> (str)</dt>
+<dd>
+full pathname of the given file
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+filename part
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="HexEditMainWindow.__toggleEditMode" ID="HexEditMainWindow.__toggleEditMode"></a>
+<h4>HexEditMainWindow.__toggleEditMode</h4>
+<b>__toggleEditMode</b>(<i></i>)
+<p>
+        Private slot to toggle the edit mode upon a click on the status bar
+        label.
+</p><a NAME="HexEditMainWindow.__toggleReadOnlyMode" ID="HexEditMainWindow.__toggleReadOnlyMode"></a>
+<h4>HexEditMainWindow.__toggleReadOnlyMode</h4>
+<b>__toggleReadOnlyMode</b>(<i></i>)
+<p>
+        Private slot to toggle the read only mode upon a click on the status
+        bar label.
+</p><a NAME="HexEditMainWindow.__whatsThis" ID="HexEditMainWindow.__whatsThis"></a>
+<h4>HexEditMainWindow.__whatsThis</h4>
+<b>__whatsThis</b>(<i></i>)
+<p>
+        Private slot called in to enter Whats This mode.
+</p><a NAME="HexEditMainWindow.closeEvent" ID="HexEditMainWindow.closeEvent"></a>
+<h4>HexEditMainWindow.closeEvent</h4>
+<b>closeEvent</b>(<i>evt</i>)
+<p>
+        Protected event handler for the close event.
+</p><dl>
+<dt><i>evt</i> (QCloseEvent)</dt>
+<dd>
+reference to the close event
+            <br />This event is simply accepted after the history has been
+            saved and all window references have been deleted.
+</dd>
+</dl><a NAME="HexEditMainWindow.getSRHistory" ID="HexEditMainWindow.getSRHistory"></a>
+<h4>HexEditMainWindow.getSRHistory</h4>
+<b>getSRHistory</b>(<i>key</i>)
+<p>
+        Public method to get the search or replace history list.
+</p><dl>
+<dt><i>key</i> (str (must be 'search' or 'replace'))</dt>
+<dd>
+name of list to return
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+the requested history list
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of tuples of (int, str)
+</dd>
+</dl><a NAME="HexEditMainWindow.preferencesChanged" ID="HexEditMainWindow.preferencesChanged"></a>
+<h4>HexEditMainWindow.preferencesChanged</h4>
+<b>preferencesChanged</b>(<i></i>)
+<p>
+        Public method to (re-)read the various settings.
+</p><a NAME="HexEditMainWindow.setRecentPaths" ID="HexEditMainWindow.setRecentPaths"></a>
+<h4>HexEditMainWindow.setRecentPaths</h4>
+<b>setRecentPaths</b>(<i>openPath, savePath</i>)
+<p>
+        Public method to set the last open and save paths.
+</p><dl>
+<dt><i>openPath</i> (str)</dt>
+<dd>
+least recently used open path
+</dd><dt><i>savePath</i> (str)</dt>
+<dd>
+least recently used save path
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.HexEdit.HexEditSearchReplaceWidget.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,451 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.HexEdit.HexEditSearchReplaceWidget</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.HexEdit.HexEditSearchReplaceWidget</h1>
+<p>
+Module implementing a search and replace widget for the hex editor.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#HexEditSearchReplaceWidget">HexEditSearchReplaceWidget</a></td>
+<td>Class implementing a search and replace widget for the hex editor.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="HexEditSearchReplaceWidget" ID="HexEditSearchReplaceWidget"></a>
+<h2>HexEditSearchReplaceWidget</h2>
+<p>
+    Class implementing a search and replace widget for the hex editor.
+</p>
+<h3>Derived from</h3>
+QWidget
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditSearchReplaceWidget.__init__">HexEditSearchReplaceWidget</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__bytearray2int">__bytearray2int</a></td>
+<td>Private method to convert a byte array to an integer value.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__bytearray2text">__bytearray2text</a></td>
+<td>Private method to convert a byte array to a text.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__convertText">__convertText</a></td>
+<td>Private method to convert text from one format into another.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__doReplace">__doReplace</a></td>
+<td>Private method to replace one occurrence of data.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__findByReturnPressed">__findByReturnPressed</a></td>
+<td>Private slot to handle a return pressed in the find combo.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__getContent">__getContent</a></td>
+<td>Private method to get the contents of the find/replace combo as a bytearray.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__int2bytearray">__int2bytearray</a></td>
+<td>Private method to convert an integer to a byte array.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__showFind">__showFind</a></td>
+<td>Private method to display this widget in find mode.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__showReplace">__showReplace</a></td>
+<td>Private slot to display this widget in replace mode.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.__text2bytearray">__text2bytearray</a></td>
+<td>Private method to convert a text to a byte array.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.findPrevNext">findPrevNext</a></td>
+<td>Public slot to find the next occurrence of the search term.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.keyPressEvent">keyPressEvent</a></td>
+<td>Protected slot to handle key press events.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_closeButton_clicked">on_closeButton_clicked</a></td>
+<td>Private slot to close the widget.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_findFormatCombo_currentIndexChanged">on_findFormatCombo_currentIndexChanged</a></td>
+<td>Private slot to handle a selection from the find format.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_findNextButton_clicked">on_findNextButton_clicked</a></td>
+<td>Private slot to find the next occurrence.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_findPrevButton_clicked">on_findPrevButton_clicked</a></td>
+<td>Private slot to find the previous occurrence.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_findtextCombo_activated">on_findtextCombo_activated</a></td>
+<td>Private slot to handle a selection from the find history.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_findtextCombo_editTextChanged">on_findtextCombo_editTextChanged</a></td>
+<td>Private slot to enable/disable the find buttons.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_replaceAllButton_clicked">on_replaceAllButton_clicked</a></td>
+<td>Private slot to replace all occurrences of data.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_replaceButton_clicked">on_replaceButton_clicked</a></td>
+<td>Private slot to replace one occurrence of data.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_replaceFormatCombo_currentIndexChanged">on_replaceFormatCombo_currentIndexChanged</a></td>
+<td>Private slot to handle a selection from the replace format.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_replaceSearchButton_clicked">on_replaceSearchButton_clicked</a></td>
+<td>Private slot to replace one occurrence of data and search for the next one.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.on_replacetextCombo_activated">on_replacetextCombo_activated</a></td>
+<td>Private slot to handle a selection from the replace history.</td>
+</tr><tr>
+<td><a href="#HexEditSearchReplaceWidget.show">show</a></td>
+<td>Public slot to show the widget.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditSearchReplaceWidget.__init__" ID="HexEditSearchReplaceWidget.__init__"></a>
+<h4>HexEditSearchReplaceWidget (Constructor)</h4>
+<b>HexEditSearchReplaceWidget</b>(<i>editor, mainWindow, replace=False, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>editor</i> (HexEditWidget)</dt>
+<dd>
+reference to the hex editor widget
+</dd><dt><i>mainWindow</i> (HexEditMainWindow)</dt>
+<dd>
+reference to the main window
+</dd><dt><i>replace</i> (bool)</dt>
+<dd>
+flag indicating a replace widget
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__bytearray2int" ID="HexEditSearchReplaceWidget.__bytearray2int"></a>
+<h4>HexEditSearchReplaceWidget.__bytearray2int</h4>
+<b>__bytearray2int</b>(<i>array</i>)
+<p>
+        Private method to convert a byte array to an integer value.
+</p><dl>
+<dt><i>array</i> (bytearray)</dt>
+<dd>
+byte array to be converted
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+integer value of the given array
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__bytearray2text" ID="HexEditSearchReplaceWidget.__bytearray2text"></a>
+<h4>HexEditSearchReplaceWidget.__bytearray2text</h4>
+<b>__bytearray2text</b>(<i>array, format</i>)
+<p>
+        Private method to convert a byte array to a text.
+</p><dl>
+<dt><i>array</i> (bytearray)</dt>
+<dd>
+byte array to be converted
+</dd><dt><i>format</i> (str)</dt>
+<dd>
+format of the text
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+formatted text
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__convertText" ID="HexEditSearchReplaceWidget.__convertText"></a>
+<h4>HexEditSearchReplaceWidget.__convertText</h4>
+<b>__convertText</b>(<i>txt, oldFormat, newFormat</i>)
+<p>
+        Private method to convert text from one format into another.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+text to be converted
+</dd><dt><i>oldFormat</i> (str)</dt>
+<dd>
+current format of the text
+</dd><dt><i>newFormat</i> (str)</dt>
+<dd>
+format to convert to
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+converted text
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__doReplace" ID="HexEditSearchReplaceWidget.__doReplace"></a>
+<h4>HexEditSearchReplaceWidget.__doReplace</h4>
+<b>__doReplace</b>(<i>searchNext</i>)
+<p>
+        Private method to replace one occurrence of data.
+</p><dl>
+<dt><i>searchNext</i> (bool)</dt>
+<dd>
+flag indicating to search for the next occurrence
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__findByReturnPressed" ID="HexEditSearchReplaceWidget.__findByReturnPressed"></a>
+<h4>HexEditSearchReplaceWidget.__findByReturnPressed</h4>
+<b>__findByReturnPressed</b>(<i></i>)
+<p>
+        Private slot to handle a return pressed in the find combo.
+</p><a NAME="HexEditSearchReplaceWidget.__getContent" ID="HexEditSearchReplaceWidget.__getContent"></a>
+<h4>HexEditSearchReplaceWidget.__getContent</h4>
+<b>__getContent</b>(<i>replace=False</i>)
+<p>
+        Private method to get the contents of the find/replace combo as
+        a bytearray.
+</p><dl>
+<dt><i>replace</i> (bool)</dt>
+<dd>
+flag indicating to retrieve the replace contents
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+search or replace term as text and binary data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of bytearray and str
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__int2bytearray" ID="HexEditSearchReplaceWidget.__int2bytearray"></a>
+<h4>HexEditSearchReplaceWidget.__int2bytearray</h4>
+<b>__int2bytearray</b>(<i>value</i>)
+<p>
+        Private method to convert an integer to a byte array.
+</p><dl>
+<dt><i>value</i> (int)</dt>
+<dd>
+value to be converted
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+byte array for the given value
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bytearray
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__showFind" ID="HexEditSearchReplaceWidget.__showFind"></a>
+<h4>HexEditSearchReplaceWidget.__showFind</h4>
+<b>__showFind</b>(<i>text=''</i>)
+<p>
+        Private method to display this widget in find mode.
+</p><dl>
+<dt><i>text</i> (str)</dt>
+<dd>
+hex encoded text to be shown in the findtext edit
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__showReplace" ID="HexEditSearchReplaceWidget.__showReplace"></a>
+<h4>HexEditSearchReplaceWidget.__showReplace</h4>
+<b>__showReplace</b>(<i>text=''</i>)
+<p>
+        Private slot to display this widget in replace mode.
+</p><dl>
+<dt><i>text</i> (str)</dt>
+<dd>
+hex encoded text to be shown in the findtext edit
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.__text2bytearray" ID="HexEditSearchReplaceWidget.__text2bytearray"></a>
+<h4>HexEditSearchReplaceWidget.__text2bytearray</h4>
+<b>__text2bytearray</b>(<i>txt, format</i>)
+<p>
+        Private method to convert a text to a byte array.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+text to be converted
+</dd><dt><i>format</i> (str)</dt>
+<dd>
+format of the text
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+converted text
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bytearray
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.findPrevNext" ID="HexEditSearchReplaceWidget.findPrevNext"></a>
+<h4>HexEditSearchReplaceWidget.findPrevNext</h4>
+<b>findPrevNext</b>(<i>prev=False</i>)
+<p>
+        Public slot to find the next occurrence of the search term.
+</p><dl>
+<dt><i>prev</i> (bool)</dt>
+<dd>
+flag indicating a backwards search
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a successful search
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.keyPressEvent" ID="HexEditSearchReplaceWidget.keyPressEvent"></a>
+<h4>HexEditSearchReplaceWidget.keyPressEvent</h4>
+<b>keyPressEvent</b>(<i>event</i>)
+<p>
+        Protected slot to handle key press events.
+</p><dl>
+<dt><i>event</i> (QKeyEvent)</dt>
+<dd>
+reference to the key press event
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.on_closeButton_clicked" ID="HexEditSearchReplaceWidget.on_closeButton_clicked"></a>
+<h4>HexEditSearchReplaceWidget.on_closeButton_clicked</h4>
+<b>on_closeButton_clicked</b>(<i></i>)
+<p>
+        Private slot to close the widget.
+</p><a NAME="HexEditSearchReplaceWidget.on_findFormatCombo_currentIndexChanged" ID="HexEditSearchReplaceWidget.on_findFormatCombo_currentIndexChanged"></a>
+<h4>HexEditSearchReplaceWidget.on_findFormatCombo_currentIndexChanged</h4>
+<b>on_findFormatCombo_currentIndexChanged</b>(<i>idx</i>)
+<p>
+        Private slot to handle a selection from the find format.
+</p><dl>
+<dt><i>idx</i> (int)</dt>
+<dd>
+index of the selected entry
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.on_findNextButton_clicked" ID="HexEditSearchReplaceWidget.on_findNextButton_clicked"></a>
+<h4>HexEditSearchReplaceWidget.on_findNextButton_clicked</h4>
+<b>on_findNextButton_clicked</b>(<i></i>)
+<p>
+        Private slot to find the next occurrence.
+</p><a NAME="HexEditSearchReplaceWidget.on_findPrevButton_clicked" ID="HexEditSearchReplaceWidget.on_findPrevButton_clicked"></a>
+<h4>HexEditSearchReplaceWidget.on_findPrevButton_clicked</h4>
+<b>on_findPrevButton_clicked</b>(<i></i>)
+<p>
+        Private slot to find the previous occurrence.
+</p><a NAME="HexEditSearchReplaceWidget.on_findtextCombo_activated" ID="HexEditSearchReplaceWidget.on_findtextCombo_activated"></a>
+<h4>HexEditSearchReplaceWidget.on_findtextCombo_activated</h4>
+<b>on_findtextCombo_activated</b>(<i>idx</i>)
+<p>
+        Private slot to handle a selection from the find history.
+</p><dl>
+<dt><i>idx</i> (int)</dt>
+<dd>
+index of the selected entry
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.on_findtextCombo_editTextChanged" ID="HexEditSearchReplaceWidget.on_findtextCombo_editTextChanged"></a>
+<h4>HexEditSearchReplaceWidget.on_findtextCombo_editTextChanged</h4>
+<b>on_findtextCombo_editTextChanged</b>(<i>txt</i>)
+<p>
+        Private slot to enable/disable the find buttons.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+text of the find text combo
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.on_replaceAllButton_clicked" ID="HexEditSearchReplaceWidget.on_replaceAllButton_clicked"></a>
+<h4>HexEditSearchReplaceWidget.on_replaceAllButton_clicked</h4>
+<b>on_replaceAllButton_clicked</b>(<i></i>)
+<p>
+        Private slot to replace all occurrences of data.
+</p><a NAME="HexEditSearchReplaceWidget.on_replaceButton_clicked" ID="HexEditSearchReplaceWidget.on_replaceButton_clicked"></a>
+<h4>HexEditSearchReplaceWidget.on_replaceButton_clicked</h4>
+<b>on_replaceButton_clicked</b>(<i></i>)
+<p>
+        Private slot to replace one occurrence of data.
+</p><a NAME="HexEditSearchReplaceWidget.on_replaceFormatCombo_currentIndexChanged" ID="HexEditSearchReplaceWidget.on_replaceFormatCombo_currentIndexChanged"></a>
+<h4>HexEditSearchReplaceWidget.on_replaceFormatCombo_currentIndexChanged</h4>
+<b>on_replaceFormatCombo_currentIndexChanged</b>(<i>idx</i>)
+<p>
+        Private slot to handle a selection from the replace format.
+</p><dl>
+<dt><i>idx</i> (int)</dt>
+<dd>
+index of the selected entry
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.on_replaceSearchButton_clicked" ID="HexEditSearchReplaceWidget.on_replaceSearchButton_clicked"></a>
+<h4>HexEditSearchReplaceWidget.on_replaceSearchButton_clicked</h4>
+<b>on_replaceSearchButton_clicked</b>(<i></i>)
+<p>
+        Private slot to replace one occurrence of data and search for the next
+        one.
+</p><a NAME="HexEditSearchReplaceWidget.on_replacetextCombo_activated" ID="HexEditSearchReplaceWidget.on_replacetextCombo_activated"></a>
+<h4>HexEditSearchReplaceWidget.on_replacetextCombo_activated</h4>
+<b>on_replacetextCombo_activated</b>(<i>idx</i>)
+<p>
+        Private slot to handle a selection from the replace history.
+</p><dl>
+<dt><i>idx</i> (int)</dt>
+<dd>
+index of the selected entry
+</dd>
+</dl><a NAME="HexEditSearchReplaceWidget.show" ID="HexEditSearchReplaceWidget.show"></a>
+<h4>HexEditSearchReplaceWidget.show</h4>
+<b>show</b>(<i>text=''</i>)
+<p>
+        Public slot to show the widget.
+</p><dl>
+<dt><i>text</i> (str)</dt>
+<dd>
+hex encoded text to be shown in the findtext edit
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.HexEdit.HexEditUndoStack.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,307 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.HexEdit.HexEditUndoStack</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.HexEdit.HexEditUndoStack</h1>
+<p>
+Module implementing the Undo stack for the hex edit widget.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#HexEditCommand">HexEditCommand</a></td>
+<td>Class implementing the edit comands.</td>
+</tr><tr>
+<td><a href="#HexEditUndoCommand">HexEditUndoCommand</a></td>
+<td>Class implementing the Undo command.</td>
+</tr><tr>
+<td><a href="#HexEditUndoStack">HexEditUndoStack</a></td>
+<td>Class implementing an Undo stack for the hex edit widget.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="HexEditCommand" ID="HexEditCommand"></a>
+<h2>HexEditCommand</h2>
+<p>
+    Class implementing the edit comands.
+</p>
+<h3>Derived from</h3>
+Enum
+<h3>Class Attributes</h3>
+<table>
+<tr><td>Insert</td></tr><tr><td>Overwrite</td></tr><tr><td>RemoveAt</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="HexEditUndoCommand" ID="HexEditUndoCommand"></a>
+<h2>HexEditUndoCommand</h2>
+<p>
+    Class implementing the Undo command.
+</p>
+<h3>Derived from</h3>
+QUndoCommand
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditUndoCommand.__init__">HexEditUndoCommand</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HexEditUndoCommand.id">id</a></td>
+<td>Public method to get the ID of this undo command class.</td>
+</tr><tr>
+<td><a href="#HexEditUndoCommand.mergeWith">mergeWith</a></td>
+<td>Public method to merge this command with another one.</td>
+</tr><tr>
+<td><a href="#HexEditUndoCommand.redo">redo</a></td>
+<td>Public method to redo the command.</td>
+</tr><tr>
+<td><a href="#HexEditUndoCommand.undo">undo</a></td>
+<td>Public method to undo the command.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditUndoCommand.__init__" ID="HexEditUndoCommand.__init__"></a>
+<h4>HexEditUndoCommand (Constructor)</h4>
+<b>HexEditUndoCommand</b>(<i>chunks, cmd, pos, newByte, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>chunks</i> (HexEditChunks)</dt>
+<dd>
+reference to the data container
+</dd><dt><i>cmd</i> (HexEditCommand)</dt>
+<dd>
+edit command
+</dd><dt><i>pos</i> (int)</dt>
+<dd>
+edit position
+</dd><dt><i>newByte</i> (int (range 0 to 255))</dt>
+<dd>
+new byte value
+</dd><dt><i>parent</i> (QUndoCommand)</dt>
+<dd>
+reference to the parent command
+</dd>
+</dl><a NAME="HexEditUndoCommand.id" ID="HexEditUndoCommand.id"></a>
+<h4>HexEditUndoCommand.id</h4>
+<b>id</b>(<i></i>)
+<p>
+        Public method to get the ID of this undo command class.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+ID of the undo command class
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditUndoCommand.mergeWith" ID="HexEditUndoCommand.mergeWith"></a>
+<h4>HexEditUndoCommand.mergeWith</h4>
+<b>mergeWith</b>(<i>command</i>)
+<p>
+        Public method to merge this command with another one.
+</p><dl>
+<dt><i>command</i> (QUndoCommand)</dt>
+<dd>
+reference to the command to merge with
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a successful merge
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditUndoCommand.redo" ID="HexEditUndoCommand.redo"></a>
+<h4>HexEditUndoCommand.redo</h4>
+<b>redo</b>(<i></i>)
+<p>
+        Public method to redo the command.
+</p><a NAME="HexEditUndoCommand.undo" ID="HexEditUndoCommand.undo"></a>
+<h4>HexEditUndoCommand.undo</h4>
+<b>undo</b>(<i></i>)
+<p>
+        Public method to undo the command.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="HexEditUndoStack" ID="HexEditUndoStack"></a>
+<h2>HexEditUndoStack</h2>
+<p>
+    Class implementing an Undo stack for the hex edit widget.
+</p>
+<h3>Derived from</h3>
+QUndoStack
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditUndoStack.__init__">HexEditUndoStack</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HexEditUndoStack.insert">insert</a></td>
+<td>Public method to insert a byte.</td>
+</tr><tr>
+<td><a href="#HexEditUndoStack.insertByteArray">insertByteArray</a></td>
+<td>Public method to insert bytes.</td>
+</tr><tr>
+<td><a href="#HexEditUndoStack.overwrite">overwrite</a></td>
+<td>Public method to replace a byte.</td>
+</tr><tr>
+<td><a href="#HexEditUndoStack.overwriteByteArray">overwriteByteArray</a></td>
+<td>Public method to replace bytes.</td>
+</tr><tr>
+<td><a href="#HexEditUndoStack.removeAt">removeAt</a></td>
+<td>Public method to remove bytes.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditUndoStack.__init__" ID="HexEditUndoStack.__init__"></a>
+<h4>HexEditUndoStack (Constructor)</h4>
+<b>HexEditUndoStack</b>(<i>chunks, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>chunks</i> (HexEditChunks)</dt>
+<dd>
+reference to the data container
+</dd><dt><i>parent</i> (QObject)</dt>
+<dd>
+reference to the parent object
+</dd>
+</dl><a NAME="HexEditUndoStack.insert" ID="HexEditUndoStack.insert"></a>
+<h4>HexEditUndoStack.insert</h4>
+<b>insert</b>(<i>pos, data</i>)
+<p>
+        Public method to insert a byte.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to insert at
+</dd><dt><i>data</i> (int (range 0 to 255))</dt>
+<dd>
+byte to be inserted
+</dd>
+</dl><a NAME="HexEditUndoStack.insertByteArray" ID="HexEditUndoStack.insertByteArray"></a>
+<h4>HexEditUndoStack.insertByteArray</h4>
+<b>insertByteArray</b>(<i>pos, byteArray</i>)
+<p>
+        Public method to insert bytes.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to insert at
+</dd><dt><i>byteArray</i> (byteArray or QByteArray)</dt>
+<dd>
+data to be inserted
+</dd>
+</dl><a NAME="HexEditUndoStack.overwrite" ID="HexEditUndoStack.overwrite"></a>
+<h4>HexEditUndoStack.overwrite</h4>
+<b>overwrite</b>(<i>pos, data</i>)
+<p>
+        Public method to replace a byte.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to replace the byte at
+</dd><dt><i>data</i> (int (range 0 to 255))</dt>
+<dd>
+byte to replace with
+</dd>
+</dl><a NAME="HexEditUndoStack.overwriteByteArray" ID="HexEditUndoStack.overwriteByteArray"></a>
+<h4>HexEditUndoStack.overwriteByteArray</h4>
+<b>overwriteByteArray</b>(<i>pos, length, byteArray</i>)
+<p>
+        Public method to replace bytes.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to replace the bytes at
+</dd><dt><i>length</i> (int)</dt>
+<dd>
+amount of bytes to replace
+</dd><dt><i>byteArray</i> (bytearray or QByteArray)</dt>
+<dd>
+bytes to replace with
+</dd>
+</dl><a NAME="HexEditUndoStack.removeAt" ID="HexEditUndoStack.removeAt"></a>
+<h4>HexEditUndoStack.removeAt</h4>
+<b>removeAt</b>(<i>pos, length=1</i>)
+<p>
+        Public method to remove bytes.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to remove bytes from
+</dd><dt><i>length</i> (int)</dt>
+<dd>
+amount of bytes to remove
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.HexEdit.HexEditWidget.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,1511 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.HexEdit.HexEditWidget</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.HexEdit.HexEditWidget</h1>
+<p>
+Module implementing an editor for binary data.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#HexEditWidget">HexEditWidget</a></td>
+<td>Class implementing an editor for binary data.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="HexEditWidget" ID="HexEditWidget"></a>
+<h2>HexEditWidget</h2>
+<p>
+    Class implementing an editor for binary data.
+</p><h3>Signals</h3>
+<dl>
+<dt>canRedoChanged(bool)</dt>
+<dd>
+emitted after the redo status has changed
+</dd><dt>canUndoChanged(bool)</dt>
+<dd>
+emitted after the undo status has changed
+</dd><dt>currentAddressChanged(address)</dt>
+<dd>
+emitted to indicate the new
+        cursor position
+</dd><dt>currentSizeChanged(size)</dt>
+<dd>
+emitted to indicate the new size of
+        the data
+</dd><dt>dataChanged(modified)</dt>
+<dd>
+emitted to indicate a change of the data
+</dd><dt>overwriteModeChanged(state)</dt>
+<dd>
+emitted to indicate a change of
+        the overwrite mode
+</dd><dt>readOnlyChanged(state)</dt>
+<dd>
+emitted to indicate a change of the
+        read only state
+</dd><dt>selectionAvailable(bool)</dt>
+<dd>
+emitted to signal a change of the
+        selection
+</dd>
+</dl>
+<h3>Derived from</h3>
+QAbstractScrollArea
+<h3>Class Attributes</h3>
+<table>
+<tr><td>BYTES_PER_LINE</td></tr><tr><td>HEXCHARS_PER_LINE</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditWidget.__init__">HexEditWidget</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__adjust">__adjust</a></td>
+<td>Private slot to recalculate pixel positions.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__canRedoChanged">__canRedoChanged</a></td>
+<td>Private slot handling changes of the Redo state.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__canUndoChanged">__canUndoChanged</a></td>
+<td>Private slot handling changes of the Undo state.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__dataChangedPrivate">__dataChangedPrivate</a></td>
+<td>Private slot to handle data changes.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__fromHex">__fromHex</a></td>
+<td>Private method to convert data of a Python bytearray from hex.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__initialize">__initialize</a></td>
+<td>Private method to do some initialization.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__readBuffers">__readBuffers</a></td>
+<td>Private method to read the buffers.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__refresh">__refresh</a></td>
+<td>Private slot to refresh the display.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__resetSelection">__resetSelection</a></td>
+<td>Private method to reset the selection.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__setData">__setData</a></td>
+<td>Private method to set the data to show.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__setHexCursorRect">__setHexCursorRect</a></td>
+<td>Private method to set the cursor.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__setSelection">__setSelection</a></td>
+<td>Private method to set the selection.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__toHex">__toHex</a></td>
+<td>Private method to convert the data of a Python bytearray to hex.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__toReadable">__toReadable</a></td>
+<td>Private method to convert some data into a readable format.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.__updateCursor">__updateCursor</a></td>
+<td>Private slot to update the blinking cursor.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.addressArea">addressArea</a></td>
+<td>Public method to get the address area visibility.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.addressAreaColors">addressAreaColors</a></td>
+<td>Public method to get the address area colors.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.addressOffset">addressOffset</a></td>
+<td>Public method to get the address offset.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.addressWidth">addressWidth</a></td>
+<td>Public method to get the minimum width of the address area in characters.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.asciiArea">asciiArea</a></td>
+<td>Public method to get the visibility of the ASCII area.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.copy">copy</a></td>
+<td>Public method to copy the selected bytes to the clipboard.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.cursorBytePosition">cursorBytePosition</a></td>
+<td>Public method to get the cursor position in bytes.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.cursorPosition">cursorPosition</a></td>
+<td>Public method to get the cursor position.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.cursorPositionFromPoint">cursorPositionFromPoint</a></td>
+<td>Public method to calculate a cursor position from a graphics position.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.cut">cut</a></td>
+<td>Public method to cut the selected bytes and move them to the clipboard.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.data">data</a></td>
+<td>Public method to get the binary data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.dataAt">dataAt</a></td>
+<td>Public method to get data from a given position.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.deleteByte">deleteByte</a></td>
+<td>Public method to delete the current byte.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.deleteByteBack">deleteByteBack</a></td>
+<td>Public method to delete the previous byte.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.deselectAll">deselectAll</a></td>
+<td>Public method to deselect all data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.editorCommand">editorCommand</a></td>
+<td>Public method to execute an editor command sent by the eric view manager.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.ensureVisible">ensureVisible</a></td>
+<td>Public method to ensure, that the cursor is visible.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.font">font</a></td>
+<td>Public method to get the font used to show the data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.getSelectionBegin">getSelectionBegin</a></td>
+<td>Public method to get the start of the selection.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.getSelectionEnd">getSelectionEnd</a></td>
+<td>Public method to get the end of the selection.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.getSelectionLength">getSelectionLength</a></td>
+<td>Public method to get the length of the selection.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.goto">goto</a></td>
+<td>Public method to move the cursor.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.hasSelection">hasSelection</a></td>
+<td>Public method to test for a selection.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.highlightColors">highlightColors</a></td>
+<td>Public method to get the highlight colors.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.highlighting">highlighting</a></td>
+<td>Public method to get the highlighting state.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.indexOf">indexOf</a></td>
+<td>Public method to find the first occurrence of a byte array in our data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.insert">insert</a></td>
+<td>Public method to insert a byte.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.insertByteArray">insertByteArray</a></td>
+<td>Public method to insert bytes.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.isModified">isModified</a></td>
+<td>Public method to check for any modification.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.isReadOnly">isReadOnly</a></td>
+<td>Public method to test the read only state.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.keyPressEvent">keyPressEvent</a></td>
+<td>Protected method to handle key press events.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.lastIndexOf">lastIndexOf</a></td>
+<td>Public method to find the last occurrence of a byte array in our data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.mouseMoveEvent">mouseMoveEvent</a></td>
+<td>Protected method to handle mouse moves.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.mousePressEvent">mousePressEvent</a></td>
+<td>Protected method to handle mouse button presses.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToEndOfDocument">moveCursorToEndOfDocument</a></td>
+<td>Public method to move the cursor to the end of the data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToEndOfLine">moveCursorToEndOfLine</a></td>
+<td>Public method to move the cursor to the end of the current line.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToNextChar">moveCursorToNextChar</a></td>
+<td>Public method to move the cursor to the next byte.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToNextLine">moveCursorToNextLine</a></td>
+<td>Public method to move the cursor to the next line.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToNextPage">moveCursorToNextPage</a></td>
+<td>Public method to move the cursor to the next page.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToPreviousChar">moveCursorToPreviousChar</a></td>
+<td>Public method to move the cursor to the previous byte.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToPreviousLine">moveCursorToPreviousLine</a></td>
+<td>Public method to move the cursor to the previous line.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToPreviousPage">moveCursorToPreviousPage</a></td>
+<td>Public method to move the cursor to the previous page.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToStartOfDocument">moveCursorToStartOfDocument</a></td>
+<td>Public method to move the cursor to the start of the data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.moveCursorToStartOfLine">moveCursorToStartOfLine</a></td>
+<td>Public method to move the cursor to the beginning of the current line.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.overwriteMode">overwriteMode</a></td>
+<td>Public method to get the overwrite mode.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.paintEvent">paintEvent</a></td>
+<td>Protected method to handle paint events.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.paste">paste</a></td>
+<td>Public method to paste bytes from the clipboard.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.redo">redo</a></td>
+<td>Public slot to redo the last operation.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.remove">remove</a></td>
+<td>Public method to remove bytes.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.replace">replace</a></td>
+<td>Public method to replace a byte.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.replaceByteArray">replaceByteArray</a></td>
+<td>Public method to replace bytes.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.resizeEvent">resizeEvent</a></td>
+<td>Protected method to handle resize events.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.revertToUnmodified">revertToUnmodified</a></td>
+<td>Public slot to revert all changes.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectAll">selectAll</a></td>
+<td>Public method to select all data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectEndOfDocument">selectEndOfDocument</a></td>
+<td>Public method to extend the selection to the end of the data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectNextChar">selectNextChar</a></td>
+<td>Public method to extend the selection by one byte right.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectNextLine">selectNextLine</a></td>
+<td>Public method to extend the selection one line down.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectNextPage">selectNextPage</a></td>
+<td>Public method to extend the selection one page down.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectPreviousChar">selectPreviousChar</a></td>
+<td>Public method to extend the selection by one byte left.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectPreviousLine">selectPreviousLine</a></td>
+<td>Public method to extend the selection one line up.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectPreviousPage">selectPreviousPage</a></td>
+<td>Public method to extend the selection one page up.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectStartOfDocument">selectStartOfDocument</a></td>
+<td>Public method to extend the selection to the start of the data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectToEndOfLine">selectToEndOfLine</a></td>
+<td>Public method to extend the selection to the end of line.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectToStartOfLine">selectToStartOfLine</a></td>
+<td>Public method to extend the selection to the start of line.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectionColors">selectionColors</a></td>
+<td>Public method to get the selection colors.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectionToHexString">selectionToHexString</a></td>
+<td>Public method to get a hexadecimal representation of the selection.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.selectionToReadableString">selectionToReadableString</a></td>
+<td>Public method to get a formatted representation of the selection.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setAddressArea">setAddressArea</a></td>
+<td>Public method to set the address area visibility.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setAddressAreaColors">setAddressAreaColors</a></td>
+<td>Public method to set the address area colors.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setAddressOffset">setAddressOffset</a></td>
+<td>Public method to set the address offset.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setAddressWidth">setAddressWidth</a></td>
+<td>Public method to set the width of the address area.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setAsciiArea">setAsciiArea</a></td>
+<td>Public method to set the visibility of the ASCII area.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setCursorBytePosition">setCursorBytePosition</a></td>
+<td>Public method to set the cursor position in bytes.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setCursorPosition">setCursorPosition</a></td>
+<td>Public method to set the cursor position.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setData">setData</a></td>
+<td>Public method to set the data to show.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setFont">setFont</a></td>
+<td>Public method to set the font used to show the data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setHighlightColors">setHighlightColors</a></td>
+<td>Public method to set the highlight colors.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setHighlighting">setHighlighting</a></td>
+<td>Public method to set the highlighting state.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setModified">setModified</a></td>
+<td>Public slot to set the modified flag.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setOverwriteMode">setOverwriteMode</a></td>
+<td>Public method to set the overwrite mode.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setReadOnly">setReadOnly</a></td>
+<td>Public method to set the read only state.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.setSelectionColors">setSelectionColors</a></td>
+<td>Public method to set the selection colors.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.toReadableString">toReadableString</a></td>
+<td>Public method to get a formatted representation of our data.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.undo">undo</a></td>
+<td>Public slot to undo the last operation.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.undoStack">undoStack</a></td>
+<td>Public method to get a reference to the undo stack.</td>
+</tr><tr>
+<td><a href="#HexEditWidget.write">write</a></td>
+<td>Public method to write data from a given position to a device.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditWidget.__init__" ID="HexEditWidget.__init__"></a>
+<h4>HexEditWidget (Constructor)</h4>
+<b>HexEditWidget</b>(<i>parent=None, embedded=False</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+refernce to the parent widget
+</dd><dt><i>embedded</i> (bool)</dt>
+<dd>
+flag indicating an eric embedded hex editor
+</dd>
+</dl><a NAME="HexEditWidget.__adjust" ID="HexEditWidget.__adjust"></a>
+<h4>HexEditWidget.__adjust</h4>
+<b>__adjust</b>(<i></i>)
+<p>
+        Private slot to recalculate pixel positions.
+</p><a NAME="HexEditWidget.__canRedoChanged" ID="HexEditWidget.__canRedoChanged"></a>
+<h4>HexEditWidget.__canRedoChanged</h4>
+<b>__canRedoChanged</b>(<i></i>)
+<p>
+        Private slot handling changes of the Redo state.
+</p><a NAME="HexEditWidget.__canUndoChanged" ID="HexEditWidget.__canUndoChanged"></a>
+<h4>HexEditWidget.__canUndoChanged</h4>
+<b>__canUndoChanged</b>(<i></i>)
+<p>
+        Private slot handling changes of the Undo state.
+</p><a NAME="HexEditWidget.__dataChangedPrivate" ID="HexEditWidget.__dataChangedPrivate"></a>
+<h4>HexEditWidget.__dataChangedPrivate</h4>
+<b>__dataChangedPrivate</b>(<i>idx=0</i>)
+<p>
+        Private slot to handle data changes.
+</p><dl>
+<dt><i>idx</i> (int)</dt>
+<dd>
+index
+</dd>
+</dl><a NAME="HexEditWidget.__fromHex" ID="HexEditWidget.__fromHex"></a>
+<h4>HexEditWidget.__fromHex</h4>
+<b>__fromHex</b>(<i>byteArray</i>)
+<p>
+        Private method to convert data of a Python bytearray from hex.
+</p><dl>
+<dt><i>byteArray</i> (bytearray)</dt>
+<dd>
+byte array to be converted
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+converted data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bytearray
+</dd>
+</dl><a NAME="HexEditWidget.__initialize" ID="HexEditWidget.__initialize"></a>
+<h4>HexEditWidget.__initialize</h4>
+<b>__initialize</b>(<i></i>)
+<p>
+        Private method to do some initialization.
+</p><a NAME="HexEditWidget.__readBuffers" ID="HexEditWidget.__readBuffers"></a>
+<h4>HexEditWidget.__readBuffers</h4>
+<b>__readBuffers</b>(<i></i>)
+<p>
+        Private method to read the buffers.
+</p><a NAME="HexEditWidget.__refresh" ID="HexEditWidget.__refresh"></a>
+<h4>HexEditWidget.__refresh</h4>
+<b>__refresh</b>(<i></i>)
+<p>
+        Private slot to refresh the display.
+</p><a NAME="HexEditWidget.__resetSelection" ID="HexEditWidget.__resetSelection"></a>
+<h4>HexEditWidget.__resetSelection</h4>
+<b>__resetSelection</b>(<i>pos=None</i>)
+<p>
+        Private method to reset the selection.
+</p><dl>
+<dt><i>pos</i> (int or None)</dt>
+<dd>
+position to set selection start and end to
+            (if this is None, selection end is set to selection start)
+</dd>
+</dl><a NAME="HexEditWidget.__setData" ID="HexEditWidget.__setData"></a>
+<h4>HexEditWidget.__setData</h4>
+<b>__setData</b>(<i>ioDevice</i>)
+<p>
+        Private method to set the data to show.
+</p><dl>
+<dt><i>ioDevice</i> (QIODevice)</dt>
+<dd>
+device containing the data
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditWidget.__setHexCursorRect" ID="HexEditWidget.__setHexCursorRect"></a>
+<h4>HexEditWidget.__setHexCursorRect</h4>
+<b>__setHexCursorRect</b>(<i></i>)
+<p>
+        Private method to set the cursor.
+</p><a NAME="HexEditWidget.__setSelection" ID="HexEditWidget.__setSelection"></a>
+<h4>HexEditWidget.__setSelection</h4>
+<b>__setSelection</b>(<i>pos</i>)
+<p>
+        Private method to set the selection.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position
+</dd>
+</dl><a NAME="HexEditWidget.__toHex" ID="HexEditWidget.__toHex"></a>
+<h4>HexEditWidget.__toHex</h4>
+<b>__toHex</b>(<i>byteArray</i>)
+<p>
+        Private method to convert the data of a Python bytearray to hex.
+</p><dl>
+<dt><i>byteArray</i> (bytearray)</dt>
+<dd>
+byte array to be converted
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+converted data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bytearray
+</dd>
+</dl><a NAME="HexEditWidget.__toReadable" ID="HexEditWidget.__toReadable"></a>
+<h4>HexEditWidget.__toReadable</h4>
+<b>__toReadable</b>(<i>byteArray</i>)
+<p>
+        Private method to convert some data into a readable format.
+</p><dl>
+<dt><i>byteArray</i> (bytearray or QByteArray)</dt>
+<dd>
+data to be converted
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+readable data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="HexEditWidget.__updateCursor" ID="HexEditWidget.__updateCursor"></a>
+<h4>HexEditWidget.__updateCursor</h4>
+<b>__updateCursor</b>(<i></i>)
+<p>
+        Private slot to update the blinking cursor.
+</p><a NAME="HexEditWidget.addressArea" ID="HexEditWidget.addressArea"></a>
+<h4>HexEditWidget.addressArea</h4>
+<b>addressArea</b>(<i></i>)
+<p>
+        Public method to get the address area visibility.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the address area visibility
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditWidget.addressAreaColors" ID="HexEditWidget.addressAreaColors"></a>
+<h4>HexEditWidget.addressAreaColors</h4>
+<b>addressAreaColors</b>(<i></i>)
+<p>
+        Public method to get the address area colors.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+address area foreground and background colors
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of 2 QColor
+</dd>
+</dl><a NAME="HexEditWidget.addressOffset" ID="HexEditWidget.addressOffset"></a>
+<h4>HexEditWidget.addressOffset</h4>
+<b>addressOffset</b>(<i></i>)
+<p>
+        Public method to get the address offset.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+address offset
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.addressWidth" ID="HexEditWidget.addressWidth"></a>
+<h4>HexEditWidget.addressWidth</h4>
+<b>addressWidth</b>(<i></i>)
+<p>
+        Public method to get the minimum width of the address area in
+        characters.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+minimum width of the address area
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.asciiArea" ID="HexEditWidget.asciiArea"></a>
+<h4>HexEditWidget.asciiArea</h4>
+<b>asciiArea</b>(<i></i>)
+<p>
+        Public method to get the visibility of the ASCII area.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+visibility of the ASCII area
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditWidget.copy" ID="HexEditWidget.copy"></a>
+<h4>HexEditWidget.copy</h4>
+<b>copy</b>(<i></i>)
+<p>
+        Public method to copy the selected bytes to the clipboard.
+</p><a NAME="HexEditWidget.cursorBytePosition" ID="HexEditWidget.cursorBytePosition"></a>
+<h4>HexEditWidget.cursorBytePosition</h4>
+<b>cursorBytePosition</b>(<i></i>)
+<p>
+        Public method to get the cursor position in bytes.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+cursor position in bytes
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.cursorPosition" ID="HexEditWidget.cursorPosition"></a>
+<h4>HexEditWidget.cursorPosition</h4>
+<b>cursorPosition</b>(<i></i>)
+<p>
+        Public method to get the cursor position.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+cursor position
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.cursorPositionFromPoint" ID="HexEditWidget.cursorPositionFromPoint"></a>
+<h4>HexEditWidget.cursorPositionFromPoint</h4>
+<b>cursorPositionFromPoint</b>(<i>point</i>)
+<p>
+        Public method to calculate a cursor position from a graphics position.
+</p><dl>
+<dt><i>point</i> (QPoint)</dt>
+<dd>
+graphics position
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+cursor position
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.cut" ID="HexEditWidget.cut"></a>
+<h4>HexEditWidget.cut</h4>
+<b>cut</b>(<i></i>)
+<p>
+        Public method to cut the selected bytes and move them to the clipboard.
+</p><a NAME="HexEditWidget.data" ID="HexEditWidget.data"></a>
+<h4>HexEditWidget.data</h4>
+<b>data</b>(<i></i>)
+<p>
+        Public method to get the binary data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+binary data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bytearray
+</dd>
+</dl><a NAME="HexEditWidget.dataAt" ID="HexEditWidget.dataAt"></a>
+<h4>HexEditWidget.dataAt</h4>
+<b>dataAt</b>(<i>pos, count=-1</i>)
+<p>
+        Public method to get data from a given position.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to get data from
+</dd><dt><i>count</i> (int)</dt>
+<dd>
+amount of bytes to get
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+requested data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bytearray
+</dd>
+</dl><a NAME="HexEditWidget.deleteByte" ID="HexEditWidget.deleteByte"></a>
+<h4>HexEditWidget.deleteByte</h4>
+<b>deleteByte</b>(<i></i>)
+<p>
+        Public method to delete the current byte.
+</p><a NAME="HexEditWidget.deleteByteBack" ID="HexEditWidget.deleteByteBack"></a>
+<h4>HexEditWidget.deleteByteBack</h4>
+<b>deleteByteBack</b>(<i></i>)
+<p>
+        Public method to delete the previous byte.
+</p><a NAME="HexEditWidget.deselectAll" ID="HexEditWidget.deselectAll"></a>
+<h4>HexEditWidget.deselectAll</h4>
+<b>deselectAll</b>(<i></i>)
+<p>
+        Public method to deselect all data.
+</p><a NAME="HexEditWidget.editorCommand" ID="HexEditWidget.editorCommand"></a>
+<h4>HexEditWidget.editorCommand</h4>
+<b>editorCommand</b>(<i>cmd</i>)
+<p>
+        Public method to execute an editor command sent by the eric
+        view manager.
+</p><dl>
+<dt><i>cmd</i> (int)</dt>
+<dd>
+QScintilla command
+</dd>
+</dl><a NAME="HexEditWidget.ensureVisible" ID="HexEditWidget.ensureVisible"></a>
+<h4>HexEditWidget.ensureVisible</h4>
+<b>ensureVisible</b>(<i></i>)
+<p>
+        Public method to ensure, that the cursor is visible.
+</p><a NAME="HexEditWidget.font" ID="HexEditWidget.font"></a>
+<h4>HexEditWidget.font</h4>
+<b>font</b>(<i></i>)
+<p>
+        Public method to get the font used to show the data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+font used to show the data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+QFont
+</dd>
+</dl><a NAME="HexEditWidget.getSelectionBegin" ID="HexEditWidget.getSelectionBegin"></a>
+<h4>HexEditWidget.getSelectionBegin</h4>
+<b>getSelectionBegin</b>(<i></i>)
+<p>
+        Public method to get the start of the selection.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+selection start
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.getSelectionEnd" ID="HexEditWidget.getSelectionEnd"></a>
+<h4>HexEditWidget.getSelectionEnd</h4>
+<b>getSelectionEnd</b>(<i></i>)
+<p>
+        Public method to get the end of the selection.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+selection end
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.getSelectionLength" ID="HexEditWidget.getSelectionLength"></a>
+<h4>HexEditWidget.getSelectionLength</h4>
+<b>getSelectionLength</b>(<i></i>)
+<p>
+        Public method to get the length of the selection.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+selection length
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.goto" ID="HexEditWidget.goto"></a>
+<h4>HexEditWidget.goto</h4>
+<b>goto</b>(<i>offset, fromCursor=False, backwards=False, extendSelection=False</i>)
+<p>
+        Public method to move the cursor.
+</p><dl>
+<dt><i>offset</i> (int)</dt>
+<dd>
+offset to move to
+</dd><dt><i>fromCursor</i> (bool)</dt>
+<dd>
+flag indicating a move relative to the current cursor
+</dd><dt><i>backwards</i> (bool)</dt>
+<dd>
+flag indicating a backwards move
+</dd><dt><i>extendSelection</i> (bool)</dt>
+<dd>
+flag indicating to extend the selection
+</dd>
+</dl><a NAME="HexEditWidget.hasSelection" ID="HexEditWidget.hasSelection"></a>
+<h4>HexEditWidget.hasSelection</h4>
+<b>hasSelection</b>(<i></i>)
+<p>
+        Public method to test for a selection.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the presence of a selection
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditWidget.highlightColors" ID="HexEditWidget.highlightColors"></a>
+<h4>HexEditWidget.highlightColors</h4>
+<b>highlightColors</b>(<i></i>)
+<p>
+        Public method to get the highlight colors.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+highlight foreground and background colors
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of 2 QColor
+</dd>
+</dl><a NAME="HexEditWidget.highlighting" ID="HexEditWidget.highlighting"></a>
+<h4>HexEditWidget.highlighting</h4>
+<b>highlighting</b>(<i></i>)
+<p>
+        Public method to get the highlighting state.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+highlighting state
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditWidget.indexOf" ID="HexEditWidget.indexOf"></a>
+<h4>HexEditWidget.indexOf</h4>
+<b>indexOf</b>(<i>byteArray, start</i>)
+<p>
+        Public method to find the first occurrence of a byte array in our data.
+</p><dl>
+<dt><i>byteArray</i> (bytearray or QByteArray)</dt>
+<dd>
+data to search for
+</dd><dt><i>start</i> (int)</dt>
+<dd>
+start position of the search
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+position of match (or -1 if not found)
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.insert" ID="HexEditWidget.insert"></a>
+<h4>HexEditWidget.insert</h4>
+<b>insert</b>(<i>pos, ch</i>)
+<p>
+        Public method to insert a byte.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to insert the byte at
+</dd><dt><i>ch</i> (int in the range 0x00 to 0xff)</dt>
+<dd>
+byte to insert
+</dd>
+</dl><a NAME="HexEditWidget.insertByteArray" ID="HexEditWidget.insertByteArray"></a>
+<h4>HexEditWidget.insertByteArray</h4>
+<b>insertByteArray</b>(<i>pos, byteArray</i>)
+<p>
+        Public method to insert bytes.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to insert the bytes at
+</dd><dt><i>byteArray</i> (bytearray or QByteArray)</dt>
+<dd>
+bytes to be insert
+</dd>
+</dl><a NAME="HexEditWidget.isModified" ID="HexEditWidget.isModified"></a>
+<h4>HexEditWidget.isModified</h4>
+<b>isModified</b>(<i></i>)
+<p>
+        Public method to check for any modification.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a modified state
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditWidget.isReadOnly" ID="HexEditWidget.isReadOnly"></a>
+<h4>HexEditWidget.isReadOnly</h4>
+<b>isReadOnly</b>(<i></i>)
+<p>
+        Public method to test the read only state.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the read only state
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditWidget.keyPressEvent" ID="HexEditWidget.keyPressEvent"></a>
+<h4>HexEditWidget.keyPressEvent</h4>
+<b>keyPressEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle key press events.
+</p><dl>
+<dt><i>evt</i> (QKeyEvent)</dt>
+<dd>
+reference to the key event
+</dd>
+</dl><a NAME="HexEditWidget.lastIndexOf" ID="HexEditWidget.lastIndexOf"></a>
+<h4>HexEditWidget.lastIndexOf</h4>
+<b>lastIndexOf</b>(<i>byteArray, start</i>)
+<p>
+        Public method to find the last occurrence of a byte array in our data.
+</p><dl>
+<dt><i>byteArray</i> (bytearray or QByteArray)</dt>
+<dd>
+data to search for
+</dd><dt><i>start</i> (int)</dt>
+<dd>
+start position of the search
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+position of match (or -1 if not found)
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="HexEditWidget.mouseMoveEvent" ID="HexEditWidget.mouseMoveEvent"></a>
+<h4>HexEditWidget.mouseMoveEvent</h4>
+<b>mouseMoveEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse moves.
+</p><dl>
+<dt><i>evt</i> (QMouseEvent)</dt>
+<dd>
+reference to the mouse event
+</dd>
+</dl><a NAME="HexEditWidget.mousePressEvent" ID="HexEditWidget.mousePressEvent"></a>
+<h4>HexEditWidget.mousePressEvent</h4>
+<b>mousePressEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse button presses.
+</p><dl>
+<dt><i>evt</i> (QMouseEvent)</dt>
+<dd>
+reference to the mouse event
+</dd>
+</dl><a NAME="HexEditWidget.moveCursorToEndOfDocument" ID="HexEditWidget.moveCursorToEndOfDocument"></a>
+<h4>HexEditWidget.moveCursorToEndOfDocument</h4>
+<b>moveCursorToEndOfDocument</b>(<i></i>)
+<p>
+        Public method to move the cursor to the end of the data.
+</p><a NAME="HexEditWidget.moveCursorToEndOfLine" ID="HexEditWidget.moveCursorToEndOfLine"></a>
+<h4>HexEditWidget.moveCursorToEndOfLine</h4>
+<b>moveCursorToEndOfLine</b>(<i></i>)
+<p>
+        Public method to move the cursor to the end of the current line.
+</p><a NAME="HexEditWidget.moveCursorToNextChar" ID="HexEditWidget.moveCursorToNextChar"></a>
+<h4>HexEditWidget.moveCursorToNextChar</h4>
+<b>moveCursorToNextChar</b>(<i></i>)
+<p>
+        Public method to move the cursor to the next byte.
+</p><a NAME="HexEditWidget.moveCursorToNextLine" ID="HexEditWidget.moveCursorToNextLine"></a>
+<h4>HexEditWidget.moveCursorToNextLine</h4>
+<b>moveCursorToNextLine</b>(<i></i>)
+<p>
+        Public method to move the cursor to the next line.
+</p><a NAME="HexEditWidget.moveCursorToNextPage" ID="HexEditWidget.moveCursorToNextPage"></a>
+<h4>HexEditWidget.moveCursorToNextPage</h4>
+<b>moveCursorToNextPage</b>(<i></i>)
+<p>
+        Public method to move the cursor to the next page.
+</p><a NAME="HexEditWidget.moveCursorToPreviousChar" ID="HexEditWidget.moveCursorToPreviousChar"></a>
+<h4>HexEditWidget.moveCursorToPreviousChar</h4>
+<b>moveCursorToPreviousChar</b>(<i></i>)
+<p>
+        Public method to move the cursor to the previous byte.
+</p><a NAME="HexEditWidget.moveCursorToPreviousLine" ID="HexEditWidget.moveCursorToPreviousLine"></a>
+<h4>HexEditWidget.moveCursorToPreviousLine</h4>
+<b>moveCursorToPreviousLine</b>(<i></i>)
+<p>
+        Public method to move the cursor to the previous line.
+</p><a NAME="HexEditWidget.moveCursorToPreviousPage" ID="HexEditWidget.moveCursorToPreviousPage"></a>
+<h4>HexEditWidget.moveCursorToPreviousPage</h4>
+<b>moveCursorToPreviousPage</b>(<i></i>)
+<p>
+        Public method to move the cursor to the previous page.
+</p><a NAME="HexEditWidget.moveCursorToStartOfDocument" ID="HexEditWidget.moveCursorToStartOfDocument"></a>
+<h4>HexEditWidget.moveCursorToStartOfDocument</h4>
+<b>moveCursorToStartOfDocument</b>(<i></i>)
+<p>
+        Public method to move the cursor to the start of the data.
+</p><a NAME="HexEditWidget.moveCursorToStartOfLine" ID="HexEditWidget.moveCursorToStartOfLine"></a>
+<h4>HexEditWidget.moveCursorToStartOfLine</h4>
+<b>moveCursorToStartOfLine</b>(<i></i>)
+<p>
+        Public method to move the cursor to the beginning of the current line.
+</p><a NAME="HexEditWidget.overwriteMode" ID="HexEditWidget.overwriteMode"></a>
+<h4>HexEditWidget.overwriteMode</h4>
+<b>overwriteMode</b>(<i></i>)
+<p>
+        Public method to get the overwrite mode.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+overwrite mode
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="HexEditWidget.paintEvent" ID="HexEditWidget.paintEvent"></a>
+<h4>HexEditWidget.paintEvent</h4>
+<b>paintEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle paint events.
+</p><dl>
+<dt><i>evt</i> (QPaintEvent)</dt>
+<dd>
+reference to the paint event
+</dd>
+</dl><a NAME="HexEditWidget.paste" ID="HexEditWidget.paste"></a>
+<h4>HexEditWidget.paste</h4>
+<b>paste</b>(<i></i>)
+<p>
+        Public method to paste bytes from the clipboard.
+</p><a NAME="HexEditWidget.redo" ID="HexEditWidget.redo"></a>
+<h4>HexEditWidget.redo</h4>
+<b>redo</b>(<i></i>)
+<p>
+        Public slot to redo the last operation.
+</p><a NAME="HexEditWidget.remove" ID="HexEditWidget.remove"></a>
+<h4>HexEditWidget.remove</h4>
+<b>remove</b>(<i>pos, length=1</i>)
+<p>
+        Public method to remove bytes.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to remove bytes from
+</dd><dt><i>length</i> (int)</dt>
+<dd>
+amount of bytes to remove
+</dd>
+</dl><a NAME="HexEditWidget.replace" ID="HexEditWidget.replace"></a>
+<h4>HexEditWidget.replace</h4>
+<b>replace</b>(<i>pos, ch</i>)
+<p>
+        Public method to replace a byte.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to replace the byte at
+</dd><dt><i>ch</i> (int in the range 0x00 to 0xff)</dt>
+<dd>
+byte to replace with
+</dd>
+</dl><a NAME="HexEditWidget.replaceByteArray" ID="HexEditWidget.replaceByteArray"></a>
+<h4>HexEditWidget.replaceByteArray</h4>
+<b>replaceByteArray</b>(<i>pos, len, byteArray</i>)
+<p>
+        Public method to replace bytes.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+position to replace the bytes at
+</dd><dt><i>len</i> (int)</dt>
+<dd>
+amount of bytes to replace
+</dd><dt><i>byteArray</i> (bytearray or QByteArray)</dt>
+<dd>
+bytes to replace with
+</dd>
+</dl><a NAME="HexEditWidget.resizeEvent" ID="HexEditWidget.resizeEvent"></a>
+<h4>HexEditWidget.resizeEvent</h4>
+<b>resizeEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle resize events.
+</p><dl>
+<dt><i>evt</i> (QResizeEvent)</dt>
+<dd>
+reference to the resize event
+</dd>
+</dl><a NAME="HexEditWidget.revertToUnmodified" ID="HexEditWidget.revertToUnmodified"></a>
+<h4>HexEditWidget.revertToUnmodified</h4>
+<b>revertToUnmodified</b>(<i></i>)
+<p>
+        Public slot to revert all changes.
+</p><a NAME="HexEditWidget.selectAll" ID="HexEditWidget.selectAll"></a>
+<h4>HexEditWidget.selectAll</h4>
+<b>selectAll</b>(<i></i>)
+<p>
+        Public method to select all data.
+</p><a NAME="HexEditWidget.selectEndOfDocument" ID="HexEditWidget.selectEndOfDocument"></a>
+<h4>HexEditWidget.selectEndOfDocument</h4>
+<b>selectEndOfDocument</b>(<i></i>)
+<p>
+        Public method to extend the selection to the end of the data.
+</p><a NAME="HexEditWidget.selectNextChar" ID="HexEditWidget.selectNextChar"></a>
+<h4>HexEditWidget.selectNextChar</h4>
+<b>selectNextChar</b>(<i></i>)
+<p>
+        Public method to extend the selection by one byte right.
+</p><a NAME="HexEditWidget.selectNextLine" ID="HexEditWidget.selectNextLine"></a>
+<h4>HexEditWidget.selectNextLine</h4>
+<b>selectNextLine</b>(<i></i>)
+<p>
+        Public method to extend the selection one line down.
+</p><a NAME="HexEditWidget.selectNextPage" ID="HexEditWidget.selectNextPage"></a>
+<h4>HexEditWidget.selectNextPage</h4>
+<b>selectNextPage</b>(<i></i>)
+<p>
+        Public method to extend the selection one page down.
+</p><a NAME="HexEditWidget.selectPreviousChar" ID="HexEditWidget.selectPreviousChar"></a>
+<h4>HexEditWidget.selectPreviousChar</h4>
+<b>selectPreviousChar</b>(<i></i>)
+<p>
+        Public method to extend the selection by one byte left.
+</p><a NAME="HexEditWidget.selectPreviousLine" ID="HexEditWidget.selectPreviousLine"></a>
+<h4>HexEditWidget.selectPreviousLine</h4>
+<b>selectPreviousLine</b>(<i></i>)
+<p>
+        Public method to extend the selection one line up.
+</p><a NAME="HexEditWidget.selectPreviousPage" ID="HexEditWidget.selectPreviousPage"></a>
+<h4>HexEditWidget.selectPreviousPage</h4>
+<b>selectPreviousPage</b>(<i></i>)
+<p>
+        Public method to extend the selection one page up.
+</p><a NAME="HexEditWidget.selectStartOfDocument" ID="HexEditWidget.selectStartOfDocument"></a>
+<h4>HexEditWidget.selectStartOfDocument</h4>
+<b>selectStartOfDocument</b>(<i></i>)
+<p>
+        Public method to extend the selection to the start of the data.
+</p><a NAME="HexEditWidget.selectToEndOfLine" ID="HexEditWidget.selectToEndOfLine"></a>
+<h4>HexEditWidget.selectToEndOfLine</h4>
+<b>selectToEndOfLine</b>(<i></i>)
+<p>
+        Public method to extend the selection to the end of line.
+</p><a NAME="HexEditWidget.selectToStartOfLine" ID="HexEditWidget.selectToStartOfLine"></a>
+<h4>HexEditWidget.selectToStartOfLine</h4>
+<b>selectToStartOfLine</b>(<i></i>)
+<p>
+        Public method to extend the selection to the start of line.
+</p><a NAME="HexEditWidget.selectionColors" ID="HexEditWidget.selectionColors"></a>
+<h4>HexEditWidget.selectionColors</h4>
+<b>selectionColors</b>(<i></i>)
+<p>
+        Public method to get the selection colors.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+selection foreground and background colors
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of 2 QColor
+</dd>
+</dl><a NAME="HexEditWidget.selectionToHexString" ID="HexEditWidget.selectionToHexString"></a>
+<h4>HexEditWidget.selectionToHexString</h4>
+<b>selectionToHexString</b>(<i></i>)
+<p>
+        Public method to get a hexadecimal representation of the selection.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+hexadecimal representation of the selection
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="HexEditWidget.selectionToReadableString" ID="HexEditWidget.selectionToReadableString"></a>
+<h4>HexEditWidget.selectionToReadableString</h4>
+<b>selectionToReadableString</b>(<i></i>)
+<p>
+        Public method to get a formatted representation of the selection.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+formatted representation of the selection
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="HexEditWidget.setAddressArea" ID="HexEditWidget.setAddressArea"></a>
+<h4>HexEditWidget.setAddressArea</h4>
+<b>setAddressArea</b>(<i>on</i>)
+<p>
+        Public method to set the address area visibility.
+</p><dl>
+<dt><i>on</i> (bool)</dt>
+<dd>
+flag indicating the address area visibility
+</dd>
+</dl><a NAME="HexEditWidget.setAddressAreaColors" ID="HexEditWidget.setAddressAreaColors"></a>
+<h4>HexEditWidget.setAddressAreaColors</h4>
+<b>setAddressAreaColors</b>(<i>foreground, background</i>)
+<p>
+        Public method to set the address area colors.
+</p><dl>
+<dt><i>foreground</i> (QColor)</dt>
+<dd>
+address area foreground color
+</dd><dt><i>background</i> (QColor)</dt>
+<dd>
+address area background color
+</dd>
+</dl><a NAME="HexEditWidget.setAddressOffset" ID="HexEditWidget.setAddressOffset"></a>
+<h4>HexEditWidget.setAddressOffset</h4>
+<b>setAddressOffset</b>(<i>offset</i>)
+<p>
+        Public method to set the address offset.
+</p><dl>
+<dt><i>offset</i> (int)</dt>
+<dd>
+address offset
+</dd>
+</dl><a NAME="HexEditWidget.setAddressWidth" ID="HexEditWidget.setAddressWidth"></a>
+<h4>HexEditWidget.setAddressWidth</h4>
+<b>setAddressWidth</b>(<i>width</i>)
+<p>
+        Public method to set the width of the address area.
+</p><dl>
+<dt><i>width</i> (int)</dt>
+<dd>
+width of the address area in characters
+</dd>
+</dl><a NAME="HexEditWidget.setAsciiArea" ID="HexEditWidget.setAsciiArea"></a>
+<h4>HexEditWidget.setAsciiArea</h4>
+<b>setAsciiArea</b>(<i>on</i>)
+<p>
+        Public method to set the visibility of the ASCII area.
+</p><dl>
+<dt><i>on</i> (bool)</dt>
+<dd>
+flag indicating the visibility of the ASCII area
+</dd>
+</dl><a NAME="HexEditWidget.setCursorBytePosition" ID="HexEditWidget.setCursorBytePosition"></a>
+<h4>HexEditWidget.setCursorBytePosition</h4>
+<b>setCursorBytePosition</b>(<i>pos</i>)
+<p>
+        Public method to set the cursor position in bytes.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+cursor position in bytes
+</dd>
+</dl><a NAME="HexEditWidget.setCursorPosition" ID="HexEditWidget.setCursorPosition"></a>
+<h4>HexEditWidget.setCursorPosition</h4>
+<b>setCursorPosition</b>(<i>pos</i>)
+<p>
+        Public method to set the cursor position.
+</p><dl>
+<dt><i>pos</i> (int)</dt>
+<dd>
+cursor position
+</dd>
+</dl><a NAME="HexEditWidget.setData" ID="HexEditWidget.setData"></a>
+<h4>HexEditWidget.setData</h4>
+<b>setData</b>(<i>dataOrDevice</i>)
+<p>
+        Public method to set the data to show.
+</p><dl>
+<dt><i>dataOrDevice</i> (bytearray, QByteArray or QIODevice)</dt>
+<dd>
+byte array or device containing the data
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><dl>
+<dt>Raises <b>TypeError</b>:</dt>
+<dd>
+raised to indicate a wrong parameter type
+</dd>
+</dl><a NAME="HexEditWidget.setFont" ID="HexEditWidget.setFont"></a>
+<h4>HexEditWidget.setFont</h4>
+<b>setFont</b>(<i>font</i>)
+<p>
+        Public method to set the font used to show the data.
+</p><dl>
+<dt><i>font</i> (QFont)</dt>
+<dd>
+font used to show the data
+</dd>
+</dl><a NAME="HexEditWidget.setHighlightColors" ID="HexEditWidget.setHighlightColors"></a>
+<h4>HexEditWidget.setHighlightColors</h4>
+<b>setHighlightColors</b>(<i>foreground, background</i>)
+<p>
+        Public method to set the highlight colors.
+</p><dl>
+<dt><i>foreground</i> (QColor)</dt>
+<dd>
+highlight foreground color
+</dd><dt><i>background</i> (QColor)</dt>
+<dd>
+highlight background color
+</dd>
+</dl><a NAME="HexEditWidget.setHighlighting" ID="HexEditWidget.setHighlighting"></a>
+<h4>HexEditWidget.setHighlighting</h4>
+<b>setHighlighting</b>(<i>on</i>)
+<p>
+        Public method to set the highlighting state.
+</p><dl>
+<dt><i>on</i> (bool)</dt>
+<dd>
+new highlighting state
+</dd>
+</dl><a NAME="HexEditWidget.setModified" ID="HexEditWidget.setModified"></a>
+<h4>HexEditWidget.setModified</h4>
+<b>setModified</b>(<i>modified, setCleanState=False</i>)
+<p>
+        Public slot to set the modified flag.
+</p><dl>
+<dt><i>modified</i> (bool)</dt>
+<dd>
+flag indicating the new modification status
+</dd><dt><i>setCleanState</i> (bool)</dt>
+<dd>
+flag indicating to set the undo stack to clean
+</dd>
+</dl><a NAME="HexEditWidget.setOverwriteMode" ID="HexEditWidget.setOverwriteMode"></a>
+<h4>HexEditWidget.setOverwriteMode</h4>
+<b>setOverwriteMode</b>(<i>on</i>)
+<p>
+        Public method to set the overwrite mode.
+</p><dl>
+<dt><i>on</i> (bool)</dt>
+<dd>
+flag indicating the new overwrite mode
+</dd>
+</dl><a NAME="HexEditWidget.setReadOnly" ID="HexEditWidget.setReadOnly"></a>
+<h4>HexEditWidget.setReadOnly</h4>
+<b>setReadOnly</b>(<i>on</i>)
+<p>
+        Public method to set the read only state.
+</p><dl>
+<dt><i>on</i> (bool)</dt>
+<dd>
+new read only state
+</dd>
+</dl><a NAME="HexEditWidget.setSelectionColors" ID="HexEditWidget.setSelectionColors"></a>
+<h4>HexEditWidget.setSelectionColors</h4>
+<b>setSelectionColors</b>(<i>foreground, background</i>)
+<p>
+        Public method to set the selection colors.
+</p><dl>
+<dt><i>foreground</i> (QColor)</dt>
+<dd>
+selection foreground color
+</dd><dt><i>background</i> (QColor)</dt>
+<dd>
+selection background color
+</dd>
+</dl><a NAME="HexEditWidget.toReadableString" ID="HexEditWidget.toReadableString"></a>
+<h4>HexEditWidget.toReadableString</h4>
+<b>toReadableString</b>(<i></i>)
+<p>
+        Public method to get a formatted representation of our data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+formatted representation of our data
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="HexEditWidget.undo" ID="HexEditWidget.undo"></a>
+<h4>HexEditWidget.undo</h4>
+<b>undo</b>(<i></i>)
+<p>
+        Public slot to undo the last operation.
+</p><a NAME="HexEditWidget.undoStack" ID="HexEditWidget.undoStack"></a>
+<h4>HexEditWidget.undoStack</h4>
+<b>undoStack</b>(<i></i>)
+<p>
+        Public method to get a reference to the undo stack.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the undo stack
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+HexEditUndoStack
+</dd>
+</dl><a NAME="HexEditWidget.write" ID="HexEditWidget.write"></a>
+<h4>HexEditWidget.write</h4>
+<b>write</b>(<i>device, pos=0, count=-1</i>)
+<p>
+        Public method to write data from a given position to a device.
+</p><dl>
+<dt><i>device</i> (QIODevice)</dt>
+<dd>
+device to write to
+</dd><dt><i>pos</i> (int)</dt>
+<dd>
+position to start the write at
+</dd><dt><i>count</i> (int)</dt>
+<dd>
+amount of bytes to write
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Network.IRC.IrcNetworkWidget.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.Network.IRC.IrcNetworkWidget.html	Sun Jan 17 15:15:15 2016 +0100
@@ -86,7 +86,7 @@
 <td>Constructor</td>
 </tr><tr>
 <td><a href="#IrcNetworkWidget.__autoConnect">__autoConnect</a></td>
-<td>Public method to perform the IRC auto connection.</td>
+<td>Private method to perform the IRC auto connection.</td>
 </tr><tr>
 <td><a href="#IrcNetworkWidget.__clearMessages">__clearMessages</a></td>
 <td>Private slot to clear the contents of the messages display.</td>
@@ -194,7 +194,7 @@
 <h4>IrcNetworkWidget.__autoConnect</h4>
 <b>__autoConnect</b>(<i></i>)
 <p>
-        Public method to perform the IRC auto connection.
+        Private method to perform the IRC auto connection.
 </p><a NAME="IrcNetworkWidget.__clearMessages" ID="IrcNetworkWidget.__clearMessages"></a>
 <h4>IrcNetworkWidget.__clearMessages</h4>
 <b>__clearMessages</b>(<i></i>)
--- a/Documentation/Source/eric6.Preferences.ConfigurationDialog.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.Preferences.ConfigurationDialog.html	Sun Jan 17 15:15:15 2016 +0100
@@ -67,7 +67,7 @@
 QDialog
 <h3>Class Attributes</h3>
 <table>
-<tr><td>DefaultMode</td></tr><tr><td>HelpBrowserMode</td></tr><tr><td>TrayStarterMode</td></tr>
+<tr><td>DefaultMode</td></tr><tr><td>HelpBrowserMode</td></tr><tr><td>HexEditorMode</td></tr><tr><td>TrayStarterMode</td></tr>
 </table>
 <h3>Class Methods</h3>
 <table>
@@ -127,7 +127,7 @@
 </dd><dt><i>displayMode=</i></dt>
 <dd>
 mode of the configuration dialog
-            (DefaultMode, HelpBrowserMode, TrayStarterMode)
+            (DefaultMode, HelpBrowserMode, TrayStarterMode, HexEditorMode)
 </dd><dt><i>expandedEntries=</i></dt>
 <dd>
 list of entries to be shown expanded
@@ -282,7 +282,7 @@
 QWidget
 <h3>Class Attributes</h3>
 <table>
-<tr><td>DefaultMode</td></tr><tr><td>HelpBrowserMode</td></tr><tr><td>TrayStarterMode</td></tr>
+<tr><td>DefaultMode</td></tr><tr><td>HelpBrowserMode</td></tr><tr><td>HexEditorMode</td></tr><tr><td>TrayStarterMode</td></tr>
 </table>
 <h3>Class Methods</h3>
 <table>
@@ -375,7 +375,7 @@
 </dd><dt><i>displayMode=</i></dt>
 <dd>
 mode of the configuration dialog
-            (DefaultMode, HelpBrowserMode, TrayStarterMode)
+            (DefaultMode, HelpBrowserMode, TrayStarterMode, HexEditorMode)
 </dd><dt><i>expandedEntries=</i></dt>
 <dd>
 list of entries to be shown expanded
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.ConfigurationPageBase.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.ConfigurationPageBase.html	Sun Jan 17 15:15:15 2016 +0100
@@ -141,7 +141,7 @@
         Public method to save the current state of the widget.
 </p><a NAME="ConfigurationPageBase.selectFont" ID="ConfigurationPageBase.selectFont"></a>
 <h4>ConfigurationPageBase.selectFont</h4>
-<b>selectFont</b>(<i>fontSample, fontVar, showFontInfo=False</i>)
+<b>selectFont</b>(<i>fontSample, fontVar, showFontInfo=False, options=QFontDialog.FontDialogOptions(0)</i>)
 <p>
         Public method used by the font selection buttons.
 </p><dl>
@@ -155,6 +155,10 @@
 <dd>
 flag indicating to show some font info
             as the sample (boolean)
+</dd><dt><i>options</i></dt>
+<dd>
+options for the font dialog
+            (QFontDialog.FontDialogOptions)
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.HexEditorPage.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Preferences.ConfigurationPages.HexEditorPage</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.Preferences.ConfigurationPages.HexEditorPage</h1>
+<p>
+Module implementing the Hex Editor configuration page.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#HexEditorPage">HexEditorPage</a></td>
+<td>Class implementing the Hex Editor configuration page.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#create">create</a></td>
+<td>Module function to create the configuration page.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="HexEditorPage" ID="HexEditorPage"></a>
+<h2>HexEditorPage</h2>
+<p>
+    Class implementing the Hex Editor configuration page.
+</p>
+<h3>Derived from</h3>
+ConfigurationPageBase, Ui_HexEditorPage
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HexEditorPage.__init__">HexEditorPage</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HexEditorPage.on_monospacedFontButton_clicked">on_monospacedFontButton_clicked</a></td>
+<td>Private method used to select the font to be used.</td>
+</tr><tr>
+<td><a href="#HexEditorPage.polishPage">polishPage</a></td>
+<td>Public slot to perform some polishing actions.</td>
+</tr><tr>
+<td><a href="#HexEditorPage.save">save</a></td>
+<td>Public slot to save the IRC configuration.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="HexEditorPage.__init__" ID="HexEditorPage.__init__"></a>
+<h4>HexEditorPage (Constructor)</h4>
+<b>HexEditorPage</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="HexEditorPage.on_monospacedFontButton_clicked" ID="HexEditorPage.on_monospacedFontButton_clicked"></a>
+<h4>HexEditorPage.on_monospacedFontButton_clicked</h4>
+<b>on_monospacedFontButton_clicked</b>(<i></i>)
+<p>
+        Private method used to select the font to be used.
+</p><a NAME="HexEditorPage.polishPage" ID="HexEditorPage.polishPage"></a>
+<h4>HexEditorPage.polishPage</h4>
+<b>polishPage</b>(<i></i>)
+<p>
+        Public slot to perform some polishing actions.
+</p><a NAME="HexEditorPage.save" ID="HexEditorPage.save"></a>
+<h4>HexEditorPage.save</h4>
+<b>save</b>(<i></i>)
+<p>
+        Public slot to save the IRC configuration.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="create" ID="create"></a>
+<h2>create</h2>
+<b>create</b>(<i>dlg</i>)
+<p>
+    Module function to create the configuration page.
+</p><dl>
+<dt><i>dlg</i></dt>
+<dd>
+reference to the configuration dialog
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the instantiated page (ConfigurationPageBase)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Preferences.__init__.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.Preferences.__init__.html	Sun Jan 17 15:15:15 2016 +0100
@@ -100,6 +100,9 @@
 <td><a href="#getHelp">getHelp</a></td>
 <td>Module function to retrieve the various help settings.</td>
 </tr><tr>
+<td><a href="#getHexEditor">getHexEditor</a></td>
+<td>Module function to retrieve the Hex Editor related settings.</td>
+</tr><tr>
 <td><a href="#getIconEditor">getIconEditor</a></td>
 <td>Module function to retrieve the Icon Editor related settings.</td>
 </tr><tr>
@@ -250,6 +253,9 @@
 <td><a href="#setHelp">setHelp</a></td>
 <td>Module function to store the various help settings.</td>
 </tr><tr>
+<td><a href="#setHexEditor">setHexEditor</a></td>
+<td>Module function to store the Hex Editor related settings.</td>
+</tr><tr>
 <td><a href="#setIconEditor">setIconEditor</a></td>
 <td>Module function to store the Icon Editor related settings.</td>
 </tr><tr>
@@ -351,7 +357,7 @@
 object
 <h3>Class Attributes</h3>
 <table>
-<tr><td>cooperationDefaults</td></tr><tr><td>corbaDefaults</td></tr><tr><td>debuggerDefaults</td></tr><tr><td>editorColourDefaults</td></tr><tr><td>editorDefaults</td></tr><tr><td>editorExporterDefaults</td></tr><tr><td>editorOtherFontsDefaults</td></tr><tr><td>editorTypingDefaults</td></tr><tr><td>geometryDefaults</td></tr><tr><td>graphicsDefaults</td></tr><tr><td>helpDefaults</td></tr><tr><td>iconEditorDefaults</td></tr><tr><td>iconsDefaults</td></tr><tr><td>ircDefaults</td></tr><tr><td>multiProjectDefaults</td></tr><tr><td>pluginManagerDefaults</td></tr><tr><td>printerDefaults</td></tr><tr><td>projectBrowserColourDefaults</td></tr><tr><td>projectBrowserFlagsDefaults</td></tr><tr><td>projectDefaults</td></tr><tr><td>pyflakesDefaults</td></tr><tr><td>qtDefaults</td></tr><tr><td>resetLayout</td></tr><tr><td>shellDefaults</td></tr><tr><td>sysDefaults</td></tr><tr><td>tasksDefaults</td></tr><tr><td>templatesDefaults</td></tr><tr><td>trayStarterDefaults</td></tr><tr><td>uiDefaults</td></tr><tr><td>userDefaults</td></tr><tr><td>varDefaults</td></tr><tr><td>vcsDefaults</td></tr><tr><td>webSettingsIntitialized</td></tr>
+<tr><td>cooperationDefaults</td></tr><tr><td>corbaDefaults</td></tr><tr><td>debuggerDefaults</td></tr><tr><td>editorColourDefaults</td></tr><tr><td>editorDefaults</td></tr><tr><td>editorExporterDefaults</td></tr><tr><td>editorOtherFontsDefaults</td></tr><tr><td>editorTypingDefaults</td></tr><tr><td>geometryDefaults</td></tr><tr><td>graphicsDefaults</td></tr><tr><td>helpDefaults</td></tr><tr><td>hexEditorDefaults</td></tr><tr><td>iconEditorDefaults</td></tr><tr><td>iconsDefaults</td></tr><tr><td>ircDefaults</td></tr><tr><td>multiProjectDefaults</td></tr><tr><td>pluginManagerDefaults</td></tr><tr><td>printerDefaults</td></tr><tr><td>projectBrowserColourDefaults</td></tr><tr><td>projectBrowserFlagsDefaults</td></tr><tr><td>projectDefaults</td></tr><tr><td>pyflakesDefaults</td></tr><tr><td>qtDefaults</td></tr><tr><td>resetLayout</td></tr><tr><td>shellDefaults</td></tr><tr><td>sysDefaults</td></tr><tr><td>tasksDefaults</td></tr><tr><td>templatesDefaults</td></tr><tr><td>trayStarterDefaults</td></tr><tr><td>uiDefaults</td></tr><tr><td>userDefaults</td></tr><tr><td>varDefaults</td></tr><tr><td>vcsDefaults</td></tr><tr><td>webSettingsIntitialized</td></tr>
 </table>
 <h3>Class Methods</h3>
 <table>
@@ -744,6 +750,27 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="getHexEditor" ID="getHexEditor"></a>
+<h2>getHexEditor</h2>
+<b>getHexEditor</b>(<i>key, prefClass=Prefs</i>)
+<p>
+    Module function to retrieve the Hex Editor related settings.
+</p><dl>
+<dt><i>key</i></dt>
+<dd>
+the key of the value to get
+</dd><dt><i>prefClass</i></dt>
+<dd>
+preferences class used as the storage area
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+the requested user setting
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="getIconEditor" ID="getIconEditor"></a>
 <h2>getIconEditor</h2>
 <b>getIconEditor</b>(<i>key, prefClass=Prefs</i>)
@@ -1682,6 +1709,25 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="setHexEditor" ID="setHexEditor"></a>
+<h2>setHexEditor</h2>
+<b>setHexEditor</b>(<i>key, value, prefClass=Prefs</i>)
+<p>
+    Module function to store the Hex Editor related settings.
+</p><dl>
+<dt><i>key</i></dt>
+<dd>
+the key of the setting to be set
+</dd><dt><i>value</i></dt>
+<dd>
+the value to be set
+</dd><dt><i>prefClass</i></dt>
+<dd>
+preferences class used as the storage area
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="setIconEditor" ID="setIconEditor"></a>
 <h2>setIconEditor</h2>
 <b>setIconEditor</b>(<i>key, value, prefClass=Prefs</i>)
--- a/Documentation/Source/eric6.Project.ProjectOthersBrowser.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.Project.ProjectOthersBrowser.html	Sun Jan 17 15:15:15 2016 +0100
@@ -47,7 +47,10 @@
     other categories.
 </p><h3>Signals</h3>
 <dl>
-<dt>closeSourceWindow(str)</dt>
+<dt>binaryFile(str)</dt>
+<dd>
+emitted to open a file as binary
+</dd><dt>closeSourceWindow(str)</dt>
 <dd>
 emitted after a file has been
         removed/deleted from the project
@@ -115,6 +118,9 @@
 <td><a href="#ProjectOthersBrowser._editPixmap">_editPixmap</a></td>
 <td>Protected slot to handle the open in icon editor popup menu entry.</td>
 </tr><tr>
+<td><a href="#ProjectOthersBrowser._openHexEditor">_openHexEditor</a></td>
+<td>Protected slot to handle the open in hex editor popup menu entry.</td>
+</tr><tr>
 <td><a href="#ProjectOthersBrowser._openItem">_openItem</a></td>
 <td>Protected slot to handle the open popup menu entry.</td>
 </tr><tr>
@@ -196,6 +202,11 @@
 <b>_editPixmap</b>(<i></i>)
 <p>
         Protected slot to handle the open in icon editor popup menu entry.
+</p><a NAME="ProjectOthersBrowser._openHexEditor" ID="ProjectOthersBrowser._openHexEditor"></a>
+<h4>ProjectOthersBrowser._openHexEditor</h4>
+<b>_openHexEditor</b>(<i></i>)
+<p>
+        Protected slot to handle the open in hex editor popup menu entry.
 </p><a NAME="ProjectOthersBrowser._openItem" ID="ProjectOthersBrowser._openItem"></a>
 <h4>ProjectOthersBrowser._openItem</h4>
 <b>_openItem</b>(<i></i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.QScintilla.KeySequenceTranslator.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.QScintilla.KeySequenceTranslator</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.QScintilla.KeySequenceTranslator</h1>
+<p>
+Module implementing functions to map QScintilla keyboard commands to
+QKeySequence standard keys.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>Scintilla2QKeySequence</td></tr><tr><td>__all__</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#s2qTranslate">s2qTranslate</a></td>
+<td>Function to translate a QScintilla command to a QKeySequence.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="s2qTranslate" ID="s2qTranslate"></a>
+<h2>s2qTranslate</h2>
+<b>s2qTranslate</b>(<i>scintillaCommand</i>)
+<p>
+    Function to translate a QScintilla command to a QKeySequence.
+</p><dl>
+<dt><i>scintillaCommand</i> (int)</dt>
+<dd>
+QScintilla command
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+Qt key sequence
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+QKeySequence.StandardKey
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Tools.TrayStarter.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.Tools.TrayStarter.html	Sun Jan 17 15:15:15 2016 +0100
@@ -105,6 +105,9 @@
 <td><a href="#TrayStarter.__startHelpViewer">__startHelpViewer</a></td>
 <td>Private slot to start the eric6 web browser.</td>
 </tr><tr>
+<td><a href="#TrayStarter.__startHexEditor">__startHexEditor</a></td>
+<td>Private slot to start the eric6 hex editor dialog.</td>
+</tr><tr>
 <td><a href="#TrayStarter.__startIconEditor">__startIconEditor</a></td>
 <td>Private slot to start the eric6 icon editor dialog.</td>
 </tr><tr>
@@ -255,6 +258,11 @@
 <b>__startHelpViewer</b>(<i></i>)
 <p>
         Private slot to start the eric6 web browser.
+</p><a NAME="TrayStarter.__startHexEditor" ID="TrayStarter.__startHexEditor"></a>
+<h4>TrayStarter.__startHexEditor</h4>
+<b>__startHexEditor</b>(<i></i>)
+<p>
+        Private slot to start the eric6 hex editor dialog.
 </p><a NAME="TrayStarter.__startIconEditor" ID="TrayStarter.__startIconEditor"></a>
 <h4>TrayStarter.__startIconEditor</h4>
 <b>__startIconEditor</b>(<i></i>)
--- a/Documentation/Source/eric6.UI.Browser.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.UI.Browser.html	Sun Jan 17 15:15:15 2016 +0100
@@ -49,7 +49,10 @@
     the selected file.
 </p><h3>Signals</h3>
 <dl>
-<dt>designerFile(str)</dt>
+<dt>binaryFile(str)</dt>
+<dd>
+emitted to open a file as binary
+</dd><dt>designerFile(str)</dt>
 <dd>
 emitted to open a Qt-Designer file
 </dd><dt>linguistFile(str)</dt>
@@ -145,6 +148,9 @@
 <td><a href="#Browser._init">_init</a></td>
 <td>Protected method to perform initialization tasks common to this base class and all derived classes.</td>
 </tr><tr>
+<td><a href="#Browser._openHexEditor">_openHexEditor</a></td>
+<td>Protected slot to handle the open in hex editor popup menu entry.</td>
+</tr><tr>
 <td><a href="#Browser._openItem">_openItem</a></td>
 <td>Protected slot to handle the open popup menu entry.</td>
 </tr><tr>
@@ -286,6 +292,11 @@
 <p>
         Protected method to perform initialization tasks common to this
         base class and all derived classes.
+</p><a NAME="Browser._openHexEditor" ID="Browser._openHexEditor"></a>
+<h4>Browser._openHexEditor</h4>
+<b>_openHexEditor</b>(<i></i>)
+<p>
+        Protected slot to handle the open in hex editor popup menu entry.
 </p><a NAME="Browser._openItem" ID="Browser._openItem"></a>
 <h4>Browser._openItem</h4>
 <b>_openItem</b>(<i></i>)
--- a/Documentation/Source/eric6.UI.UserInterface.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/eric6.UI.UserInterface.html	Sun Jan 17 15:15:15 2016 +0100
@@ -390,6 +390,9 @@
 <td><a href="#UserInterface.__onlineStateChanged">__onlineStateChanged</a></td>
 <td>Private slot handling changes in online state.</td>
 </tr><tr>
+<td><a href="#UserInterface.__openHexEditor">__openHexEditor</a></td>
+<td>Private slot to open the hex editor window.</td>
+</tr><tr>
 <td><a href="#UserInterface.__openMiniEditor">__openMiniEditor</a></td>
 <td>Private slot to show a mini editor window.</td>
 </tr><tr>
@@ -1326,6 +1329,16 @@
 <dd>
 flag indicating the online state
 </dd>
+</dl><a NAME="UserInterface.__openHexEditor" ID="UserInterface.__openHexEditor"></a>
+<h4>UserInterface.__openHexEditor</h4>
+<b>__openHexEditor</b>(<i>fn=""</i>)
+<p>
+        Private slot to open the hex editor window.
+</p><dl>
+<dt><i>fn</i></dt>
+<dd>
+filename of the file to show (string)
+</dd>
 </dl><a NAME="UserInterface.__openMiniEditor" ID="UserInterface.__openMiniEditor"></a>
 <h4>UserInterface.__openMiniEditor</h4>
 <b>__openMiniEditor</b>(<i></i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.eric6_hexeditor.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.eric6_hexeditor</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.eric6_hexeditor</h1>
+<p>
+Eric6 Hex Editor.
+</p><p>
+This is the main Python script that performs the necessary initialization
+of the hex editor and starts the Qt event loop. This is a standalone version
+of the integrated hex editor.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#createMainWidget">createMainWidget</a></td>
+<td>Function to create the main widget.</td>
+</tr><tr>
+<td><a href="#main">main</a></td>
+<td>Main entry point into the application.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="createMainWidget" ID="createMainWidget"></a>
+<h2>createMainWidget</h2>
+<b>createMainWidget</b>(<i>argv</i>)
+<p>
+    Function to create the main widget.
+</p><dl>
+<dt><i>argv</i></dt>
+<dd>
+list of commandline parameters (list of strings)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the main widget (QWidget)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="main" ID="main"></a>
+<h2>main</h2>
+<b>main</b>(<i></i>)
+<p>
+    Main entry point into the application.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/index-eric6.HexEdit.html	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.HexEdit</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<h1>eric6.HexEdit</h1>
+<p>
+Package implementing a hex editor.
+</p>
+
+
+<h3>Modules</h3>
+<table>
+<tr>
+<td><a href="eric6.HexEdit.HexEditChunks.html">HexEditChunks</a></td>
+<td>Module implementing the storage backend for the hex editor.</td>
+</tr><tr>
+<td><a href="eric6.HexEdit.HexEditGotoWidget.html">HexEditGotoWidget</a></td>
+<td>Module implementing a movement (goto) widget for the hex editor.</td>
+</tr><tr>
+<td><a href="eric6.HexEdit.HexEditMainWindow.html">HexEditMainWindow</a></td>
+<td>Module implementing the hex editor main window.</td>
+</tr><tr>
+<td><a href="eric6.HexEdit.HexEditSearchReplaceWidget.html">HexEditSearchReplaceWidget</a></td>
+<td>Module implementing a search and replace widget for the hex editor.</td>
+</tr><tr>
+<td><a href="eric6.HexEdit.HexEditUndoStack.html">HexEditUndoStack</a></td>
+<td>Module implementing the Undo stack for the hex edit widget.</td>
+</tr><tr>
+<td><a href="eric6.HexEdit.HexEditWidget.html">HexEditWidget</a></td>
+<td>Module implementing an editor for binary data.</td>
+</tr>
+</table>
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html	Sun Jan 17 15:15:15 2016 +0100
@@ -130,6 +130,9 @@
 <td><a href="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html">HelpWebBrowserPage</a></td>
 <td>Module implementing the Help web browser configuration page.</td>
 </tr><tr>
+<td><a href="eric6.Preferences.ConfigurationPages.HexEditorPage.html">HexEditorPage</a></td>
+<td>Module implementing the Hex Editor configuration page.</td>
+</tr><tr>
 <td><a href="eric6.Preferences.ConfigurationPages.IconsPage.html">IconsPage</a></td>
 <td>Module implementing the Icons configuration page.</td>
 </tr><tr>
--- a/Documentation/Source/index-eric6.QScintilla.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/index-eric6.QScintilla.html	Sun Jan 17 15:15:15 2016 +0100
@@ -65,6 +65,9 @@
 <td><a href="eric6.QScintilla.GotoDialog.html">GotoDialog</a></td>
 <td>Module implementing the Goto dialog.</td>
 </tr><tr>
+<td><a href="eric6.QScintilla.KeySequenceTranslator.html">KeySequenceTranslator</a></td>
+<td>Module implementing functions to map QScintilla keyboard commands to QKeySequence standard keys.</td>
+</tr><tr>
 <td><a href="eric6.QScintilla.MiniEditor.html">MiniEditor</a></td>
 <td>Module implementing a minimalistic editor for simple editing tasks.</td>
 </tr><tr>
--- a/Documentation/Source/index-eric6.html	Sun Jan 10 13:55:21 2016 +0100
+++ b/Documentation/Source/index-eric6.html	Sun Jan 17 15:15:15 2016 +0100
@@ -66,6 +66,9 @@
 <td><a href="index-eric6.Helpviewer.html">Helpviewer</a></td>
 <td>Package implementing a little web browser.</td>
 </tr><tr>
+<td><a href="index-eric6.HexEdit.html">HexEdit</a></td>
+<td>Package implementing a hex editor.</td>
+</tr><tr>
 <td><a href="index-eric6.IconEditor.html">IconEditor</a></td>
 <td>Package implementing the icon editor tool.</td>
 </tr><tr>
@@ -155,6 +158,9 @@
 <td><a href="eric6.eric6_editor.html">eric6_editor</a></td>
 <td>Eric6 Editor.</td>
 </tr><tr>
+<td><a href="eric6.eric6_hexeditor.html">eric6_hexeditor</a></td>
+<td>Eric6 Hex Editor.</td>
+</tr><tr>
 <td><a href="eric6.eric6_iconeditor.html">eric6_iconeditor</a></td>
 <td>Eric6 Icon Editor.</td>
 </tr><tr>
--- a/DocumentationTools/ModuleDocumentor.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/DocumentationTools/ModuleDocumentor.py	Sun Jan 17 15:15:15 2016 +0100
@@ -975,12 +975,12 @@
                         paramList.append([paramName, "", []])
                     lastItem = paramList[-1][2]
                 elif desc.startswith("@type"):
+                    parts = desc.split(None, 1)
                     if lastTag not in ["@param", "@keyparam"]:
                         raise TagError(
                             "{0} line must be preceded by a parameter line\n"
                             .format(parts[0]))
                     inTagSection = True
-                    parts = desc.split(None, 1)
                     lastTag = parts[0]
                     if len(parts) < 2:
                         raise TagError(
@@ -1012,8 +1012,12 @@
                     returns = [parts[1]]
                     lastItem = returns
                 elif desc.startswith("@rtype"):
+                    parts = desc.split(None, 1)
+                    if lastTag not in ["@return", "@ireturn"]:
+                        raise TagError(
+                            "{0} line must be preceded by a return line\n"
+                            .format(parts[0]))
                     inTagSection = True
-                    parts = desc.split(None, 1)
                     lastTag = parts[0]
                     if len(parts) < 2:
                         raise TagError(
--- a/E5Gui/E5ClickableLabel.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/E5Gui/E5ClickableLabel.py	Sun Jan 17 15:15:15 2016 +0100
@@ -32,6 +32,8 @@
         @param parent reference to the parent widget (QWidget)
         """
         super(E5ClickableLabel, self).__init__(parent)
+        
+        self.setCursor(Qt.PointingHandCursor)
     
     def mouseReleaseEvent(self, evt):
         """
--- a/E5Gui/E5Led.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/E5Gui/E5Led.py	Sun Jan 17 15:15:15 2016 +0100
@@ -296,6 +296,8 @@
         @param rectRatio ratio width to height, if shape is rectangular (float)
         """
         super(E5ClickableLed, self).__init__(parent, color, shape, rectRatio)
+        
+        self.setCursor(Qt.PointingHandCursor)
     
     def mouseReleaseEvent(self, evt):
         """
--- a/E5Network/E5NetworkIcon.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/E5Network/E5NetworkIcon.py	Sun Jan 17 15:15:15 2016 +0100
@@ -11,13 +11,12 @@
 
 from PyQt5.QtCore import pyqtSlot, pyqtSignal
 from PyQt5.QtNetwork import QNetworkConfigurationManager
-
-from E5Gui.E5ClickableLabel import E5ClickableLabel
+from PyQt5.QtWidgets import QLabel
 
 import UI.PixmapCache
 
 
-class E5NetworkIcon(E5ClickableLabel):
+class E5NetworkIcon(QLabel):
     """
     Class implementing a statusbar icon tracking the network status.
     
--- a/HexEdit/HexEditChunks.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/HexEdit/HexEditChunks.py	Sun Jan 17 15:15:15 2016 +0100
@@ -100,7 +100,7 @@
         @param maxSize maximum amount of bytes to get
         @type int
         @param highlighted reference to a byte array storing highlighting info
-        @byte bytearray
+        @type bytearray
         @return retrieved data
         @rtype bytearray
         """
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HexEdit/HexEditGotoWidget.py	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,157 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a movement (goto) widget for the hex editor.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt5.QtCore import pyqtSlot, Qt, QRegExp
+from PyQt5.QtGui import QRegExpValidator
+from PyQt5.QtWidgets import QWidget
+
+from .Ui_HexEditGotoWidget import Ui_HexEditGotoWidget
+
+import UI.PixmapCache
+
+
+class HexEditGotoWidget(QWidget, Ui_HexEditGotoWidget):
+    """
+    Class implementing a movement (goto) widget for the hex editor.
+    """
+    def __init__(self, editor, parent=None):
+        """
+        Constructor
+        
+        @param editor reference to the hex editor widget
+        @type HexEditWidget
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(HexEditGotoWidget, self).__init__(parent)
+        self.setupUi(self)
+        
+        self.__editor = editor
+        
+        # keep this in sync with the logic in __getContent()
+        self.__formatAndValidators = {
+            "hex": (self.tr("Hex"), QRegExpValidator((QRegExp("[0-9a-f]*")))),
+            "dec": (self.tr("Dec"), QRegExpValidator((QRegExp("[0-9]*")))),
+        }
+        formatOrder = ["hex", "dec"]
+        
+        self.__currentFormat = ""
+        
+        self.closeButton.setIcon(UI.PixmapCache.getIcon("close.png"))
+        
+        for format in formatOrder:
+            formatStr, validator = self.__formatAndValidators[format]
+            self.formatCombo.addItem(formatStr, format)
+        
+        self.formatCombo.setCurrentIndex(0)
+    
+    @pyqtSlot()
+    def on_closeButton_clicked(self):
+        """
+        Private slot to close the widget.
+        """
+        self.__editor.setFocus(Qt.OtherFocusReason)
+        self.close()
+    
+    @pyqtSlot(int)
+    def on_formatCombo_currentIndexChanged(self, idx):
+        """
+        Private slot to handle a selection of the format.
+        
+        @param idx index of the selected entry
+        @type int
+        """
+        if idx >= 0:
+            format = self.formatCombo.itemData(idx)
+            
+            if format != self.__currentFormat:
+                txt = self.offsetEdit.text()
+                newTxt = self.__convertText(
+                    txt, self.__currentFormat, format)
+                self.__currentFormat = format
+                
+                self.offsetEdit.setValidator(
+                    self.__formatAndValidators[format][1])
+                
+                self.offsetEdit.setText(newTxt)
+    
+    @pyqtSlot(str)
+    def on_offsetEdit_textChanged(self, offset):
+        """
+        Private slot handling a change of the entered offset.
+        
+        @param offset entered offset
+        @type str
+        """
+        self.gotoButton.setEnabled(bool(offset))
+        
+    @pyqtSlot()
+    def on_gotoButton_clicked(self):
+        """
+        Private slot to move the cursor and extend the selection.
+        """
+        format = self.formatCombo.itemData(self.formatCombo.currentIndex())
+        if format == "hex":
+            offset = int(self.offsetEdit.text(), 16)
+        else:
+            offset = int(self.offsetEdit.text(), 10)
+        
+        fromCursor = self.cursorCheckBox.isChecked()
+        backwards = self.backCheckBox.isChecked()
+        extendSelection = self.selectionCheckBox.isChecked()
+        
+        self.__editor.goto(offset, fromCursor=fromCursor, backwards=backwards,
+                           extendSelection=extendSelection)
+    
+    def show(self):
+        """
+        Public slot to show the widget.
+        """
+        self.offsetEdit.setFocus()
+        super(HexEditGotoWidget, self).show()
+
+    def keyPressEvent(self, event):
+        """
+        Protected slot to handle key press events.
+        
+        @param event reference to the key press event
+        @type QKeyEvent
+        """
+        if event.key() == Qt.Key_Escape:
+            self.close()
+    
+    def __convertText(self, txt, oldFormat, newFormat):
+        """
+        Private method to convert text from one format into another.
+        
+        @param txt text to be converted
+        @type str
+        @param oldFormat current format of the text
+        @type str
+        @param newFormat format to convert to
+        @type str
+        @return converted text
+        @rtype str
+        """
+        if oldFormat and newFormat:
+            # step 1: convert the text to an integer using the old format
+            if oldFormat == "hex":
+                index = int(txt, 16)
+            else:
+                index = int(txt, 10)
+            
+            # step 2: convert the integer to text using the new format
+            if newFormat == "hex":
+                txt = "{0:x}".format(index)
+            else:
+                txt = "{0:d}".format(index)
+        
+        return txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HexEdit/HexEditGotoWidget.ui	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>HexEditGotoWidget</class>
+ <widget class="QWidget" name="HexEditGotoWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>600</width>
+    <height>54</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Go to</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <property name="leftMargin">
+    <number>1</number>
+   </property>
+   <property name="topMargin">
+    <number>1</number>
+   </property>
+   <property name="rightMargin">
+    <number>1</number>
+   </property>
+   <property name="bottomMargin">
+    <number>1</number>
+   </property>
+   <item row="0" column="0">
+    <widget class="QToolButton" name="closeButton">
+     <property name="toolTip">
+      <string>Press to close the window</string>
+     </property>
+     <property name="text">
+      <string/>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Offset:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="2">
+    <widget class="QComboBox" name="formatCombo">
+     <property name="toolTip">
+      <string>Select the data format of the offset field</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="3">
+    <widget class="QLineEdit" name="offsetEdit">
+     <property name="toolTip">
+      <string>Enter the address to move to or the offset from the cursor position</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="4">
+    <widget class="QCheckBox" name="cursorCheckBox">
+     <property name="toolTip">
+      <string>Select to move relative to the cursor</string>
+     </property>
+     <property name="text">
+      <string>From Cursor</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="5">
+    <widget class="QCheckBox" name="backCheckBox">
+     <property name="toolTip">
+      <string>Select to move backwards</string>
+     </property>
+     <property name="text">
+      <string>Backwards</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="6">
+    <widget class="QPushButton" name="gotoButton">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="toolTip">
+      <string>Press to move the cursor</string>
+     </property>
+     <property name="text">
+      <string>&gt; Goto</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="4" colspan="2">
+    <widget class="QCheckBox" name="selectionCheckBox">
+     <property name="toolTip">
+      <string>Select to also extend the selection</string>
+     </property>
+     <property name="text">
+      <string>Extend Selection</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>formatCombo</tabstop>
+  <tabstop>offsetEdit</tabstop>
+  <tabstop>cursorCheckBox</tabstop>
+  <tabstop>backCheckBox</tabstop>
+  <tabstop>selectionCheckBox</tabstop>
+  <tabstop>gotoButton</tabstop>
+  <tabstop>closeButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>offsetEdit</sender>
+   <signal>returnPressed()</signal>
+   <receiver>gotoButton</receiver>
+   <slot>animateClick()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>207</x>
+     <y>14</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>548</x>
+     <y>14</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- a/HexEdit/HexEditMainWindow.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/HexEdit/HexEditMainWindow.py	Sun Jan 17 15:15:15 2016 +0100
@@ -11,15 +11,20 @@
 
 import os
 
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QFile, QFileInfo, QSize
+from PyQt5.QtCore import pyqtSignal, pyqtSlot, QFile, QFileInfo, QSize, \
+    QCoreApplication
 from PyQt5.QtGui import QKeySequence
-from PyQt5.QtWidgets import QWhatsThis, QLabel
+from PyQt5.QtWidgets import QWhatsThis, QLabel, QWidget, QVBoxLayout, \
+    QDialog, QAction, QFrame
 
 from E5Gui.E5Action import E5Action
 from E5Gui.E5MainWindow import E5MainWindow
 from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui.E5ClickableLabel import E5ClickableLabel
 
 from .HexEditWidget import HexEditWidget
+from .HexEditSearchReplaceWidget import HexEditSearchReplaceWidget
+from .HexEditGotoWidget import HexEditGotoWidget
 
 import UI.PixmapCache
 import UI.Config
@@ -27,7 +32,6 @@
 import Preferences
 
 
-# TODO: implement a configuration page for the hex editor
 class HexEditMainWindow(E5MainWindow):
     """
     Class implementing the web browser main window.
@@ -51,15 +55,41 @@
         super(HexEditMainWindow, self).__init__(parent)
         self.setObjectName("eric6_hex_editor")
         
-        self.fromEric = fromEric
+        self.__srHistory = {
+            "search": [],
+            # list of recent searches (tuple of format type index and
+            # search term)
+            "replace": [],
+            # list of recent replaces (tuple of format type index and
+            # replace term
+        }
+        
+        self.__fromEric = fromEric
         self.setWindowIcon(UI.PixmapCache.getIcon("hexEditor.png"))
         
-        if not self.fromEric:
+        if not self.__fromEric:
             self.setStyle(Preferences.getUI("Style"),
                           Preferences.getUI("StyleSheet"))
         
         self.__editor = HexEditWidget()
-        self.setCentralWidget(self.__editor)
+        self.__searchWidget = HexEditSearchReplaceWidget(
+            self.__editor, self, False)
+        self.__replaceWidget = HexEditSearchReplaceWidget(
+            self.__editor, self, True)
+        self.__gotoWidget = HexEditGotoWidget(self.__editor)
+        cw = QWidget()
+        layout = QVBoxLayout(cw)
+        layout.setContentsMargins(1, 1, 1, 1)
+        layout.setSpacing(1)
+        layout.addWidget(self.__editor)
+        layout.addWidget(self.__searchWidget)
+        layout.addWidget(self.__gotoWidget)
+        cw.setLayout(layout)
+        layout.addWidget(self.__replaceWidget)
+        self.__searchWidget.hide()
+        self.__replaceWidget.hide()
+        self.__gotoWidget.hide()
+        self.setCentralWidget(cw)
         
         g = Preferences.getGeometry("HexEditorGeometry")
         if g.isEmpty():
@@ -75,11 +105,20 @@
         
         self.__class__.windows.append(self)
         
+        state = Preferences.getHexEditor("HexEditorState")
+        self.restoreState(state)
+        
         self.__editor.currentAddressChanged.connect(self.__showAddress)
+        self.__editor.selectionAvailable.connect(self.__showSelectionInfo)
         self.__editor.currentSizeChanged.connect(self.__showSize)
         self.__editor.dataChanged.connect(self.__modificationChanged)
         self.__editor.overwriteModeChanged.connect(self.__showEditMode)
         self.__editor.readOnlyChanged.connect(self.__showReadOnlyMode)
+        self.__editor.readOnlyChanged.connect(self.__checkActions)
+        
+        self.preferencesChanged()
+        self.__editor.setOverwriteMode(
+            Preferences.getHexEditor("OpenInOverwriteMode"))
         
         self.__project = project
         self.__lastOpenPath = ""
@@ -100,9 +139,9 @@
         
         self.__initFileActions()
         self.__initEditActions()
-##        self.__initViewActions()
-##        self.__initToolsActions()
         self.__initHelpActions()
+        if not self.__fromEric:
+            self.__initConfigActions()
         
     def __initFileActions(self):
         """
@@ -123,32 +162,20 @@
         self.newWindowAct.triggered.connect(self.__openHexFileNewWindow)
         self.__actions.append(self.newWindowAct)
         
+        # correct texts will be set later
         self.openAct = E5Action(
             self.tr('Open'),
             UI.PixmapCache.getIcon("open.png"),
             self.tr('&Open...'),
             QKeySequence(self.tr("Ctrl+O", "File|Open")),
             0, self, 'hexEditor_file_open')
-        self.openAct.setStatusTip(self.tr('Open a binary file for editing'))
-        self.openAct.setWhatsThis(self.tr(
-            """<b>Open File</b>"""
-            """<p>This opens a binary file for editing."""
-            """ It pops up a file selection dialog.</p>"""
-        ))
         self.openAct.triggered.connect(self.__openHexFile)
         self.__actions.append(self.openAct)
         
+        # correct texts will be set later
         self.openReadOnlyAct = E5Action(
-            self.tr('Open Read Only'),
-            self.tr('Open Read Only...'),
+            "", "",
             0, 0, self, 'hexEditor_file_open_read_only')
-        self.openReadOnlyAct.setStatusTip(self.tr(
-            'Open a binary file for viewing'))
-        self.openReadOnlyAct.setWhatsThis(self.tr(
-            """<b>Open Read Only</b>"""
-            """<p>This opens a binary file for viewing (i.e. in read only"""
-            """ mode). It pops up a file selection dialog.</p>"""
-        ))
         self.openReadOnlyAct.triggered.connect(self.__openHexFileReadOnly)
         self.__actions.append(self.openReadOnlyAct)
         
@@ -248,7 +275,7 @@
             """<b>Quit</b>"""
             """<p>Quit the hex editor.</p>"""
         ))
-        if not self.fromEric:
+        if not self.__fromEric:
             self.exitAct.triggered.connect(self.__closeAll)
         self.__actions.append(self.exitAct)
     
@@ -404,8 +431,93 @@
         ))
         self.readonlyAct.setChecked(False)
         self.readonlyAct.toggled[bool].connect(self.__editor.setReadOnly)
+        self.__editor.readOnlyChanged.connect(self.readonlyAct.setChecked)
         self.__actions.append(self.readonlyAct)
         
+        self.searchAct = E5Action(
+            self.tr('Search'),
+            UI.PixmapCache.getIcon("find.png"),
+            self.tr('&Search...'),
+            QKeySequence(self.tr("Ctrl+F", "Search|Search")),
+            0,
+            self, 'hexEditor_edit_search')
+        self.searchAct.setStatusTip(self.tr('Search for data'))
+        self.searchAct.setWhatsThis(self.tr(
+            """<b>Search</b>"""
+            """<p>Search for some data. A dialog is shown to enter the"""
+            """ data to search for in various formats.</p>"""
+        ))
+        self.searchAct.triggered.connect(self.__search)
+        self.__actions.append(self.searchAct)
+        
+        self.searchNextAct = E5Action(
+            self.tr('Search next'),
+            UI.PixmapCache.getIcon("findNext.png"),
+            self.tr('Search &next'),
+            QKeySequence(self.tr("F3", "Search|Search next")),
+            0,
+            self, 'hexEditor_edit_search_next')
+        self.searchNextAct.setStatusTip(self.tr(
+            'Search next occurrence'))
+        self.searchNextAct.setWhatsThis(self.tr(
+            """<b>Search next</b>"""
+            """<p>Search the next occurrence of some data. The previously"""
+            """ entered search data are reused.</p>"""
+        ))
+        self.searchNextAct.triggered.connect(self.__searchWidget.findPrevNext)
+        self.__actions.append(self.searchNextAct)
+        
+        self.searchPrevAct = E5Action(
+            self.tr('Search previous'),
+            UI.PixmapCache.getIcon("findPrev.png"),
+            self.tr('Search &previous'),
+            QKeySequence(self.tr("Shift+F3", "Search|Search previous")),
+            0,
+            self, 'hexEditor_edit_search_previous')
+        self.searchPrevAct.setStatusTip(self.tr(
+            'Search previous occurrence'))
+        self.searchPrevAct.setWhatsThis(self.tr(
+            """<b>Search previous</b>"""
+            """<p>Search the previous occurrence of some data. The"""
+            """ previously entered search data are reused.</p>"""
+        ))
+        self.searchPrevAct.triggered.connect(
+            lambda: self.__searchWidget.findPrevNext(True))
+        self.__actions.append(self.searchPrevAct)
+        
+        self.replaceAct = E5Action(
+            self.tr('Replace'),
+            self.tr('&Replace...'),
+            QKeySequence(self.tr("Ctrl+R", "Search|Replace")),
+            0,
+            self, 'hexEditor_edit_search_replace')
+        self.replaceAct.setStatusTip(self.tr('Replace data'))
+        self.replaceAct.setWhatsThis(self.tr(
+            """<b>Replace</b>"""
+            """<p>Search for some data and replace it."""
+            """ A dialog is shown to enter the data to search for and the"""
+            """ replacement data in various formats.</p>"""
+        ))
+        self.replaceAct.triggered.connect(self.__replace)
+        self.__actions.append(self.replaceAct)
+        
+        self.gotoAct = E5Action(
+            self.tr('Goto Offset'),
+            UI.PixmapCache.getIcon("goto.png"),
+            self.tr('&Goto Offset...'),
+            QKeySequence(QCoreApplication.translate(
+                'ViewManager', "Ctrl+G", "Search|Goto Offset")),
+            0,
+            self, 'hexEditor_edit_goto')
+        self.gotoAct.setStatusTip(self.tr('Goto Offset'))
+        self.gotoAct.setWhatsThis(self.tr(
+            """<b>Goto Offset</b>"""
+            """<p>Go to a specific address. A dialog is shown to enter"""
+            """ the movement data.</p>"""
+        ))
+        self.gotoAct.triggered.connect(self.__goto)
+        self.__actions.append(self.gotoAct)
+        
         self.redoAct.setEnabled(False)
         self.__editor.canRedoChanged.connect(self.redoAct.setEnabled)
         
@@ -470,6 +582,68 @@
         self.whatsThisAct.triggered.connect(self.__whatsThis)
         self.__actions.append(self.whatsThisAct)
     
+    def __initConfigActions(self):
+        """
+        Private method to create the Settings actions.
+        """
+        self.prefAct = E5Action(
+            self.tr('Preferences'),
+            UI.PixmapCache.getIcon("configure.png"),
+            self.tr('&Preferences...'),
+            0, 0, self, 'hexEditor_settings_preferences')
+        self.prefAct.setStatusTip(self.tr(
+            'Set the prefered configuration'))
+        self.prefAct.setWhatsThis(self.tr(
+            """<b>Preferences</b>"""
+            """<p>Set the configuration items of the application"""
+            """ with your prefered values.</p>"""
+        ))
+        self.prefAct.triggered.connect(self.__showPreferences)
+        self.prefAct.setMenuRole(QAction.PreferencesRole)
+        self.__actions.append(self.prefAct)
+    
+    def __setReadOnlyActionTexts(self):
+        """
+        Private method to switch the 'Open Read Only' action between
+        'read only' and 'read write'.
+        """
+        if Preferences.getHexEditor("OpenReadOnly"):
+            self.openAct.setStatusTip(self.tr(
+                'Open a binary file for viewing'))
+            self.openAct.setWhatsThis(self.tr(
+                """<b>Open File</b>"""
+                """<p>This opens a binary file for viewing (i.e. in read"""
+                """ only mode). It pops up a file selection dialog.</p>"""
+            ))
+            
+            self.openReadOnlyAct.setText(self.tr('Open for Editing...'))
+            self.openReadOnlyAct.setIconText(self.tr('Open for Editing'))
+            self.openReadOnlyAct.setStatusTip(self.tr(
+                'Open a binary file for editing'))
+            self.openReadOnlyAct.setWhatsThis(self.tr(
+                """<b>Open for Editing</b>"""
+                """<p>This opens a binary file for editing."""
+                """ It pops up a file selection dialog.</p>"""
+            ))
+        else:
+            self.openAct.setStatusTip(self.tr(
+                'Open a binary file for editing'))
+            self.openAct.setWhatsThis(self.tr(
+                """<b>Open File</b>"""
+                """<p>This opens a binary file for editing."""
+                """ It pops up a file selection dialog.</p>"""
+            ))
+            
+            self.openReadOnlyAct.setText(self.tr('Open Read Only...'))
+            self.openReadOnlyAct.setIconText(self.tr('Open Read Only'))
+            self.openReadOnlyAct.setStatusTip(self.tr(
+                'Open a binary file for viewing'))
+            self.openReadOnlyAct.setWhatsThis(self.tr(
+                """<b>Open Read Only</b>"""
+                """<p>This opens a binary file for viewing (i.e. in read"""
+                """ only mode). It pops up a file selection dialog.</p>"""
+            ))
+    
     def __initMenus(self):
         """
         Private method to create the menus.
@@ -488,7 +662,7 @@
         menu.addSeparator()
         menu.addAction(self.closeAct)
         menu.addAction(self.closeOthersAct)
-        if self.fromEric:
+        if self.__fromEric:
             menu.addAction(self.closeAllAct)
         else:
             menu.addSeparator()
@@ -508,8 +682,20 @@
         menu.addAction(self.deselectAllAct)
         menu.addAction(self.saveSelectionReadableAct)
         menu.addSeparator()
+        menu.addAction(self.searchAct)
+        menu.addAction(self.searchNextAct)
+        menu.addAction(self.searchPrevAct)
+        menu.addAction(self.replaceAct)
+        menu.addSeparator()
+        menu.addAction(self.gotoAct)
+        menu.addSeparator()
         menu.addAction(self.readonlyAct)
         
+        if not self.__fromEric:
+            menu = mb.addMenu(self.tr("Se&ttings"))
+            menu.setTearOffEnabled(True)
+            menu.addAction(self.prefAct)
+        
         mb.addSeparator()
         
         menu = mb.addMenu(self.tr("&Help"))
@@ -532,7 +718,7 @@
         filetb.addAction(self.saveAsAct)
         filetb.addSeparator()
         filetb.addAction(self.closeAct)
-        if not self.fromEric:
+        if not self.__fromEric:
             filetb.addAction(self.exitAct)
         
         edittb = self.addToolBar(self.tr("Edit"))
@@ -545,6 +731,19 @@
         edittb.addAction(self.copyAct)
         edittb.addAction(self.pasteAct)
         
+        searchtb = self.addToolBar(self.tr("Find"))
+        searchtb.setObjectName("SearchToolBar")
+        searchtb.setIconSize(UI.Config.ToolBarIconSize)
+        searchtb.addAction(self.searchAct)
+        searchtb.addAction(self.searchNextAct)
+        searchtb.addAction(self.searchPrevAct)
+        
+        if not self.__fromEric:
+            settingstb = self.addToolBar(self.tr("Settings"))
+            settingstb.setObjectName("SettingsToolBar")
+            settingstb.setIconSize(UI.Config.ToolBarIconSize)
+            settingstb.addAction(self.prefAct)
+        
         helptb = self.addToolBar(self.tr("Help"))
         helptb.setObjectName("HelpToolBar")
         helptb.setIconSize(UI.Config.ToolBarIconSize)
@@ -557,28 +756,21 @@
         self.__statusBar = self.statusBar()
         self.__statusBar.setSizeGripEnabled(True)
         
-        self.__sbEditMode = QLabel(self.__statusBar)
-        self.__statusBar.addPermanentWidget(self.__sbEditMode)
-        self.__sbEditMode.setWhatsThis(self.tr(
-            """<p>This part of the status bar displays the edit mode.</p>"""
-        ))
-        
-        self.__sbReadOnly = QLabel(self.__statusBar)
-        self.__statusBar.addPermanentWidget(self.__sbReadOnly)
-        self.__sbReadOnly.setWhatsThis(self.tr(
-            """<p>This part of the status bar displays the read"""
-            """ only mode.</p>"""
-        ))
-
         self.__sbAddress = QLabel(self.__statusBar)
         self.__statusBar.addPermanentWidget(self.__sbAddress)
         self.__sbAddress.setWhatsThis(self.tr(
             """<p>This part of the status bar displays the cursor"""
             """ address.</p>"""
         ))
+        self.__sbAddress.setFrameStyle(QFrame.StyledPanel | QFrame.Plain)
         
-        self.__showEditMode(self.__editor.overwriteMode())
-        self.__showReadOnlyMode(self.__editor.isReadOnly())
+        self.__sbSelection = QLabel(self.__statusBar)
+        self.__statusBar.addPermanentWidget(self.__sbSelection)
+        self.__sbSelection.setWhatsThis(self.tr(
+            """<p>This part of the status bar displays some selection"""
+            """ information.</p>"""
+        ))
+        self.__sbSelection.setFrameStyle(QFrame.StyledPanel | QFrame.Plain)
         
         self.__sbSize = QLabel(self.__statusBar)
         self.__statusBar.addPermanentWidget(self.__sbSize)
@@ -586,6 +778,27 @@
             """<p>This part of the status bar displays the size of the"""
             """ binary data.</p>"""
         ))
+        self.__sbSize.setFrameStyle(QFrame.StyledPanel | QFrame.Plain)
+        
+        self.__sbEditMode = E5ClickableLabel(self.__statusBar)
+        self.__statusBar.addPermanentWidget(self.__sbEditMode)
+        self.__sbEditMode.setWhatsThis(self.tr(
+            """<p>This part of the status bar displays the edit mode.</p>"""
+        ))
+        self.__sbEditMode.setFrameStyle(QFrame.StyledPanel | QFrame.Plain)
+        self.__sbEditMode.clicked.connect(self.__toggleEditMode)
+        
+        self.__sbReadOnly = E5ClickableLabel(self.__statusBar)
+        self.__statusBar.addPermanentWidget(self.__sbReadOnly)
+        self.__sbReadOnly.setWhatsThis(self.tr(
+            """<p>This part of the status bar displays the read"""
+            """ only mode.</p>"""
+        ))
+        self.__sbReadOnly.setFrameStyle(QFrame.StyledPanel | QFrame.Plain)
+        self.__sbReadOnly.clicked.connect(self.__toggleReadOnlyMode)
+
+        self.__showEditMode(self.__editor.overwriteMode())
+        self.__showReadOnlyMode(self.__editor.isReadOnly())
     
     @pyqtSlot(int)
     def __showAddress(self, address):
@@ -595,7 +808,30 @@
         @param address address of the cursor
         @type int
         """
-        self.__sbAddress.setText(self.tr("Address: {0:#x}").format(address))
+        self.__sbAddress.setText(self.tr("Address: 0x{0:0{1}x}").format(
+            address, self.__editor.addressWidth()))
+    
+    @pyqtSlot(bool)
+    def __showSelectionInfo(self, avail):
+        """
+        Private slot to show selection information.
+        
+        @param avail flag indicating the availability of a selection.
+        @type bool
+        """
+        if avail:
+            start = self.__editor.getSelectionBegin()
+            end = self.__editor.getSelectionEnd()
+            slen = self.__editor.getSelectionLength()
+            self.__sbSelection.setText(
+                self.tr("Selection: 0x{0:0{2}x} - 0x{1:0{2}x} ({3:n} Bytes)",
+                        "0: start, 1: end, 2: address width,"
+                        " 3: selection length")
+                .format(start, end, self.__editor.addressWidth(), slen)
+            )
+        else:
+            self.__sbSelection.setText(
+                self.tr("Selection: -", "no selection available"))
     
     @pyqtSlot(bool)
     def __showReadOnlyMode(self, on):
@@ -607,6 +843,14 @@
         """
         self.__sbReadOnly.setText(self.tr("ro") if on else self.tr("rw"))
     
+    @pyqtSlot()
+    def __toggleReadOnlyMode(self):
+        """
+        Private slot to toggle the read only mode upon a click on the status
+        bar label.
+        """
+        self.__editor.setReadOnly(not self.__editor.isReadOnly())
+    
     @pyqtSlot(bool)
     def __showEditMode(self, overwrite):
         """
@@ -618,6 +862,14 @@
         self.__sbEditMode.setText(
             self.tr("Overwrite") if overwrite else self.tr("Insert"))
     
+    @pyqtSlot()
+    def __toggleEditMode(self):
+        """
+        Private slot to toggle the edit mode upon a click on the status bar
+        label.
+        """
+        self.__editor.setOverwriteMode(not self.__editor.overwriteMode())
+    
     @pyqtSlot(int)
     def __showSize(self, size):
         """
@@ -638,16 +890,19 @@
         @type QCloseEvent
         """
         if self.__maybeSave():
+            state = self.saveState()
+            Preferences.setHexEditor("HexEditorState", state)
+
             Preferences.setGeometry("HexEditorGeometry", self.saveGeometry())
             
             try:
-                if self.fromEric or len(self.__class__.windows) > 1:
+                if self.__fromEric or len(self.__class__.windows) > 1:
                     del self.__class__.windows[
                         self.__class__.windows.index(self)]
             except ValueError:
                 pass
             
-            if not self.fromEric:
+            if not self.__fromEric:
                 Preferences.syncPreferences()
             
             evt.accept()
@@ -671,7 +926,7 @@
         if fileName:
             he = HexEditMainWindow(fileName=fileName,
                                    parent=self.parent(),
-                                   fromEric=self.fromEric,
+                                   fromEric=self.__fromEric,
                                    project=self.__project)
             he.setRecentPaths("", self.__lastSavePath)
             he.show()
@@ -721,6 +976,8 @@
         self.__lastOpenPath = os.path.dirname(fileName)
         self.__editor.setData(data)
         self.__setCurrentFile(fileName)
+        
+        self.__editor.setReadOnly(Preferences.getHexEditor("OpenReadOnly"))
     
     def __openHexFile(self):
         """
@@ -745,7 +1002,7 @@
         Private slot to open a binary file in read only mode.
         """
         self.__openHexFile()
-        self.__editor.setReadOnly(True)
+        self.__editor.setReadOnly(not Preferences.getHexEditor("OpenReadOnly"))
         self.__checkActions()
     
     def __saveHexFile(self):
@@ -982,6 +1239,7 @@
         self.cutAct.setEnabled(not self.__editor.isReadOnly() and
                                self.__editor.hasSelection())
         self.pasteAct.setEnabled(not self.__editor.isReadOnly())
+        self.replaceAct.setEnabled(not self.__editor.isReadOnly())
     
     @pyqtSlot(bool)
     def __modificationChanged(self, m):
@@ -1014,3 +1272,100 @@
         Private slot called in to enter Whats This mode.
         """
         QWhatsThis.enterWhatsThisMode()
+        
+    def __search(self):
+        """
+        Private method to handle the search action.
+        """
+        self.__replaceWidget.hide()
+        self.__gotoWidget.hide()
+        if self.__editor.hasSelection():
+            txt = self.__editor.selectionToHexString()
+        else:
+            txt = ""
+        self.__searchWidget.show(txt)
+        
+    def __replace(self):
+        """
+        Private method to handle the replace action.
+        """
+        self.__searchWidget.hide()
+        self.__gotoWidget.hide()
+        if self.__editor.hasSelection():
+            txt = self.__editor.selectionToHexString()
+        else:
+            txt = ""
+        self.__replaceWidget.show(txt)
+    
+    def __goto(self):
+        """
+        Private method to handle the goto action.
+        """
+        self.__searchWidget.hide()
+        self.__replaceWidget.hide()
+        self.__gotoWidget.show()
+    
+    def preferencesChanged(self):
+        """
+        Public method to (re-)read the various settings.
+        """
+        self.__editor.setAddressWidth(
+            Preferences.getHexEditor("AddressAreaWidth"))
+        self.__editor.setAddressArea(
+            Preferences.getHexEditor("ShowAddressArea"))
+        self.__editor.setAsciiArea(
+            Preferences.getHexEditor("ShowAsciiArea"))
+        self.__editor.setHighlighting(
+            Preferences.getHexEditor("HighlightChanges"))
+        self.__editor.setHighlightColors(
+            Preferences.getHexEditor("HighlightingForeGround"),
+            Preferences.getHexEditor("HighlightingBackGround"))
+        self.__editor.setSelectionColors(
+            Preferences.getHexEditor("SelectionForeGround"),
+            Preferences.getHexEditor("SelectionBackGround"))
+        self.__editor.setAddressAreaColors(
+            Preferences.getHexEditor("AddressAreaForeGround"),
+            Preferences.getHexEditor("AddressAreaBackGround"))
+        self.__editor.setFont(
+            Preferences.getHexEditor("Font"))
+        
+        self.__setReadOnlyActionTexts()
+    
+    def __showPreferences(self):
+        """
+        Private slot to set the preferences.
+        """
+        from Preferences.ConfigurationDialog import ConfigurationDialog
+        dlg = ConfigurationDialog(
+            None, 'Configuration', True, fromEric=True,
+            displayMode=ConfigurationDialog.HexEditorMode)
+        dlg.preferencesChanged.connect(
+            self.__preferencesChangedByLocalPreferencesDialog)
+        dlg.show()
+        dlg.showConfigurationPageByName("hexEditorPage")
+        dlg.exec_()
+        QCoreApplication.processEvents()
+        if dlg.result() == QDialog.Accepted:
+            dlg.setPreferences()
+            Preferences.syncPreferences()
+            self.__preferencesChangedByLocalPreferencesDialog()
+    
+    def __preferencesChangedByLocalPreferencesDialog(self):
+        """
+        Private slot to handle preferences changes by our local dialog.
+        """
+        for hexEditor in HexEditMainWindow.windows:
+            hexEditor.preferencesChanged()
+    
+    def getSRHistory(self, key):
+        """
+        Public method to get the search or replace history list.
+        
+        @param key name of list to return
+        @type str (must be 'search' or 'replace')
+        @return the requested history list
+        @rtype list of tuples of (int, str)
+        """
+        assert key in ['search', 'replace']
+        
+        return self.__srHistory[key]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HexEdit/HexEditReplaceWidget.ui	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>HexEditReplaceWidget</class>
+ <widget class="QWidget" name="HexEditReplaceWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>600</width>
+    <height>58</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>Find and Replace</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <property name="leftMargin">
+    <number>1</number>
+   </property>
+   <property name="topMargin">
+    <number>1</number>
+   </property>
+   <property name="rightMargin">
+    <number>1</number>
+   </property>
+   <property name="bottomMargin">
+    <number>1</number>
+   </property>
+   <item row="0" column="0">
+    <widget class="QToolButton" name="closeButton">
+     <property name="toolTip">
+      <string>Press to close the window</string>
+     </property>
+     <property name="text">
+      <string/>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Find:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="2">
+    <widget class="QComboBox" name="findFormatCombo">
+     <property name="toolTip">
+      <string>Select the data format of the find data field</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="3">
+    <widget class="QComboBox" name="findtextCombo">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>300</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="editable">
+      <bool>true</bool>
+     </property>
+     <property name="insertPolicy">
+      <enum>QComboBox::InsertAtTop</enum>
+     </property>
+     <property name="duplicatesEnabled">
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="4">
+    <widget class="QToolButton" name="findPrevButton">
+     <property name="toolTip">
+      <string>Press to find the previous occurrence</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="5">
+    <widget class="QToolButton" name="findNextButton">
+     <property name="toolTip">
+      <string>Press to find the next occurrence</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Replace:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="2">
+    <widget class="QComboBox" name="replaceFormatCombo">
+     <property name="toolTip">
+      <string>Select the data format of the replace data field</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="3">
+    <widget class="QComboBox" name="replacetextCombo">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>300</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="editable">
+      <bool>true</bool>
+     </property>
+     <property name="insertPolicy">
+      <enum>QComboBox::InsertAtTop</enum>
+     </property>
+     <property name="duplicatesEnabled">
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="4">
+    <widget class="QToolButton" name="replaceButton">
+     <property name="toolTip">
+      <string>Press to replace the selection</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="5">
+    <widget class="QToolButton" name="replaceSearchButton">
+     <property name="toolTip">
+      <string>Press to replace the selection and search for the next occurence</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="6">
+    <widget class="QToolButton" name="replaceAllButton">
+     <property name="toolTip">
+      <string>Press to replace all occurrences</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>findFormatCombo</tabstop>
+  <tabstop>findtextCombo</tabstop>
+  <tabstop>replaceFormatCombo</tabstop>
+  <tabstop>replacetextCombo</tabstop>
+  <tabstop>findPrevButton</tabstop>
+  <tabstop>findNextButton</tabstop>
+  <tabstop>replaceButton</tabstop>
+  <tabstop>replaceSearchButton</tabstop>
+  <tabstop>replaceAllButton</tabstop>
+  <tabstop>closeButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HexEdit/HexEditSearchReplaceWidget.py	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,589 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a search and replace widget for the hex editor.
+"""
+
+from __future__ import unicode_literals
+try:
+    str = unicode       # __IGNORE_EXCEPTION__
+except NameError:
+    pass
+
+from PyQt5.QtCore import pyqtSlot, Qt, QByteArray, QRegExp
+from PyQt5.QtGui import QRegExpValidator
+from PyQt5.QtWidgets import QWidget
+
+from E5Gui.E5Action import E5Action
+from E5Gui import E5MessageBox
+
+import UI.PixmapCache
+
+
+class HexEditSearchReplaceWidget(QWidget):
+    """
+    Class implementing a search and replace widget for the hex editor.
+    """
+    def __init__(self, editor, mainWindow, replace=False, parent=None):
+        """
+        Constructor
+        
+        @param editor reference to the hex editor widget
+        @type HexEditWidget
+        @param mainWindow reference to the main window
+        @type HexEditMainWindow
+        @param replace flag indicating a replace widget
+        @type bool
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(HexEditSearchReplaceWidget, self).__init__(parent)
+        
+        self.__replace = replace
+        self.__editor = editor
+        
+        # keep this in sync with the logic in __getContent()
+        self.__formatAndValidators = {
+            "hex": (self.tr("Hex"), QRegExpValidator((QRegExp("[0-9a-f]*")))),
+            "dec": (self.tr("Dec"), QRegExpValidator((QRegExp("[0-9]*")))),
+            "oct": (self.tr("Oct"), QRegExpValidator((QRegExp("[0-7]*")))),
+            "bin": (self.tr("Bin"), QRegExpValidator((QRegExp("[01]*")))),
+            "iso-8859-1": (self.tr("Text"), None),
+            # text as latin-1/iso-8859-1
+            "utf-8": (self.tr("UTF-8"), None),
+            # text as utf-8
+        }
+        formatOrder = ["hex", "dec", "oct", "bin", "iso-8859-1", "utf-8"]
+        
+        self.__currentFindFormat = ""
+        self.__currentReplaceFormat = ""
+        
+        self.__findHistory = mainWindow.getSRHistory("search")
+        if replace:
+            from .Ui_HexEditReplaceWidget import Ui_HexEditReplaceWidget
+            self.__replaceHistory = mainWindow.getSRHistory("replace")
+            self.__ui = Ui_HexEditReplaceWidget()
+        else:
+            from .Ui_HexEditSearchWidget import Ui_HexEditSearchWidget
+            self.__ui = Ui_HexEditSearchWidget()
+        self.__ui.setupUi(self)
+        
+        self.__ui.closeButton.setIcon(UI.PixmapCache.getIcon("close.png"))
+        self.__ui.findPrevButton.setIcon(
+            UI.PixmapCache.getIcon("1leftarrow.png"))
+        self.__ui.findNextButton.setIcon(
+            UI.PixmapCache.getIcon("1rightarrow.png"))
+        
+        if replace:
+            self.__ui.replaceButton.setIcon(
+                UI.PixmapCache.getIcon("editReplace.png"))
+            self.__ui.replaceSearchButton.setIcon(
+                UI.PixmapCache.getIcon("editReplaceSearch.png"))
+            self.__ui.replaceAllButton.setIcon(
+                UI.PixmapCache.getIcon("editReplaceAll.png"))
+        
+        for format in formatOrder:
+            formatStr, validator = self.__formatAndValidators[format]
+            self.__ui.findFormatCombo.addItem(formatStr, format)
+        if replace:
+            for format in formatOrder:
+                formatStr, validator = self.__formatAndValidators[format]
+                self.__ui.replaceFormatCombo.addItem(formatStr, format)
+        
+        self.__ui.findtextCombo.setCompleter(None)
+        self.__ui.findtextCombo.lineEdit().returnPressed.connect(
+            self.__findByReturnPressed)
+        if replace:
+            self.__ui.replacetextCombo.setCompleter(None)
+            self.__ui.replacetextCombo.lineEdit().returnPressed.connect(
+                self.on_replaceButton_clicked)
+        
+        self.findNextAct = E5Action(
+            self.tr('Find Next'),
+            self.tr('Find Next'),
+            0, 0, self, 'hexEditor_search_widget_find_next')
+        self.findNextAct.triggered.connect(self.on_findNextButton_clicked)
+        self.findNextAct.setEnabled(False)
+        self.__ui.findtextCombo.addAction(self.findNextAct)
+        
+        self.findPrevAct = E5Action(
+            self.tr('Find Prev'),
+            self.tr('Find Prev'),
+            0, 0, self, 'hexEditor_search_widget_find_prev')
+        self.findPrevAct.triggered.connect(self.on_findPrevButton_clicked)
+        self.findPrevAct.setEnabled(False)
+        self.__ui.findtextCombo.addAction(self.findPrevAct)
+        
+        self.__havefound = False
+    
+    @pyqtSlot(int)
+    def on_findFormatCombo_currentIndexChanged(self, idx):
+        """
+        Private slot to handle a selection from the find format.
+        
+        @param idx index of the selected entry
+        @type int
+        """
+        if idx >= 0:
+            format = self.__ui.findFormatCombo.itemData(idx)
+            
+            if format != self.__currentFindFormat:
+                txt = self.__ui.findtextCombo.currentText()
+                newTxt = self.__convertText(
+                    txt, self.__currentFindFormat, format)
+                self.__currentFindFormat = format
+                
+                self.__ui.findtextCombo.setValidator(
+                    self.__formatAndValidators[format][1])
+                
+                self.__ui.findtextCombo.setEditText(newTxt)
+    
+    @pyqtSlot(str)
+    def on_findtextCombo_editTextChanged(self, txt):
+        """
+        Private slot to enable/disable the find buttons.
+        
+        @param txt text of the find text combo
+        @type str
+        """
+        if not txt:
+            self.__ui.findNextButton.setEnabled(False)
+            self.findNextAct.setEnabled(False)
+            self.__ui.findPrevButton.setEnabled(False)
+            self.findPrevAct.setEnabled(False)
+            if self.__replace:
+                self.__ui.replaceButton.setEnabled(False)
+                self.__ui.replaceSearchButton.setEnabled(False)
+                self.__ui.replaceAllButton.setEnabled(False)
+        else:
+            self.__ui.findNextButton.setEnabled(True)
+            self.findNextAct.setEnabled(True)
+            self.__ui.findPrevButton.setEnabled(True)
+            self.findPrevAct.setEnabled(True)
+            if self.__replace:
+                self.__ui.replaceButton.setEnabled(False)
+                self.__ui.replaceSearchButton.setEnabled(False)
+                self.__ui.replaceAllButton.setEnabled(True)
+    
+    @pyqtSlot(int)
+    def on_findtextCombo_activated(self, idx):
+        """
+        Private slot to handle a selection from the find history.
+        
+        @param idx index of the selected entry
+        @type int
+        """
+        if idx >= 0:
+            formatIndex = self.__ui.findtextCombo.itemData(idx)
+            if formatIndex is not None:
+                self.__ui.findFormatCombo.setCurrentIndex(formatIndex)
+    
+    def __getContent(self, replace=False):
+        """
+        Private method to get the contents of the find/replace combo as
+        a bytearray.
+        
+        @param replace flag indicating to retrieve the replace contents
+        @type bool
+        @return search or replace term as text and binary data
+        @rtype tuple of bytearray and str
+        """
+        if replace:
+            textCombo = self.__ui.replacetextCombo
+            formatCombo = self.__ui.replaceFormatCombo
+            history = self.__replaceHistory
+        else:
+            textCombo = self.__ui.findtextCombo
+            formatCombo = self.__ui.findFormatCombo
+            history = self.__findHistory
+        
+        txt = textCombo.currentText()
+        idx = formatCombo.currentIndex()
+        format = formatCombo.itemData(idx)
+        ba = self.__text2bytearray(txt, format)
+        
+        # This moves any previous occurrence of this statement to the head
+        # of the list and updates the combobox
+        historyEntry = (idx, txt)
+        if historyEntry in history:
+            history.remove(historyEntry)
+        history.insert(0, historyEntry)
+        textCombo.clear()
+        for index, text in history:
+            textCombo.addItem(text, index)
+        
+        return ba, txt
+    
+    @pyqtSlot()
+    def on_findNextButton_clicked(self):
+        """
+        Private slot to find the next occurrence.
+        """
+        self.findPrevNext(False)
+    
+    @pyqtSlot()
+    def on_findPrevButton_clicked(self):
+        """
+        Private slot to find the previous occurrence.
+        """
+        self.findPrevNext(True)
+    
+    def findPrevNext(self, prev=False):
+        """
+        Public slot to find the next occurrence of the search term.
+        
+        @param prev flag indicating a backwards search
+        @type bool
+        @return flag indicating a successful search
+        @rtype bool
+        """
+        if not self.__havefound or not self.__ui.findtextCombo.currentText():
+            self.show()
+            return
+        
+        self.__findBackwards = prev
+        ba, txt = self.__getContent()
+        
+        idx = -1
+        if len(ba) > 0:
+            startIndex = self.__editor.cursorPosition() // 2
+            if prev:
+                if self.__editor.hasSelection() and \
+                        startIndex == self.__editor.getSelectionEnd():
+                    # skip to the selection start
+                    startIndex = self.__editor.getSelectionBegin()
+                idx = self.__editor.lastIndexOf(ba, startIndex)
+            else:
+                if self.__editor.hasSelection() and \
+                        startIndex == self.__editor.getSelectionBegin() - 1:
+                    # skip to the selection end
+                    startIndex = self.__editor.getSelectionEnd()
+                idx = self.__editor.indexOf(ba, startIndex)
+        
+        if idx >= 0:
+            if self.__replace:
+                self.__ui.replaceButton.setEnabled(True)
+                self.__ui.replaceSearchButton.setEnabled(True)
+        else:
+            E5MessageBox.information(
+                self, self.windowTitle(),
+                self.tr("'{0}' was not found.").format(txt))
+        
+        return idx >= 0
+    
+    def __findByReturnPressed(self):
+        """
+        Private slot to handle a return pressed in the find combo.
+        """
+        if self.__findBackwards:
+            self.findPrevNext(True)
+        else:
+            self.findPrevNext(False)
+    
+    @pyqtSlot(int)
+    def on_replaceFormatCombo_currentIndexChanged(self, idx):
+        """
+        Private slot to handle a selection from the replace format.
+        
+        @param idx index of the selected entry
+        @type int
+        """
+        if idx >= 0:
+            format = self.__ui.replaceFormatCombo.itemData(idx)
+            
+            if format != self.__currentReplaceFormat:
+                txt = self.__ui.replacetextCombo.currentText()
+                newTxt = self.__convertText(
+                    txt, self.__currentReplaceFormat, format)
+                self.__currentReplaceFormat = format
+                
+                self.__ui.replacetextCombo.setValidator(
+                    self.__formatAndValidators[format][1])
+                
+                self.__ui.replacetextCombo.setEditText(newTxt)
+    
+    @pyqtSlot(int)
+    def on_replacetextCombo_activated(self, idx):
+        """
+        Private slot to handle a selection from the replace history.
+        
+        @param idx index of the selected entry
+        @type int
+        """
+        if idx >= 0:
+            formatIndex = self.__ui.replacetextCombo.itemData(idx)
+            if formatIndex is not None:
+                self.__ui.replaceFormatCombo.setCurrentIndex(formatIndex)
+
+    @pyqtSlot()
+    def on_replaceButton_clicked(self):
+        """
+        Private slot to replace one occurrence of data.
+        """
+        self.__doReplace(False)
+    
+    @pyqtSlot()
+    def on_replaceSearchButton_clicked(self):
+        """
+        Private slot to replace one occurrence of data and search for the next
+        one.
+        """
+        self.__doReplace(True)
+    
+    def __doReplace(self, searchNext):
+        """
+        Private method to replace one occurrence of data.
+        
+        @param searchNext flag indicating to search for the next occurrence
+        @type bool
+        """
+        # Check enabled status due to dual purpose usage of this method
+        if not self.__ui.replaceButton.isEnabled() and \
+           not self.__ui.replaceSearchButton.isEnabled():
+            return
+        
+        fba, ftxt = self.__getContent(False)
+        rba, rtxt = self.__getContent(True)
+        
+        ok = False
+        if self.__editor.hasSelection():
+            # we did a successful search before
+            startIdx = self.__editor.getSelectionBegin()
+            self.__editor.replaceByteArray(startIdx, len(fba), rba)
+            
+            if searchNext:
+                ok = self.findPrevNext(self.__findBackwards)
+        
+        if not ok:
+            self.__ui.replaceButton.setEnabled(False)
+            self.__ui.replaceSearchButton.setEnabled(False)
+    
+    @pyqtSlot()
+    def on_replaceAllButton_clicked(self):
+        """
+        Private slot to replace all occurrences of data.
+        """
+        replacements = 0
+        
+        cursorPosition = self.__editor.cursorPosition()
+        
+        fba, ftxt = self.__getContent(False)
+        rba, rtxt = self.__getContent(True)
+        
+        idx = 0
+        while idx >= 0:
+            idx = self.__editor.indexOf(fba, idx)
+            if idx >= 0:
+                self.__editor.replaceByteArray(idx, len(fba), rba)
+                idx += len(rba)
+                replacements += 1
+        
+        if replacements:
+            E5MessageBox.information(
+                self, self.windowTitle(),
+                self.tr("Replaced {0} occurrences.")
+                .format(replacements))
+        else:
+            E5MessageBox.information(
+                self, self.windowTitle(),
+                self.tr("Nothing replaced because '{0}' was not found.")
+                .format(ftxt))
+        
+        self.__editor.setCursorPosition(cursorPosition)
+        self.__editor.ensureVisible()
+    
+    def __showFind(self, text=''):
+        """
+        Private method to display this widget in find mode.
+        
+        @param text hex encoded text to be shown in the findtext edit
+        @type str
+        """
+        self.__replace = False
+        
+        self.__ui.findtextCombo.clear()
+        for index, txt in self.__findHistory:
+            self.__ui.findtextCombo.addItem(txt, index)
+        self.__ui.findFormatCombo.setCurrentIndex(0)    # 0 is always Hex
+        self.on_findFormatCombo_currentIndexChanged(0)
+        self.__ui.findtextCombo.setEditText(text)
+        self.__ui.findtextCombo.lineEdit().selectAll()
+        self.__ui.findtextCombo.setFocus()
+        self.on_findtextCombo_editTextChanged(text)
+        
+        self.__havefound = True
+        self.__findBackwards = False
+    
+    def __showReplace(self, text=''):
+        """
+        Private slot to display this widget in replace mode.
+        
+        @param text hex encoded text to be shown in the findtext edit
+        @type str
+        """
+        self.__replace = True
+        
+        self.__ui.findtextCombo.clear()
+        for index, txt in self.__findHistory:
+            self.__ui.findtextCombo.addItem(txt, index)
+        self.__ui.findFormatCombo.setCurrentIndex(0)    # 0 is always Hex
+        self.on_findFormatCombo_currentIndexChanged(0)
+        self.__ui.findtextCombo.setEditText(text)
+        self.__ui.findtextCombo.lineEdit().selectAll()
+        self.__ui.findtextCombo.setFocus()
+        self.on_findtextCombo_editTextChanged(text)
+        
+        self.__ui.replacetextCombo.clear()
+        for index, txt in self.__replaceHistory:
+            self.__ui.replacetextCombo.addItem(txt, index)
+        self.__ui.replaceFormatCombo.setCurrentIndex(0)    # 0 is always Hex
+        self.on_replaceFormatCombo_currentIndexChanged(0)
+        self.__ui.replacetextCombo.setEditText('')
+        
+        self.__havefound = True
+        self.__findBackwards = False
+    
+    def show(self, text=''):
+        """
+        Public slot to show the widget.
+        
+        @param text hex encoded text to be shown in the findtext edit
+        @type str
+        """
+        if self.__replace:
+            self.__showReplace(text)
+        else:
+            self.__showFind(text)
+        super(HexEditSearchReplaceWidget, self).show()
+        self.activateWindow()
+    
+    @pyqtSlot()
+    def on_closeButton_clicked(self):
+        """
+        Private slot to close the widget.
+        """
+        self.__editor.setFocus(Qt.OtherFocusReason)
+        self.close()
+
+    def keyPressEvent(self, event):
+        """
+        Protected slot to handle key press events.
+        
+        @param event reference to the key press event
+        @type QKeyEvent
+        """
+        if event.key() == Qt.Key_Escape:
+            self.close()
+    
+    def __convertText(self, txt, oldFormat, newFormat):
+        """
+        Private method to convert text from one format into another.
+        
+        @param txt text to be converted
+        @type str
+        @param oldFormat current format of the text
+        @type str
+        @param newFormat format to convert to
+        @type str
+        @return converted text
+        @rtype str
+        """
+        if oldFormat and newFormat:
+            # step 1: convert the text to a byte array using the old format
+            byteArray = self.__text2bytearray(txt, oldFormat)
+            
+            # step 2: convert the byte array to text using the new format
+            txt = self.__bytearray2text(byteArray, newFormat)
+        
+        return txt
+    
+    def __int2bytearray(self, value):
+        """
+        Private method to convert an integer to a byte array.
+        
+        @param value value to be converted
+        @type int
+        @return byte array for the given value
+        @rtype bytearray
+        """
+        ba = bytearray()
+        while value > 0:
+            value, modulus = divmod(value, 256)
+            ba.insert(0, modulus)
+        
+        return ba
+    
+    def __bytearray2int(self, array):
+        """
+        Private method to convert a byte array to an integer value.
+        
+        @param array byte array to be converted
+        @type bytearray
+        @return integer value of the given array
+        @rtype int
+        """
+        value = 0
+        for b in array:
+            value = value * 256 + b
+        
+        return value
+    
+    def __text2bytearray(self, txt, format):
+        """
+        Private method to convert a text to a byte array.
+        
+        @param txt text to be converted
+        @type str
+        @param format format of the text
+        @type str
+        @return converted text
+        @rtype bytearray
+        """
+        assert format in self.__formatAndValidators.keys()
+        
+        if format == "hex":             # hex format
+            ba = bytearray(QByteArray.fromHex(
+                bytes(txt, encoding="ascii")))
+        elif format == "dec":           # decimal format
+            ba = self.__int2bytearray(int(txt, 10))
+        elif format == "oct":           # octal format
+            ba = self.__int2bytearray(int(txt, 8))
+        elif format == "bin":           # binary format
+            ba = self.__int2bytearray(int(txt, 2))
+        elif format == "iso-8859-1":    # latin-1/iso-8859-1 text
+            ba = bytearray(txt, encoding="iso-8859-1")
+        elif format == "utf-8":         # utf-8 text
+            ba = bytearray(txt, encoding="utf-8")
+        
+        return ba
+    
+    def __bytearray2text(self, array, format):
+        """
+        Private method to convert a byte array to a text.
+        
+        @param array byte array to be converted
+        @type bytearray
+        @param format format of the text
+        @type str
+        @return formatted text
+        @rtype str
+        """
+        assert format in self.__formatAndValidators.keys()
+        
+        if format == "hex":             # hex format
+            txt = "{0:x}".format(self.__bytearray2int(array))
+        elif format == "dec":           # decimal format
+            txt = "{0:d}".format(self.__bytearray2int(array))
+        elif format == "oct":           # octal format
+            txt = "{0:o}".format(self.__bytearray2int(array))
+        elif format == "bin":           # binary format
+            txt = "{0:b}".format(self.__bytearray2int(array))
+        elif format == "iso-8859-1":    # latin-1/iso-8859-1 text
+            txt = str(array, encoding="iso-8859-1")
+        elif format == "utf-8":         # utf-8 text
+            txt = str(array, encoding="utf-8", errors="replace")
+        
+        return txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HexEdit/HexEditSearchWidget.ui	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>HexEditSearchWidget</class>
+ <widget class="QWidget" name="HexEditSearchWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>600</width>
+    <height>27</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>Find</string>
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout">
+   <property name="leftMargin">
+    <number>1</number>
+   </property>
+   <property name="topMargin">
+    <number>1</number>
+   </property>
+   <property name="rightMargin">
+    <number>1</number>
+   </property>
+   <property name="bottomMargin">
+    <number>1</number>
+   </property>
+   <item>
+    <widget class="QToolButton" name="closeButton">
+     <property name="toolTip">
+      <string>Press to close the window</string>
+     </property>
+     <property name="text">
+      <string/>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Find:</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QComboBox" name="findFormatCombo">
+     <property name="toolTip">
+      <string>Select the data format of the find data field</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QComboBox" name="findtextCombo">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>300</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="editable">
+      <bool>true</bool>
+     </property>
+     <property name="insertPolicy">
+      <enum>QComboBox::InsertAtTop</enum>
+     </property>
+     <property name="duplicatesEnabled">
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QToolButton" name="findPrevButton">
+     <property name="toolTip">
+      <string>Press to find the previous occurrence</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QToolButton" name="findNextButton">
+     <property name="toolTip">
+      <string>Press to find the next occurrence</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>findFormatCombo</tabstop>
+  <tabstop>findtextCombo</tabstop>
+  <tabstop>findPrevButton</tabstop>
+  <tabstop>findNextButton</tabstop>
+  <tabstop>closeButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
--- a/HexEdit/HexEditWidget.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/HexEdit/HexEditWidget.py	Sun Jan 17 15:15:15 2016 +0100
@@ -8,6 +8,10 @@
 """
 
 from __future__ import unicode_literals
+try:
+    chr = unichr       # __IGNORE_EXCEPTION__
+except NameError:
+    pass
 
 from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QByteArray, QTimer, QRect, \
     QBuffer, QIODevice
@@ -21,10 +25,6 @@
 import Globals
 
 
-# TODO: implement cursor in ASCII area
-# TODO: implement editing in ASCII area
-
-
 class HexEditWidget(QAbstractScrollArea):
     """
     Class implementing an editor for binary data.
@@ -71,8 +71,9 @@
         # Properties
         self.__addressArea = True
         # switch the address area on/off
-        self.__addressAreaColor = QColor()
-        # color of the address area
+        self.__addressAreaBrush = QBrush()
+        self.__addressAreaPen = QPen()
+        # background and pen of the address area
         self.__addressOffset = 0
         # offset into the shown address range
         self.__addressWidth = 4
@@ -94,12 +95,13 @@
         self.__readOnly = False
         # set read only mode on/off
         self.__cursorPosition = 0
-        # absolute positioin of cursor, 1 Byte == 2 tics
+        # absolute position of cursor, 1 Byte == 2 tics
         
         self.__addrDigits = 0
         self.__blink = True
         self.__bData = QBuffer()
         self.__cursorRect = QRect()
+        self.__cursorRectAscii = QRect()
         self.__dataShown = bytearray()
         self.__hexDataShown = bytearray()
         self.__lastEventSize = 0
@@ -136,9 +138,15 @@
         else:
             self.setFont(QFont("Monospace", 10))
         
-        self.setAddressAreaColor(self.palette().alternateBase().color())
-        self.setHighlightColor(QColor(0xff, 0xff, 0x99, 0xff))
-        self.setSelectionColor(self.palette().highlight().color())
+        self.setAddressAreaColors(
+            self.palette().color(QPalette.WindowText),
+            self.palette().alternateBase().color())
+        self.setHighlightColors(
+            self.palette().color(QPalette.WindowText),
+            QColor(0xff, 0xff, 0x99, 0xff))
+        self.setSelectionColors(
+            self.palette().highlightedText().color(),
+            self.palette().highlight().color())
         
         self.__cursorTimer = QTimer()
         self.__cursorTimer.timeout.connect(self.__updateCursor)
@@ -210,23 +218,26 @@
         self.setCursorPosition(self.__cursorPosition)
         self.viewport().update()
     
-    def addressAreaColor(self):
+    def addressAreaColors(self):
         """
-        Public method to get the address area color.
+        Public method to get the address area colors.
         
-        @return address area color
-        @rtype QColor
+        @return address area foreground and background colors
+        @rtype tuple of 2 QColor
         """
-        return QColor(self.__addressAreaColor)
+        return self.__addressAreaPen.color(), self.__addressAreaBrush.color()
     
-    def setAddressAreaColor(self, color):
+    def setAddressAreaColors(self, foreground, background):
         """
-        Public method to set the address area color.
+        Public method to set the address area colors.
         
-        @param color address area color
+        @param foreground address area foreground color
+        @type QColor
+        @param background address area background color
         @type QColor
         """
-        self.__addressAreaColor = QColor(color)
+        self.__addressAreaPen = QPen(foreground)
+        self.__addressAreaBrush = QBrush(background)
         self.viewport().update()
     
     def addressOffset(self):
@@ -328,6 +339,8 @@
         # step 1: delete old cursor
         self.__blink = False
         self.viewport().update(self.__cursorRect)
+        if self.__asciiArea:
+            self.viewport().update(self.__cursorRectAscii)
         
         # step 2: check, if cursor is in range
         if self.__overwriteMode and pos > (self.__chunks.size() * 2 - 1):
@@ -347,6 +360,26 @@
         self.__pxCursorX = (
             (((x // 2) * 3) + (x % 2)) * self.__pxCharWidth + self.__pxPosHexX)
         
+        self.__setHexCursorRect()
+        
+        # step 4: calculate position of ASCII cursor
+        x = self.__bPosCurrent % self.BYTES_PER_LINE
+        self.__cursorRectAscii = QRect(
+            self.__pxPosAsciiX + x * self.__pxCharWidth - 1,
+            self.__pxCursorY - self.__pxCharHeight + 4,
+            self.__pxCharWidth + 1, self.__pxCharHeight + 1)
+        
+        # step 5: draw new cursors
+        self.__blink = True
+        self.viewport().update(self.__cursorRect)
+        if self.__asciiArea:
+            self.viewport().update(self.__cursorRectAscii)
+        self.currentAddressChanged.emit(self.__bPosCurrent)
+    
+    def __setHexCursorRect(self):
+        """
+        Private method to set the cursor.
+        """
         if self.__overwriteMode:
             self.__cursorRect = QRect(
                 self.__pxCursorX, self.__pxCursorY + self.__pxCursorWidth,
@@ -355,11 +388,57 @@
             self.__cursorRect = QRect(
                 self.__pxCursorX, self.__pxCursorY - self.__pxCharHeight + 4,
                 self.__pxCursorWidth, self.__pxCharHeight)
+    
+    def cursorBytePosition(self):
+        """
+        Public method to get the cursor position in bytes.
         
-        # step 4: draw new cursor
-        self.__blink = True
-        self.viewport().update(self.__cursorRect)
-        self.currentAddressChanged.emit(self.__bPosCurrent)
+        @return cursor position in bytes
+        @rtype int
+        """
+        return self.__bPosCurrent
+    
+    def setCursorBytePosition(self, pos):
+        """
+        Public method to set the cursor position in bytes.
+        
+        @param pos cursor position in bytes
+        @type int
+        """
+        self.setCursorPosition(pos * 2)
+    
+    def goto(self, offset, fromCursor=False, backwards=False,
+             extendSelection=False):
+        """
+        Public method to move the cursor.
+        
+        @param offset offset to move to
+        @type int
+        @param fromCursor flag indicating a move relative to the current cursor
+        @type bool
+        @param backwards flag indicating a backwards move
+        @type bool
+        @param extendSelection flag indicating to extend the selection
+        @type bool
+        """
+        if fromCursor:
+            if backwards:
+                newPos = self.cursorBytePosition() - offset
+            else:
+                newPos = self.cursorBytePosition() + offset
+        else:
+            if backwards:
+                newPos = self.__chunks.size() - offset
+            else:
+                newPos = offset
+        
+        self.setCursorBytePosition(newPos)
+        if extendSelection:
+            self.__setSelection(self.__cursorPosition)
+        else:
+            self.__resetSelection(self.__cursorPosition)
+        
+        self.__refresh()
     
     def data(self):
         """
@@ -424,25 +503,26 @@
         self.__highlighting = on
         self.viewport().update()
     
-    def highlightingColor(self):
+    def highlightColors(self):
         """
-        Public method to get the highlighting color.
+        Public method to get the highlight colors.
         
-        @return highlighting color
-        @rtype QColor
+        @return highlight foreground and background colors
+        @rtype tuple of 2 QColor
         """
-        return self.__highlightingBrush.color()
+        return self.__highlightingPen.color(), self.__highlightingBrush.color()
     
-    def setHighlightColor(self, color):
+    def setHighlightColors(self, foreground, background):
         """
-        Public method to set the highlight color.
+        Public method to set the highlight colors.
         
-        @param color new highlight color
+        @param foreground highlight foreground color
+        @type QColor
+        @param background highlight background color
         @type QColor
         """
-        self.__highlightingBrush = QBrush(color)
-        self.__highlightingPen = QPen(
-            self.viewport().palette().color(QPalette.WindowText))
+        self.__highlightingPen = QPen(foreground)
+        self.__highlightingBrush = QBrush(background)
         self.viewport().update()
     
     def overwriteMode(self):
@@ -463,25 +543,36 @@
         """
         self.__overwriteMode = on
         self.overwriteModeChanged.emit(self.__overwriteMode)
+        
+        # step 1: delete old cursor
+        self.__blink = False
+        self.viewport().update(self.__cursorRect)
+        # step 2: change the cursor rectangle
+        self.__setHexCursorRect()
+        # step 3: draw new cursors
+        self.__blink = True
+        self.viewport().update(self.__cursorRect)
     
-    def selectionColor(self):
-        """
-        Public method to get the selection color.
-        
-        @return selection color
-        @rtype QColor
+    def selectionColors(self):
         """
-        return self.__selectionBrush.color()
-    
-    def setSelectionColor(self, color):
+        Public method to get the selection colors.
+        
+        @return selection foreground and background colors
+        @rtype tuple of 2 QColor
         """
-        Public method to set the selection color.
+        return self.__selectionPen.color(), self.__selectionBrush.color()
+    
+    def setSelectionColors(self, foreground, background):
+        """
+        Public method to set the selection colors.
         
-        @param color new selection color
+        @param foreground selection foreground color
+        @type QColor
+        @param background selection background color
         @type QColor
         """
-        self.__selectionBrush = QBrush(color)
-        self.__selectionPen = QPen(Qt.white)
+        self.__selectionPen = QPen(foreground)
+        self.__selectionBrush = QBrush(background)
         self.viewport().update()
     
     def isReadOnly(self):
@@ -526,7 +617,8 @@
         self.__pxGapAdrHex = self.__pxCharWidth
         self.__pxGapHexAscii = 2 * self.__pxCharWidth
         self.__pxCursorWidth = self.__pxCharHeight // 7
-        self.__pxSelectionSub = self.__pxCharHeight // 5
+        self.__pxSelectionSub = self.fontMetrics().descent()
+        self.__adjust()
         self.viewport().update()
     
     def dataAt(self, pos, count=-1):
@@ -725,6 +817,17 @@
         if not modified and setCleanState:
             self.__undoStack.setClean()
     
+    def selectionToHexString(self):
+        """
+        Public method to get a hexadecimal representation of the selection.
+        
+        @return hexadecimal representation of the selection
+        @rtype str
+        """
+        byteArray = self.__chunks.data(self.getSelectionBegin(),
+                                       self.getSelectionLength())
+        return self.__toHex(byteArray).decode(encoding="ascii")
+    
     def selectionToReadableString(self):
         """
         Public method to get a formatted representation of the selection.
@@ -732,8 +835,8 @@
         @return formatted representation of the selection
         @rtype str
         """
-        byteArray = self.__chunks.data(self.__getSelectionBegin(),
-                                       self.__getSelectionLength())
+        byteArray = self.__chunks.data(self.getSelectionBegin(),
+                                       self.getSelectionLength())
         return self.__toReadable(byteArray)
     
     def toReadableString(self):
@@ -1039,7 +1142,7 @@
         """
         if not self.__readOnly:
             byteArray = self.__toHex(self.__chunks.data(
-                self.__getSelectionBegin(), self.__getSelectionLength()))
+                self.getSelectionBegin(), self.getSelectionLength()))
             idx = 32
             while idx < len(byteArray):
                 byteArray.insert(idx, "\n")
@@ -1047,21 +1150,21 @@
             cb = QApplication.clipboard()
             cb.setText(byteArray.decode(encoding="latin1"))
             if self.__overwriteMode:
-                length = self.__getSelectionLength()
-                self.replaceByteArray(self.__getSelectionBegin(), length,
+                length = self.getSelectionLength()
+                self.replaceByteArray(self.getSelectionBegin(), length,
                                       bytearray(length))
             else:
-                self.remove(self.__getSelectionBegin(),
-                            self.__getSelectionLength())
-            self.setCursorPosition(2 * self.__getSelectionBegin())
-            self.__resetSelection(2 * self.__getSelectionBegin())
+                self.remove(self.getSelectionBegin(),
+                            self.getSelectionLength())
+            self.setCursorPosition(2 * self.getSelectionBegin())
+            self.__resetSelection(2 * self.getSelectionBegin())
     
     def copy(self):
         """
         Public method to copy the selected bytes to the clipboard.
         """
         byteArray = self.__toHex(self.__chunks.data(
-            self.__getSelectionBegin(), self.__getSelectionLength()))
+            self.getSelectionBegin(), self.getSelectionLength()))
         idx = 32
         while idx < len(byteArray):
             byteArray.insert(idx, "\n")
@@ -1083,7 +1186,7 @@
                 self.insertByteArray(self.__bPosCurrent, byteArray)
             self.setCursorPosition(
                 self.__cursorPosition + 2 * len(byteArray))
-            self.__resetSelection(2 * self.__getSelectionBegin())
+            self.__resetSelection(2 * self.getSelectionBegin())
     
     def deleteByte(self):
         """
@@ -1091,14 +1194,14 @@
         """
         if not self.__readOnly:
             if self.hasSelection():
-                self.__bPosCurrent = self.__getSelectionBegin()
+                self.__bPosCurrent = self.getSelectionBegin()
                 if self.__overwriteMode:
-                    byteArray = bytearray(self.__getSelectionLength())
+                    byteArray = bytearray(self.getSelectionLength())
                     self.replaceByteArray(self.__bPosCurrent, len(byteArray),
                                           byteArray)
                 else:
                     self.remove(self.__bPosCurrent,
-                                self.__getSelectionLength())
+                                self.getSelectionLength())
             else:
                 if self.__overwriteMode:
                     self.replace(self.__bPosCurrent, 0)
@@ -1113,15 +1216,15 @@
         """
         if not self.__readOnly:
             if self.hasSelection():
-                self.__bPosCurrent = self.__getSelectionBegin()
+                self.__bPosCurrent = self.getSelectionBegin()
                 self.setCursorPosition(2 * self.__bPosCurrent)
                 if self.__overwriteMode:
-                    byteArray = bytearray(self.__getSelectionLength())
+                    byteArray = bytearray(self.getSelectionLength())
                     self.replaceByteArray(self.__bPosCurrent, len(byteArray),
                                           byteArray)
                 else:
                     self.remove(self.__bPosCurrent,
-                                self.__getSelectionLength())
+                                self.getSelectionLength())
             else:
                 self.__bPosCurrent -= 1
                 if self.__overwriteMode:
@@ -1220,14 +1323,14 @@
             if key and key in "0123456789abcdef":
                 if self.hasSelection():
                     if self.__overwriteMode:
-                        length = self.__getSelectionLength()
+                        length = self.getSelectionLength()
                         self.replaceByteArray(
-                            self.__getSelectionBegin(), length,
+                            self.getSelectionBegin(), length,
                             bytearray(length))
                     else:
-                        self.remove(self.__getSelectionBegin(),
-                                    self.__getSelectionLength())
-                        self.__bPosCurrent = self.__getSelectionBegin()
+                        self.remove(self.getSelectionBegin(),
+                                    self.getSelectionLength())
+                        self.__bPosCurrent = self.getSelectionBegin()
                     self.setCursorPosition(2 * self.__bPosCurrent)
                     self.__resetSelection(2 * self.__bPosCurrent)
                 
@@ -1292,7 +1395,8 @@
         """
         painter = QPainter(self.viewport())
         
-        if evt.rect() != self.__cursorRect:
+        if evt.rect() != self.__cursorRect and \
+                evt.rect() != self.__cursorRectAscii:
             pxOfsX = self.horizontalScrollBar().value()
             pxPosStartY = self.__pxCharHeight
             
@@ -1304,7 +1408,7 @@
                     QRect(-pxOfsX, evt.rect().top(),
                           self.__pxPosHexX - self.__pxGapAdrHex // 2 - pxOfsX,
                           self.height()),
-                    self.__addressAreaColor)
+                    self.__addressAreaBrush)
             if self.__asciiArea:
                 linePos = self.__pxPosAsciiX - (self.__pxGapHexAscii // 2)
                 painter.setPen(Qt.gray)
@@ -1316,6 +1420,7 @@
             
             # paint the address area
             if self.__addressArea:
+                painter.setPen(self.__addressAreaPen)
                 address = ""
                 row = 0
                 pxPosY = self.__pxCharHeight
@@ -1349,8 +1454,8 @@
                     painter.setPen(colStandard)
                     
                     posBa = self.__bPosFirst + bPosLine + colIdx
-                    if self.__getSelectionBegin() <= posBa and \
-                            self.__getSelectionEnd() > posBa:
+                    if self.getSelectionBegin() <= posBa and \
+                            self.getSelectionEnd() > posBa:
                         c = self.__selectionBrush.color()
                         painter.setPen(self.__selectionPen)
                     elif self.__highlighting:
@@ -1384,7 +1489,7 @@
                     # render ascii value
                     if self.__asciiArea:
                         by = self.__dataShown[bPosLine + colIdx]
-                        if by < 0x20 or by > 0x7e:
+                        if by < 0x20 or (by > 0x7e and by < 0xa0):
                             ch = "."
                         else:
                             ch = chr(by)
@@ -1404,13 +1509,13 @@
                 # increment loop variables
                 row += 1
                 pxPosY += self.__pxCharHeight
-            
-            painter.setBackgroundMode(Qt.TransparentMode)
-            painter.setPen(
-                self.viewport().palette().color(QPalette.WindowText))
+        
+        painter.setBackgroundMode(Qt.TransparentMode)
+        painter.setPen(
+            self.viewport().palette().color(QPalette.WindowText))
             
         # paint cursor
-        if self.__blink and not self.__readOnly and self.hasFocus():
+        if self.__blink and not self.__readOnly and self.isActiveWindow():
             painter.fillRect(
                 self.__cursorRect, self.palette().color(QPalette.WindowText))
         else:
@@ -1424,6 +1529,9 @@
                 c = ""
             painter.drawText(self.__pxCursorX, self.__pxCursorY, c)
         
+        if self.__asciiArea:
+            painter.drawRect(self.__cursorRectAscii)
+        
         # emit event, if size has changed
         if self.__lastEventSize != self.__chunks.size():
             self.__lastEventSize = self.__chunks.size()
@@ -1478,27 +1586,27 @@
         
         self.selectionAvailable.emit(True)
     
-    def __getSelectionBegin(self):
+    def getSelectionBegin(self):
         """
-        Private method to get the start of the selection.
+        Public method to get the start of the selection.
         
         @return selection start
         @rtype int
         """
         return self.__bSelectionBegin
     
-    def __getSelectionEnd(self):
+    def getSelectionEnd(self):
         """
-        Private method to get the end of the selection.
+        Public method to get the end of the selection.
         
         @return selection end
         @rtype int
         """
         return self.__bSelectionEnd
     
-    def __getSelectionLength(self):
+    def getSelectionLength(self):
         """
-        Private method to get the length of the selection.
+        Public method to get the length of the selection.
         
         @return selection length
         @rtype int
@@ -1578,7 +1686,7 @@
                 if (i + j) < len(byteArray):
                     hexStr += " {0:02x}".format(byteArray[i + j])
                     by = byteArray[i + j]
-                    if by < 0x20 or by > 0x7e:
+                    if by < 0x20 or (by > 0x7e and by < 0xa0):
                         ch = "."
                     else:
                         ch = chr(by)
--- a/Preferences/ConfigurationDialog.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Preferences/ConfigurationDialog.py	Sun Jan 17 15:15:15 2016 +0100
@@ -78,6 +78,7 @@
     DefaultMode = 0
     HelpBrowserMode = 1
     TrayStarterMode = 2
+    HexEditorMode = 3
     
     def __init__(self, parent=None, fromEric=True, displayMode=DefaultMode,
                  expandedEntries=[]):
@@ -88,7 +89,7 @@
         @keyparam fromEric flag indicating a dialog generation from within the
             eric6 ide (boolean)
         @keyparam displayMode mode of the configuration dialog
-            (DefaultMode, HelpBrowserMode, TrayStarterMode)
+            (DefaultMode, HelpBrowserMode, TrayStarterMode, HexEditorMode)
         @exception RuntimeError raised to indicate an invalid dialog mode
         @keyparam expandedEntries list of entries to be shown expanded
             (list of strings)
@@ -96,7 +97,8 @@
         assert displayMode in (
             ConfigurationWidget.DefaultMode,
             ConfigurationWidget.HelpBrowserMode,
-            ConfigurationWidget.TrayStarterMode
+            ConfigurationWidget.TrayStarterMode,
+            ConfigurationWidget.HexEditorMode,
         )
         
         super(ConfigurationWidget, self).__init__(parent)
@@ -138,6 +140,9 @@
                 "graphicsPage":
                 [self.tr("Graphics"), "preferences-graphics.png",
                  "GraphicsPage", None, None],
+                "hexEditorPage":
+                [self.tr("Hex Editor"), "hexEditor.png",
+                 "HexEditorPage", None, None],
                 "iconsPage":
                 [self.tr("Icons"), "preferences-icons.png",
                  "IconsPage", None, None],
@@ -395,6 +400,19 @@
                  "TrayStarterPage", None, None],
             }
         
+        elif displayMode == ConfigurationWidget.HexEditorMode:
+            self.configItems = {
+                # key : [display string, pixmap name, dialog module name or
+                #        page creation function, parent key,
+                #        reference to configuration page (must always be last)]
+                # The dialog module must have the module function 'create' to
+                # create the configuration page. This must have the method
+                # 'save' to save the settings.
+                "hexEditorPage":
+                [self.tr("Hex Editor"), "hexEditor.png",
+                 "HexEditorPage", None, None],
+            }
+        
         else:
             raise RuntimeError("Illegal mode value: {0}".format(displayMode))
         
@@ -426,7 +444,13 @@
         self.buttonBox.accepted.connect(self.accept)
         self.buttonBox.rejected.connect(self.rejected)
         
-        if displayMode != ConfigurationWidget.TrayStarterMode:
+        if displayMode in [ConfigurationWidget.HelpBrowserMode,
+                           ConfigurationWidget.TrayStarterMode,
+                           ConfigurationWidget.HexEditorMode]:
+            self.configListSearch.hide()
+        
+        if displayMode not in [ConfigurationWidget.TrayStarterMode,
+                               ConfigurationWidget.HexEditorMode]:
             self.__initLexers()
         
     def accept(self):
@@ -764,6 +788,7 @@
             self.preferencesChanged.emit()
             if savedState is not None:
                 page.setState(savedState)
+            page.polishPage()
         
     @pyqtSlot()
     def on_resetButton_clicked(self):
@@ -828,6 +853,7 @@
     DefaultMode = ConfigurationWidget.DefaultMode
     HelpBrowserMode = ConfigurationWidget.HelpBrowserMode
     TrayStarterMode = ConfigurationWidget.TrayStarterMode
+    HexEditorMode = ConfigurationWidget.HexEditorMode
     
     def __init__(self, parent=None, name=None, modal=False,
                  fromEric=True, displayMode=ConfigurationWidget.DefaultMode,
@@ -841,7 +867,7 @@
         @keyparam fromEric flag indicating a dialog generation from within the
             eric6 ide (boolean)
         @keyparam displayMode mode of the configuration dialog
-            (DefaultMode, HelpBrowserMode, TrayStarterMode)
+            (DefaultMode, HelpBrowserMode, TrayStarterMode, HexEditorMode)
         @keyparam expandedEntries list of entries to be shown expanded
             (list of strings)
         """
--- a/Preferences/ConfigurationPages/ConfigurationPageBase.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Preferences/ConfigurationPages/ConfigurationPageBase.py	Sun Jan 17 15:15:15 2016 +0100
@@ -104,7 +104,8 @@
             else:
                 prefMethod(key, self.__coloursDict[key][0])
         
-    def selectFont(self, fontSample, fontVar, showFontInfo=False):
+    def selectFont(self, fontSample, fontVar, showFontInfo=False,
+                   options=QFontDialog.FontDialogOptions(0)):
         """
         Public method used by the font selection buttons.
         
@@ -112,9 +113,11 @@
         @param fontVar reference to the variable containing the font (QFont)
         @param showFontInfo flag indicating to show some font info
             as the sample (boolean)
+        @param options options for the font dialog
+            (QFontDialog.FontDialogOptions)
         @return selected font (QFont)
         """
-        font, ok = QFontDialog.getFont(fontVar, self)
+        font, ok = QFontDialog.getFont(fontVar, self, "", options)
         if ok:
             fontSample.setFont(font)
             if showFontInfo:
--- a/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sun Jan 17 15:15:15 2016 +0100
@@ -21,6 +21,7 @@
 import Preferences
 
 
+# TODO: add a button to show only monospaced fonts
 class EditorHighlightingStylesPage(ConfigurationPageBase,
                                    Ui_EditorHighlightingStylesPage):
     """
--- a/Preferences/ConfigurationPages/EditorStylesPage.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Preferences/ConfigurationPages/EditorStylesPage.py	Sun Jan 17 15:15:15 2016 +0100
@@ -11,7 +11,7 @@
 
 from PyQt5.QtCore import pyqtSlot
 from PyQt5.QtGui import QColor, QPalette
-from PyQt5.QtWidgets import QColorDialog
+from PyQt5.QtWidgets import QColorDialog, QFontDialog
 from PyQt5.Qsci import QsciScintilla
 
 from .ConfigurationPageBase import ConfigurationPageBase
@@ -19,6 +19,11 @@
 
 import Preferences
 
+try:
+    MonospacedFontsOption = QFontDialog.MonospacedFonts
+except AttributeError:
+    MonospacedFontsOption = QFontDialog.FontDialogOptions(0x10)
+
 
 class EditorStylesPage(ConfigurationPageBase, Ui_EditorStylesPage):
     """
@@ -347,7 +352,8 @@
         Private method used to select the font for the editor margins.
         """
         self.marginsFont = self.selectFont(
-            self.marginsFontSample, self.marginsFont)
+            self.marginsFontSample, self.marginsFont,
+            options=MonospacedFontsOption)
         
     @pyqtSlot()
     def on_defaultFontButton_clicked(self):
@@ -364,7 +370,8 @@
         font.
         """
         self.monospacedFont = self.selectFont(
-            self.monospacedFontSample, self.monospacedFont)
+            self.monospacedFontSample, self.monospacedFont,
+            options=MonospacedFontsOption)
         
     def polishPage(self):
         """
--- a/Preferences/ConfigurationPages/HelpAppearancePage.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Preferences/ConfigurationPages/HelpAppearancePage.py	Sun Jan 17 15:15:15 2016 +0100
@@ -10,6 +10,7 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtWidgets import QFontDialog
 
 from E5Gui.E5PathPicker import E5PathPickerModes
 
@@ -18,6 +19,11 @@
 
 import Preferences
 
+try:
+    MonospacedFontsOption = QFontDialog.MonospacedFonts
+except AttributeError:
+    MonospacedFontsOption = QFontDialog.FontDialogOptions(0x10)
+
 
 class HelpAppearancePage(ConfigurationPageBase, Ui_HelpAppearancePage):
     """
@@ -123,8 +129,9 @@
         """
         Private method used to select the fixed-width font.
         """
-        self.fixedFont = \
-            self.selectFont(self.fixedFontSample, self.fixedFont, True)
+        self.fixedFont = self.selectFont(
+            self.fixedFontSample, self.fixedFont, True,
+            options=MonospacedFontsOption)
     
 
 def create(dlg):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Preferences/ConfigurationPages/HexEditorPage.py	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,123 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+
+"""
+Module implementing the Hex Editor configuration page.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtWidgets import QFontDialog
+
+from .ConfigurationPageBase import ConfigurationPageBase
+from .Ui_HexEditorPage import Ui_HexEditorPage
+
+import Preferences
+
+try:
+    MonospacedFontsOption = QFontDialog.MonospacedFonts
+except AttributeError:
+    MonospacedFontsOption = QFontDialog.FontDialogOptions(0x10)
+
+
+class HexEditorPage(ConfigurationPageBase, Ui_HexEditorPage):
+    """
+    Class implementing the Hex Editor configuration page.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        super(HexEditorPage, self).__init__()
+        self.setupUi(self)
+        self.setObjectName("HexEditorPage")
+        
+        # set initial values
+        self.readOnlyCheckBox.setChecked(Preferences.getHexEditor(
+            "OpenReadOnly"))
+        self.overwriteCheckBox.setChecked(Preferences.getHexEditor(
+            "OpenInOverwriteMode"))
+        self.addressAreaCheckBox.setChecked(Preferences.getHexEditor(
+            "ShowAddressArea"))
+        self.addressAreaWidthSpinBox.setValue(Preferences.getHexEditor(
+            "AddressAreaWidth"))
+        self.asciiAreaCheckBox.setChecked(Preferences.getHexEditor(
+            "ShowAsciiArea"))
+        self.highlightingCheckBox.setChecked(Preferences.getHexEditor(
+            "HighlightChanges"))
+        
+        # font
+        self.monospacedFont = Preferences.getHexEditor("Font")
+        self.monospacedFontSample.setFont(self.monospacedFont)
+
+        # colours
+        self.initColour("HighlightingBackGround",
+                        self.highlightingBackGroundButton,
+                        Preferences.getHexEditor)
+        self.initColour("HighlightingForeGround",
+                        self.highlightingForeGroundButton,
+                        Preferences.getHexEditor)
+        self.initColour("SelectionBackGround",
+                        self.selectionBackGroundButton,
+                        Preferences.getHexEditor)
+        self.initColour("SelectionForeGround",
+                        self.selectionForeGroundButton,
+                        Preferences.getHexEditor)
+        self.initColour("AddressAreaBackGround",
+                        self.addressAreaBackGroundButton,
+                        Preferences.getHexEditor)
+        self.initColour("AddressAreaForeGround",
+                        self.addressAreaForeGroundButton,
+                        Preferences.getHexEditor)
+    
+    def save(self):
+        """
+        Public slot to save the IRC configuration.
+        """
+        Preferences.setHexEditor(
+            "OpenReadOnly", self.readOnlyCheckBox.isChecked())
+        Preferences.setHexEditor(
+            "OpenInOverwriteMode", self.overwriteCheckBox.isChecked())
+        Preferences.setHexEditor(
+            "ShowAddressArea", self.addressAreaCheckBox.isChecked())
+        Preferences.setHexEditor(
+            "AddressAreaWidth", self.addressAreaWidthSpinBox.value())
+        Preferences.setHexEditor(
+            "ShowAsciiArea", self.asciiAreaCheckBox.isChecked())
+        Preferences.setHexEditor(
+            "HighlightChanges", self.highlightingCheckBox.isChecked())
+        Preferences.setHexEditor(
+            "Font", self.monospacedFont)
+        
+        # colours
+        self.saveColours(Preferences.setHexEditor)
+    
+    @pyqtSlot()
+    def on_monospacedFontButton_clicked(self):
+        """
+        Private method used to select the font to be used.
+        """
+        self.monospacedFont = self.selectFont(
+            self.monospacedFontSample, self.monospacedFont,
+            options=MonospacedFontsOption)
+    
+    def polishPage(self):
+        """
+        Public slot to perform some polishing actions.
+        """
+        self.monospacedFontSample.setFont(self.monospacedFont)
+
+
+def create(dlg):
+    """
+    Module function to create the configuration page.
+    
+    @param dlg reference to the configuration dialog
+    @return reference to the instantiated page (ConfigurationPageBase)
+    """
+    page = HexEditorPage()
+    return page
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Preferences/ConfigurationPages/HexEditorPage.ui	Sun Jan 17 15:15:15 2016 +0100
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>HexEditorPage</class>
+ <widget class="QWidget" name="HexEditorPage">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>623</width>
+    <height>634</height>
+   </rect>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QLabel" name="headerLabel">
+     <property name="text">
+      <string>&lt;b&gt;Configure Hex Editor&lt;/b&gt;</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="Line" name="line14">
+     <property name="frameShape">
+      <enum>QFrame::HLine</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Sunken</enum>
+     </property>
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_4">
+     <item>
+      <widget class="QCheckBox" name="readOnlyCheckBox">
+       <property name="toolTip">
+        <string>Select whether files shall be opened in read only mode</string>
+       </property>
+       <property name="text">
+        <string>Open files 'read only'</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QCheckBox" name="overwriteCheckBox">
+       <property name="toolTip">
+        <string>Select whether the editor shall be started in Overwrite mode</string>
+       </property>
+       <property name="text">
+        <string>Overwrite data</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_3">
+     <property name="title">
+      <string>Address Area</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_2">
+      <item row="0" column="0" colspan="4">
+       <widget class="QCheckBox" name="addressAreaCheckBox">
+        <property name="toolTip">
+         <string>Select whether the address area shall be shown</string>
+        </property>
+        <property name="text">
+         <string>Show Address Area</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" colspan="4">
+       <layout class="QHBoxLayout">
+        <item>
+         <widget class="QLabel" name="textLabel1_20">
+          <property name="text">
+           <string>Address Area Width:</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QSpinBox" name="addressAreaWidthSpinBox">
+          <property name="toolTip">
+           <string>Enter the width of the address area in characters</string>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+          </property>
+          <property name="suffix">
+           <string> Chars</string>
+          </property>
+          <property name="minimum">
+           <number>2</number>
+          </property>
+          <property name="maximum">
+           <number>12</number>
+          </property>
+          <property name="singleStep">
+           <number>2</number>
+          </property>
+          <property name="value">
+           <number>4</number>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeType">
+           <enum>QSizePolicy::Expanding</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="TextLabel1_3_4">
+        <property name="text">
+         <string>Foreground:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QPushButton" name="addressAreaForeGroundButton">
+        <property name="minimumSize">
+         <size>
+          <width>100</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="toolTip">
+         <string>Select the foreground colour of the address area</string>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2">
+       <widget class="QLabel" name="TextLabel1_3_2_4">
+        <property name="text">
+         <string>Background:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3">
+       <widget class="QPushButton" name="addressAreaBackGroundButton">
+        <property name="minimumSize">
+         <size>
+          <width>100</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="toolTip">
+         <string>Select the background colour of the address area</string>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_4">
+     <property name="title">
+      <string>ASCII Area</string>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_3">
+      <item>
+       <widget class="QCheckBox" name="asciiAreaCheckBox">
+        <property name="toolTip">
+         <string>Select whether the ASCII area shall be shown</string>
+        </property>
+        <property name="text">
+         <string>Show ASCII Area</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Highlighting</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="0" column="0" colspan="4">
+       <widget class="QCheckBox" name="highlightingCheckBox">
+        <property name="toolTip">
+         <string>Select whether changed data shall be highlighted</string>
+        </property>
+        <property name="text">
+         <string>Highlight Changed Data</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="TextLabel1_3_2">
+        <property name="text">
+         <string>Foreground:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QPushButton" name="highlightingForeGroundButton">
+        <property name="minimumSize">
+         <size>
+          <width>100</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="toolTip">
+         <string>Select the foreground colour for highlighted data</string>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2">
+       <widget class="QLabel" name="TextLabel1_3_2_2">
+        <property name="text">
+         <string>Background:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3">
+       <widget class="QPushButton" name="highlightingBackGroundButton">
+        <property name="minimumSize">
+         <size>
+          <width>100</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="toolTip">
+         <string>Select the background colour for highlighted data</string>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_2">
+     <property name="title">
+      <string>Selection</string>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_2">
+      <item>
+       <widget class="QLabel" name="TextLabel1_3_3">
+        <property name="text">
+         <string>Foreground:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPushButton" name="selectionForeGroundButton">
+        <property name="minimumSize">
+         <size>
+          <width>100</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="toolTip">
+         <string>Select the foreground colour of the selection</string>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLabel" name="TextLabel1_3_2_3">
+        <property name="text">
+         <string>Background:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPushButton" name="selectionBackGroundButton">
+        <property name="minimumSize">
+         <size>
+          <width>100</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="toolTip">
+         <string>Select the background colour of the selection</string>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_5">
+     <property name="title">
+      <string>Font</string>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <widget class="QPushButton" name="monospacedFontButton">
+        <property name="toolTip">
+         <string>Press to select the font to be used (this must be a monospaced font)</string>
+        </property>
+        <property name="text">
+         <string>Monospaced Font</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="monospacedFontSample">
+        <property name="focusPolicy">
+         <enum>Qt::NoFocus</enum>
+        </property>
+        <property name="text">
+         <string notr="true">01 23 45 67 89 ab cd ef 70 81 92 a3 b4 c5 d6 e7 f9</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignHCenter</set>
+        </property>
+        <property name="readOnly">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <spacer>
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>readOnlyCheckBox</tabstop>
+  <tabstop>overwriteCheckBox</tabstop>
+  <tabstop>addressAreaCheckBox</tabstop>
+  <tabstop>addressAreaWidthSpinBox</tabstop>
+  <tabstop>addressAreaForeGroundButton</tabstop>
+  <tabstop>addressAreaBackGroundButton</tabstop>
+  <tabstop>asciiAreaCheckBox</tabstop>
+  <tabstop>highlightingCheckBox</tabstop>
+  <tabstop>highlightingForeGroundButton</tabstop>
+  <tabstop>highlightingBackGroundButton</tabstop>
+  <tabstop>selectionForeGroundButton</tabstop>
+  <tabstop>selectionBackGroundButton</tabstop>
+  <tabstop>monospacedFontButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
--- a/Preferences/ConfigurationPages/ShellPage.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Preferences/ConfigurationPages/ShellPage.py	Sun Jan 17 15:15:15 2016 +0100
@@ -10,12 +10,18 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtWidgets import QFontDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_ShellPage import Ui_ShellPage
 
 import Preferences
 
+try:
+    MonospacedFontsOption = QFontDialog.MonospacedFonts
+except AttributeError:
+    MonospacedFontsOption = QFontDialog.FontDialogOptions(0x10)
+
 
 class ShellPage(ConfigurationPageBase, Ui_ShellPage):
     """
@@ -90,16 +96,18 @@
         Private method used to select the font to be used as the monospaced
         font.
         """
-        self.monospacedFont = \
-            self.selectFont(self.monospacedFontSample, self.monospacedFont)
+        self.monospacedFont = self.selectFont(
+            self.monospacedFontSample, self.monospacedFont,
+            options=MonospacedFontsOption)
         
     @pyqtSlot()
     def on_linenumbersFontButton_clicked(self):
         """
         Private method used to select the font for the editor margins.
         """
-        self.marginsFont = self.selectFont(self.marginsFontSample,
-                                           self.marginsFont)
+        self.marginsFont = self.selectFont(
+            self.marginsFontSample, self.marginsFont,
+            options=MonospacedFontsOption)
         
     def polishPage(self):
         """
--- a/Preferences/ConfigurationPages/TemplatesPage.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Preferences/ConfigurationPages/TemplatesPage.py	Sun Jan 17 15:15:15 2016 +0100
@@ -10,12 +10,18 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtWidgets import QFontDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_TemplatesPage import Ui_TemplatesPage
 
 import Preferences
 
+try:
+    MonospacedFontsOption = QFontDialog.MonospacedFonts
+except AttributeError:
+    MonospacedFontsOption = QFontDialog.FontDialogOptions(0x10)
+
 
 class TemplatesPage(ConfigurationPageBase, Ui_TemplatesPage):
     """
@@ -67,7 +73,8 @@
         Private method used to select the font to be used by the code editor.
         """
         self.editorFont = self.selectFont(
-            self.editorFontSample, self.editorFont)
+            self.editorFontSample, self.editorFont,
+            options=MonospacedFontsOption)
     
 
 def create(dlg):
--- a/Preferences/__init__.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Preferences/__init__.py	Sun Jan 17 15:15:15 2016 +0100
@@ -1188,6 +1188,27 @@
         
         "AskOnShutdown": True,
     }
+    
+    # defaults for Hex Editor
+    hexEditorDefaults = {
+        "HexEditorState": QByteArray(),
+        "AddressAreaWidth": 4,
+        "ShowAddressArea": True,
+        "ShowAsciiArea": True,
+        "OpenInOverwriteMode": True,
+        "OpenReadOnly": False,
+        "HighlightChanges": True,
+        "HighlightingBackGround": QColor(0xff, 0xff, 0x99, 0xff),
+        "HighlightingForeGround": QColor(Qt.black),
+        "SelectionBackGround": QColor("#308cc6"),
+        "SelectionForeGround": QColor(Qt.white),
+        "AddressAreaBackGround": QColor("#efedec"),
+        "AddressAreaForeGround": QColor(Qt.black),
+    }
+    if isWindowsPlatform():
+        hexEditorDefaults["Font"] = "Courier,10,-1,5,50,0,0,0,0,0"
+    else:
+        hexEditorDefaults["Font"] = "Monospace,10,-1,5,50,0,0,0,0,0"
 
 
 def readToolGroups(prefClass=Prefs):
@@ -2942,6 +2963,58 @@
     @param prefClass preferences class used as the storage area
     """
     prefClass.settings.setValue("IRC/" + key, value)
+    
+
+def getHexEditor(key, prefClass=Prefs):
+    """
+    Module function to retrieve the Hex Editor related settings.
+    
+    @param key the key of the value to get
+    @param prefClass preferences class used as the storage area
+    @return the requested user setting
+    """
+    if key in ["AddressAreaWidth"]:
+        return int(prefClass.settings.value(
+            "HexEditor/" + key, prefClass.hexEditorDefaults[key]))
+    elif key in ["ShowAddressArea", "ShowAsciiArea", "OpenInOverwriteMode",
+                 "OpenReadOnly", "HighlightChanges"]:
+        return toBool(prefClass.settings.value(
+            "HexEditor/" + key, prefClass.hexEditorDefaults[key]))
+    elif key in ["HighlightingBackGround", "HighlightingForeGround",
+                 "SelectionBackGround", "SelectionForeGround",
+                 "AddressAreaBackGround", "AddressAreaForeGround"]:
+        return QColor(prefClass.settings.value(
+            "HexEditor/" + key, prefClass.hexEditorDefaults[key]))
+    elif key in ["Font"]:
+        f = QFont()
+        f.fromString(prefClass.settings.value(
+            "HexEditor/" + key, prefClass.hexEditorDefaults[key]))
+        return f
+    else:
+        return prefClass.settings.value(
+            "HexEditor/" + key, prefClass.hexEditorDefaults[key])
+    
+
+def setHexEditor(key, value, prefClass=Prefs):
+    """
+    Module function to store the Hex Editor related settings.
+    
+    @param key the key of the setting to be set
+    @param value the value to be set
+    @param prefClass preferences class used as the storage area
+    """
+    if key in ["HighlightingBackGround", "HighlightingForeGround",
+               "SelectionBackGround", "SelectionForeGround",
+               "AddressAreaBackGround", "AddressAreaForeGround"]:
+        if value.alpha() < 255:
+            val = "#{0:8x}".format(value.rgba())
+        else:
+            val = value.name()
+        prefClass.settings.setValue("HexEditor/" + key, val)
+    elif key in ["Font"]:
+        prefClass.settings.setValue("HexEditor/" + key, value.toString())
+    else:
+        prefClass.settings.setValue("HexEditor/" + key, value)
 
 
 def getGeometry(key, prefClass=Prefs):
--- a/Tools/TrayStarter.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/Tools/TrayStarter.py	Sun Jan 17 15:15:15 2016 +0100
@@ -104,9 +104,6 @@
         self.__menu.addAction(
             UI.PixmapCache.getIcon("unittest.png"),
             self.tr("Unittest"), self.__startUnittest)
-        self.__menu.addAction(
-            UI.PixmapCache.getIcon("ericWeb.png"),
-            self.tr("eric6 Web Browser"), self.__startHelpViewer)
         self.__menu.addSeparator()
         
         self.__menu.addAction(
@@ -144,12 +141,20 @@
         self.__menu.addAction(
             UI.PixmapCache.getIcon("configure.png"),
             self.tr('Preferences'), self.__startPreferences)
+        self.__menu.addSeparator()
+        
         self.__menu.addAction(
             UI.PixmapCache.getIcon("erict.png"),
             self.tr("eric6 IDE"), self.__startEric)
         self.__menu.addAction(
             UI.PixmapCache.getIcon("editor.png"),
             self.tr("eric6 Mini Editor"), self.__startMiniEditor)
+        self.__menu.addAction(
+            UI.PixmapCache.getIcon("hexEditor.png"),
+            self.tr("eric6 Hex Editor"), self.__startHexEditor)
+        self.__menu.addAction(
+            UI.PixmapCache.getIcon("ericWeb.png"),
+            self.tr("eric6 Web Browser"), self.__startHelpViewer)
         self.__menu.addSeparator()
         
         self.__menu.addAction(
@@ -362,6 +367,12 @@
         Private slot to start the eric6 Python re editor dialog.
         """
         self.__startProc("eric6_re.py")
+    
+    def __startHexEditor(self):
+        """
+        Private slot to start the eric6 hex editor dialog.
+        """
+        self.__startProc("eric6_hexeditor.py")
 
     def __showRecentProjectsMenu(self):
         """
--- a/UI/UserInterface.py	Sun Jan 10 13:55:21 2016 +0100
+++ b/UI/UserInterface.py	Sun Jan 17 15:15:15 2016 +0100
@@ -1919,7 +1919,8 @@
             'Start the eric6 Hex Editor'))
         self.hexEditorAct.setWhatsThis(self.tr(
             """<b>Hex Editor</b>"""
-            """<p>Starts the eric6 Hex Editor for editing binary files.</p>"""
+            """<p>Starts the eric6 Hex Editor for viewing or editing"""
+            """ binary files.</p>"""
         ))
         self.hexEditorAct.triggered.connect(self.__openHexEditor)
         self.actions.append(self.hexEditorAct)
@@ -5379,6 +5380,10 @@
             self.bottomSidebar.setDelay(delay)
             self.rightSidebar.setDelay(delay)
         
+        from HexEdit.HexEditMainWindow import HexEditMainWindow
+        for hexEditor in HexEditMainWindow.windows:
+            hexEditor.preferencesChanged()
+        
         self.preferencesChanged.emit()
     
     def __masterPasswordChanged(self, oldPassword, newPassword):
--- a/changelog	Sun Jan 10 13:55:21 2016 +0100
+++ b/changelog	Sun Jan 17 15:15:15 2016 +0100
@@ -10,6 +10,9 @@
   -- Ruby Debugger:
      --- removed the Ruby debugger (the interface doesn't work with recent
          Ruby versions anymore)
+- Hex Editor
+  -- added a nice little hex editor tool (usable as a standalone tool
+     as well)
 - Web Browser
   -- added capability to remember the zoom values for each site (incl. a
      dialog to manage these)
--- a/eric6.e4p	Sun Jan 10 13:55:21 2016 +0100
+++ b/eric6.e4p	Sun Jan 17 15:15:15 2016 +0100
@@ -467,7 +467,9 @@
     <Source>Helpviewer/data/icons_rc.py</Source>
     <Source>Helpviewer/data/javascript_rc.py</Source>
     <Source>HexEdit/HexEditChunks.py</Source>
+    <Source>HexEdit/HexEditGotoWidget.py</Source>
     <Source>HexEdit/HexEditMainWindow.py</Source>
+    <Source>HexEdit/HexEditSearchReplaceWidget.py</Source>
     <Source>HexEdit/HexEditUndoStack.py</Source>
     <Source>HexEdit/HexEditWidget.py</Source>
     <Source>HexEdit/__init__.py</Source>
@@ -796,6 +798,7 @@
     <Source>Preferences/ConfigurationPages/HelpViewersPage.py</Source>
     <Source>Preferences/ConfigurationPages/HelpVirusTotalPage.py</Source>
     <Source>Preferences/ConfigurationPages/HelpWebBrowserPage.py</Source>
+    <Source>Preferences/ConfigurationPages/HexEditorPage.py</Source>
     <Source>Preferences/ConfigurationPages/IconsPage.py</Source>
     <Source>Preferences/ConfigurationPages/IconsPreviewDialog.py</Source>
     <Source>Preferences/ConfigurationPages/InterfacePage.py</Source>
@@ -1370,6 +1373,9 @@
     <Form>Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.ui</Form>
     <Form>Helpviewer/WebPlugins/ClickToFlash/ClickToFlashWhitelistDialog.ui</Form>
     <Form>Helpviewer/ZoomManager/ZoomValuesDialog.ui</Form>
+    <Form>HexEdit/HexEditGotoWidget.ui</Form>
+    <Form>HexEdit/HexEditReplaceWidget.ui</Form>
+    <Form>HexEdit/HexEditSearchWidget.ui</Form>
     <Form>IconEditor/IconSizeDialog.ui</Form>
     <Form>MultiProject/AddProjectDialog.ui</Form>
     <Form>MultiProject/PropertiesDialog.ui</Form>
@@ -1551,6 +1557,7 @@
     <Form>Preferences/ConfigurationPages/HelpViewersPage.ui</Form>
     <Form>Preferences/ConfigurationPages/HelpVirusTotalPage.ui</Form>
     <Form>Preferences/ConfigurationPages/HelpWebBrowserPage.ui</Form>
+    <Form>Preferences/ConfigurationPages/HexEditorPage.ui</Form>
     <Form>Preferences/ConfigurationPages/IconsPage.ui</Form>
     <Form>Preferences/ConfigurationPages/IconsPreviewDialog.ui</Form>
     <Form>Preferences/ConfigurationPages/InterfacePage.ui</Form>
@@ -1650,8 +1657,8 @@
     <Translation>i18n/eric6_ru.ts</Translation>
     <Translation>i18n/eric6_tr.qm</Translation>
     <Translation>i18n/eric6_tr.ts</Translation>
-    <Translation>i18n/eric6_zh_CN.GB2312.qm</Translation>
-    <Translation>i18n/eric6_zh_CN.GB2312.ts</Translation>
+    <Translation>i18n/eric6_zh_CN.qm</Translation>
+    <Translation>i18n/eric6_zh_CN.ts</Translation>
   </Translations>
   <Resources>
     <Resource>Helpviewer/Bookmarks/DefaultBookmarks.qrc</Resource>
--- a/i18n/eric6_cs.ts	Sun Jan 10 13:55:21 2016 +0100
+++ b/i18n/eric6_cs.ts	Sun Jan 17 15:15:15 2016 +0100
@@ -2103,105 +2103,110 @@
 <context>
     <name>Browser</name>
     <message>
-        <location filename="../UI/Browser.py" line="77"/>
+        <location filename="../UI/Browser.py" line="79"/>
         <source>File-Browser</source>
         <translation>Prohlížeč souborů</translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="233"/>
+        <location filename="../UI/Browser.py" line="238"/>
         <source>Open</source>
         <translation>Otevřít</translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="200"/>
+        <location filename="../UI/Browser.py" line="202"/>
         <source>Run unittest...</source>
         <translation>Spustit unittest...</translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="292"/>
-        <source>New toplevel directory...</source>
-        <translation>Nový adresář toplevel...</translation>
-    </message>
-    <message>
-        <location filename="../UI/Browser.py" line="246"/>
-        <source>Add as toplevel directory</source>
-        <translation>Přidat jako toplevel adresář</translation>
-    </message>
-    <message>
-        <location filename="../UI/Browser.py" line="249"/>
-        <source>Remove from toplevel</source>
-        <translation>Odebrat z toplevelu</translation>
-    </message>
-    <message>
-        <location filename="../UI/Browser.py" line="257"/>
-        <source>Find in this directory</source>
-        <translation>Hledat v tomto adresáři</translation>
-    </message>
-    <message>
-        <location filename="../UI/Browser.py" line="556"/>
-        <source>New toplevel directory</source>
-        <translation>Nový toplevel adresář</translation>
-    </message>
-    <message>
-        <location filename="../UI/Browser.py" line="260"/>
-        <source>Find&amp;&amp;Replace in this directory</source>
-        <translation>Najít &amp;&amp; nahradit v tomto adresáři</translation>
-    </message>
-    <message>
         <location filename="../UI/Browser.py" line="297"/>
+        <source>New toplevel directory...</source>
+        <translation>Nový adresář toplevel...</translation>
+    </message>
+    <message>
+        <location filename="../UI/Browser.py" line="251"/>
+        <source>Add as toplevel directory</source>
+        <translation>Přidat jako toplevel adresář</translation>
+    </message>
+    <message>
+        <location filename="../UI/Browser.py" line="254"/>
+        <source>Remove from toplevel</source>
+        <translation>Odebrat z toplevelu</translation>
+    </message>
+    <message>
+        <location filename="../UI/Browser.py" line="262"/>
+        <source>Find in this directory</source>
+        <translation>Hledat v tomto adresáři</translation>
+    </message>
+    <message>
+        <location filename="../UI/Browser.py" line="571"/>
+        <source>New toplevel directory</source>
+        <translation>Nový toplevel adresář</translation>
+    </message>
+    <message>
+        <location filename="../UI/Browser.py" line="265"/>
+        <source>Find&amp;&amp;Replace in this directory</source>
+        <translation>Najít &amp;&amp; nahradit v tomto adresáři</translation>
+    </message>
+    <message>
+        <location filename="../UI/Browser.py" line="302"/>
         <source>Configure...</source>
         <translation>Konfigurovat...</translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="215"/>
+        <location filename="../UI/Browser.py" line="220"/>
         <source>Open in Icon Editor</source>
         <translation>Otevřit v editoru ikon</translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="264"/>
+        <location filename="../UI/Browser.py" line="269"/>
         <source>Copy Path to Clipboard</source>
         <translation>Kopírovat cestu do schránky</translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="253"/>
+        <location filename="../UI/Browser.py" line="258"/>
         <source>Refresh directory</source>
         <translation>Obnovit složku</translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="274"/>
+        <location filename="../UI/Browser.py" line="279"/>
         <source>Goto</source>
         <translation type="unfinished">Jít na</translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="387"/>
+        <location filename="../UI/Browser.py" line="392"/>
         <source>Line {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="98"/>
+        <location filename="../UI/Browser.py" line="100"/>
         <source>&lt;b&gt;The Browser Window&lt;/b&gt;&lt;p&gt;This allows you to easily navigate the hierarchy of directories and files on your system, identify the Python programs and open them up in a Source Viewer window. The window displays several separate hierarchies.&lt;/p&gt;&lt;p&gt;The first hierarchy is only shown if you have opened a program for debugging and its root is the directory containing that program. Usually all of the separate files that make up a Python application are held in the same directory, so this hierarchy gives you easy access to most of what you will need.&lt;/p&gt;&lt;p&gt;The next hierarchy is used to easily navigate the directories that are specified in the Python &lt;tt&gt;sys.path&lt;/tt&gt; variable.&lt;/p&gt;&lt;p&gt;The remaining hierarchies allow you navigate your system as a whole. On a UNIX system there will be a hierarchy with &lt;tt&gt;/&lt;/tt&gt; at its root and another with the user home directory. On a Windows system there will be a hierarchy for each drive on the system.&lt;/p&gt;&lt;p&gt;Python programs (i.e. those with a &lt;tt&gt;.py&lt;/tt&gt; file name suffix) are identified in the hierarchies with a Python icon. The right mouse button will popup a menu which lets you open the file in a Source Viewer window, open the file for debugging or use it for a unittest run.&lt;/p&gt;&lt;p&gt;The context menu of a class, function or method allows you to open the file defining this class, function or method and will ensure, that the correct source line is visible.&lt;/p&gt;&lt;p&gt;Qt-Designer files (i.e. those with a &lt;tt&gt;.ui&lt;/tt&gt; file name suffix) are shown with a Designer icon. The context menu of these files allows you to start Qt-Designer with that file.&lt;/p&gt;&lt;p&gt;Qt-Linguist files (i.e. those with a &lt;tt&gt;.ts&lt;/tt&gt; file name suffix) are shown with a Linguist icon. The context menu of these files allows you to start Qt-Linguist with that file.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="499"/>
+        <location filename="../UI/Browser.py" line="504"/>
         <source>Show Mime-Type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="479"/>
+        <location filename="../UI/Browser.py" line="484"/>
         <source>The mime type of the file could not be determined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="493"/>
+        <location filename="../UI/Browser.py" line="498"/>
         <source>The file has the mime type &lt;b&gt;{0}&lt;/b&gt;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/Browser.py" line="499"/>
+        <location filename="../UI/Browser.py" line="504"/>
         <source>The file has the mime type &lt;b&gt;{0}&lt;/b&gt;.&lt;br/&gt; Shall it be added to the list of text mime types?</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/Browser.py" line="217"/>
+        <source>Open in Hex Editor</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>BrowserModel</name>
@@ -4068,72 +4073,72 @@
 <context>
     <name>ConfigurationWidget</name>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="127"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="129"/>
         <source>Application</source>
         <translation>Aplikace</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="133"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="135"/>
         <source>CORBA</source>
         <translation>CORBA</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="136"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="138"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="139"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="141"/>
         <source>Graphics</source>
         <translation>Grafika</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="142"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="147"/>
         <source>Icons</source>
         <translation>Ikony</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="161"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="166"/>
         <source>Plugin Manager</source>
         <translation>Plugin Manažer</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="351"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="356"/>
         <source>Printer</source>
         <translation>Tiskárna</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="200"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="205"/>
         <source>Python</source>
         <translation>Python</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="171"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="176"/>
         <source>Qt</source>
         <translation>Qt</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="177"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="182"/>
         <source>Shell</source>
         <translation>Shell</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="180"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="185"/>
         <source>Tasks</source>
         <translation>Úlohy</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="183"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="188"/>
         <source>Templates</source>
         <translation>Šablony</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="189"/>
-        <source>Version Control Systems</source>
-        <translation>Version Control Systems</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationDialog.py" line="194"/>
+        <source>Version Control Systems</source>
+        <translation>Version Control Systems</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationDialog.py" line="199"/>
         <source>Debugger</source>
         <translation>Debugger</translation>
     </message>
@@ -4143,231 +4148,236 @@
         <translation type="obsolete">Ruby</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="207"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="212"/>
         <source>Editor</source>
         <translation>Editor</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="210"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="215"/>
         <source>APIs</source>
         <translation>APIs</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="213"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="218"/>
         <source>Autocompletion</source>
         <translation>Autodoplňování</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="221"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="226"/>
         <source>Calltips</source>
         <translation>Rychlé tipy</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="227"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="232"/>
         <source>General</source>
         <translation>Hlavní</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="247"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="252"/>
         <source>Typing</source>
         <translation>Psaní</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="250"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="255"/>
         <source>Exporters</source>
         <translation>Exportery</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="254"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="259"/>
         <source>Highlighters</source>
         <translation>Zvýrazňovače</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="258"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="263"/>
         <source>Filetype Associations</source>
         <translation>Asociace typů souborů</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="262"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="267"/>
         <source>Styles</source>
         <translation>Styly</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="358"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="363"/>
         <source>Help</source>
         <translation>Nápověda</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="361"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="366"/>
         <source>Help Documentation</source>
         <translation>Dokumenty nápovědy</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="285"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="290"/>
         <source>Help Viewers</source>
         <translation>Prohlížeče nápovědy</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="296"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="301"/>
         <source>Project</source>
         <translation>Projekt</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="293"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="298"/>
         <source>Project Viewer</source>
         <translation>Prohlížeč projektu</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="299"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="304"/>
         <source>Multiproject</source>
         <translation>Multiprojekt</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="345"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="350"/>
         <source>Interface</source>
         <translation>Interface</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="310"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="315"/>
         <source>Viewmanager</source>
         <translation>Viewmanager</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="604"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="628"/>
         <source>Configuration Page Error</source>
         <translation>Chyba na straně konfigurace</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="230"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="235"/>
         <source>Filehandling</source>
         <translation>Manažer souborů</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="234"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="239"/>
         <source>Searching</source>
         <translation>Vyhledávání</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="367"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="372"/>
         <source>Appearance</source>
         <translation>Vzhled</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="224"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="229"/>
         <source>QScintilla</source>
         <translation>QScintilla</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="241"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="246"/>
         <source>Style</source>
         <translation>Styl</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="269"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="274"/>
         <source>Properties</source>
         <translation>Nastavení</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="526"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="550"/>
         <source>Preferences</source>
         <translation>Předvolby</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="531"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="555"/>
         <source>Please select an entry of the list 
 to display the configuration page.</source>
         <translation>Pro zobrazení strany s konfigurací vyberte položku ze seznamu.</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="348"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="353"/>
         <source>Network</source>
         <translation>Síť</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="237"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="242"/>
         <source>Spell checking</source>
         <translation>Kontrola pravopisu</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="203"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="208"/>
         <source>Python3</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="604"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="628"/>
         <source>&lt;p&gt;The configuration page &lt;b&gt;{0}&lt;/b&gt; could not be loaded.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Konfigurační stranu &lt;b&gt;{0}&lt;/b&gt; nelze načíst.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="..