Added support for GreaseMonkey scripts.

Sun, 22 Jul 2012 15:32:52 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 22 Jul 2012 15:32:52 +0200
changeset 1953
26aa6fd94dc2
parent 1952
af4103f0e93f
child 1954
5072605ad4dd
child 1955
9e6da33c1c10

Added support for GreaseMonkey scripts.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas file | annotate | diff | comparison | revisions
Debugger/WatchPointViewer.py file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.HelpBrowserWV.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.HelpUtilities.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.HelpWindow.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Network.EmptyNetworkReply.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Network.FollowRedirectReply.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.PersonalInformationManager.PersonalInformationManager.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.GreaseMonkey.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.Network.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.PersonalInformationManager.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.html file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListDelegate.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListWidget.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/__init__.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyJavaScript.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyManager.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyScript.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyUrlMatcher.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/__init__.py file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
Helpviewer/HelpTabWidget.py file | annotate | diff | comparison | revisions
Helpviewer/HelpUtilities.py file | annotate | diff | comparison | revisions
Helpviewer/HelpWindow.py file | annotate | diff | comparison | revisions
Helpviewer/Network/FollowRedirectReply.py file | annotate | diff | comparison | revisions
Helpviewer/Network/NetworkAccessManager.py file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
i18n/eric5_cs.ts file | annotate | diff | comparison | revisions
i18n/eric5_de.qm file | annotate | diff | comparison | revisions
i18n/eric5_de.ts file | annotate | diff | comparison | revisions
i18n/eric5_en.ts file | annotate | diff | comparison | revisions
i18n/eric5_es.ts file | annotate | diff | comparison | revisions
i18n/eric5_fr.ts file | annotate | diff | comparison | revisions
i18n/eric5_it.ts file | annotate | diff | comparison | revisions
i18n/eric5_ru.ts file | annotate | diff | comparison | revisions
i18n/eric5_tr.ts file | annotate | diff | comparison | revisions
i18n/eric5_zh_CN.GB2312.ts file | annotate | diff | comparison | revisions
icons/default/greaseMonkey.png file | annotate | diff | comparison | revisions
icons/default/greaseMonkey48.png file | annotate | diff | comparison | revisions
icons/default/greaseMonkeyScript.png file | annotate | diff | comparison | revisions
icons/default/greaseMonkeyTrash.png file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Tue Jul 17 18:52:23 2012 +0200
+++ b/APIs/Python3/eric5.api	Sun Jul 22 15:32:52 2012 +0200
@@ -2081,6 +2081,73 @@
 eric5.Helpviewer.Feeds.FeedsManager.FeedsManager.openUrl?7
 eric5.Helpviewer.Feeds.FeedsManager.FeedsManager.show?4()
 eric5.Helpviewer.Feeds.FeedsManager.FeedsManager?1(parent=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.GreaseMonkeyAddScriptDialog?1(manager, script, parent=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.ScriptDescriptionRole?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.ScriptRole?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.ScriptVersionRole?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated?4(link)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked?4(item)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog?1(manager, parent=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.CheckBoxSize?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.IconSize?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.ItemWidth?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.MinPadding?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.RemoveIconSize?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.padding?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.paint?4(painter, option, index)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.sizeHint?4(option, index)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate?1(parent=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent?4(evt)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.GreaseMonkeyConfigurationListWidget.mousePressEvent?4(evt)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.GreaseMonkeyConfigurationListWidget.removeItemRequested?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.GreaseMonkeyConfigurationListWidget?1(parent=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.GreaseMonkeyConfigurationScriptInfoDialog?1(script, parent=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.GreaseMonkeyDownloader.finished?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.GreaseMonkeyDownloader?1(request, manager)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.bootstrap_js?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.addScript?4(script)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.allScripts?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.canRunOnScheme?4(scheme)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.connectPage?4(page)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.containsScript?4(fullName)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.createRequest?4(op, request, outgoingData=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.disableScript?4(script)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.downloadScript?4(request)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.enableScript?4(script)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.pageLoadStarted?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.removeScript?4(script)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.requireScripts?4(urlList)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.requireScriptsDirectory?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.saveConfiguration?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.scriptsChanged?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.scriptsDirectory?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.showConfigurationDialog?4(parent=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager?1(parent=None)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.DocumentEnd?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.DocumentStart?7
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.description?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.downloadUrl?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.exclude?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.fileName?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.fullName?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.include?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.isEnabled?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.isValid?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.match?4(urlString)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.name?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.nameSpace?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.script?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.setEnabled?4(enable)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.startAt?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.version?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript?1(manager, path)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.GreaseMonkeyUrlMatcher.match?4(urlString)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.GreaseMonkeyUrlMatcher.pattern?4()
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.GreaseMonkeyUrlMatcher?1(pattern)
+eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.wildcardMatch?4(string, pattern)
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.addBookmark?4()
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.backward?4()
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.backwardAvailable?7
@@ -2117,7 +2184,7 @@
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.reload?4()
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.saveAs?4()
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.search?7
-eric5.Helpviewer.HelpBrowserWV.HelpBrowser.setSource?4(name)
+eric5.Helpviewer.HelpBrowserWV.HelpBrowser.setSource?4(name, requestData=None)
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.source?4()
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.sourceChanged?7
 eric5.Helpviewer.HelpBrowserWV.HelpBrowser.wheelEvent?4(evt)
@@ -2222,6 +2289,9 @@
 eric5.Helpviewer.HelpTocWidget.HelpTocWidget?1(engine, mainWindow, parent=None)
 eric5.Helpviewer.HelpTopicDialog.HelpTopicDialog.link?4()
 eric5.Helpviewer.HelpTopicDialog.HelpTopicDialog?1(parent, keyword, links)
+eric5.Helpviewer.HelpUtilities.ensureUniqueFilename?4(name, appendFormat="({0})")
+eric5.Helpviewer.HelpUtilities.filterCharsFromFilename?4(name)
+eric5.Helpviewer.HelpUtilities.getFileNameFromUrl?4(url)
 eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchEdit.mousePressEvent?4(evt)
 eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchEdit?1(mainWindow, parent=None)
 eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.clear?4()
@@ -2236,6 +2306,7 @@
 eric5.Helpviewer.HelpWindow.HelpWindow._cookieJar?8
 eric5.Helpviewer.HelpWindow.HelpWindow._downloadManager?8
 eric5.Helpviewer.HelpWindow.HelpWindow._feedsManager?8
+eric5.Helpviewer.HelpWindow.HelpWindow._greaseMonkeyManager?8
 eric5.Helpviewer.HelpWindow.HelpWindow._helpEngine?8
 eric5.Helpviewer.HelpWindow.HelpWindow._historyManager?8
 eric5.Helpviewer.HelpWindow.HelpWindow._networkAccessManager?8
@@ -2258,6 +2329,7 @@
 eric5.Helpviewer.HelpWindow.HelpWindow.feedsManager?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.getActions?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.getSourceFileList?4()
+eric5.Helpviewer.HelpWindow.HelpWindow.greaseMonkeyManager?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.helpClosed?7
 eric5.Helpviewer.HelpWindow.HelpWindow.helpEngine?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.helpwindows?7
@@ -2409,9 +2481,19 @@
 eric5.Helpviewer.History.HistoryTreeModel.HistoryTreeModel?1(sourceModel, parent=None)
 eric5.Helpviewer.JavaScriptResources.parseForms_js?7
 eric5.Helpviewer.Network.AboutAccessHandler.AboutAccessHandler.createRequest?4(op, request, outgoingData=None)
+eric5.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply.abort?4()
+eric5.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply.readData?4(maxlen)
+eric5.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply?1(parent=None)
 eric5.Helpviewer.Network.EricAccessHandler.EricAccessHandler._homePage?8
 eric5.Helpviewer.Network.EricAccessHandler.EricAccessHandler._speedDialPage?8
 eric5.Helpviewer.Network.EricAccessHandler.EricAccessHandler.createRequest?4(op, request, outgoingData=None)
+eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.error?4()
+eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.finished?7
+eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.originalUrl?4()
+eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.readAll?4()
+eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.reply?4()
+eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.url?4()
+eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply?1(url, manager, maxRedirects=5)
 eric5.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.createRequest?4(op, request, outgoingData=None)
 eric5.Helpviewer.Network.FtpReply.FtpReply.abort?4()
 eric5.Helpviewer.Network.FtpReply.FtpReply.bytesAvailable?4()
--- a/APIs/Python3/eric5.bas	Tue Jul 17 18:52:23 2012 +0200
+++ b/APIs/Python3/eric5.bas	Sun Jul 22 15:32:52 2012 +0200
@@ -185,6 +185,7 @@
 EditorTypingPage ConfigurationPageBase Ui_EditorTypingPage
 EmailDialog QDialog Ui_EmailDialog
 EmailPage ConfigurationPageBase Ui_EmailPage
+EmptyNetworkReply QNetworkReply
 EricAccessHandler SchemeAccessHandler
 EricapiConfigDialog QDialog Ui_EricapiConfigDialog
 EricapiExecDialog QDialog Ui_EricapiExecDialog
@@ -214,6 +215,7 @@
 FindFileDialog QDialog Ui_FindFileDialog
 FindFileNameDialog QWidget Ui_FindFileNameDialog
 FirefoxImporter BookmarksImporter
+FollowRedirectReply QObject
 FontDialogWizard QObject
 FontDialogWizardDialog QDialog Ui_FontDialogWizardDialog
 FtpAccessHandler SchemeAccessHandler
@@ -226,6 +228,13 @@
 Gpg HgExtension
 GpgProjectHelper HgExtensionProjectHelper
 GraphicsPage ConfigurationPageBase Ui_GraphicsPage
+GreaseMonkeyAddScriptDialog QDialog Ui_GreaseMonkeyAddScriptDialog
+GreaseMonkeyConfigurationDialog QDialog Ui_GreaseMonkeyConfigurationDialog
+GreaseMonkeyConfigurationListDelegate QStyledItemDelegate
+GreaseMonkeyConfigurationListWidget QListWidget
+GreaseMonkeyConfigurationScriptInfoDialog QDialog Ui_GreaseMonkeyConfigurationScriptInfoDialog
+GreaseMonkeyDownloader QObject
+GreaseMonkeyManager QObject
 HelpAppearancePage ConfigurationPageBase Ui_HelpAppearancePage
 HelpBrowser QWebView
 HelpClearPrivateDataDialog QDialog Ui_HelpClearPrivateDataDialog
--- a/Debugger/WatchPointViewer.py	Tue Jul 17 18:52:23 2012 +0200
+++ b/Debugger/WatchPointViewer.py	Sun Jul 22 15:32:52 2012 +0200
@@ -59,7 +59,6 @@
         """
         self.__model = model
         
-        # TODO: Remove these comments once proven ok in daily use
         self.sortingModel = QSortFilterProxyModel()
         self.sortingModel.setDynamicSortFilter(True)
         self.sortingModel.setSourceModel(self.__model)
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Tue Jul 17 18:52:23 2012 +0200
+++ b/Documentation/Help/source.qhp	Sun Jul 22 15:32:52 2012 +0200
@@ -247,6 +247,20 @@
               <section title="eric5.Helpviewer.Feeds.FeedsDialog" ref="eric5.Helpviewer.Feeds.FeedsDialog.html" />
               <section title="eric5.Helpviewer.Feeds.FeedsManager" ref="eric5.Helpviewer.Feeds.FeedsManager.html" />
             </section>
+            <section title="eric5.Helpviewer.GreaseMonkey" ref="index-eric5.Helpviewer.GreaseMonkey.html">
+              <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration" ref="index-eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html">
+                <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html" />
+                <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html" />
+                <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html" />
+                <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html" />
+              </section>
+              <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html" />
+              <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html" />
+              <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html" />
+              <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html" />
+              <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html" />
+              <section title="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html" />
+            </section>
             <section title="eric5.Helpviewer.History" ref="index-eric5.Helpviewer.History.html">
               <section title="eric5.Helpviewer.History.HistoryCompleter" ref="eric5.Helpviewer.History.HistoryCompleter.html" />
               <section title="eric5.Helpviewer.History.HistoryDialog" ref="eric5.Helpviewer.History.HistoryDialog.html" />
@@ -258,7 +272,9 @@
             </section>
             <section title="eric5.Helpviewer.Network" ref="index-eric5.Helpviewer.Network.html">
               <section title="eric5.Helpviewer.Network.AboutAccessHandler" ref="eric5.Helpviewer.Network.AboutAccessHandler.html" />
+              <section title="eric5.Helpviewer.Network.EmptyNetworkReply" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html" />
               <section title="eric5.Helpviewer.Network.EricAccessHandler" ref="eric5.Helpviewer.Network.EricAccessHandler.html" />
+              <section title="eric5.Helpviewer.Network.FollowRedirectReply" ref="eric5.Helpviewer.Network.FollowRedirectReply.html" />
               <section title="eric5.Helpviewer.Network.FtpAccessHandler" ref="eric5.Helpviewer.Network.FtpAccessHandler.html" />
               <section title="eric5.Helpviewer.Network.FtpReply" ref="eric5.Helpviewer.Network.FtpReply.html" />
               <section title="eric5.Helpviewer.Network.NetworkAccessManager" ref="eric5.Helpviewer.Network.NetworkAccessManager.html" />
@@ -362,6 +378,7 @@
             <section title="eric5.Helpviewer.HelpTabWidget" ref="eric5.Helpviewer.HelpTabWidget.html" />
             <section title="eric5.Helpviewer.HelpTocWidget" ref="eric5.Helpviewer.HelpTocWidget.html" />
             <section title="eric5.Helpviewer.HelpTopicDialog" ref="eric5.Helpviewer.HelpTopicDialog.html" />
+            <section title="eric5.Helpviewer.HelpUtilities" ref="eric5.Helpviewer.HelpUtilities.html" />
             <section title="eric5.Helpviewer.HelpWebSearchWidget" ref="eric5.Helpviewer.HelpWebSearchWidget.html" />
             <section title="eric5.Helpviewer.HelpWindow" ref="eric5.Helpviewer.HelpWindow.html" />
             <section title="eric5.Helpviewer.JavaScriptResources" ref="eric5.Helpviewer.JavaScriptResources.html" />
@@ -4075,6 +4092,11 @@
       <keyword name="EmailPage.on_mailUserEdit_textChanged" id="EmailPage.on_mailUserEdit_textChanged" ref="eric5.Preferences.ConfigurationPages.EmailPage.html#EmailPage.on_mailUserEdit_textChanged" />
       <keyword name="EmailPage.on_testButton_clicked" id="EmailPage.on_testButton_clicked" ref="eric5.Preferences.ConfigurationPages.EmailPage.html#EmailPage.on_testButton_clicked" />
       <keyword name="EmailPage.save" id="EmailPage.save" ref="eric5.Preferences.ConfigurationPages.EmailPage.html#EmailPage.save" />
+      <keyword name="EmptyNetworkReply" id="EmptyNetworkReply" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply" />
+      <keyword name="EmptyNetworkReply (Constructor)" id="EmptyNetworkReply (Constructor)" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.__init__" />
+      <keyword name="EmptyNetworkReply (Module)" id="EmptyNetworkReply (Module)" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html" />
+      <keyword name="EmptyNetworkReply.abort" id="EmptyNetworkReply.abort" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.abort" />
+      <keyword name="EmptyNetworkReply.readData" id="EmptyNetworkReply.readData" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.readData" />
       <keyword name="EricAccessHandler" id="EricAccessHandler" ref="eric5.Helpviewer.Network.EricAccessHandler.html#EricAccessHandler" />
       <keyword name="EricAccessHandler (Module)" id="EricAccessHandler (Module)" ref="eric5.Helpviewer.Network.EricAccessHandler.html" />
       <keyword name="EricAccessHandler.__createHomePage" id="EricAccessHandler.__createHomePage" ref="eric5.Helpviewer.Network.EricAccessHandler.html#EricAccessHandler.__createHomePage" />
@@ -4342,6 +4364,15 @@
       <keyword name="FirefoxImporter.setPath" id="FirefoxImporter.setPath" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.setPath" />
       <keyword name="FlexCompleter (Module)" id="FlexCompleter (Module)" ref="eric5.DebugClients.Python.FlexCompleter.html" />
       <keyword name="FlexCompleter (Module)" id="FlexCompleter (Module)" ref="eric5.DebugClients.Python3.FlexCompleter.html" />
+      <keyword name="FollowRedirectReply" id="FollowRedirectReply" ref="eric5.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply" />
+      <keyword name="FollowRedirectReply (Constructor)" id="FollowRedirectReply (Constructor)" ref="eric5.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.__init__" />
+      <keyword name="FollowRedirectReply (Module)" id="FollowRedirectReply (Module)" ref="eric5.Helpviewer.Network.FollowRedirectReply.html" />
+      <keyword name="FollowRedirectReply.__replyFinished" id="FollowRedirectReply.__replyFinished" ref="eric5.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.__replyFinished" />
+      <keyword name="FollowRedirectReply.error" id="FollowRedirectReply.error" ref="eric5.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.error" />
+      <keyword name="FollowRedirectReply.originalUrl" id="FollowRedirectReply.originalUrl" ref="eric5.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.originalUrl" />
+      <keyword name="FollowRedirectReply.readAll" id="FollowRedirectReply.readAll" ref="eric5.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.readAll" />
+      <keyword name="FollowRedirectReply.reply" id="FollowRedirectReply.reply" ref="eric5.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.reply" />
+      <keyword name="FollowRedirectReply.url" id="FollowRedirectReply.url" ref="eric5.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.url" />
       <keyword name="FontDialogWizard" id="FontDialogWizard" ref="eric5.Plugins.PluginWizardQFontDialog.html#FontDialogWizard" />
       <keyword name="FontDialogWizard (Constructor)" id="FontDialogWizard (Constructor)" ref="eric5.Plugins.PluginWizardQFontDialog.html#FontDialogWizard.__init__" />
       <keyword name="FontDialogWizard (Package)" id="FontDialogWizard (Package)" ref="index-eric5.Plugins.WizardPlugins.FontDialogWizard.html" />
@@ -4443,6 +4474,92 @@
       <keyword name="GraphicsPage.polishPage" id="GraphicsPage.polishPage" ref="eric5.Preferences.ConfigurationPages.GraphicsPage.html#GraphicsPage.polishPage" />
       <keyword name="GraphicsPage.save" id="GraphicsPage.save" ref="eric5.Preferences.ConfigurationPages.GraphicsPage.html#GraphicsPage.save" />
       <keyword name="GraphicsUtilities (Module)" id="GraphicsUtilities (Module)" ref="eric5.Graphics.GraphicsUtilities.html" />
+      <keyword name="GreaseMonkey (Package)" id="GreaseMonkey (Package)" ref="index-eric5.Helpviewer.GreaseMonkey.html" />
+      <keyword name="GreaseMonkeyAddScriptDialog" id="GreaseMonkeyAddScriptDialog" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog" />
+      <keyword name="GreaseMonkeyAddScriptDialog (Constructor)" id="GreaseMonkeyAddScriptDialog (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.__init__" />
+      <keyword name="GreaseMonkeyAddScriptDialog (Module)" id="GreaseMonkeyAddScriptDialog (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html" />
+      <keyword name="GreaseMonkeyAddScriptDialog.__accepted" id="GreaseMonkeyAddScriptDialog.__accepted" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.__accepted" />
+      <keyword name="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" id="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" />
+      <keyword name="GreaseMonkeyConfiguration (Package)" id="GreaseMonkeyConfiguration (Package)" ref="index-eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html" />
+      <keyword name="GreaseMonkeyConfigurationDialog" id="GreaseMonkeyConfigurationDialog" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog" />
+      <keyword name="GreaseMonkeyConfigurationDialog (Constructor)" id="GreaseMonkeyConfigurationDialog (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__init__" />
+      <keyword name="GreaseMonkeyConfigurationDialog (Module)" id="GreaseMonkeyConfigurationDialog (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html" />
+      <keyword name="GreaseMonkeyConfigurationDialog.__getScript" id="GreaseMonkeyConfigurationDialog.__getScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__getScript" />
+      <keyword name="GreaseMonkeyConfigurationDialog.__itemChanged" id="GreaseMonkeyConfigurationDialog.__itemChanged" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__itemChanged" />
+      <keyword name="GreaseMonkeyConfigurationDialog.__loadScripts" id="GreaseMonkeyConfigurationDialog.__loadScripts" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__loadScripts" />
+      <keyword name="GreaseMonkeyConfigurationDialog.__removeItem" id="GreaseMonkeyConfigurationDialog.__removeItem" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__removeItem" />
+      <keyword name="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" id="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" />
+      <keyword name="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" id="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" />
+      <keyword name="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" id="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" />
+      <keyword name="GreaseMonkeyConfigurationListDelegate" id="GreaseMonkeyConfigurationListDelegate" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate" />
+      <keyword name="GreaseMonkeyConfigurationListDelegate (Constructor)" id="GreaseMonkeyConfigurationListDelegate (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.__init__" />
+      <keyword name="GreaseMonkeyConfigurationListDelegate (Module)" id="GreaseMonkeyConfigurationListDelegate (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html" />
+      <keyword name="GreaseMonkeyConfigurationListDelegate.padding" id="GreaseMonkeyConfigurationListDelegate.padding" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.padding" />
+      <keyword name="GreaseMonkeyConfigurationListDelegate.paint" id="GreaseMonkeyConfigurationListDelegate.paint" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.paint" />
+      <keyword name="GreaseMonkeyConfigurationListDelegate.sizeHint" id="GreaseMonkeyConfigurationListDelegate.sizeHint" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.sizeHint" />
+      <keyword name="GreaseMonkeyConfigurationListWidget" id="GreaseMonkeyConfigurationListWidget" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget" />
+      <keyword name="GreaseMonkeyConfigurationListWidget (Constructor)" id="GreaseMonkeyConfigurationListWidget (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.__init__" />
+      <keyword name="GreaseMonkeyConfigurationListWidget (Module)" id="GreaseMonkeyConfigurationListWidget (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html" />
+      <keyword name="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" id="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" />
+      <keyword name="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" id="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" />
+      <keyword name="GreaseMonkeyConfigurationListWidget.mousePressEvent" id="GreaseMonkeyConfigurationListWidget.mousePressEvent" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.mousePressEvent" />
+      <keyword name="GreaseMonkeyConfigurationScriptInfoDialog" id="GreaseMonkeyConfigurationScriptInfoDialog" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog" />
+      <keyword name="GreaseMonkeyConfigurationScriptInfoDialog (Constructor)" id="GreaseMonkeyConfigurationScriptInfoDialog (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog.__init__" />
+      <keyword name="GreaseMonkeyConfigurationScriptInfoDialog (Module)" id="GreaseMonkeyConfigurationScriptInfoDialog (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html" />
+      <keyword name="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" id="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" />
+      <keyword name="GreaseMonkeyDownloader" id="GreaseMonkeyDownloader" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader" />
+      <keyword name="GreaseMonkeyDownloader (Constructor)" id="GreaseMonkeyDownloader (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__init__" />
+      <keyword name="GreaseMonkeyDownloader (Module)" id="GreaseMonkeyDownloader (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html" />
+      <keyword name="GreaseMonkeyDownloader.__downloadRequires" id="GreaseMonkeyDownloader.__downloadRequires" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__downloadRequires" />
+      <keyword name="GreaseMonkeyDownloader.__requireDownloaded" id="GreaseMonkeyDownloader.__requireDownloaded" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__requireDownloaded" />
+      <keyword name="GreaseMonkeyDownloader.__scriptDownloaded" id="GreaseMonkeyDownloader.__scriptDownloaded" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__scriptDownloaded" />
+      <keyword name="GreaseMonkeyJavaScript (Module)" id="GreaseMonkeyJavaScript (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html" />
+      <keyword name="GreaseMonkeyManager" id="GreaseMonkeyManager" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager" />
+      <keyword name="GreaseMonkeyManager (Constructor)" id="GreaseMonkeyManager (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__init__" />
+      <keyword name="GreaseMonkeyManager (Module)" id="GreaseMonkeyManager (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html" />
+      <keyword name="GreaseMonkeyManager.__downloaderFinished" id="GreaseMonkeyManager.__downloaderFinished" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__downloaderFinished" />
+      <keyword name="GreaseMonkeyManager.__load" id="GreaseMonkeyManager.__load" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__load" />
+      <keyword name="GreaseMonkeyManager.addScript" id="GreaseMonkeyManager.addScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.addScript" />
+      <keyword name="GreaseMonkeyManager.allScripts" id="GreaseMonkeyManager.allScripts" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.allScripts" />
+      <keyword name="GreaseMonkeyManager.canRunOnScheme" id="GreaseMonkeyManager.canRunOnScheme" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.canRunOnScheme" />
+      <keyword name="GreaseMonkeyManager.connectPage" id="GreaseMonkeyManager.connectPage" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.connectPage" />
+      <keyword name="GreaseMonkeyManager.containsScript" id="GreaseMonkeyManager.containsScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.containsScript" />
+      <keyword name="GreaseMonkeyManager.createRequest" id="GreaseMonkeyManager.createRequest" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.createRequest" />
+      <keyword name="GreaseMonkeyManager.disableScript" id="GreaseMonkeyManager.disableScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.disableScript" />
+      <keyword name="GreaseMonkeyManager.downloadScript" id="GreaseMonkeyManager.downloadScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.downloadScript" />
+      <keyword name="GreaseMonkeyManager.enableScript" id="GreaseMonkeyManager.enableScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.enableScript" />
+      <keyword name="GreaseMonkeyManager.pageLoadStarted" id="GreaseMonkeyManager.pageLoadStarted" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.pageLoadStarted" />
+      <keyword name="GreaseMonkeyManager.removeScript" id="GreaseMonkeyManager.removeScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.removeScript" />
+      <keyword name="GreaseMonkeyManager.requireScripts" id="GreaseMonkeyManager.requireScripts" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.requireScripts" />
+      <keyword name="GreaseMonkeyManager.requireScriptsDirectory" id="GreaseMonkeyManager.requireScriptsDirectory" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.requireScriptsDirectory" />
+      <keyword name="GreaseMonkeyManager.saveConfiguration" id="GreaseMonkeyManager.saveConfiguration" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.saveConfiguration" />
+      <keyword name="GreaseMonkeyManager.scriptsDirectory" id="GreaseMonkeyManager.scriptsDirectory" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.scriptsDirectory" />
+      <keyword name="GreaseMonkeyManager.showConfigurationDialog" id="GreaseMonkeyManager.showConfigurationDialog" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.showConfigurationDialog" />
+      <keyword name="GreaseMonkeyScript" id="GreaseMonkeyScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript" />
+      <keyword name="GreaseMonkeyScript (Constructor)" id="GreaseMonkeyScript (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__init__" />
+      <keyword name="GreaseMonkeyScript (Module)" id="GreaseMonkeyScript (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html" />
+      <keyword name="GreaseMonkeyScript.__parseScript" id="GreaseMonkeyScript.__parseScript" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__parseScript" />
+      <keyword name="GreaseMonkeyScript.description" id="GreaseMonkeyScript.description" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.description" />
+      <keyword name="GreaseMonkeyScript.downloadUrl" id="GreaseMonkeyScript.downloadUrl" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.downloadUrl" />
+      <keyword name="GreaseMonkeyScript.exclude" id="GreaseMonkeyScript.exclude" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.exclude" />
+      <keyword name="GreaseMonkeyScript.fileName" id="GreaseMonkeyScript.fileName" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.fileName" />
+      <keyword name="GreaseMonkeyScript.fullName" id="GreaseMonkeyScript.fullName" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.fullName" />
+      <keyword name="GreaseMonkeyScript.include" id="GreaseMonkeyScript.include" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.include" />
+      <keyword name="GreaseMonkeyScript.isEnabled" id="GreaseMonkeyScript.isEnabled" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.isEnabled" />
+      <keyword name="GreaseMonkeyScript.isValid" id="GreaseMonkeyScript.isValid" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.isValid" />
+      <keyword name="GreaseMonkeyScript.match" id="GreaseMonkeyScript.match" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.match" />
+      <keyword name="GreaseMonkeyScript.name" id="GreaseMonkeyScript.name" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.name" />
+      <keyword name="GreaseMonkeyScript.nameSpace" id="GreaseMonkeyScript.nameSpace" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.nameSpace" />
+      <keyword name="GreaseMonkeyScript.script" id="GreaseMonkeyScript.script" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.script" />
+      <keyword name="GreaseMonkeyScript.setEnabled" id="GreaseMonkeyScript.setEnabled" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.setEnabled" />
+      <keyword name="GreaseMonkeyScript.startAt" id="GreaseMonkeyScript.startAt" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.startAt" />
+      <keyword name="GreaseMonkeyScript.version" id="GreaseMonkeyScript.version" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.version" />
+      <keyword name="GreaseMonkeyUrlMatcher" id="GreaseMonkeyUrlMatcher" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher" />
+      <keyword name="GreaseMonkeyUrlMatcher (Constructor)" id="GreaseMonkeyUrlMatcher (Constructor)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher.__init__" />
+      <keyword name="GreaseMonkeyUrlMatcher (Module)" id="GreaseMonkeyUrlMatcher (Module)" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html" />
+      <keyword name="GreaseMonkeyUrlMatcher.__parsePattern" id="GreaseMonkeyUrlMatcher.__parsePattern" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher.__parsePattern" />
+      <keyword name="GreaseMonkeyUrlMatcher.match" id="GreaseMonkeyUrlMatcher.match" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher.match" />
+      <keyword name="GreaseMonkeyUrlMatcher.pattern" id="GreaseMonkeyUrlMatcher.pattern" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher.pattern" />
       <keyword name="HTMLGenerator" id="HTMLGenerator" ref="eric5.QScintilla.Exporters.ExporterHTML.html#HTMLGenerator" />
       <keyword name="HTMLGenerator (Constructor)" id="HTMLGenerator (Constructor)" ref="eric5.QScintilla.Exporters.ExporterHTML.html#HTMLGenerator.__init__" />
       <keyword name="HTMLGenerator.generate" id="HTMLGenerator.generate" ref="eric5.QScintilla.Exporters.ExporterHTML.html#HTMLGenerator.generate" />
@@ -4673,6 +4790,7 @@
       <keyword name="HelpTopicDialog (Constructor)" id="HelpTopicDialog (Constructor)" ref="eric5.Helpviewer.HelpTopicDialog.html#HelpTopicDialog.__init__" />
       <keyword name="HelpTopicDialog (Module)" id="HelpTopicDialog (Module)" ref="eric5.Helpviewer.HelpTopicDialog.html" />
       <keyword name="HelpTopicDialog.link" id="HelpTopicDialog.link" ref="eric5.Helpviewer.HelpTopicDialog.html#HelpTopicDialog.link" />
+      <keyword name="HelpUtilities (Module)" id="HelpUtilities (Module)" ref="eric5.Helpviewer.HelpUtilities.html" />
       <keyword name="HelpViewersPage" id="HelpViewersPage" ref="eric5.Preferences.ConfigurationPages.HelpViewersPage.html#HelpViewersPage" />
       <keyword name="HelpViewersPage (Constructor)" id="HelpViewersPage (Constructor)" ref="eric5.Preferences.ConfigurationPages.HelpViewersPage.html#HelpViewersPage.__init__" />
       <keyword name="HelpViewersPage (Module)" id="HelpViewersPage (Module)" ref="eric5.Preferences.ConfigurationPages.HelpViewersPage.html" />
@@ -4803,6 +4921,7 @@
       <keyword name="HelpWindow.__showEnginesConfigurationDialog" id="HelpWindow.__showEnginesConfigurationDialog" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showEnginesConfigurationDialog" />
       <keyword name="HelpWindow.__showFeedsManager" id="HelpWindow.__showFeedsManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showFeedsManager" />
       <keyword name="HelpWindow.__showForwardMenu" id="HelpWindow.__showForwardMenu" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showForwardMenu" />
+      <keyword name="HelpWindow.__showGreaseMonkeyConfigDialog" id="HelpWindow.__showGreaseMonkeyConfigDialog" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showGreaseMonkeyConfigDialog" />
       <keyword name="HelpWindow.__showIndexWindow" id="HelpWindow.__showIndexWindow" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showIndexWindow" />
       <keyword name="HelpWindow.__showInstallationError" id="HelpWindow.__showInstallationError" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showInstallationError" />
       <keyword name="HelpWindow.__showNetworkMonitor" id="HelpWindow.__showNetworkMonitor" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showNetworkMonitor" />
@@ -4847,6 +4966,7 @@
       <keyword name="HelpWindow.feedsManager" id="HelpWindow.feedsManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.feedsManager" />
       <keyword name="HelpWindow.getActions" id="HelpWindow.getActions" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.getActions" />
       <keyword name="HelpWindow.getSourceFileList" id="HelpWindow.getSourceFileList" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.getSourceFileList" />
+      <keyword name="HelpWindow.greaseMonkeyManager" id="HelpWindow.greaseMonkeyManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.greaseMonkeyManager" />
       <keyword name="HelpWindow.helpEngine" id="HelpWindow.helpEngine" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.helpEngine" />
       <keyword name="HelpWindow.historyManager" id="HelpWindow.historyManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.historyManager" />
       <keyword name="HelpWindow.icon" id="HelpWindow.icon" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.icon" />
@@ -11574,6 +11694,7 @@
       <keyword name="drawRect" id="drawRect" ref="eric5.Snapshot.SnapshotRegionGrabber.html#drawRect" />
       <keyword name="encode" id="encode" ref="eric5.Utilities.__init__.html#encode" />
       <keyword name="encryptData" id="encryptData" ref="eric5.Utilities.crypto.py3AES.html#encryptData" />
+      <keyword name="ensureUniqueFilename" id="ensureUniqueFilename" ref="eric5.Helpviewer.HelpUtilities.html#ensureUniqueFilename" />
       <keyword name="eric5 (Module)" id="eric5 (Module)" ref="eric5.eric5.html" />
       <keyword name="eric5 (Package)" id="eric5 (Package)" ref="index-eric5.html" />
       <keyword name="eric5_api (Module)" id="eric5_api (Module)" ref="eric5.eric5_api.html" />
@@ -11627,6 +11748,7 @@
       <keyword name="filename_match" id="filename_match" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#filename_match" />
       <keyword name="filename_match" id="filename_match" ref="eric5.UtilitiesPython2.pep8.html#filename_match" />
       <keyword name="fileno" id="fileno" ref="eric5.DebugClients.Ruby.AsyncFile.html#fileno" />
+      <keyword name="filterCharsFromFilename" id="filterCharsFromFilename" ref="eric5.Helpviewer.HelpUtilities.html#filterCharsFromFilename" />
       <keyword name="findPython2Interpreters" id="findPython2Interpreters" ref="eric5.Globals.__init__.html#findPython2Interpreters" />
       <keyword name="find_checks" id="find_checks" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#find_checks" />
       <keyword name="find_checks" id="find_checks" ref="eric5.UtilitiesPython2.pep8.html#find_checks" />
@@ -11671,6 +11793,7 @@
       <keyword name="getExecutablePath" id="getExecutablePath" ref="eric5.Utilities.__init__.html#getExecutablePath" />
       <keyword name="getExistingDirectory" id="getExistingDirectory" ref="eric5.E5Gui.E5FileDialog.html#getExistingDirectory" />
       <keyword name="getExporter" id="getExporter" ref="eric5.QScintilla.Exporters.__init__.html#getExporter" />
+      <keyword name="getFileNameFromUrl" id="getFileNameFromUrl" ref="eric5.Helpviewer.HelpUtilities.html#getFileNameFromUrl" />
       <keyword name="getFlakes" id="getFlakes" ref="eric5.Preferences.__init__.html#getFlakes" />
       <keyword name="getGeometry" id="getGeometry" ref="eric5.Preferences.__init__.html#getGeometry" />
       <keyword name="getGraphics" id="getGraphics" ref="eric5.Preferences.__init__.html#getGraphics" />
@@ -12074,6 +12197,7 @@
       <keyword name="whitespace_before_inline_comment" id="whitespace_before_inline_comment" ref="eric5.UtilitiesPython2.pep8.html#whitespace_before_inline_comment" />
       <keyword name="whitespace_before_parameters" id="whitespace_before_parameters" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#whitespace_before_parameters" />
       <keyword name="whitespace_before_parameters" id="whitespace_before_parameters" ref="eric5.UtilitiesPython2.pep8.html#whitespace_before_parameters" />
+      <keyword name="wildcardMatch" id="wildcardMatch" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#wildcardMatch" />
       <keyword name="win32_GetUserName" id="win32_GetUserName" ref="eric5.Utilities.__init__.html#win32_GetUserName" />
       <keyword name="win32_Kill" id="win32_Kill" ref="eric5.Utilities.__init__.html#win32_Kill" />
       <keyword name="wrapperName" id="wrapperName" ref="eric5.install.html#wrapperName" />
@@ -12280,6 +12404,16 @@
       <file>eric5.Helpviewer.Feeds.FeedEditDialog.html</file>
       <file>eric5.Helpviewer.Feeds.FeedsDialog.html</file>
       <file>eric5.Helpviewer.Feeds.FeedsManager.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html</file>
+      <file>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html</file>
       <file>eric5.Helpviewer.HelpBrowserWV.html</file>
       <file>eric5.Helpviewer.HelpClearPrivateDataDialog.html</file>
       <file>eric5.Helpviewer.HelpDocsInstaller.html</file>
@@ -12291,6 +12425,7 @@
       <file>eric5.Helpviewer.HelpTabWidget.html</file>
       <file>eric5.Helpviewer.HelpTocWidget.html</file>
       <file>eric5.Helpviewer.HelpTopicDialog.html</file>
+      <file>eric5.Helpviewer.HelpUtilities.html</file>
       <file>eric5.Helpviewer.HelpWebSearchWidget.html</file>
       <file>eric5.Helpviewer.HelpWindow.html</file>
       <file>eric5.Helpviewer.History.HistoryCompleter.html</file>
@@ -12302,7 +12437,9 @@
       <file>eric5.Helpviewer.History.HistoryTreeModel.html</file>
       <file>eric5.Helpviewer.JavaScriptResources.html</file>
       <file>eric5.Helpviewer.Network.AboutAccessHandler.html</file>
+      <file>eric5.Helpviewer.Network.EmptyNetworkReply.html</file>
       <file>eric5.Helpviewer.Network.EricAccessHandler.html</file>
+      <file>eric5.Helpviewer.Network.FollowRedirectReply.html</file>
       <file>eric5.Helpviewer.Network.FtpAccessHandler.html</file>
       <file>eric5.Helpviewer.Network.FtpReply.html</file>
       <file>eric5.Helpviewer.Network.NetworkAccessManager.html</file>
@@ -12851,6 +12988,8 @@
       <file>index-eric5.Helpviewer.CookieJar.html</file>
       <file>index-eric5.Helpviewer.Download.html</file>
       <file>index-eric5.Helpviewer.Feeds.html</file>
+      <file>index-eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html</file>
+      <file>index-eric5.Helpviewer.GreaseMonkey.html</file>
       <file>index-eric5.Helpviewer.History.html</file>
       <file>index-eric5.Helpviewer.Network.html</file>
       <file>index-eric5.Helpviewer.OfflineStorage.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog</h1>
+<p>
+Module implementing a dialog for adding GreaseMonkey scripts..
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyAddScriptDialog">GreaseMonkeyAddScriptDialog</a></td>
+<td>Class implementing a dialog for adding GreaseMonkey scripts..</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyAddScriptDialog" ID="GreaseMonkeyAddScriptDialog"></a>
+<h2>GreaseMonkeyAddScriptDialog</h2>
+<p>
+    Class implementing a dialog for adding GreaseMonkey scripts..
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_GreaseMonkeyAddScriptDialog
+<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="#GreaseMonkeyAddScriptDialog.__init__">GreaseMonkeyAddScriptDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyAddScriptDialog.__accepted">__accepted</a></td>
+<td>Private slot handling the accepted signal.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked">on_showScriptSourceButton_clicked</a></td>
+<td>Private slot to show an editor window with the source code.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyAddScriptDialog.__init__" ID="GreaseMonkeyAddScriptDialog.__init__"></a>
+<h4>GreaseMonkeyAddScriptDialog (Constructor)</h4>
+<b>GreaseMonkeyAddScriptDialog</b>(<i>manager, script, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>manager</i></dt>
+<dd>
+reference to the GreaseMonkey manager (GreaseMonkeyManager)
+</dd><dt><i>script</i></dt>
+<dd>
+GreaseMonkey script to be added (GreaseMonkeyScript)
+</dd><dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="GreaseMonkeyAddScriptDialog.__accepted" ID="GreaseMonkeyAddScriptDialog.__accepted"></a>
+<h4>GreaseMonkeyAddScriptDialog.__accepted</h4>
+<b>__accepted</b>(<i></i>)
+<p>
+        Private slot handling the accepted signal.
+</p><a NAME="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" ID="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked"></a>
+<h4>GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked</h4>
+<b>on_showScriptSourceButton_clicked</b>(<i></i>)
+<p>
+        Private slot to show an editor window with the source code.
+</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/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog</h1>
+<p>
+Module implementing the GreaseMonkey scripts configuration dialog.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyConfigurationDialog">GreaseMonkeyConfigurationDialog</a></td>
+<td>Class implementing the GreaseMonkey scripts configuration dialog.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyConfigurationDialog" ID="GreaseMonkeyConfigurationDialog"></a>
+<h2>GreaseMonkeyConfigurationDialog</h2>
+<p>
+    Class implementing the GreaseMonkey scripts configuration dialog.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_GreaseMonkeyConfigurationDialog
+<h3>Class Attributes</h3>
+<table>
+<tr><td>ScriptDescriptionRole</td></tr><tr><td>ScriptRole</td></tr><tr><td>ScriptVersionRole</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyConfigurationDialog.__init__">GreaseMonkeyConfigurationDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationDialog.__getScript">__getScript</a></td>
+<td>Private method to get the script for the given item.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationDialog.__itemChanged">__itemChanged</a></td>
+<td>Private slot to handle changes of a script item.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationDialog.__loadScripts">__loadScripts</a></td>
+<td>Private method to load all the available scripts.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationDialog.__removeItem">__removeItem</a></td>
+<td>Private slot to remove a script item.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated">on_downloadLabel_linkActivated</a></td>
+<td>Private slot to open the userscript.org web site.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked">on_openDirectoryButton_clicked</a></td>
+<td>Private slot to open the GreaseMonkey scripts directory.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked">on_scriptsList_itemDoubleClicked</a></td>
+<td>Private slot to show information about the selected script.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyConfigurationDialog.__init__" ID="GreaseMonkeyConfigurationDialog.__init__"></a>
+<h4>GreaseMonkeyConfigurationDialog (Constructor)</h4>
+<b>GreaseMonkeyConfigurationDialog</b>(<i>manager, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationDialog.__getScript" ID="GreaseMonkeyConfigurationDialog.__getScript"></a>
+<h4>GreaseMonkeyConfigurationDialog.__getScript</h4>
+<b>__getScript</b>(<i>itm</i>)
+<p>
+        Private method to get the script for the given item.
+</p><dl>
+<dt><i>itm</i></dt>
+<dd>
+item to get script for (QListWidgetItem)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the script object (GreaseMonkeyScript)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationDialog.__itemChanged" ID="GreaseMonkeyConfigurationDialog.__itemChanged"></a>
+<h4>GreaseMonkeyConfigurationDialog.__itemChanged</h4>
+<b>__itemChanged</b>(<i>itm</i>)
+<p>
+        Private slot to handle changes of a script item.
+</p><dl>
+<dt><i>itm</i></dt>
+<dd>
+changed item (QListWidgetItem)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationDialog.__loadScripts" ID="GreaseMonkeyConfigurationDialog.__loadScripts"></a>
+<h4>GreaseMonkeyConfigurationDialog.__loadScripts</h4>
+<b>__loadScripts</b>(<i></i>)
+<p>
+        Private method to load all the available scripts.
+</p><a NAME="GreaseMonkeyConfigurationDialog.__removeItem" ID="GreaseMonkeyConfigurationDialog.__removeItem"></a>
+<h4>GreaseMonkeyConfigurationDialog.__removeItem</h4>
+<b>__removeItem</b>(<i>itm</i>)
+<p>
+        Private slot to remove a script item.
+</p><dl>
+<dt><i>itm</i></dt>
+<dd>
+item to be removed (QListWidgetItem)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" ID="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated"></a>
+<h4>GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated</h4>
+<b>on_downloadLabel_linkActivated</b>(<i>link</i>)
+<p>
+        Private slot to open the userscript.org web site.
+</p><a NAME="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" ID="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked"></a>
+<h4>GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked</h4>
+<b>on_openDirectoryButton_clicked</b>(<i></i>)
+<p>
+        Private slot to open the GreaseMonkey scripts directory.
+</p><a NAME="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" ID="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked"></a>
+<h4>GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked</h4>
+<b>on_scriptsList_itemDoubleClicked</b>(<i>item</i>)
+<p>
+        Private slot to show information about the selected script.
+</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/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate</h1>
+<p>
+Module implementing a delegate for the special list widget for GreaseMonkey scripts.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyConfigurationListDelegate">GreaseMonkeyConfigurationListDelegate</a></td>
+<td>Class implementing a delegate for the special list widget for GreaseMonkey scripts.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyConfigurationListDelegate" ID="GreaseMonkeyConfigurationListDelegate"></a>
+<h2>GreaseMonkeyConfigurationListDelegate</h2>
+<p>
+    Class implementing a delegate for the special list widget for GreaseMonkey scripts.
+</p>
+<h3>Derived from</h3>
+QStyledItemDelegate
+<h3>Class Attributes</h3>
+<table>
+<tr><td>CheckBoxSize</td></tr><tr><td>IconSize</td></tr><tr><td>ItemWidth</td></tr><tr><td>MinPadding</td></tr><tr><td>RemoveIconSize</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyConfigurationListDelegate.__init__">GreaseMonkeyConfigurationListDelegate</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationListDelegate.padding">padding</a></td>
+<td>Public method to get the padding used.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationListDelegate.paint">paint</a></td>
+<td>Public method to paint the specified list item.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationListDelegate.sizeHint">sizeHint</a></td>
+<td>Public method to get a size hint for the specified list item.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyConfigurationListDelegate.__init__" ID="GreaseMonkeyConfigurationListDelegate.__init__"></a>
+<h4>GreaseMonkeyConfigurationListDelegate (Constructor)</h4>
+<b>GreaseMonkeyConfigurationListDelegate</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent object (QObject)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationListDelegate.padding" ID="GreaseMonkeyConfigurationListDelegate.padding"></a>
+<h4>GreaseMonkeyConfigurationListDelegate.padding</h4>
+<b>padding</b>(<i></i>)
+<p>
+        Public method to get the padding used.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+padding used (integer)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationListDelegate.paint" ID="GreaseMonkeyConfigurationListDelegate.paint"></a>
+<h4>GreaseMonkeyConfigurationListDelegate.paint</h4>
+<b>paint</b>(<i>painter, option, index</i>)
+<p>
+        Public method to paint the specified list item.
+</p><dl>
+<dt><i>painter</i></dt>
+<dd>
+painter object to paint to (QPainter)
+</dd><dt><i>option</i></dt>
+<dd>
+style option used for painting (QStyleOptionViewItem)
+</dd><dt><i>index</i></dt>
+<dd>
+model index of the item (QModelIndex)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationListDelegate.sizeHint" ID="GreaseMonkeyConfigurationListDelegate.sizeHint"></a>
+<h4>GreaseMonkeyConfigurationListDelegate.sizeHint</h4>
+<b>sizeHint</b>(<i>option, index</i>)
+<p>
+        Public method to get a size hint for the specified list item.
+</p><dl>
+<dt><i>option</i></dt>
+<dd>
+style option used for painting (QStyleOptionViewItem)
+</dd><dt><i>index</i></dt>
+<dd>
+model index of the item (QModelIndex)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+size hint (QSize)
+</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/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget</h1>
+<p>
+Module implementing a special list widget for GreaseMonkey scripts.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyConfigurationListWidget">GreaseMonkeyConfigurationListWidget</a></td>
+<td>Class implementing a special list widget for GreaseMonkey scripts.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyConfigurationListWidget" ID="GreaseMonkeyConfigurationListWidget"></a>
+<h2>GreaseMonkeyConfigurationListWidget</h2>
+<p>
+    Class implementing a special list widget for GreaseMonkey scripts.
+</p>
+<h3>Derived from</h3>
+QListWidget
+<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="#GreaseMonkeyConfigurationListWidget.__init__">GreaseMonkeyConfigurationListWidget</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationListWidget.__containsRemoveIcon">__containsRemoveIcon</a></td>
+<td>Private method to check, if the given position is inside the remove icon.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent">mouseDoubleClickEvent</a></td>
+<td>Private method handling mouse double click events.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationListWidget.mousePressEvent">mousePressEvent</a></td>
+<td>Private method handling presses of mouse buttons.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyConfigurationListWidget.__init__" ID="GreaseMonkeyConfigurationListWidget.__init__"></a>
+<h4>GreaseMonkeyConfigurationListWidget (Constructor)</h4>
+<b>GreaseMonkeyConfigurationListWidget</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" ID="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon"></a>
+<h4>GreaseMonkeyConfigurationListWidget.__containsRemoveIcon</h4>
+<b>__containsRemoveIcon</b>(<i>pos</i>)
+<p>
+        Private method to check, if the given position is inside the remove icon.
+</p><dl>
+<dt><i>pos</i></dt>
+<dd>
+position to check for (QPoint)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" ID="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent"></a>
+<h4>GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent</h4>
+<b>mouseDoubleClickEvent</b>(<i>evt</i>)
+<p>
+        Private method handling mouse double click events.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse press event (QMouseEvent)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationListWidget.mousePressEvent" ID="GreaseMonkeyConfigurationListWidget.mousePressEvent"></a>
+<h4>GreaseMonkeyConfigurationListWidget.mousePressEvent</h4>
+<b>mousePressEvent</b>(<i>evt</i>)
+<p>
+        Private method handling presses of mouse buttons.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse press event (QMouseEvent)
+</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/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog</h1>
+<p>
+Module implementing a dialog to show GreaseMonkey script information.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyConfigurationScriptInfoDialog">GreaseMonkeyConfigurationScriptInfoDialog</a></td>
+<td>Class implementing a dialog to show GreaseMonkey script information.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyConfigurationScriptInfoDialog" ID="GreaseMonkeyConfigurationScriptInfoDialog"></a>
+<h2>GreaseMonkeyConfigurationScriptInfoDialog</h2>
+<p>
+    Class implementing a dialog to show GreaseMonkey script information.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_GreaseMonkeyConfigurationScriptInfoDialog
+<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="#GreaseMonkeyConfigurationScriptInfoDialog.__init__">GreaseMonkeyConfigurationScriptInfoDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked">on_showScriptSourceButton_clicked</a></td>
+<td>Private slot to show an editor window with the script source code.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyConfigurationScriptInfoDialog.__init__" ID="GreaseMonkeyConfigurationScriptInfoDialog.__init__"></a>
+<h4>GreaseMonkeyConfigurationScriptInfoDialog (Constructor)</h4>
+<b>GreaseMonkeyConfigurationScriptInfoDialog</b>(<i>script, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>script</i></dt>
+<dd>
+reference to the script (GreaseMonkeyScript)
+</dd><dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" ID="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked"></a>
+<h4>GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked</h4>
+<b>on_showScriptSourceButton_clicked</b>(<i></i>)
+<p>
+        Private slot to show an editor window with the script source code.
+</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/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader</h1>
+<p>
+Module implementing the downloader for GreaseMonkey scripts.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyDownloader">GreaseMonkeyDownloader</a></td>
+<td>Class implementing the downloader for GreaseMonkey scripts.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyDownloader" ID="GreaseMonkeyDownloader"></a>
+<h2>GreaseMonkeyDownloader</h2>
+<p>
+    Class implementing the downloader for GreaseMonkey scripts.
+</p>
+<h3>Derived from</h3>
+QObject
+<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="#GreaseMonkeyDownloader.__init__">GreaseMonkeyDownloader</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyDownloader.__downloadRequires">__downloadRequires</a></td>
+<td>Private slot to initiate the download of required scripts.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyDownloader.__requireDownloaded">__requireDownloaded</a></td>
+<td>Private slot to handle the finished download of a required script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyDownloader.__scriptDownloaded">__scriptDownloaded</a></td>
+<td>Private slot to handle the finished download of a script.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyDownloader.__init__" ID="GreaseMonkeyDownloader.__init__"></a>
+<h4>GreaseMonkeyDownloader (Constructor)</h4>
+<b>GreaseMonkeyDownloader</b>(<i>request, manager</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>request</i></dt>
+<dd>
+reference to the request object (QNetworkRequest)
+</dd><dt><i>manager</i></dt>
+<dd>
+reference to the GreaseMonkey manager (GreaseMonkeyManager)
+</dd>
+</dl><a NAME="GreaseMonkeyDownloader.__downloadRequires" ID="GreaseMonkeyDownloader.__downloadRequires"></a>
+<h4>GreaseMonkeyDownloader.__downloadRequires</h4>
+<b>__downloadRequires</b>(<i></i>)
+<p>
+        Private slot to initiate the download of required scripts.
+</p><a NAME="GreaseMonkeyDownloader.__requireDownloaded" ID="GreaseMonkeyDownloader.__requireDownloaded"></a>
+<h4>GreaseMonkeyDownloader.__requireDownloaded</h4>
+<b>__requireDownloaded</b>(<i></i>)
+<p>
+        Private slot to handle the finished download of a required script.
+</p><a NAME="GreaseMonkeyDownloader.__scriptDownloaded" ID="GreaseMonkeyDownloader.__scriptDownloaded"></a>
+<h4>GreaseMonkeyDownloader.__scriptDownloaded</h4>
+<b>__scriptDownloaded</b>(<i></i>)
+<p>
+        Private slot to handle the finished download of a script.
+</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/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript</h1>
+<p>
+Module containing some JavaScript resources.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>bootstrap_js</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager</h1>
+<p>
+Module implementing the manager for GreaseMonkey scripts.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyManager">GreaseMonkeyManager</a></td>
+<td>Class implementing the manager for GreaseMonkey scripts.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyManager" ID="GreaseMonkeyManager"></a>
+<h2>GreaseMonkeyManager</h2>
+<p>
+    Class implementing the manager for GreaseMonkey scripts.
+</p>
+<h3>Derived from</h3>
+QObject
+<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="#GreaseMonkeyManager.__init__">GreaseMonkeyManager</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.__downloaderFinished">__downloaderFinished</a></td>
+<td>Private slot to handle the completion of a script download.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.__load">__load</a></td>
+<td>Private slot to load the available scripts into the manager.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.addScript">addScript</a></td>
+<td>Public method to add a script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.allScripts">allScripts</a></td>
+<td>Public method to get a list of all scripts.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.canRunOnScheme">canRunOnScheme</a></td>
+<td>Public method to check, if scripts can be run on a scheme.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.connectPage">connectPage</a></td>
+<td>Public method to allow the GreaseMonkey manager to connect to the page.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.containsScript">containsScript</a></td>
+<td>Public method to check, if the given script exists.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.createRequest">createRequest</a></td>
+<td>Public method to create a request.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.disableScript">disableScript</a></td>
+<td>Public method to disable the given script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.downloadScript">downloadScript</a></td>
+<td>Public method to download a GreaseMonkey script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.enableScript">enableScript</a></td>
+<td>Public method to enable the given script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.pageLoadStarted">pageLoadStarted</a></td>
+<td>Public slot to handle the start of loading a page.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.removeScript">removeScript</a></td>
+<td>Public method to remove a script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.requireScripts">requireScripts</a></td>
+<td>Public method to get the sources of all required scripts.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.requireScriptsDirectory">requireScriptsDirectory</a></td>
+<td>Public method to get the path of the scripts directory.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.saveConfiguration">saveConfiguration</a></td>
+<td>Public method to save the configuration.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.scriptsDirectory">scriptsDirectory</a></td>
+<td>Public method to get the path of the scripts directory.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyManager.showConfigurationDialog">showConfigurationDialog</a></td>
+<td>Public method to show the configuration dialog.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyManager.__init__" ID="GreaseMonkeyManager.__init__"></a>
+<h4>GreaseMonkeyManager (Constructor)</h4>
+<b>GreaseMonkeyManager</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent object (QObject)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.__downloaderFinished" ID="GreaseMonkeyManager.__downloaderFinished"></a>
+<h4>GreaseMonkeyManager.__downloaderFinished</h4>
+<b>__downloaderFinished</b>(<i></i>)
+<p>
+        Private slot to handle the completion of a script download.
+</p><a NAME="GreaseMonkeyManager.__load" ID="GreaseMonkeyManager.__load"></a>
+<h4>GreaseMonkeyManager.__load</h4>
+<b>__load</b>(<i></i>)
+<p>
+        Private slot to load the available scripts into the manager.
+</p><a NAME="GreaseMonkeyManager.addScript" ID="GreaseMonkeyManager.addScript"></a>
+<h4>GreaseMonkeyManager.addScript</h4>
+<b>addScript</b>(<i>script</i>)
+<p>
+        Public method to add a script.
+</p><dl>
+<dt><i>script</i></dt>
+<dd>
+script to be added (GreaseMonkeyScript)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.allScripts" ID="GreaseMonkeyManager.allScripts"></a>
+<h4>GreaseMonkeyManager.allScripts</h4>
+<b>allScripts</b>(<i></i>)
+<p>
+        Public method to get a list of all scripts.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+list of all scripts (list of GreaseMonkeyScript)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.canRunOnScheme" ID="GreaseMonkeyManager.canRunOnScheme"></a>
+<h4>GreaseMonkeyManager.canRunOnScheme</h4>
+<b>canRunOnScheme</b>(<i>scheme</i>)
+<p>
+        Public method to check, if scripts can be run on a scheme.
+</p><dl>
+<dt><i>scheme</i></dt>
+<dd>
+scheme to check (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating, that scripts can be run (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.connectPage" ID="GreaseMonkeyManager.connectPage"></a>
+<h4>GreaseMonkeyManager.connectPage</h4>
+<b>connectPage</b>(<i>page</i>)
+<p>
+        Public method to allow the GreaseMonkey manager to connect to the page.
+</p><dl>
+<dt><i>page</i></dt>
+<dd>
+reference to the web page (HelpWebPage)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.containsScript" ID="GreaseMonkeyManager.containsScript"></a>
+<h4>GreaseMonkeyManager.containsScript</h4>
+<b>containsScript</b>(<i>fullName</i>)
+<p>
+        Public method to check, if the given script exists.
+</p><dl>
+<dt><i>fullName</i></dt>
+<dd>
+full name of the script (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the existence (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.createRequest" ID="GreaseMonkeyManager.createRequest"></a>
+<h4>GreaseMonkeyManager.createRequest</h4>
+<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
+<p>
+        Public method to create a request.
+</p><dl>
+<dt><i>op</i></dt>
+<dd>
+the operation to be performed (QNetworkAccessManager.Operation)
+</dd><dt><i>request</i></dt>
+<dd>
+reference to the request object (QNetworkRequest)
+</dd><dt><i>outgoingData</i></dt>
+<dd>
+reference to an IODevice containing data to be sent
+            (QIODevice)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the created reply object (QNetworkReply)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.disableScript" ID="GreaseMonkeyManager.disableScript"></a>
+<h4>GreaseMonkeyManager.disableScript</h4>
+<b>disableScript</b>(<i>script</i>)
+<p>
+        Public method to disable the given script.
+</p><dl>
+<dt><i>script</i></dt>
+<dd>
+script to be disabled (GreaseMonkeyScript)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.downloadScript" ID="GreaseMonkeyManager.downloadScript"></a>
+<h4>GreaseMonkeyManager.downloadScript</h4>
+<b>downloadScript</b>(<i>request</i>)
+<p>
+        Public method to download a GreaseMonkey script.
+</p><dl>
+<dt><i>request</i></dt>
+<dd>
+reference to the request (QNetworkRequest)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.enableScript" ID="GreaseMonkeyManager.enableScript"></a>
+<h4>GreaseMonkeyManager.enableScript</h4>
+<b>enableScript</b>(<i>script</i>)
+<p>
+        Public method to enable the given script.
+</p><dl>
+<dt><i>script</i></dt>
+<dd>
+script to be enabled (GreaseMonkeyScript)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.pageLoadStarted" ID="GreaseMonkeyManager.pageLoadStarted"></a>
+<h4>GreaseMonkeyManager.pageLoadStarted</h4>
+<b>pageLoadStarted</b>(<i></i>)
+<p>
+        Public slot to handle the start of loading a page.
+</p><a NAME="GreaseMonkeyManager.removeScript" ID="GreaseMonkeyManager.removeScript"></a>
+<h4>GreaseMonkeyManager.removeScript</h4>
+<b>removeScript</b>(<i>script</i>)
+<p>
+        Public method to remove a script.
+</p><dl>
+<dt><i>script</i></dt>
+<dd>
+script to be removed (GreaseMonkeyScript)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.requireScripts" ID="GreaseMonkeyManager.requireScripts"></a>
+<h4>GreaseMonkeyManager.requireScripts</h4>
+<b>requireScripts</b>(<i>urlList</i>)
+<p>
+        Public method to get the sources of all required scripts.
+</p><dl>
+<dt><i>urlList</i></dt>
+<dd>
+list of URLs (list of string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+sources of all required scripts (string)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.requireScriptsDirectory" ID="GreaseMonkeyManager.requireScriptsDirectory"></a>
+<h4>GreaseMonkeyManager.requireScriptsDirectory</h4>
+<b>requireScriptsDirectory</b>(<i></i>)
+<p>
+        Public method to get the path of the scripts directory.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+path of the scripts directory (string)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.saveConfiguration" ID="GreaseMonkeyManager.saveConfiguration"></a>
+<h4>GreaseMonkeyManager.saveConfiguration</h4>
+<b>saveConfiguration</b>(<i></i>)
+<p>
+        Public method to save the configuration.
+</p><a NAME="GreaseMonkeyManager.scriptsDirectory" ID="GreaseMonkeyManager.scriptsDirectory"></a>
+<h4>GreaseMonkeyManager.scriptsDirectory</h4>
+<b>scriptsDirectory</b>(<i></i>)
+<p>
+        Public method to get the path of the scripts directory.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+path of the scripts directory (string)
+</dd>
+</dl><a NAME="GreaseMonkeyManager.showConfigurationDialog" ID="GreaseMonkeyManager.showConfigurationDialog"></a>
+<h4>GreaseMonkeyManager.showConfigurationDialog</h4>
+<b>showConfigurationDialog</b>(<i>parent=None</i>)
+<p>
+        Public method to show the configuration dialog.
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</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/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript</h1>
+<p>
+Module implementing the GreaseMonkey script.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyScript">GreaseMonkeyScript</a></td>
+<td>Class implementing the GreaseMonkey script.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyScript" ID="GreaseMonkeyScript"></a>
+<h2>GreaseMonkeyScript</h2>
+<p>
+    Class implementing the GreaseMonkey script.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+<table>
+<tr><td>DocumentEnd</td></tr><tr><td>DocumentStart</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyScript.__init__">GreaseMonkeyScript</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.__parseScript">__parseScript</a></td>
+<td>Private method to parse the given script and populate the data structure.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.description">description</a></td>
+<td>Public method to get the description of the script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.downloadUrl">downloadUrl</a></td>
+<td>Public method to get the download URL of the script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.exclude">exclude</a></td>
+<td>Public method to get the list of excluded URLs.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.fileName">fileName</a></td>
+<td>Public method to get the path of the Javascript file.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.fullName">fullName</a></td>
+<td>Public method to get the full name of the script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.include">include</a></td>
+<td>Public method to get the list of included URLs.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.isEnabled">isEnabled</a></td>
+<td>Public method to check, if the script is enabled.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.isValid">isValid</a></td>
+<td>Public method to check the validity of the script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.match">match</a></td>
+<td>Public method to check, if the script matches the given URL.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.name">name</a></td>
+<td>Public method to get the name of the script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.nameSpace">nameSpace</a></td>
+<td>Public method to get the name space of the script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.script">script</a></td>
+<td>Public method to get the Javascript source.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.setEnabled">setEnabled</a></td>
+<td>Public method to enable a script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.startAt">startAt</a></td>
+<td>Public method to get the start point of the script.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyScript.version">version</a></td>
+<td>Public method to get the version of the script.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyScript.__init__" ID="GreaseMonkeyScript.__init__"></a>
+<h4>GreaseMonkeyScript (Constructor)</h4>
+<b>GreaseMonkeyScript</b>(<i>manager, path</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>manager</i></dt>
+<dd>
+reference to the manager object (GreaseMonkeyManager)
+</dd><dt><i>path</i></dt>
+<dd>
+path of the Javascript file (string)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.__parseScript" ID="GreaseMonkeyScript.__parseScript"></a>
+<h4>GreaseMonkeyScript.__parseScript</h4>
+<b>__parseScript</b>(<i>path</i>)
+<p>
+        Private method to parse the given script and populate the data structure.
+</p><dl>
+<dt><i>path</i></dt>
+<dd>
+path of the Javascript file (string)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.description" ID="GreaseMonkeyScript.description"></a>
+<h4>GreaseMonkeyScript.description</h4>
+<b>description</b>(<i></i>)
+<p>
+        Public method to get the description of the script.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+description of the script (string)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.downloadUrl" ID="GreaseMonkeyScript.downloadUrl"></a>
+<h4>GreaseMonkeyScript.downloadUrl</h4>
+<b>downloadUrl</b>(<i></i>)
+<p>
+        Public method to get the download URL of the script.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+download URL of the script (QUrl)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.exclude" ID="GreaseMonkeyScript.exclude"></a>
+<h4>GreaseMonkeyScript.exclude</h4>
+<b>exclude</b>(<i></i>)
+<p>
+        Public method to get the list of excluded URLs.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+list of excluded URLs (list of strings)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.fileName" ID="GreaseMonkeyScript.fileName"></a>
+<h4>GreaseMonkeyScript.fileName</h4>
+<b>fileName</b>(<i></i>)
+<p>
+        Public method to get the path of the Javascript file.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+path path of the Javascript file (string)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.fullName" ID="GreaseMonkeyScript.fullName"></a>
+<h4>GreaseMonkeyScript.fullName</h4>
+<b>fullName</b>(<i></i>)
+<p>
+        Public method to get the full name of the script.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+full name of the script (string)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.include" ID="GreaseMonkeyScript.include"></a>
+<h4>GreaseMonkeyScript.include</h4>
+<b>include</b>(<i></i>)
+<p>
+        Public method to get the list of included URLs.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+list of included URLs (list of strings)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.isEnabled" ID="GreaseMonkeyScript.isEnabled"></a>
+<h4>GreaseMonkeyScript.isEnabled</h4>
+<b>isEnabled</b>(<i></i>)
+<p>
+        Public method to check, if the script is enabled.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating an enabled state (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.isValid" ID="GreaseMonkeyScript.isValid"></a>
+<h4>GreaseMonkeyScript.isValid</h4>
+<b>isValid</b>(<i></i>)
+<p>
+        Public method to check the validity of the script.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a valid script (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.match" ID="GreaseMonkeyScript.match"></a>
+<h4>GreaseMonkeyScript.match</h4>
+<b>match</b>(<i>urlString</i>)
+<p>
+        Public method to check, if the script matches the given URL.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a match (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.name" ID="GreaseMonkeyScript.name"></a>
+<h4>GreaseMonkeyScript.name</h4>
+<b>name</b>(<i></i>)
+<p>
+        Public method to get the name of the script.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+name of the script (string)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.nameSpace" ID="GreaseMonkeyScript.nameSpace"></a>
+<h4>GreaseMonkeyScript.nameSpace</h4>
+<b>nameSpace</b>(<i></i>)
+<p>
+        Public method to get the name space of the script.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+name space of the script (string)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.script" ID="GreaseMonkeyScript.script"></a>
+<h4>GreaseMonkeyScript.script</h4>
+<b>script</b>(<i></i>)
+<p>
+        Public method to get the Javascript source.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+Javascript source (string)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.setEnabled" ID="GreaseMonkeyScript.setEnabled"></a>
+<h4>GreaseMonkeyScript.setEnabled</h4>
+<b>setEnabled</b>(<i>enable</i>)
+<p>
+        Public method to enable a script.
+</p><dl>
+<dt><i>enable</i></dt>
+<dd>
+flag indicating the new enabled state (boolean)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.startAt" ID="GreaseMonkeyScript.startAt"></a>
+<h4>GreaseMonkeyScript.startAt</h4>
+<b>startAt</b>(<i></i>)
+<p>
+        Public method to get the start point of the script.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+start point of the script (DocumentStart or DocumentEnd)
+</dd>
+</dl><a NAME="GreaseMonkeyScript.version" ID="GreaseMonkeyScript.version"></a>
+<h4>GreaseMonkeyScript.version</h4>
+<b>version</b>(<i></i>)
+<p>
+        Public method to get the version of the script.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+version of the script (string)
+</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/eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher</h1>
+<p>
+Module implementing the GreaseMonkey URL matcher.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GreaseMonkeyUrlMatcher">GreaseMonkeyUrlMatcher</a></td>
+<td>Class implementing the GreaseMonkey URL matcher.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#wildcardMatch">wildcardMatch</a></td>
+<td>Module function implementing a special wildcard matcher.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="GreaseMonkeyUrlMatcher" ID="GreaseMonkeyUrlMatcher"></a>
+<h2>GreaseMonkeyUrlMatcher</h2>
+<p>
+    Class implementing the GreaseMonkey URL matcher.
+</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="#GreaseMonkeyUrlMatcher.__init__">GreaseMonkeyUrlMatcher</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyUrlMatcher.__parsePattern">__parsePattern</a></td>
+<td>Private method to parse the match pattern.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyUrlMatcher.match">match</a></td>
+<td>Public method to match the given URL.</td>
+</tr><tr>
+<td><a href="#GreaseMonkeyUrlMatcher.pattern">pattern</a></td>
+<td>Public method to get the match pattern.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GreaseMonkeyUrlMatcher.__init__" ID="GreaseMonkeyUrlMatcher.__init__"></a>
+<h4>GreaseMonkeyUrlMatcher (Constructor)</h4>
+<b>GreaseMonkeyUrlMatcher</b>(<i>pattern</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>pattern</i></dt>
+<dd>
+pattern to be used for the matching (string)
+</dd>
+</dl><a NAME="GreaseMonkeyUrlMatcher.__parsePattern" ID="GreaseMonkeyUrlMatcher.__parsePattern"></a>
+<h4>GreaseMonkeyUrlMatcher.__parsePattern</h4>
+<b>__parsePattern</b>(<i>pattern</i>)
+<p>
+        Private method to parse the match pattern.
+</p><dl>
+<dt><i>pattern</i></dt>
+<dd>
+match pattern to be used (string)
+</dd>
+</dl><a NAME="GreaseMonkeyUrlMatcher.match" ID="GreaseMonkeyUrlMatcher.match"></a>
+<h4>GreaseMonkeyUrlMatcher.match</h4>
+<b>match</b>(<i>urlString</i>)
+<p>
+        Public method to match the given URL.
+</p><dl>
+<dt><i>urlString</i></dt>
+<dd>
+URL to match (string)
+</dd>
+</dl><a NAME="GreaseMonkeyUrlMatcher.pattern" ID="GreaseMonkeyUrlMatcher.pattern"></a>
+<h4>GreaseMonkeyUrlMatcher.pattern</h4>
+<b>pattern</b>(<i></i>)
+<p>
+        Public method to get the match pattern.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+match pattern (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="wildcardMatch" ID="wildcardMatch"></a>
+<h2>wildcardMatch</h2>
+<b>wildcardMatch</b>(<i>string, pattern</i>)
+<p>
+    Module function implementing a special wildcard matcher.
+</p><dl>
+<dt><i>string</i></dt>
+<dd>
+string to match (string)
+</dd><dt><i>pattern</i></dt>
+<dd>
+pattern to be used (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Helpviewer.HelpBrowserWV.html	Tue Jul 17 18:52:23 2012 +0200
+++ b/Documentation/Source/eric5.Helpviewer.HelpBrowserWV.html	Sun Jul 22 15:32:52 2012 +0200
@@ -1033,13 +1033,17 @@
         Public method to save the current page to a file.
 </p><a NAME="HelpBrowser.setSource" ID="HelpBrowser.setSource"></a>
 <h4>HelpBrowser.setSource</h4>
-<b>setSource</b>(<i>name</i>)
+<b>setSource</b>(<i>name, requestData=None</i>)
 <p>
         Public method used to set the source to be displayed.
 </p><dl>
 <dt><i>name</i></dt>
 <dd>
 filename to be shown (QUrl)
+</dd><dt><i>requestData</i></dt>
+<dd>
+tuple containing the request data (QNetworkRequest,
+            QNetworkAccessManager.Operation, QByteArray)
 </dd>
 </dl><a NAME="HelpBrowser.source" ID="HelpBrowser.source"></a>
 <h4>HelpBrowser.source</h4>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.HelpUtilities.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.HelpUtilities</title>
+<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>eric5.Helpviewer.HelpUtilities</h1>
+<p>
+Module implementing some global helper functions.
+</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="#ensureUniqueFilename">ensureUniqueFilename</a></td>
+<td>Module function to generate an unique file name based on a pattern.</td>
+</tr><tr>
+<td><a href="#filterCharsFromFilename">filterCharsFromFilename</a></td>
+<td>Module function to filter illegal characters.</td>
+</tr><tr>
+<td><a href="#getFileNameFromUrl">getFileNameFromUrl</a></td>
+<td>Module function to generate a file name based on the given URL.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="ensureUniqueFilename" ID="ensureUniqueFilename"></a>
+<h2>ensureUniqueFilename</h2>
+<b>ensureUniqueFilename</b>(<i>name, appendFormat="({0})"</i>)
+<p>
+    Module function to generate an unique file name based on a pattern.
+</p><dl>
+<dt><i>name</i></dt>
+<dd>
+desired file name (string)
+</dd><dt><i>appendFormat</i></dt>
+<dd>
+format pattern to be used to make the unique name (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+unique file name
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="filterCharsFromFilename" ID="filterCharsFromFilename"></a>
+<h2>filterCharsFromFilename</h2>
+<b>filterCharsFromFilename</b>(<i>name</i>)
+<p>
+    Module function to filter illegal characters.
+</p><dl>
+<dt><i>name</i></dt>
+<dd>
+name to be sanitized (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+sanitized name (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="getFileNameFromUrl" ID="getFileNameFromUrl"></a>
+<h2>getFileNameFromUrl</h2>
+<b>getFileNameFromUrl</b>(<i>url</i>)
+<p>
+    Module function to generate a file name based on the given URL.
+</p><dl>
+<dt><i>url</i></dt>
+<dd>
+URL (QUrl)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+file name (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Helpviewer.HelpWindow.html	Tue Jul 17 18:52:23 2012 +0200
+++ b/Documentation/Source/eric5.Helpviewer.HelpWindow.html	Sun Jul 22 15:32:52 2012 +0200
@@ -59,7 +59,7 @@
 QMainWindow
 <h3>Class Attributes</h3>
 <table>
-<tr><td>_adblockManager</td></tr><tr><td>_bookmarksManager</td></tr><tr><td>_cookieJar</td></tr><tr><td>_downloadManager</td></tr><tr><td>_feedsManager</td></tr><tr><td>_helpEngine</td></tr><tr><td>_historyManager</td></tr><tr><td>_networkAccessManager</td></tr><tr><td>_passwordManager</td></tr><tr><td>_personalInformationManager</td></tr><tr><td>_speedDial</td></tr><tr><td>_syncManager</td></tr><tr><td>_userAgentsManager</td></tr><tr><td>helpwindows</td></tr><tr><td>maxMenuFilePathLen</td></tr>
+<tr><td>_adblockManager</td></tr><tr><td>_bookmarksManager</td></tr><tr><td>_cookieJar</td></tr><tr><td>_downloadManager</td></tr><tr><td>_feedsManager</td></tr><tr><td>_greaseMonkeyManager</td></tr><tr><td>_helpEngine</td></tr><tr><td>_historyManager</td></tr><tr><td>_networkAccessManager</td></tr><tr><td>_passwordManager</td></tr><tr><td>_personalInformationManager</td></tr><tr><td>_speedDial</td></tr><tr><td>_syncManager</td></tr><tr><td>_userAgentsManager</td></tr><tr><td>helpwindows</td></tr><tr><td>maxMenuFilePathLen</td></tr>
 </table>
 <h3>Class Methods</h3>
 <table>
@@ -79,6 +79,9 @@
 <td><a href="#HelpWindow.feedsManager">feedsManager</a></td>
 <td>Class method to get a reference to the RSS feeds manager.</td>
 </tr><tr>
+<td><a href="#HelpWindow.greaseMonkeyManager">greaseMonkeyManager</a></td>
+<td>Class method to get a reference to the GreaseMonkey manager.</td>
+</tr><tr>
 <td><a href="#HelpWindow.helpEngine">helpEngine</a></td>
 <td>Class method to get a reference to the help engine.</td>
 </tr><tr>
@@ -299,6 +302,9 @@
 <td><a href="#HelpWindow.__showForwardMenu">__showForwardMenu</a></td>
 <td>Private slot showing the forwards navigation menu.</td>
 </tr><tr>
+<td><a href="#HelpWindow.__showGreaseMonkeyConfigDialog">__showGreaseMonkeyConfigDialog</a></td>
+<td>Private slot to show the GreaseMonkey scripts configuration dialog.</td>
+</tr><tr>
 <td><a href="#HelpWindow.__showIndexWindow">__showIndexWindow</a></td>
 <td>Private method to show the index window.</td>
 </tr><tr>
@@ -531,6 +537,16 @@
 <dd>
 reference to the RSS feeds manager (FeedsManager)
 </dd>
+</dl><a NAME="HelpWindow.greaseMonkeyManager" ID="HelpWindow.greaseMonkeyManager"></a>
+<h4>HelpWindow.greaseMonkeyManager (class method)</h4>
+<b>greaseMonkeyManager</b>(<i></i>)
+<p>
+        Class method to get a reference to the GreaseMonkey manager.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the GreaseMonkey manager (GreaseMonkeyManager)
+</dd>
 </dl><a NAME="HelpWindow.helpEngine" ID="HelpWindow.helpEngine"></a>
 <h4>HelpWindow.helpEngine (class method)</h4>
 <b>helpEngine</b>(<i></i>)
@@ -1034,6 +1050,11 @@
 <b>__showForwardMenu</b>(<i></i>)
 <p>
         Private slot showing the forwards navigation menu.
+</p><a NAME="HelpWindow.__showGreaseMonkeyConfigDialog" ID="HelpWindow.__showGreaseMonkeyConfigDialog"></a>
+<h4>HelpWindow.__showGreaseMonkeyConfigDialog</h4>
+<b>__showGreaseMonkeyConfigDialog</b>(<i></i>)
+<p>
+        Private slot to show the GreaseMonkey scripts configuration dialog.
 </p><a NAME="HelpWindow.__showIndexWindow" ID="HelpWindow.__showIndexWindow"></a>
 <h4>HelpWindow.__showIndexWindow</h4>
 <b>__showIndexWindow</b>(<i></i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.Network.EmptyNetworkReply.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.Network.EmptyNetworkReply</title>
+<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>eric5.Helpviewer.Network.EmptyNetworkReply</h1>
+<p>
+Module implementing a network reply class for an empty reply
+(i.e. request was handle other way).
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#EmptyNetworkReply">EmptyNetworkReply</a></td>
+<td>Class implementing an empty network reply.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="EmptyNetworkReply" ID="EmptyNetworkReply"></a>
+<h2>EmptyNetworkReply</h2>
+<p>
+    Class implementing an empty network reply.
+</p>
+<h3>Derived from</h3>
+QNetworkReply
+<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="#EmptyNetworkReply.__init__">EmptyNetworkReply</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#EmptyNetworkReply.abort">abort</a></td>
+<td>Public slot to abort the operation.</td>
+</tr><tr>
+<td><a href="#EmptyNetworkReply.readData">readData</a></td>
+<td>Protected method to retrieve data from the reply object.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="EmptyNetworkReply.__init__" ID="EmptyNetworkReply.__init__"></a>
+<h4>EmptyNetworkReply (Constructor)</h4>
+<b>EmptyNetworkReply</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent object (QObject)
+</dd>
+</dl><a NAME="EmptyNetworkReply.abort" ID="EmptyNetworkReply.abort"></a>
+<h4>EmptyNetworkReply.abort</h4>
+<b>abort</b>(<i></i>)
+<p>
+        Public slot to abort the operation.
+</p><a NAME="EmptyNetworkReply.readData" ID="EmptyNetworkReply.readData"></a>
+<h4>EmptyNetworkReply.readData</h4>
+<b>readData</b>(<i>maxlen</i>)
+<p>
+        Protected method to retrieve data from the reply object.
+</p><dl>
+<dt><i>maxlen</i></dt>
+<dd>
+maximum number of bytes to read (integer)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+string containing the data (bytes)
+</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/eric5.Helpviewer.Network.FollowRedirectReply.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.Network.FollowRedirectReply</title>
+<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>eric5.Helpviewer.Network.FollowRedirectReply</h1>
+<p>
+Module implementing a network reply delegate allowing to check redirects.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#FollowRedirectReply">FollowRedirectReply</a></td>
+<td>Class implementing a network reply delegate allowing to check redirects</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="FollowRedirectReply" ID="FollowRedirectReply"></a>
+<h2>FollowRedirectReply</h2>
+<p>
+    Class implementing a network reply delegate allowing to check redirects
+</p>
+<h3>Derived from</h3>
+QObject
+<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="#FollowRedirectReply.__init__">FollowRedirectReply</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#FollowRedirectReply.__replyFinished">__replyFinished</a></td>
+<td>Private slot handling the receipt of the requested data.</td>
+</tr><tr>
+<td><a href="#FollowRedirectReply.error">error</a></td>
+<td>Public method to get the error information.</td>
+</tr><tr>
+<td><a href="#FollowRedirectReply.originalUrl">originalUrl</a></td>
+<td>Public method to get the original URL.</td>
+</tr><tr>
+<td><a href="#FollowRedirectReply.readAll">readAll</a></td>
+<td>Public method to read all received data.</td>
+</tr><tr>
+<td><a href="#FollowRedirectReply.reply">reply</a></td>
+<td>Public method to get the reply object.</td>
+</tr><tr>
+<td><a href="#FollowRedirectReply.url">url</a></td>
+<td>Public method to get the final URL (after redirects).</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="FollowRedirectReply.__init__" ID="FollowRedirectReply.__init__"></a>
+<h4>FollowRedirectReply (Constructor)</h4>
+<b>FollowRedirectReply</b>(<i>url, manager, maxRedirects=5</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>url</i></dt>
+<dd>
+URL to get (QUrl)
+</dd><dt><i>manager</i></dt>
+<dd>
+reference to the network access manager (QNetworkAccessManager)
+</dd><dt><i>maxRedirects=</i></dt>
+<dd>
+maximum allowed redirects (integer)
+</dd>
+</dl><a NAME="FollowRedirectReply.__replyFinished" ID="FollowRedirectReply.__replyFinished"></a>
+<h4>FollowRedirectReply.__replyFinished</h4>
+<b>__replyFinished</b>(<i></i>)
+<p>
+        Private slot handling the receipt of the requested data.
+</p><a NAME="FollowRedirectReply.error" ID="FollowRedirectReply.error"></a>
+<h4>FollowRedirectReply.error</h4>
+<b>error</b>(<i></i>)
+<p>
+        Public method to get the error information.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+error code (QNetworkReply.NetworkError)
+</dd>
+</dl><a NAME="FollowRedirectReply.originalUrl" ID="FollowRedirectReply.originalUrl"></a>
+<h4>FollowRedirectReply.originalUrl</h4>
+<b>originalUrl</b>(<i></i>)
+<p>
+        Public method to get the original URL.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+original URL (QUrl)
+</dd>
+</dl><a NAME="FollowRedirectReply.readAll" ID="FollowRedirectReply.readAll"></a>
+<h4>FollowRedirectReply.readAll</h4>
+<b>readAll</b>(<i></i>)
+<p>
+        Public method to read all received data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+received raw data (QByteArray)
+</dd>
+</dl><a NAME="FollowRedirectReply.reply" ID="FollowRedirectReply.reply"></a>
+<h4>FollowRedirectReply.reply</h4>
+<b>reply</b>(<i></i>)
+<p>
+        Public method to get the reply object.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the reply object (QNetworkReply)
+</dd>
+</dl><a NAME="FollowRedirectReply.url" ID="FollowRedirectReply.url"></a>
+<h4>FollowRedirectReply.url</h4>
+<b>url</b>(<i></i>)
+<p>
+        Public method to get the final URL (after redirects).
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+final URL (QUrl)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Helpviewer.PersonalInformationManager.PersonalInformationManager.html	Tue Jul 17 18:52:23 2012 +0200
+++ b/Documentation/Source/eric5.Helpviewer.PersonalInformationManager.PersonalInformationManager.html	Sun Jul 22 15:32:52 2012 +0200
@@ -21,7 +21,9 @@
 </head>
 <body><a NAME="top" ID="top"></a>
 <h1>eric5.Helpviewer.PersonalInformationManager.PersonalInformationManager</h1>
-
+<p>
+Module implementing a personal information manager used to complete form fields.
+</p>
 <h3>Global Attributes</h3>
 <table>
 <tr><td>None</td></tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/index-eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration</title>
+<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>eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration</h1>
+<p>
+Package implementing the GreaseMonkey configuration dialogs.
+</p>
+
+
+<h3>Modules</h3>
+<table>
+<tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html">GreaseMonkeyConfigurationDialog</a></td>
+<td>Module implementing the GreaseMonkey scripts configuration dialog.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html">GreaseMonkeyConfigurationListDelegate</a></td>
+<td>Module implementing a delegate for the special list widget for GreaseMonkey scripts.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html">GreaseMonkeyConfigurationListWidget</a></td>
+<td>Module implementing a special list widget for GreaseMonkey scripts.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html">GreaseMonkeyConfigurationScriptInfoDialog</a></td>
+<td>Module implementing a dialog to show GreaseMonkey script information.</td>
+</tr>
+</table>
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/index-eric5.Helpviewer.GreaseMonkey.html	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.GreaseMonkey</title>
+<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>eric5.Helpviewer.GreaseMonkey</h1>
+<p>
+Package implementing the GreaseMonkey support.
+</p>
+
+<h3>Packages</h3>
+<table>
+<tr>
+<td><a href="index-eric5.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html">GreaseMonkeyConfiguration</a></td>
+<td>Package implementing the GreaseMonkey configuration dialogs.</td>
+</tr>
+</table>
+
+<h3>Modules</h3>
+<table>
+<tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html">GreaseMonkeyAddScriptDialog</a></td>
+<td>Module implementing a dialog for adding GreaseMonkey scripts..</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html">GreaseMonkeyDownloader</a></td>
+<td>Module implementing the downloader for GreaseMonkey scripts.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html">GreaseMonkeyJavaScript</a></td>
+<td>Module containing some JavaScript resources.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html">GreaseMonkeyManager</a></td>
+<td>Module implementing the manager for GreaseMonkey scripts.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html">GreaseMonkeyScript</a></td>
+<td>Module implementing the GreaseMonkey script.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html">GreaseMonkeyUrlMatcher</a></td>
+<td>Module implementing the GreaseMonkey URL matcher.</td>
+</tr>
+</table>
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric5.Helpviewer.Network.html	Tue Jul 17 18:52:23 2012 +0200
+++ b/Documentation/Source/index-eric5.Helpviewer.Network.html	Sun Jul 22 15:32:52 2012 +0200
@@ -32,9 +32,15 @@
 <td><a href="eric5.Helpviewer.Network.AboutAccessHandler.html">AboutAccessHandler</a></td>
 <td>Module implementing a scheme access handler for about schemes.</td>
 </tr><tr>
+<td><a href="eric5.Helpviewer.Network.EmptyNetworkReply.html">EmptyNetworkReply</a></td>
+<td>Module implementing a network reply class for an empty reply (i.e.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.Network.EricAccessHandler.html">EricAccessHandler</a></td>
 <td>Module implementing a scheme access handler for Python resources.</td>
 </tr><tr>
+<td><a href="eric5.Helpviewer.Network.FollowRedirectReply.html">FollowRedirectReply</a></td>
+<td>Module implementing a network reply delegate allowing to check redirects.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.Network.FtpAccessHandler.html">FtpAccessHandler</a></td>
 <td>Module implementing a scheme access handler for FTP.</td>
 </tr><tr>
--- a/Documentation/Source/index-eric5.Helpviewer.PersonalInformationManager.html	Tue Jul 17 18:52:23 2012 +0200
+++ b/Documentation/Source/index-eric5.Helpviewer.PersonalInformationManager.html	Sun Jul 22 15:32:52 2012 +0200
@@ -33,7 +33,7 @@
 <td>Module implementing a dialog to enter personal data.</td>
 </tr><tr>
 <td><a href="eric5.Helpviewer.PersonalInformationManager.PersonalInformationManager.html">PersonalInformationManager</a></td>
-<td></td>
+<td>Module implementing a personal information manager used to complete form fields.</td>
 </tr>
 </table>
 </body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric5.Helpviewer.html	Tue Jul 17 18:52:23 2012 +0200
+++ b/Documentation/Source/index-eric5.Helpviewer.html	Sun Jul 22 15:32:52 2012 +0200
@@ -48,6 +48,9 @@
 <td><a href="index-eric5.Helpviewer.Feeds.html">Feeds</a></td>
 <td>Package implementing all RSS feed related modules.</td>
 </tr><tr>
+<td><a href="index-eric5.Helpviewer.GreaseMonkey.html">GreaseMonkey</a></td>
+<td>Package implementing the GreaseMonkey support.</td>
+</tr><tr>
 <td><a href="index-eric5.Helpviewer.History.html">History</a></td>
 <td>Package implementing the history system.</td>
 </tr><tr>
@@ -128,6 +131,9 @@
 <td><a href="eric5.Helpviewer.HelpTopicDialog.html">HelpTopicDialog</a></td>
 <td>Module implementing a dialog to select a help topic to display.</td>
 </tr><tr>
+<td><a href="eric5.Helpviewer.HelpUtilities.html">HelpUtilities</a></td>
+<td>Module implementing some global helper functions.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.HelpWebSearchWidget.html">HelpWebSearchWidget</a></td>
 <td>Module implementing a web search widget for the web browser.</td>
 </tr><tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+
+"""
+Module implementing a dialog for adding GreaseMonkey scripts..
+"""
+
+import os
+
+from PyQt4.QtCore import pyqtSlot, QDir, QFile
+from PyQt4.QtGui import QDialog
+
+from E5Gui import E5MessageBox
+
+from .Ui_GreaseMonkeyAddScriptDialog import Ui_GreaseMonkeyAddScriptDialog
+
+from QScintilla.MiniEditor import MiniEditor
+
+from Helpviewer import HelpUtilities
+
+import UI.PixmapCache
+
+
+class GreaseMonkeyAddScriptDialog(QDialog, Ui_GreaseMonkeyAddScriptDialog):
+    """
+    Class implementing a dialog for adding GreaseMonkey scripts..
+    """
+    def __init__(self, manager, script, parent=None):
+        """
+        Constructor
+        
+        @param manager reference to the GreaseMonkey manager (GreaseMonkeyManager)
+        @param script GreaseMonkey script to be added (GreaseMonkeyScript)
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.iconLabel.setPixmap(UI.PixmapCache.getPixmap("greaseMonkey48.png"))
+        
+        self.__manager = manager
+        self.__script = script
+        
+        runsAt = ""
+        doesNotRunAt = ""
+        
+        include = script.include()
+        exclude = script.exclude()
+        
+        if include:
+            runsAt = self.trUtf8("<p>runs at:<br/><i>{0}</i></p>").format(
+                "<br/>".join(include))
+        
+        if exclude:
+            doesNotRunAt = self.trUtf8("<p>does not run at:<br/><i>{0}</i></p>").format(
+                "<br/>".join(exclude))
+        
+        scriptInfoTxt = "<p><b>{0}</b> {1}<br/>{2}</p>{3}{4}".format(
+            script.name(), script.version(), script.description(), runsAt, doesNotRunAt)
+        self.scriptInfo.setHtml(scriptInfoTxt)
+        
+        self.accepted.connect(self.__accepted)
+    
+    @pyqtSlot()
+    def on_showScriptSourceButton_clicked(self):
+        """
+        Private slot to show an editor window with the source code.
+        """
+        tmpFileName = HelpUtilities.ensureUniqueFilename(
+            os.path.join(QDir.tempPath(), "tmp-userscript.js"))
+        if QFile.copy(self.__script.fileName(), tmpFileName):
+            editor = MiniEditor(tmpFileName, "JavaScript", self)
+            editor.show()
+    
+    def __accepted(self):
+        """
+        Private slot handling the accepted signal.
+        """
+        if self.__manager.addScript(self.__script):
+            msg = self.trUtf8("<p><b>{0}</b> installed successfully.</p>").format(
+                self.__script.name())
+        else:
+            msg = self.trUtf8("<p>Cannot install script.</p>")
+        
+        E5MessageBox.information(self,
+            self.trUtf8("GreaseMonkey Script Installation"),
+            msg)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>GreaseMonkeyAddScriptDialog</class>
+ <widget class="QDialog" name="GreaseMonkeyAddScriptDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>550</width>
+    <height>400</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>GreaseMonkey Script Installation</string>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QLabel" name="iconLabel">
+       <property name="minimumSize">
+        <size>
+         <width>48</width>
+         <height>48</height>
+        </size>
+       </property>
+       <property name="text">
+        <string notr="true">Icon</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>&lt;h2&gt;GreaseMonkey Script Installation&lt;/h2&gt;</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_3">
+     <property name="text">
+      <string>You are about to install this userscript into GreaseMonkey:</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QTextBrowser" name="scriptInfo"/>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_5">
+     <property name="text">
+      <string>&lt;b&gt;You should only install scripts from sources you trust!&lt;/b&gt;</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_4">
+     <property name="text">
+      <string>Are you sure you want to install it?</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QPushButton" name="showScriptSourceButton">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="toolTip">
+        <string>Press to open an editor with the script's source</string>
+       </property>
+       <property name="text">
+        <string>Show source code of script</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QDialogButtonBox" name="buttonBox">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="standardButtons">
+        <set>QDialogButtonBox::No|QDialogButtonBox::Yes</set>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>GreaseMonkeyAddScriptDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>401</x>
+     <y>389</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>GreaseMonkeyAddScriptDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>439</x>
+     <y>389</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,164 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the GreaseMonkey scripts configuration dialog.
+"""
+
+from PyQt4.QtCore import pyqtSlot, Qt, QUrl
+from PyQt4.QtGui import QDialog, QListWidgetItem, QDesktopServices
+
+from E5Gui import E5MessageBox
+
+from .Ui_GreaseMonkeyConfigurationDialog import Ui_GreaseMonkeyConfigurationDialog
+
+from .GreaseMonkeyConfigurationScriptInfoDialog import \
+    GreaseMonkeyConfigurationScriptInfoDialog
+
+import Helpviewer.HelpWindow
+
+import UI.PixmapCache
+
+
+class GreaseMonkeyConfigurationDialog(QDialog, Ui_GreaseMonkeyConfigurationDialog):
+    """
+    Class implementing the GreaseMonkey scripts configuration dialog.
+    """
+    ScriptVersionRole = Qt.UserRole
+    ScriptDescriptionRole = Qt.UserRole + 1
+    ScriptRole = Qt.UserRole + 2
+    
+    def __init__(self, manager, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.iconLabel.setPixmap(UI.PixmapCache.getPixmap("greaseMonkey48.png"))
+        
+        self.__manager = manager
+        
+        self.__loadScripts()
+        
+        self.scriptsList.removeItemRequested.connect(self.__removeItem)
+    
+    @pyqtSlot()
+    def on_openDirectoryButton_clicked(self):
+        """
+        Private slot to open the GreaseMonkey scripts directory.
+        """
+        QDesktopServices.openUrl(QUrl.fromLocalFile(self.__manager.scriptsDirectory()))
+    
+    @pyqtSlot(str)
+    def on_downloadLabel_linkActivated(self, link):
+        """
+        Private slot to open the userscript.org web site.
+        """
+        Helpviewer.HelpWindow.HelpWindow.mainWindow().newTab(
+            QUrl("http://www.userscript.org"))
+        self.close()
+    
+    @pyqtSlot(QListWidgetItem)
+    def on_scriptsList_itemDoubleClicked(self, item):
+        """
+        Private slot to show information about the selected script.
+        """
+        script = self.__getScript(item)
+        if script is not None:
+            infoDlg = GreaseMonkeyConfigurationScriptInfoDialog(script, self)
+            infoDlg.exec_()
+    
+    def __loadScripts(self):
+        """
+        Private method to load all the available scripts.
+        """
+        try:
+            self.scriptsList.itemChanged.disconnect(self.__itemChanged)
+        except TypeError:
+            # it isn't connected yet
+            pass
+        
+        for script in self.__manager.allScripts():
+            itm = QListWidgetItem(UI.PixmapCache.getIcon("greaseMonkeyScript.png"),
+                script.name(), self.scriptsList)
+            itm.setData(GreaseMonkeyConfigurationDialog.ScriptVersionRole,
+                script.version())
+            itm.setData(GreaseMonkeyConfigurationDialog.ScriptDescriptionRole,
+                script.description())
+            itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
+            if script.isEnabled():
+                itm.setCheckState(Qt.Checked)
+            else:
+                itm.setCheckState(Qt.Unchecked)
+            itm.setData(GreaseMonkeyConfigurationDialog.ScriptRole, script)
+            self.scriptsList.addItem(itm)
+        
+        self.scriptsList.sortItems()
+        
+        itemMoved = True
+        while itemMoved:
+            itemMoved = False
+            for row in range(self.scriptsList.count()):
+                topItem = self.scriptsList.item(row)
+                bottomItem = self.scriptsList.item(row + 1)
+                if topItem is None or bottomItem is None:
+                    continue
+                
+                if topItem.checkState() == Qt.Unchecked and \
+                   bottomItem.checkState == Qt.Checked:
+                    itm = self.scriptsList.takeItem(row + 1)
+                    self.scriptsList.insertItem(row, itm)
+                    itemMoved = True
+        
+        self.scriptsList.itemChanged.connect(self.__itemChanged)
+    
+    def __getScript(self, itm):
+        """
+        Private method to get the script for the given item.
+        
+        @param itm item to get script for (QListWidgetItem)
+        @return reference to the script object (GreaseMonkeyScript)
+        """
+        if itm is None:
+            return None
+        
+        script = itm.data(GreaseMonkeyConfigurationDialog.ScriptRole)
+        return script
+    
+    def __removeItem(self, itm):
+        """
+        Private slot to remove a script item.
+        
+        @param itm item to be removed (QListWidgetItem)
+        """
+        script = self.__getScript(itm)
+        if script is None:
+            return
+        
+        removeIt = E5MessageBox.yesNo(self,
+            self.trUtf8("Remove Script"),
+            self.trUtf8("""<p>Are you sure you want to remove <b>{0}</b>?</p>""")
+                .format(script.name()))
+        if removeIt and self.__manager.removeScript(script):
+            self.scriptsList.takeItem(self.scriptsList.row(itm))
+            del itm
+    
+    def __itemChanged(self, itm):
+        """
+        Private slot to handle changes of a script item.
+        
+        @param itm changed item (QListWidgetItem)
+        """
+        script = self.__getScript(itm)
+        if script is None:
+            return
+        
+        if itm.checkState() == Qt.Checked:
+            self.__manager.enableScript(script)
+        else:
+            self.__manager.disableScript(script)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>GreaseMonkeyConfigurationDialog</class>
+ <widget class="QDialog" name="GreaseMonkeyConfigurationDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>550</width>
+    <height>450</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>GreaseMonkey Scripts Configuration</string>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QLabel" name="iconLabel">
+       <property name="minimumSize">
+        <size>
+         <width>48</width>
+         <height>48</height>
+        </size>
+       </property>
+       <property name="text">
+        <string notr="true">Icon</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>&lt;h2&gt;GreaseMonkey Scripts&lt;/h2&gt;</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_4">
+     <property name="text">
+      <string>Double clicking script will show additional information.</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="GreaseMonkeyConfigurationListWidget" name="scriptsList">
+     <property name="alternatingRowColors">
+      <bool>true</bool>
+     </property>
+     <property name="verticalScrollMode">
+      <enum>QAbstractItemView::ScrollPerPixel</enum>
+     </property>
+     <property name="uniformItemSizes">
+      <bool>true</bool>
+     </property>
+     <property name="selectionRectVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="downloadLabel">
+     <property name="text">
+      <string>&lt;p&gt;Get more scripts from &lt;a href=&quot;www.userscript.org&quot;&gt;userscript.org&lt;/a&gt;.&lt;/p&gt;</string>
+     </property>
+     <property name="textFormat">
+      <enum>Qt::RichText</enum>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignCenter</set>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_4">
+     <item>
+      <widget class="QPushButton" name="openDirectoryButton">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="toolTip">
+        <string>Press to open the scripts directory</string>
+       </property>
+       <property name="text">
+        <string>Open Scripts Directory</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QDialogButtonBox" name="buttonBox">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="standardButtons">
+        <set>QDialogButtonBox::Ok</set>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>GreaseMonkeyConfigurationListWidget</class>
+   <extends>QListWidget</extends>
+   <header>.GreaseMonkeyConfigurationListWidget.h</header>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>scriptsList</tabstop>
+  <tabstop>openDirectoryButton</tabstop>
+  <tabstop>buttonBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>GreaseMonkeyConfigurationDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>GreaseMonkeyConfigurationDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListDelegate.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,177 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a delegate for the special list widget for GreaseMonkey scripts.
+"""
+
+from PyQt4.QtCore import Qt, QSize, QRect
+from PyQt4.QtGui import QStyle, QStyledItemDelegate, QStyleOptionViewItemV4, \
+    QApplication, QFontMetrics, QPalette, QFont
+
+import UI.PixmapCache
+import Globals
+
+
+class GreaseMonkeyConfigurationListDelegate(QStyledItemDelegate):
+    """
+    Class implementing a delegate for the special list widget for GreaseMonkey scripts.
+    """
+    IconSize = 32
+    RemoveIconSize = 16
+    CheckBoxSize = 18
+    MinPadding = 5
+    ItemWidth = 200
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+        
+        self.__removePixmap = UI.PixmapCache.getIcon("greaseMonkeyTrash.png").pixmap(
+            GreaseMonkeyConfigurationListDelegate.RemoveIconSize)
+        self.__rowHeight = 0
+        self.__padding = 0
+    
+    def padding(self):
+        """
+        Public method to get the padding used.
+        
+        @return padding used (integer)
+        """
+        return self.__padding
+    
+    def paint(self, painter, option, index):
+        """
+        Public method to paint the specified list item.
+        
+        @param painter painter object to paint to (QPainter)
+        @param option style option used for painting (QStyleOptionViewItem)
+        @param index model index of the item (QModelIndex)
+        """
+        opt = QStyleOptionViewItemV4(option)
+        self.initStyleOption(opt, index)
+        
+        widget = opt.widget
+        style = widget.style() if widget is not None else QApplication.style()
+        height = opt.rect.height()
+        center = height // 2 + opt.rect.top()
+        
+        # Prepare title font
+        titleFont = QFont(opt.font)
+        titleFont.setBold(True)
+        titleFont.setPointSize(titleFont.pointSize() + 1)
+        
+        titleMetrics = QFontMetrics(titleFont)
+        if Globals.isWindowsPlatform():
+            colorRole = QPalette.Text
+        else:
+            colorRole = QPalette.HighlightedText \
+                if opt.state & QStyle.State_Selected else QPalette.Text
+        
+        leftPos = self.__padding
+        rightPos = opt.rect.right() - self.__padding - \
+                   GreaseMonkeyConfigurationListDelegate.RemoveIconSize
+        
+        # Draw background
+        style.drawPrimitive(QStyle.PE_PanelItemViewItem, opt, painter, widget)
+        
+        # Draw checkbox
+        checkBoxYPos = center - GreaseMonkeyConfigurationListDelegate.CheckBoxSize // 2
+        opt2 = QStyleOptionViewItemV4(opt)
+        if opt2.checkState == Qt.Checked:
+            opt2.state |= QStyle.State_On
+        else:
+            opt2.state |= QStyle.State_Off
+        styleCheckBoxRect = style.subElementRect(
+            QStyle.SE_ViewItemCheckIndicator, opt2, widget)
+        opt2.rect = QRect(leftPos, checkBoxYPos,
+            styleCheckBoxRect.width(), styleCheckBoxRect.height())
+        style.drawPrimitive(QStyle.PE_IndicatorViewItemCheck, opt2, painter, widget)
+        leftPos = opt2.rect.right() + self.__padding
+        
+        # Draw icon
+        iconYPos = center - GreaseMonkeyConfigurationListDelegate.IconSize // 2
+        iconRect = QRect(leftPos, iconYPos,
+            GreaseMonkeyConfigurationListDelegate.IconSize,
+            GreaseMonkeyConfigurationListDelegate.IconSize)
+        pixmap = index.data(Qt.DecorationRole).pixmap(
+            GreaseMonkeyConfigurationListDelegate.IconSize)
+        painter.drawPixmap(iconRect, pixmap)
+        leftPos = iconRect.right() + self.__padding
+        
+        # Draw script name
+        name = index.data(Qt.DisplayRole)
+        leftTitleEdge = leftPos + 2
+        rightTitleEdge = rightPos - self.__padding
+        leftPosForVersion = titleMetrics.width(name) + self.__padding
+        nameRect = QRect(leftTitleEdge, opt.rect.top() + self.__padding,
+            rightTitleEdge - leftTitleEdge, titleMetrics.height())
+        painter.setFont(titleFont)
+        style.drawItemText(painter, nameRect, Qt.AlignLeft, opt.palette, True,
+            name, colorRole)
+        
+        # Draw version
+        version = index.data(Qt.UserRole)
+        versionRect = QRect(nameRect.x() + leftPosForVersion, nameRect.y(),
+            rightTitleEdge - leftTitleEdge, titleMetrics.height())
+        versionFont = titleFont
+        painter.setFont(versionFont)
+        style.drawItemText(painter, versionRect, Qt.AlignLeft, opt.palette, True,
+            version, colorRole)
+        
+        # Draw description
+        infoYPos = nameRect.bottom() + opt.fontMetrics.leading()
+        infoRect = QRect(nameRect.x(), infoYPos,
+            nameRect.width(), opt.fontMetrics.height())
+        info = opt.fontMetrics.elidedText(index.data(Qt.UserRole + 1), Qt.ElideRight,
+            infoRect.width())
+        painter.setFont(opt.font)
+        style.drawItemText(painter, infoRect, Qt.AlignLeft | Qt.TextSingleLine,
+            opt.palette, True, info, colorRole)
+        
+        # Draw remove button
+        removeIconYPos = center - \
+            GreaseMonkeyConfigurationListDelegate.RemoveIconSize // 2
+        removeIconRect = QRect(rightPos, removeIconYPos,
+            GreaseMonkeyConfigurationListDelegate.RemoveIconSize,
+            GreaseMonkeyConfigurationListDelegate.RemoveIconSize)
+        painter.drawPixmap(removeIconRect, self.__removePixmap)
+    
+    def sizeHint(self, option, index):
+        """
+        Public method to get a size hint for the specified list item.
+        
+        @param option style option used for painting (QStyleOptionViewItem)
+        @param index model index of the item (QModelIndex)
+        @return size hint (QSize)
+        """
+        if not self.__rowHeight:
+            opt = QStyleOptionViewItemV4(option)
+            self.initStyleOption(opt, index)
+            
+            widget = opt.widget
+            style = widget.style() if widget is not None else QApplication.style()
+            padding = style.pixelMetric(QStyle.PM_FocusFrameHMargin) + 1
+            
+            titleFont = opt.font
+            titleFont.setBold(True)
+            titleFont.setPointSize(titleFont.pointSize() + 1)
+            
+            self.__padding = padding \
+                if padding > GreaseMonkeyConfigurationListDelegate.MinPadding else \
+                GreaseMonkeyConfigurationListDelegate.MinPadding
+            
+            titleMetrics = QFontMetrics(titleFont)
+            
+            self.__rowHeight = 2 * self.__padding + \
+                                opt.fontMetrics.leading() + \
+                                opt.fontMetrics.height() + \
+                                titleMetrics.height()
+        
+        return QSize(GreaseMonkeyConfigurationListDelegate.ItemWidth, self.__rowHeight)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListWidget.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,75 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a special list widget for GreaseMonkey scripts.
+"""
+
+from PyQt4.QtCore import pyqtSignal, QRect
+from PyQt4.QtGui import QListWidget, QListWidgetItem
+
+from .GreaseMonkeyConfigurationListDelegate import GreaseMonkeyConfigurationListDelegate
+
+
+class GreaseMonkeyConfigurationListWidget(QListWidget):
+    """
+    Class implementing a special list widget for GreaseMonkey scripts.
+    """
+    removeItemRequested = pyqtSignal(QListWidgetItem)
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__delegate = GreaseMonkeyConfigurationListDelegate(self)
+        self.setItemDelegate(self.__delegate)
+    
+    def __containsRemoveIcon(self, pos):
+        """
+        Private method to check, if the given position is inside the remove icon.
+        
+        @param pos position to check for (QPoint)
+        @return flag indicating success (boolean)
+        """
+        itm = self.itemAt(pos)
+        if itm is None:
+            return False
+        
+        rect = self.visualItemRect(itm)
+        iconSize = GreaseMonkeyConfigurationListDelegate.RemoveIconSize
+        removeIconXPos = rect.right() - self.__delegate.padding() - iconSize
+        center = rect.height() // 2 + rect.top()
+        removeIconYPos = center - iconSize // 2
+        
+        removeIconRect = QRect(removeIconXPos, removeIconYPos, iconSize, iconSize)
+        return removeIconRect.contains(pos)
+    
+    def mousePressEvent(self, evt):
+        """
+        Private method handling presses of mouse buttons.
+        
+        @param evt mouse press event (QMouseEvent)
+        """
+        if self.__containsRemoveIcon(evt.pos()):
+            self.removeItemRequested.emit(self.itemAt(evt.pos()))
+            return
+        
+        super().mousePressEvent(evt)
+    
+    def mouseDoubleClickEvent(self, evt):
+        """
+        Private method handling mouse double click events.
+        
+        @param evt mouse press event (QMouseEvent)
+        """
+        if self.__containsRemoveIcon(evt.pos()):
+            self.removeItemRequested.emit(self.itemAt(evt.pos()))
+            return
+        
+        super().mouseDoubleClickEvent(evt)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to show GreaseMonkey script information.
+"""
+
+from PyQt4.QtCore import pyqtSlot
+from PyQt4.QtGui import QDialog
+
+from .Ui_GreaseMonkeyConfigurationScriptInfoDialog import \
+    Ui_GreaseMonkeyConfigurationScriptInfoDialog
+
+from ..GreaseMonkeyScript import GreaseMonkeyScript
+
+from QScintilla.MiniEditor import MiniEditor
+
+import UI.PixmapCache
+
+
+class GreaseMonkeyConfigurationScriptInfoDialog(QDialog,
+        Ui_GreaseMonkeyConfigurationScriptInfoDialog):
+    """
+    Class implementing a dialog to show GreaseMonkey script information.
+    """
+    def __init__(self, script, parent=None):
+        """
+        Constructor
+        
+        @param script reference to the script (GreaseMonkeyScript)
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.iconLabel.setPixmap(UI.PixmapCache.getPixmap("greaseMonkey48.png"))
+        
+        self.__scriptFileName = script.fileName()
+        
+        self.setWindowTitle(self.trUtf8("Script Details of {0}").format(script.name()))
+        
+        self.nameLabel.setText(script.fullName())
+        self.versionLabel.setText(script.version())
+        self.urlLabel.setText(script.downloadUrl().toString())
+        if script.startAt() == GreaseMonkeyScript.DocumentStart:
+            self.startAtLabel.setText("document-start")
+        else:
+            self.startAtLabel.setText("document-end")
+        self.descriptionBrowser.setHtml(script.description())
+        self.runsAtBrowser.setHtml("<br/>".join(script.include()))
+        self.doesNotRunAtBrowser.setHtml("<br/>".join(script.exclude()))
+    
+    @pyqtSlot()
+    def on_showScriptSourceButton_clicked(self):
+        """
+        Private slot to show an editor window with the script source code.
+        """
+        editor = MiniEditor(self.__scriptFileName, "JavaScript", self)
+        editor.show()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>GreaseMonkeyConfigurationScriptInfoDialog</class>
+ <widget class="QDialog" name="GreaseMonkeyConfigurationScriptInfoDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>550</width>
+    <height>500</height>
+   </rect>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QLabel" name="iconLabel">
+       <property name="minimumSize">
+        <size>
+         <width>48</width>
+         <height>48</height>
+        </size>
+       </property>
+       <property name="text">
+        <string notr="true">Icon</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_8">
+       <property name="text">
+        <string>&lt;h2&gt;GreaseMonkey Script Details&lt;/h2&gt;</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Name:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="nameLabel">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="textInteractionFlags">
+        <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Version:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLabel" name="versionLabel">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="textInteractionFlags">
+        <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>URL:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="urlLabel">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="textInteractionFlags">
+        <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>Start at:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <widget class="QLabel" name="startAtLabel">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="textInteractionFlags">
+        <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="0">
+      <widget class="QLabel" name="label_5">
+       <property name="text">
+        <string>Description:</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="1">
+      <widget class="QTextBrowser" name="descriptionBrowser"/>
+     </item>
+     <item row="5" column="0">
+      <widget class="QLabel" name="label_6">
+       <property name="text">
+        <string>Runs at:</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="1">
+      <widget class="QTextBrowser" name="runsAtBrowser"/>
+     </item>
+     <item row="6" column="0">
+      <widget class="QLabel" name="label_7">
+       <property name="text">
+        <string>Does not run at:</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+      </widget>
+     </item>
+     <item row="6" column="1">
+      <widget class="QTextBrowser" name="doesNotRunAtBrowser"/>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QPushButton" name="showScriptSourceButton">
+       <property name="toolTip">
+        <string>Press to open an editor with the script's source</string>
+       </property>
+       <property name="text">
+        <string>Show source code of script</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QDialogButtonBox" name="buttonBox">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="standardButtons">
+        <set>QDialogButtonBox::Close</set>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>descriptionBrowser</tabstop>
+  <tabstop>runsAtBrowser</tabstop>
+  <tabstop>doesNotRunAtBrowser</tabstop>
+  <tabstop>showScriptSourceButton</tabstop>
+  <tabstop>buttonBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>GreaseMonkeyConfigurationScriptInfoDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>402</x>
+     <y>484</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>GreaseMonkeyConfigurationScriptInfoDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>470</x>
+     <y>490</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/__init__.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Package implementing the GreaseMonkey configuration dialogs.
+"""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,166 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the downloader for GreaseMonkey scripts.
+"""
+
+import os
+
+from PyQt4.QtCore import pyqtSignal, QObject, QSettings, QRegExp, QUrl
+from PyQt4.QtGui import QDialog
+from PyQt4.QtNetwork import QNetworkReply
+
+from E5Gui import E5MessageBox
+
+import Helpviewer.HelpWindow
+from Helpviewer import HelpUtilities
+from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply
+
+from .GreaseMonkeyScript import GreaseMonkeyScript
+from .GreaseMonkeyAddScriptDialog import GreaseMonkeyAddScriptDialog
+
+
+class GreaseMonkeyDownloader(QObject):
+    """
+    Class implementing the downloader for GreaseMonkey scripts.
+    """
+    finished = pyqtSignal()
+    
+    def __init__(self, request, manager):
+        """
+        Constructor
+        
+        @param request reference to the request object (QNetworkRequest)
+        @param manager reference to the GreaseMonkey manager (GreaseMonkeyManager)
+        """
+        super().__init__()
+        
+        self.__manager = manager
+        
+        self.__reply = FollowRedirectReply(request.url(),
+            Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
+        self.__reply.finished.connect(self.__scriptDownloaded)
+        
+        self.__fileName = ""
+        self.__requireUrls = []
+    
+    def __scriptDownloaded(self):
+        """
+        Private slot to handle the finished download of a script.
+        """
+        if self.sender() != self.__reply:
+            self.finished.emit()
+            return
+        
+        response = bytes(self.__reply.readAll()).decode()
+        
+        if self.__reply.error() == QNetworkReply.NoError and \
+           "// ==UserScript==" in response:
+            filePath = os.path.join(self.__manager.scriptsDirectory(),
+                HelpUtilities.getFileNameFromUrl(self.__reply.url()))
+            self.__fileName = HelpUtilities.ensureUniqueFilename(filePath)
+            
+            try:
+                f = open(self.__fileName, "w")
+            except (IOError, OSError) as err:
+                E5MessageBox.critical(None,
+                    self.trUtf8("GreaseMonkey Download"),
+                    self.trUtf8("""<p>The file <b>{0}</b> could not be opened"""
+                                """ for writing.<br/>Reason: {1}</p>""").format(
+                                self.__fileName, str(err)))
+                self.finished.emit()
+                return
+            f.write(response)
+            f.close()
+            
+            settings = QSettings(os.path.join(self.__manager.requireScriptsDirectory(),
+                                              "requires.ini"),
+                                 QSettings.IniFormat)
+            settings.beginGroup("Files")
+            
+            rx = QRegExp("@require(.*)\\n")
+            rx.setMinimal(True)
+            rx.indexIn(response)
+            
+            for i in range(1, rx.captureCount() + 1):
+                url = rx.cap(i).strip()
+                if url and not settings.contains(url):
+                    self.__requireUrls.append(QUrl(url))
+        
+        self.__reply.deleteLater()
+        self.__reply = None
+        
+        self.__downloadRequires()
+    
+    def __requireDownloaded(self):
+        """
+        Private slot to handle the finished download of a required script.
+        """
+        if self.sender() != self.__reply:
+            self.finished.emit()
+            return
+        
+        response = bytes(self.__reply.readAll()).decode()
+        
+        if self.__reply.error() == QNetworkReply.NoError and response:
+            filePath = os.path.join(self.__manager.requireScriptsDirectory(),
+                                    "require.js")
+            fileName = HelpUtilities.ensureUniqueFilename(filePath, "{0}")
+            
+            try:
+                f = open(fileName, "w")
+            except (IOError, OSError) as err:
+                E5MessageBox.critical(None,
+                    self.trUtf8("GreaseMonkey Download"),
+                    self.trUtf8("""<p>The file <b>{0}</b> could not be opened"""
+                                """ for writing.<br/>Reason: {1}</p>""").format(
+                                fileName, str(err)))
+                self.finished.emit()
+                return
+            f.write(response)
+            f.close()
+            
+            settings = QSettings(os.path.join(self.__manager.requireScriptsDirectory(),
+                                              "requires.ini"),
+                                 QSettings.IniFormat)
+            settings.beginGroup("Files")
+            settings.setValue(self.__reply.originalUrl().toString(), fileName)
+        
+        self.__reply.deleteLater()
+        self.__reply = None
+        
+        self.__downloadRequires()
+    
+    def __downloadRequires(self):
+        """
+        Private slot to initiate the download of required scripts.
+        """
+        if self.__requireUrls:
+            self.__reply = FollowRedirectReply(self.__requireUrls.pop(0),
+                Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
+            self.__reply.finished.connect(self.__requireDownloaded)
+        else:
+            deleteScript = True
+            script = GreaseMonkeyScript(self.__manager, self.__fileName)
+            
+            if script.isValid():
+                if not self.__manager.containsScript(script.fullName()):
+                    dlg = GreaseMonkeyAddScriptDialog(self.__manager, script)
+                    deleteScript = dlg.exec_() != QDialog.Accepted
+                else:
+                    E5MessageBox.information(None,
+                        self.trUtf8("GreaseMonkey Download"),
+                        self.trUtf8("""<p><b>{0}</b> is already installed.</p>""")
+                            .format(script.name()))
+            
+            if deleteScript:
+                try:
+                    os.remove(self.__fileName)
+                except (IOError, OSError):
+                    # ignore
+                    pass
+            
+            self.finished.emit()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyJavaScript.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,122 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module containing some JavaScript resources.
+"""
+
+bootstrap_js = """
+if(typeof GM_xmlhttpRequest === "undefined") {
+    GM_xmlhttpRequest = function(/* object */ details) {
+        details.method = details.method.toUpperCase() || "GET";
+
+        if(!details.url) {
+            throw("GM_xmlhttpRequest requires an URL.");
+        }
+
+        // build XMLHttpRequest object
+        var oXhr = new XMLHttpRequest;
+        // run it
+        if(oXhr) {
+            if("onreadystatechange" in details)
+                oXhr.onreadystatechange = function() { details.onreadystatechange(oXhr) };
+            if("onload" in details)
+                oXhr.onload = function() { details.onload(oXhr) };
+            if("onerror" in details)
+                oXhr.onerror = function() { details.onerror(oXhr) };
+
+            oXhr.open(details.method, details.url, true);
+
+            if("headers" in details)
+                for(var header in details.headers)
+                    oXhr.setRequestHeader(header, details.headers[header]);
+
+            if("data" in details)
+                oXhr.send(details.data);
+            else
+                oXhr.send();
+        } else
+            throw ("This Browser is not supported, please upgrade.")
+    }
+}
+
+if(typeof GM_addStyle === "undefined") {
+    function GM_addStyle(/* String */ styles) {
+        var head = document.getElementsByTagName("head")[0];
+        if (head === undefined) {
+            document.onreadystatechange = function() {
+                if (document.readyState == "interactive") {
+                    var oStyle = document.createElement("style");
+                    oStyle.setAttribute("type", "text\/css");
+                    oStyle.appendChild(document.createTextNode(styles));
+                    document.getElementsByTagName("head")[0].appendChild(oStyle);
+                }
+            }
+        }
+        else {
+            var oStyle = document.createElement("style");
+            oStyle.setAttribute("type", "text\/css");
+            oStyle.appendChild(document.createTextNode(styles));
+            head.appendChild(oStyle);
+        }
+    }
+}
+
+if(typeof GM_log === "undefined") {
+    function GM_log(log) {
+        if(console)
+            console.log(log);
+    }
+}
+
+if(typeof GM_openInTab === "undefined") {
+    function GM_openInTab(url) {
+        window.open(url)
+    }
+}
+
+// Define unsafe window
+var unsafeWindow = window;
+window.wrappedJSObject = unsafeWindow;
+
+// GM_registerMenuCommand not supported
+if(typeof GM_registerMenuCommand === "undefined") {
+    function GM_registerMenuCommand(caption, commandFunc, accessKey) { }
+}
+
+// GM Resource not supported
+if(typeof GM_getResourceText === "undefined") {
+    function GM_getResourceText(resourceName) {
+        throw ("eric5 Web Browser: GM Resource is not supported!");
+    }
+}
+
+if(typeof GM_getResourceURL === "undefined") {
+    function GM_getResourceURL(resourceName) {
+        throw ("eric5 Web Browser: GM Resource is not supported!");
+    }
+}
+
+// GM Settings not supported
+if(typeof GM_getValue === "undefined") {
+    function GM_getValue(name, defaultValue) {
+        return defaultValue;
+    }
+}
+
+if(typeof GM_setValue === "undefined") {
+    function GM_setValue(name, value) { }
+}
+
+if(typeof GM_deleteValue === "undefined") {
+    function GM_deleteValue(name) { }
+}
+
+if(typeof GM_listValues === "undefined") {
+    function GM_listValues() {
+        return new Array("");
+    }
+}
+"""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyManager.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,306 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the manager for GreaseMonkey scripts.
+"""
+
+import os
+
+from PyQt4.QtCore import pyqtSignal, QObject, QTimer, QFile, QDir, QSettings, QUrl, \
+    QByteArray
+from PyQt4.QtNetwork import QNetworkAccessManager
+
+from .GreaseMonkeyJavaScript import bootstrap_js
+from .GreaseMonkeyDownloader import GreaseMonkeyDownloader
+from .GreaseMonkeyScript import GreaseMonkeyScript
+
+from .GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog import \
+    GreaseMonkeyConfigurationDialog
+
+from Helpviewer.Network.EmptyNetworkReply import EmptyNetworkReply
+
+import Utilities
+import Preferences
+
+
+class GreaseMonkeyManager(QObject):
+    """
+    Class implementing the manager for GreaseMonkey scripts.
+    """
+    scriptsChanged = pyqtSignal()
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+        
+        self.__disabledScripts = []
+        self.__endScripts = []
+        self.__startScripts = []
+        self.__downloaders = []
+        
+        QTimer.singleShot(0, self.__load)
+    
+    def showConfigurationDialog(self, parent=None):
+        """
+        Public method to show the configuration dialog.
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        self.__configDiaolg = GreaseMonkeyConfigurationDialog(self, parent)
+        self.__configDiaolg.show()
+    
+    def downloadScript(self, request):
+        """
+        Public method to download a GreaseMonkey script.
+        
+        @param request reference to the request (QNetworkRequest)
+        """
+        downloader = GreaseMonkeyDownloader(request, self)
+        downloader.finished.connect(self.__downloaderFinished)
+        self.__downloaders.append(downloader)
+    
+    def __downloaderFinished(self):
+        """
+        Private slot to handle the completion of a script download.
+        """
+        downloader = self.sender()
+        if downloader is None or downloader not in self.__downloaders:
+            return
+        
+        self.__downloaders.remove(downloader)
+    
+    def scriptsDirectory(self):
+        """
+        Public method to get the path of the scripts directory.
+        
+        @return path of the scripts directory (string)
+        """
+        return os.path.join(Utilities.getConfigDir(), "browser", "greasemonkey")
+    
+    def requireScriptsDirectory(self):
+        """
+        Public method to get the path of the scripts directory.
+        
+        @return path of the scripts directory (string)
+        """
+        return os.path.join(self.scriptsDirectory(), "requires")
+    
+    def requireScripts(self, urlList):
+        """
+        Public method to get the sources of all required scripts.
+        
+        @param urlList list of URLs (list of string)
+        @return sources of all required scripts (string)
+        """
+        requiresDir = QDir(self.requireScriptsDirectory())
+        if not requiresDir.exists() or len(urlList) == 0:
+            return ""
+        
+        script = ""
+        
+        settings = QSettings(os.path.join(self.requireScriptsDirectory(), "requires.ini"),
+                             QSettings.IniFormat)
+        settings.beginGroup("Files")
+        for url in urlList:
+            if settings.contains(url):
+                fileName = settings.value(url)
+                try:
+                    f = open(fileName, "r")
+                    source = f.read()
+                    f.close()
+                except (IOError, OSError):
+                    source = ""
+                script += source.strip() + "\n"
+        
+        return script
+    
+    def saveConfiguration(self):
+        """
+        Public method to save the configuration.
+        """
+        Preferences.setHelp("GreaseMonkeyDisabledScripts", self.__disabledScripts)
+    
+    def allScripts(self):
+        """
+        Public method to get a list of all scripts.
+        
+        @return list of all scripts (list of GreaseMonkeyScript)
+        """
+        return self.__startScripts[:] + self.__endScripts[:]
+    
+    def containsScript(self, fullName):
+        """
+        Public method to check, if the given script exists.
+        
+        @param fullName full name of the script (string)
+        @return flag indicating the existence (boolean)
+        """
+        for script in self.__startScripts:
+            if script.fullName() == fullName:
+                return True
+        for script in self.__endScripts:
+            if script.fullName() == fullName:
+                return True
+        return False
+    
+    def enableScript(self, script):
+        """
+        Public method to enable the given script.
+        
+        @param script script to be enabled (GreaseMonkeyScript)
+        """
+        script.setEnabled(True)
+        fullName = script.fullName()
+        if fullName in self.__disabledScripts:
+            self.__disabledScripts.remove(fullName)
+    
+    def disableScript(self, script):
+        """
+        Public method to disable the given script.
+        
+        @param script script to be disabled (GreaseMonkeyScript)
+        """
+        script.setEnabled(False)
+        fullName = script.fullName()
+        if fullName not in self.__disabledScripts:
+            self.__disabledScripts.append(fullName)
+    
+    def addScript(self, script):
+        """
+        Public method to add a script.
+        
+        @param script script to be added (GreaseMonkeyScript)
+        @return flag indicating success (boolean)
+        """
+        if not script:
+            return False
+        
+        if script.startAt() == GreaseMonkeyScript.DocumentStart:
+            self.__startScripts.append(script)
+        else:
+            self.__endScripts.append(script)
+        
+        self.scriptsChanged.emit()
+        return True
+    
+    def removeScript(self, script):
+        """
+        Public method to remove a script.
+        
+        @param script script to be removed (GreaseMonkeyScript)
+        @return flag indicating success (boolean)
+        """
+        if not script:
+            return False
+        
+        if script.startAt() == GreaseMonkeyScript.DocumentStart:
+            try:
+                self.__startScripts.remove(script)
+            except ValueError:
+                pass
+        else:
+            try:
+                self.__endScripts.remove(script)
+            except ValueError:
+                pass
+        
+        fullName = script.fullName()
+        if fullName in self.__disabledScripts:
+            self.__disabledScripts.remove(fullName)
+        QFile.remove(script.fileName())
+        
+        self.scriptsChanged.emit()
+        return True
+    
+    def canRunOnScheme(self, scheme):
+        """
+        Public method to check, if scripts can be run on a scheme.
+        
+        @param scheme scheme to check (string)
+        @return flag indicating, that scripts can be run (boolean)
+        """
+        return scheme in ["http", "https", "data", "ftp"]
+    
+    def pageLoadStarted(self):
+        """
+        Public slot to handle the start of loading a page.
+        """
+        frame = self.sender()
+        if not frame:
+            return
+        
+        urlScheme = frame.url().scheme()
+        urlString = bytes(frame.url().toEncoded()).decode()
+        
+        if not self.canRunOnScheme(urlScheme):
+            return
+        
+        for script in self.__startScripts:
+            if script.match(urlString):
+                frame.evaluateJavaScript(bootstrap_js + script.script())
+        
+        for script in self.__endScripts:
+            if script.match(urlString):
+                javascript = 'window.addEventListener("DOMContentLoaded",' \
+                    'function(e) {{ {0} }}, false);'.format(
+                    bootstrap_js + script.script())
+                frame.evaluateJavaScript(javascript)
+    
+    def __load(self):
+        """
+        Private slot to load the available scripts into the manager.
+        """
+        scriptsDir = QDir(self.scriptsDirectory())
+        if not scriptsDir.exists():
+            scriptsDir.mkpath(self.scriptsDirectory())
+        
+        if not scriptsDir.exists("requires"):
+            scriptsDir.mkdir("requires")
+        
+        self.__disabledScripts = Preferences.getHelp("GreaseMonkeyDisabledScripts")
+        
+        for fileName in scriptsDir.entryList(["*.js"], QDir.Files):
+            absolutePath = scriptsDir.absoluteFilePath(fileName)
+            script = GreaseMonkeyScript(self, absolutePath)
+            
+            if script.fullName() in self.__disabledScripts:
+                script.setEnabled(False)
+            
+            if script.startAt() == GreaseMonkeyScript.DocumentStart:
+                self.__startScripts.append(script)
+            else:
+                self.__endScripts.append(script)
+    
+    def connectPage(self, page):
+        """
+        Public method to allow the GreaseMonkey manager to connect to the page.
+        
+        @param page reference to the web page (HelpWebPage)
+        """
+        page.mainFrame().javaScriptWindowObjectCleared.connect(self.pageLoadStarted)
+    
+    def createRequest(self, op, request, outgoingData=None):
+        """
+        Public method to create a request.
+        
+        @param op the operation to be performed (QNetworkAccessManager.Operation)
+        @param request reference to the request object (QNetworkRequest)
+        @param outgoingData reference to an IODevice containing data to be sent
+            (QIODevice)
+        @return reference to the created reply object (QNetworkReply)
+        """
+        if op == QNetworkAccessManager.GetOperation and \
+           request.rawHeader("X-Eric5-UserLoadAction") == QByteArray("1"):
+            urlString = request.url().toString(QUrl.RemoveFragment | QUrl.RemoveQuery)
+            if urlString.endswith(".user.js"):
+                self.downloadScript(request)
+                return EmptyNetworkReply(self)
+        
+        return None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyScript.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,269 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the GreaseMonkey script.
+"""
+
+from PyQt4.QtCore import QUrl, QRegExp
+
+from .GreaseMonkeyUrlMatcher import GreaseMonkeyUrlMatcher
+
+
+class GreaseMonkeyScript(object):
+    """
+    Class implementing the GreaseMonkey script.
+    """
+    DocumentStart = 0
+    DocumentEnd = 1
+    
+    def __init__(self, manager, path):
+        """
+        Constructor
+        
+        @param manager reference to the manager object (GreaseMonkeyManager)
+        @param path path of the Javascript file (string)
+        """
+        self.__manager = manager
+        
+        self.__name = ""
+        self.__namespace = "GreaseMonkeyNS"
+        self.__description = ""
+        self.__version = ""
+        
+        self.__include = []
+        self.__exclude = []
+        
+        self.__downloadUrl = QUrl()
+        self.__startAt = GreaseMonkeyScript.DocumentEnd
+        
+        self.__script = ""
+        self.__fileName = path
+        self.__enabled = True
+        self.__valid = False
+        
+        self.__parseScript(path)
+    
+    def isValid(self):
+        """
+        Public method to check the validity of the script.
+        
+        @return flag indicating a valid script (boolean)
+        """
+        return self.__valid
+    
+    def name(self):
+        """
+        Public method to get the name of the script.
+        
+        @return name of the script (string)
+        """
+        return self.__name
+    
+    def nameSpace(self):
+        """
+        Public method to get the name space of the script.
+        
+        @return name space of the script (string)
+        """
+        return self.__namespace
+    
+    def fullName(self):
+        """
+        Public method to get the full name of the script.
+        
+        @return full name of the script (string)
+        """
+        return "{0}/{1}".format(self.__namespace, self.__name)
+    
+    def description(self):
+        """
+        Public method to get the description of the script.
+        
+        @return description of the script (string)
+        """
+        return self.__description
+    
+    def version(self):
+        """
+        Public method to get the version of the script.
+        
+        @return version of the script (string)
+        """
+        return self.__version
+    
+    def downloadUrl(self):
+        """
+        Public method to get the download URL of the script.
+        
+        @return download URL of the script (QUrl)
+        """
+        return QUrl(self.__downloadUrl)
+    
+    def startAt(self):
+        """
+        Public method to get the start point of the script.
+        
+        @return start point of the script (DocumentStart or DocumentEnd)
+        """
+        return self.__startAt
+    
+    def isEnabled(self):
+        """
+        Public method to check, if the script is enabled.
+        
+        @return flag indicating an enabled state (boolean)
+        """
+        return self.__enabled
+    
+    def setEnabled(self, enable):
+        """
+        Public method to enable a script.
+        
+        @param enable flag indicating the new enabled state (boolean)
+        """
+        self.__enabled = enable
+    
+    def include(self):
+        """
+        Public method to get the list of included URLs.
+        
+        @return list of included URLs (list of strings)
+        """
+        list = []
+        for matcher in self.__include:
+            list.append(matcher.pattern())
+        return list
+    
+    def exclude(self):
+        """
+        Public method to get the list of excluded URLs.
+        
+        @return list of excluded URLs (list of strings)
+        """
+        list = []
+        for matcher in self.__exclude:
+            list.append(matcher.pattern())
+        return list
+    
+    def script(self):
+        """
+        Public method to get the Javascript source.
+        
+        @return Javascript source (string)
+        """
+        return self.__script
+    
+    def fileName(self):
+        """
+        Public method to get the path of the Javascript file.
+        
+        @return path path of the Javascript file (string)
+        """
+        return self.__fileName
+    
+    def match(self, urlString):
+        """
+        Public method to check, if the script matches the given URL.
+        
+        @return flag indicating a match (boolean)
+        """
+        if not self.__enabled:
+            return False
+        
+        for matcher in self.__exclude:
+            if matcher.match(urlString):
+                return False
+        
+        for matcher in self.__include:
+            if matcher.match(urlString):
+                return True
+        
+        return False
+    
+    def __parseScript(self, path):
+        """
+        Private method to parse the given script and populate the data structure.
+        
+        @param path path of the Javascript file (string)
+        """
+        try:
+            f = open(path)
+            fileData = f.read()
+            f.close()
+        except (IOError, OSError):
+            # silently ignore because it shouldn't happen
+            return
+        
+        rx = QRegExp("// ==UserScript==(.*)// ==/UserScript==")
+        rx.indexIn(fileData)
+        metaDataBlock = rx.cap(1).strip()
+        
+        if metaDataBlock == "":
+            # invalid script file
+            return
+        
+        requireList = []
+        for line in metaDataBlock.splitlines():
+            if not line.startswith("// @"):
+                continue
+            
+            line = line[3:].replace("\t", " ")
+            index = line.find(" ")
+            if index < 0:
+                continue
+            
+            key = line[:index].strip()
+            value = line[index + 1:].strip()
+            
+            # Ignored values: @resource, @unwrap
+            
+            if not key or not value:
+                continue
+            
+            if key == "@name":
+                self.__name = value
+            
+            elif key == "@namespace":
+                self.__namespace = value
+            
+            elif key == "@description":
+                self.__description = value
+            
+            elif key == "@version":
+                self.__version = value
+            
+            elif key == "@updateURL":
+                self.__downloadUrl = QUrl(value)
+            
+            elif key in ["@include", "@match"]:
+                self.__include.append(GreaseMonkeyUrlMatcher(value))
+            
+            elif key in ["@exclude", "@exclude_match"]:
+                self.__exclude.append(GreaseMonkeyUrlMatcher(value))
+            
+            elif key == "@require":
+                requireList.append(value)
+            
+            elif key == "@run-at":
+                if value == "document-end":
+                    self.__startAt = GreaseMonkeyScript.DocumentEnd
+                elif value == "document-start":
+                    self.__startAt = GreaseMonkeyScript.DocumentStart
+            
+            elif key == "@downloadURL" and self.__downloadUrl.isEmpty():
+                self.__downloadUrl = QUrl(value)
+        
+        if not self.__include:
+            self.__include.append(GreaseMonkeyUrlMatcher("*"))
+        
+        marker = "// ==/UserScript=="
+        index = fileData.find(marker) + len(marker)
+        script = fileData[index:].strip()
+        script = "{0}{1}".format(
+            self.__manager.requireScripts(requireList),
+            script)
+        self.__script = "(function(){{{0}}})();".format(script)
+        self.__valid = len(script) > 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyUrlMatcher.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,106 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the GreaseMonkey URL matcher.
+"""
+
+import re
+
+from PyQt4.QtCore import Qt, QRegExp
+
+
+def wildcardMatch(string, pattern):
+    """
+    Module function implementing a special wildcard matcher.
+    
+    @param string string to match (string)
+    @param pattern pattern to be used (string)
+    """
+    stringSize = len(string)
+    
+    startsWithWildcard = pattern.startswith("*")
+    endsWithWildcard = pattern.endswith("*")
+    
+    parts = pattern.split("*")
+    pos = 0
+    
+    if startsWithWildcard:
+        pos = string.find(parts[1])
+        if pos == -1:
+            return False
+    
+    for part in parts:
+        pos = string.find(part, pos)
+        if pos == -1:
+            return False
+    
+    if not endsWithWildcard and stringSize - pos != len(parts[-1]):
+        return False
+    
+    return True
+
+
+class GreaseMonkeyUrlMatcher(object):
+    """
+    Class implementing the GreaseMonkey URL matcher.
+    """
+    def __init__(self, pattern):
+        """
+        Constructor
+        
+        @param pattern pattern to be used for the matching (string)
+        """
+        self.__pattern = pattern
+        self.__matchString = ""
+        self.__regExp = QRegExp()
+        self.__useRegExp = False
+        
+        self.__parsePattern(self.__pattern)
+    
+    def pattern(self):
+        """
+        Public method to get the match pattern.
+        
+        @return match pattern (string)
+        """
+        return self.__pattern
+    
+    def match(self, urlString):
+        """
+        Public method to match the given URL.
+        
+        @param urlString URL to match (string)
+        """
+        if self.__useRegExp:
+            return self.__regExp.indexIn(urlString) != -1
+        else:
+            return wildcardMatch(urlString, self.__matchString)
+    
+    def __parsePattern(self, pattern):
+        """
+        Private method to parse the match pattern.
+        
+        @param pattern match pattern to be used (string)
+        """
+        if pattern.startswith("/") and pattern.endswith("/"):
+            pattern = pattern[1:-1]
+            
+            self.__regExp = QRegExp(pattern, Qt.CaseInsensitive)
+            self.__useRegExp = True
+        elif ".tld" in pattern:
+            pattern = re.sub(r"(\W)", r"\\\1", pattern)   # escape special symbols
+            pattern = re.sub(r"\*+", "*", pattern)        # remove multiple wildcards
+            pattern = re.sub(r"^\\\|", "^", pattern)      # process anchor at expression
+                                                           # start
+            pattern = re.sub(r"\\\|$", "$", pattern)      # process anchor at expression
+                                                           # end
+            pattern = re.sub(r"\\\*", ".*", pattern)      # replace wildcards by .*
+            pattern = re.sub(r"\.tld", r"\.[a-z.]{2,6}")  # replace domain pattern
+            
+            self.__useRegExp = True
+            self.__regExp = QRegExp(pattern,  Qt.CaseInsensitive)
+        else:
+            self.__matchString = pattern
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/GreaseMonkey/__init__.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Package implementing the GreaseMonkey support.
+"""
--- a/Helpviewer/HelpBrowserWV.py	Tue Jul 17 18:52:23 2012 +0200
+++ b/Helpviewer/HelpBrowserWV.py	Sun Jul 22 15:32:52 2012 +0200
@@ -9,7 +9,8 @@
 """
 
 from PyQt4.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, QUrl, \
-    QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, QRect, QFile, QPoint
+    QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, QRect, QFile, QPoint, \
+    QByteArray
 from PyQt4.QtGui import qApp, QDesktopServices, QStyle, QMenu, QApplication, \
     QInputDialog, QLineEdit, QClipboard, QMouseEvent, QLabel, QToolTip, QColor, \
     QPalette, QFrame, QPrinter, QPrintDialog, QDialog
@@ -191,7 +192,9 @@
         @return flag indicating acceptance (boolean)
         """
         self.__lastRequest = request
-        self.__lastRequestType = type_
+        if self.__lastRequest.url() != request.url() or \
+           type_ != QWebPage.NavigationTypeOther:
+            self.__lastRequestType = type_
         
         scheme = request.url().scheme()
         if scheme == "mailto":
@@ -220,7 +223,10 @@
         """
         try:
             request.setAttribute(QNetworkRequest.User + 100, self)
-            request.setAttribute(QNetworkRequest.User + 101, self.__lastRequestType)
+            if self.__lastRequest.url() == request.url():
+                request.setAttribute(QNetworkRequest.User + 101, self.__lastRequestType)
+                if self.__lastRequestType == QWebPage.NavigationTypeLinkClicked:
+                    request.setRawHeader("X-Eric5-UserLoadAction", QByteArray("1"))
         except TypeError:
             pass
     
@@ -607,6 +613,7 @@
         self.__clickedFrame = None
         
         self.mw.personalInformationManager().connectPage(self.page())
+        self.mw.greaseMonkeyManager().connectPage(self.page())
         
         self.grabGesture(Qt.PinchGesture)
     
@@ -678,15 +685,20 @@
         if self.url().toString() == "eric:home":
             self.reload()
     
-    def setSource(self, name):
+    def setSource(self, name, requestData=None):
         """
         Public method used to set the source to be displayed.
         
         @param name filename to be shown (QUrl)
+        @param requestData tuple containing the request data (QNetworkRequest,
+            QNetworkAccessManager.Operation, QByteArray)
         """
-        if name is None or not name.isValid():
+        if (name is None or not name.isValid()) and requestData is None:
             return
         
+        if name is None and requestData is not None:
+            name = requestData[0].url()
+        
         if self.ctrlPressed:
             # open in a new window
             self.mw.newTab(name)
@@ -747,7 +759,10 @@
                         """ for file <b>{0}</b>.</p>""").format(name.path()))
                 return
         
-        self.load(name)
+        if requestData is not None:
+            self.load(*requestData)
+        else:
+            self.load(name)
 
     def source(self):
         """
--- a/Helpviewer/HelpTabWidget.py	Tue Jul 17 18:52:23 2012 +0200
+++ b/Helpviewer/HelpTabWidget.py	Sun Jul 22 15:32:52 2012 +0200
@@ -12,6 +12,7 @@
 from PyQt4.QtCore import pyqtSignal, Qt, QUrl
 from PyQt4.QtGui import QWidget, QHBoxLayout, QMenu, QToolButton, QPrinter, \
     QPrintDialog, QDialog, QIcon
+from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest
 
 from E5Gui.E5TabWidget import E5TabWidget
 from E5Gui import E5MessageBox
@@ -231,7 +232,9 @@
         if idx < 0 or idx > self.count():
             return
         
-        self.newBrowser(self.widget(idx).url())
+        req = QNetworkRequest(self.widget(idx).url())
+        req.setRawHeader("X-Eric5-UserLoadAction", b"1")
+        self.newBrowser(None, (req, QNetworkAccessManager.GetOperation, b""))
     
     def __tabContextMenuClose(self):
         """
@@ -788,10 +791,13 @@
         """
         edit = self.sender()
         url = self.__guessUrlFromPath(edit.text())
+        request = QNetworkRequest(url)
+        request.setRawHeader("X-Eric5-UserLoadAction", b"1")
         if e5App().keyboardModifiers() == Qt.AltModifier:
-            self.newBrowser(url)
+            self.newBrowser(None, (request, QNetworkAccessManager.GetOperation, b""))
         else:
-            self.currentBrowser().setSource(url)
+            self.currentBrowser().setSource(None,
+                (request, QNetworkAccessManager.GetOperation, b""))
             self.currentBrowser().setFocus()
     
     def __pathSelected(self, path):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/HelpUtilities.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,80 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing some global helper functions.
+"""
+
+import os
+
+from PyQt4.QtCore import QUrl
+
+
+def getFileNameFromUrl(url):
+    """
+    Module function to generate a file name based on the given URL.
+    
+    @param url URL (QUrl)
+    @return file name (string)
+    """
+    fileName = url.toString(QUrl.RemoveFragment | QUrl.RemoveQuery | 
+                            QUrl.RemoveScheme | QUrl.RemovePort)
+    if fileName.find("/") != -1:
+        pos = fileName.rfind("/")
+        fileName = fileName[pos:]
+        fileName = fileName.replace("/", "")
+    
+    fileName = filterCharsFromFilename(fileName)
+    
+    if not fileName:
+        fileName = filterCharsFromFilename(url.host().replace(".", "_"))
+    
+    return fileName
+
+
+def filterCharsFromFilename(name):
+    """
+    Module function to filter illegal characters.
+    
+    @param name name to be sanitized (string)
+    @return sanitized name (string)
+    """
+    return name\
+        .replace("/", "_")\
+        .replace("\\", "")\
+        .replace(":", "")\
+        .replace("*", "")\
+        .replace("?", "")\
+        .replace('"', "")\
+        .replace("<", "")\
+        .replace(">", "")\
+        .replace("|", "")
+
+
+def ensureUniqueFilename(name, appendFormat="({0})"):
+    """
+    Module function to generate an unique file name based on a pattern.
+    
+    @param name desired file name (string)
+    @param appendFormat format pattern to be used to make the unique name (string)
+    @return unique file name
+    """
+    if not os.path.exists(name):
+        return name
+    
+    tmpFileName = name
+    i = 1
+    while os.path.exists(tmpFileName):
+        tmpFileName = name
+        index = tmpFileName.rfind(".")
+        
+        appendString = appendFormat.format(i)
+        if index == -1:
+            tmpFileName += appendString
+        else:
+            tmpFileName = tmpFileName[:index] + appendString + tmpFileName[index:]
+        i += 1
+    
+    return tmpFileName
--- a/Helpviewer/HelpWindow.py	Tue Jul 17 18:52:23 2012 +0200
+++ b/Helpviewer/HelpWindow.py	Sun Jul 22 15:32:52 2012 +0200
@@ -15,6 +15,7 @@
     QDesktopServices, QKeySequence, QComboBox, QFont, QFontMetrics, QLabel, \
     QSplitter, QMenu, QToolButton, QLineEdit, QApplication, QWhatsThis, QDialog, \
     QHBoxLayout, QProgressBar, QAction, QIcon
+from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest
 from PyQt4.QtWebKit import QWebSettings, QWebDatabase, QWebSecurityOrigin, QWebPage
 from PyQt4.QtHelp import QHelpEngine, QHelpEngineCore, QHelpSearchQuery
 
@@ -55,6 +56,7 @@
 from .SpeedDial.SpeedDial import SpeedDial
 from .PersonalInformationManager.PersonalInformationManager import \
     PersonalInformationManager
+from .GreaseMonkey.GreaseMonkeyManager import GreaseMonkeyManager
 
 from .data import icons_rc          # __IGNORE_WARNING__
 from .data import html_rc           # __IGNORE_WARNING__
@@ -105,6 +107,7 @@
     _syncManager = None
     _speedDial = None
     _personalInformationManager = None
+    _greaseMonkeyManager = None
     
     def __init__(self, home, path, parent, name, fromEric=False,
                  initShortcutsOnly=False, searchWord=None):
@@ -999,6 +1002,22 @@
                 self.__showPersonalInformationDialog)
         self.__actions.append(self.personalDataAct)
         
+        self.greaseMonkeyAct = E5Action(self.trUtf8('GreaseMonkey Scripts'),
+            UI.PixmapCache.getIcon("greaseMonkey.png"),
+            self.trUtf8('GreaseMonkey Scripts...'),
+            0, 0,
+            self, 'help_greasemonkey')
+        self.greaseMonkeyAct.setStatusTip(self.trUtf8(
+            'Configure the GreaseMonkey Scripts'))
+        self.greaseMonkeyAct.setWhatsThis(self.trUtf8(
+            """<b>GreaseMonkey Scripts...</b>"""
+            """<p>Opens a dialog to configure the available GreaseMonkey Scripts.</p>"""
+        ))
+        if not self.initShortcutsOnly:
+            self.greaseMonkeyAct.triggered[()].connect(
+                self.__showGreaseMonkeyConfigDialog)
+        self.__actions.append(self.greaseMonkeyAct)
+        
         self.syncTocAct = E5Action(self.trUtf8('Sync with Table of Contents'),
             UI.PixmapCache.getIcon("syncToc.png"),
             self.trUtf8('Sync with Table of Contents'),
@@ -1388,6 +1407,7 @@
         menu.addAction(self.cookiesAct)
         menu.addAction(self.offlineStorageAct)
         menu.addAction(self.personalDataAct)
+        menu.addAction(self.greaseMonkeyAct)
         menu.addSeparator()
         menu.addAction(self.searchEnginesAct)
         menu.addSeparator()
@@ -1497,6 +1517,7 @@
         settingstb.addAction(self.cookiesAct)
         settingstb.addAction(self.offlineStorageAct)
         settingstb.addAction(self.personalDataAct)
+        settingstb.addAction(self.greaseMonkeyAct)
         
         toolstb = self.addToolBar(self.trUtf8("Tools"))
         toolstb.setObjectName("ToolsToolBar")
@@ -2264,7 +2285,10 @@
         
         @param url URL to be shown (QUrl)
         """
-        self.currentBrowser().setSource(url)
+        req = QNetworkRequest(url)
+        req.setRawHeader("X-Eric5-UserLoadAction", b"1")
+        self.currentBrowser().setSource(
+            None, (req, QNetworkAccessManager.GetOperation, b""))
         
     def __linksActivated(self, links, keyword):
         """
@@ -2656,6 +2680,12 @@
         """
         self.personalInformationManager().showConfigurationDialog()
         
+    def __showGreaseMonkeyConfigDialog(self):
+        """
+        Private slot to show the GreaseMonkey scripts configuration dialog.
+        """
+        self.greaseMonkeyManager().showConfigurationDialog()
+        
     def __showNetworkMonitor(self):
         """
         Private slot to show the network monitor dialog.
@@ -2767,7 +2797,9 @@
         @param url url to be opened (QUrl)
         @param title title of the bookmark (string)
         """
-        self.newTab(url)
+        req = QNetworkRequest(url)
+        req.setRawHeader("X-Eric5-UserLoadAction", b"1")
+        self.newTab(None, (req, QNetworkAccessManager.GetOperation, b""))
         
     @classmethod
     def historyManager(cls):
@@ -2830,6 +2862,18 @@
         return cls._personalInformationManager
         
     @classmethod
+    def greaseMonkeyManager(cls):
+        """
+        Class method to get a reference to the GreaseMonkey manager.
+        
+        @return reference to the GreaseMonkey manager (GreaseMonkeyManager)
+        """
+        if cls._greaseMonkeyManager is None:
+            cls._greaseMonkeyManager = GreaseMonkeyManager()
+        
+        return cls._greaseMonkeyManager
+        
+    @classmethod
     def mainWindow(cls):
         """
         Class method to get a reference to the main window.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/Network/FollowRedirectReply.py	Sun Jul 22 15:32:52 2012 +0200
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a network reply delegate allowing to check redirects.
+"""
+
+from PyQt4.QtCore import pyqtSignal, QObject
+from PyQt4.QtNetwork import QNetworkRequest
+
+
+class FollowRedirectReply(QObject):
+    """
+    Class implementing a network reply delegate allowing to check redirects
+    """
+    finished = pyqtSignal()
+    
+    def __init__(self, url, manager, maxRedirects=5):
+        """
+        Constructor
+        
+        @param url URL to get (QUrl)
+        @param manager reference to the network access manager (QNetworkAccessManager)
+        @keyparam maxRedirects maximum allowed redirects (integer)
+        """
+        super().__init__()
+        
+        self.__manager = manager
+        self.__maxRedirects = maxRedirects
+        self.__redirectCount = 0
+        
+        self.__reply = self.__manager.get(QNetworkRequest(url))
+        self.__reply.finished[()].connect(self.__replyFinished)
+    
+    def reply(self):
+        """
+        Public method to get the reply object.
+        
+        @return reference to the reply object (QNetworkReply)
+        """
+        return self.__reply
+    
+    def originalUrl(self):
+        """
+        Public method to get the original URL.
+        
+        @return original URL (QUrl)
+        """
+        return self.__reply.request().url()
+    
+    def url(self):
+        """
+        Public method to get the final URL (after redirects).
+        
+        @return final URL (QUrl)
+        """
+        return self.__reply.url()
+    
+    def error(self):
+        """
+        Public method to get the error information.
+        
+        @return error code (QNetworkReply.NetworkError)
+        """
+        return self.__reply.error()
+    
+    def readAll(self):
+        """
+        Public method to read all received data.
+        
+        @return received raw data (QByteArray)
+        """
+        return self.__reply.readAll()
+    
+    def __replyFinished(self):
+        """
+        Private slot handling the receipt of the requested data.
+        """
+        replyStatus = self.__reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
+        if (replyStatus != 301 and replyStatus != 302) or \
+           self.__redirectCount == self.__maxRedirects:
+            self.finished.emit()
+            return
+        
+        self.__redirectCount += 1
+        
+        redirectUrl = self.__reply.attribute(QNetworkRequest.RedirectionTargetAttribute)
+        self.__reply.close()
+        self.__reply.finished[()].disconnect(self.__replyFinished)
+        
+        self.__reply = self.__manager.get(QNetworkRequest(redirectUrl))
+        self.__reply.finished[()].connect(self.__replyFinished)
--- a/Helpviewer/Network/NetworkAccessManager.py	Tue Jul 17 18:52:23 2012 +0200
+++ b/Helpviewer/Network/NetworkAccessManager.py	Sun Jul 22 15:32:52 2012 +0200
@@ -135,7 +135,19 @@
         if reply is not None:
             return reply
         
+        # give GreaseMonkey the chance to create a request
+        reply = Helpviewer.HelpWindow.HelpWindow.greaseMonkeyManager().createRequest(
+            op, request, outgoingData)
+        if reply is not None:
+            return reply
+        
         req = QNetworkRequest(request)
+        if req.rawHeader("X-Eric5-UserLoadAction") == QByteArray("1"):
+            req.setRawHeader("X-Eric5-UserLoadAction", QByteArray())
+            req.setAttribute(QNetworkRequest.User + 200, "")
+        else:
+            req.setAttribute(QNetworkRequest.User + 200, req.rawHeader("Referer"))
+        
         if hasattr(QNetworkRequest, 'HttpPipeliningAllowedAttribute'):
             req.setAttribute(QNetworkRequest.HttpPipeliningAllowedAttribute, True)
         if not self.__acceptLanguage.isEmpty():
--- a/Preferences/__init__.py	Tue Jul 17 18:52:23 2012 +0200
+++ b/Preferences/__init__.py	Sun Jul 22 15:32:52 2012 +0200
@@ -693,6 +693,7 @@
         "PimSpecial2": "",
         "PimSpecial3": "",
         "PimSpecial4": "",
+        "GreaseMonkeyDisabledScripts": [],
     }
     
     websettings = QWebSettings.globalSettings()
@@ -2079,7 +2080,8 @@
                 ]:
         return toBool(prefClass.settings.value("Help/" + key,
             prefClass.helpDefaults[key]))
-    elif key in ["AdBlockSubscriptions", "ClickToFlashWhitelist", "SendRefererWhitelist"]:
+    elif key in ["AdBlockSubscriptions", "ClickToFlashWhitelist", "SendRefererWhitelist",
+                 "GreaseMonkeyDisabledScripts"]:
         return toList(prefClass.settings.value("Help/" + key,
             prefClass.helpDefaults[key]))
     else:
--- a/changelog	Tue Jul 17 18:52:23 2012 +0200
+++ b/changelog	Sun Jul 22 15:32:52 2012 +0200
@@ -13,6 +13,7 @@
   -- added context menu entries for HTML5 media elements
   -- added a personal information manager to assist in completing form fields
      through field context menu entries or by pressing Ctrl+Return or Ctrl+Enter
+  -- added support for GreaseMonkey scripts
 
 Version 5.3-snapshot-20120624:
 - bug fixes
--- a/eric5.e4p	Tue Jul 17 18:52:23 2012 +0200
+++ b/eric5.e4p	Sun Jul 22 15:32:52 2012 +0200
@@ -1020,6 +1020,21 @@
     <Source>Helpviewer/PersonalInformationManager/__init__.py</Source>
     <Source>Helpviewer/PersonalInformationManager/PersonalDataDialog.py</Source>
     <Source>Helpviewer/PersonalInformationManager/PersonalInformationManager.py</Source>
+    <Source>Helpviewer/GreaseMonkey/__init__.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyJavaScript.py</Source>
+    <Source>Helpviewer/Network/EmptyNetworkReply.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyManager.py</Source>
+    <Source>Helpviewer/Network/FollowRedirectReply.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyUrlMatcher.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyScript.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py</Source>
+    <Source>Helpviewer/HelpUtilities.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/__init__.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListDelegate.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListWidget.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py</Source>
+    <Source>Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
@@ -1315,6 +1330,9 @@
     <Form>Plugins/VcsPlugins/vcsMercurial/HgRemoveSubrepositoriesDialog.ui</Form>
     <Form>Helpviewer/Network/SendRefererWhitelistDialog.ui</Form>
     <Form>Helpviewer/PersonalInformationManager/PersonalDataDialog.ui</Form>
+    <Form>Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui</Form>
+    <Form>Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui</Form>
+    <Form>Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui</Form>
   </Forms>
   <Translations>
     <Translation>i18n/eric5_cs.qm</Translation>
--- a/i18n/eric5_cs.ts	Tue Jul 17 18:52:23 2012 +0200
+++ b/i18n/eric5_cs.ts	Sun Jul 22 15:32:52 2012 +0200
@@ -79,12 +79,12 @@
 <context>
     <name>AdBlockAccessHandler</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="43"/>
+        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="44"/>
         <source>Subscribe?</source>
         <translation>Odebírat?</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="43"/>
+        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="44"/>
         <source>&lt;p&gt;Subscribe to this AdBlock subscription?&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Přihlásit k odběru tento AdBlock?&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
@@ -13544,6 +13544,183 @@
     </message>
 </context>
 <context>
+    <name>GreaseMonkeyAddScriptDialog</name>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py" line="88"/>
+        <source>GreaseMonkey Script Installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui" line="51"/>
+        <source>&lt;h2&gt;GreaseMonkey Script Installation&lt;/h2&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui" line="73"/>
+        <source>You are about to install this userscript into GreaseMonkey:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui" line="86"/>
+        <source>&lt;b&gt;You should only install scripts from sources you trust!&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui" line="96"/>
+        <source>Are you sure you want to install it?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui" line="114"/>
+        <source>Press to open an editor with the script&apos;s source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui" line="117"/>
+        <source>Show source code of script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py" line="54"/>
+        <source>&lt;p&gt;runs at:&lt;br/&gt;&lt;i&gt;{0}&lt;/i&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py" line="58"/>
+        <source>&lt;p&gt;does not run at:&lt;br/&gt;&lt;i&gt;{0}&lt;/i&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py" line="83"/>
+        <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; installed successfully.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py" line="86"/>
+        <source>&lt;p&gt;Cannot install script.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>GreaseMonkeyConfigurationDialog</name>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui" line="14"/>
+        <source>GreaseMonkey Scripts Configuration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui" line="51"/>
+        <source>&lt;h2&gt;GreaseMonkey Scripts&lt;/h2&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui" line="123"/>
+        <source>Press to open the scripts directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui" line="126"/>
+        <source>Open Scripts Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py" line="143"/>
+        <source>Remove Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py" line="143"/>
+        <source>&lt;p&gt;Are you sure you want to remove &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui" line="73"/>
+        <source>Double clicking script will show additional information.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui" line="99"/>
+        <source>&lt;p&gt;Get more scripts from &lt;a href=&quot;www.userscript.org&quot;&gt;userscript.org&lt;/a&gt;.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>GreaseMonkeyConfigurationScriptInfoDialog</name>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="48"/>
+        <source>&lt;h2&gt;GreaseMonkey Script Details&lt;/h2&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="72"/>
+        <source>Name:</source>
+        <translation type="unfinished">Jméno:</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="89"/>
+        <source>Version:</source>
+        <translation type="unfinished">Verze:</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="106"/>
+        <source>URL:</source>
+        <translation type="unfinished">URL:</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="123"/>
+        <source>Start at:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="140"/>
+        <source>Description:</source>
+        <translation type="unfinished">Popisek:</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="153"/>
+        <source>Runs at:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="166"/>
+        <source>Does not run at:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="183"/>
+        <source>Press to open an editor with the script&apos;s source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui" line="186"/>
+        <source>Show source code of script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py" line="42"/>
+        <source>Script Details of {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>GreaseMonkeyDownloader</name>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py" line="154"/>
+        <source>GreaseMonkey Download</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py" line="116"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be opened for writing.&lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py" line="154"/>
+        <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is already installed.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>HelpAppearancePage</name>
     <message>
         <location filename="Preferences/ConfigurationPages/HelpAppearancePage.ui" line="17"/>
@@ -13674,72 +13851,72 @@
 <context>
     <name>HelpBrowser</name>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="951"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="939"/>
         <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation>Otevřít odkaz v novém tab okně<byte value="x9"/>Ctrl+LMB</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="541"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="551"/>
         <source>&lt;b&gt;Help Window&lt;/b&gt;&lt;p&gt;This window displays the selected help information.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Okno nápovědy&lt;/b&gt;&lt;p&gt;Toto okno zobrazí vybranou informaci nápovědy.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1166"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1153"/>
         <source>Web Inspector...</source>
         <translation>Web inspektor...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1776"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1760"/>
         <source>Check the address for errors such as &lt;b&gt;ww&lt;/b&gt;.example.org instead of &lt;b&gt;www&lt;/b&gt;.example.org</source>
         <translation>Zkontrolujte adresu na chyby jako je &lt;b&gt;ww&lt;/b&gt;.example.org místo &lt;b&gt;www&lt;/b&gt;.example.org</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1780"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1764"/>
         <source>If the address is correct, try checking the network connection.</source>
         <translation>Je-li adresa vpořádku, prověřte síťové spojení.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1783"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1767"/>
         <source>If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network.</source>
         <translation>Je-li vaše šíť chráněna firewallem nebo proxy, ujistěte se, že váš prohlížeč má na tuto síť povolen přístup.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1096"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1084"/>
         <source>Bookmark this Page</source>
         <translation>Záložka na tuto stranu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="955"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="943"/>
         <source>Save Lin&amp;k</source>
         <translation>Uložit lin&amp;k</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="957"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="945"/>
         <source>Bookmark this Link</source>
         <translation>Záložka na tento link</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="961"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="949"/>
         <source>Copy Link to Clipboard</source>
         <translation>Kopírovat link do schránky</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="974"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="962"/>
         <source>Open Image in New Tab</source>
         <translation>Otevřít obrázek v novém tabu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="978"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="966"/>
         <source>Save Image</source>
         <translation>Uložit obrázek</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="980"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="968"/>
         <source>Copy Image to Clipboard</source>
         <translation>Kopíroavt obrázek do schránky</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="981"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="969"/>
         <source>Copy Image Location to Clipboard</source>
         <translation>Kopírovat cestu obrázku do schránky</translation>
     </message>
@@ -13749,262 +13926,262 @@
         <translation type="obsolete">Web prohlížeč</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="987"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="975"/>
         <source>Block Image</source>
         <translation>Blokovat obrázek</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1119"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1107"/>
         <source>Search with...</source>
         <translation>Hledat s...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="734"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="719"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor &lt;b&gt;{}&lt;/b&gt; neexistuje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="771"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="756"/>
         <source>&lt;p&gt;Could not start a viewer for file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nelze spustit prohlížeč se souborem &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="754"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="739"/>
         <source>&lt;p&gt;Could not start an application for URL &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nelze spustit aplikaci pro URL &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1756"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1740"/>
         <source>Error loading page: {0}</source>
         <translation>Chyba při načítání strany: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1774"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1758"/>
         <source>When connecting to: {0}.</source>
         <translation>Při připojení na: {0}.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1818"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1802"/>
         <source>Web Database Quota</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1818"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1802"/>
         <source>&lt;p&gt;The database quota of &lt;strong&gt;{0}&lt;/strong&gt; has been exceeded while accessing database &lt;strong&gt;{1}&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Shall it be changed?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1826"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1810"/>
         <source>New Web Database Quota</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1826"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1810"/>
         <source>Enter the new quota in MB (current = {0}, used = {1}; step size = 5 MB):</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1846"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1830"/>
         <source>bytes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1849"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1833"/>
         <source>kB</source>
         <translation type="unfinished">kB</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1852"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1836"/>
         <source>MB</source>
         <translation type="unfinished">MB</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1162"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1149"/>
         <source>Add to web search toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1337"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1324"/>
         <source>Method not supported</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1337"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1324"/>
         <source>{0} method is not supported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1379"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1366"/>
         <source>Search engine</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1379"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1366"/>
         <source>Choose the desired search engine</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1396"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1383"/>
         <source>Engine name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1396"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1383"/>
         <source>Enter a name for the engine</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1787"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1771"/>
         <source>If your cache policy is set to offline browsing,only pages in the local cache are available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="967"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="955"/>
         <source>Scan Link with VirusTotal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="992"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="980"/>
         <source>Scan Image with VirusTotal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="2189"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="2172"/>
         <source>eric5 Web Browser</source>
         <translation type="unfinished">eric5 web prohlížeč</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="963"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="951"/>
         <source>Send Link</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="984"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="972"/>
         <source>Send Image Link</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1067"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1055"/>
         <source>This Frame</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1070"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1058"/>
         <source>Show &amp;only this frame</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1072"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1060"/>
         <source>Show in new &amp;tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1076"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1064"/>
         <source>&amp;Print</source>
         <translation type="unfinished">&amp;Tisk</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1066"/>
+        <source>Print Preview</source>
+        <translation type="unfinished">Náhled tisku</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1068"/>
+        <source>Print as PDF</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1071"/>
+        <source>Zoom &amp;in</source>
+        <translation type="unfinished">Př&amp;iblížit</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1073"/>
+        <source>Zoom &amp;reset</source>
+        <translation type="unfinished">&amp;Resetovat lupu</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1075"/>
+        <source>Zoom &amp;out</source>
+        <translation type="unfinished">&amp;Oddálit</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpBrowserWV.py" line="1078"/>
-        <source>Print Preview</source>
-        <translation type="unfinished">Náhled tisku</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1080"/>
-        <source>Print as PDF</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1083"/>
-        <source>Zoom &amp;in</source>
-        <translation type="unfinished">Př&amp;iblížit</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1085"/>
-        <source>Zoom &amp;reset</source>
-        <translation type="unfinished">&amp;Resetovat lupu</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1087"/>
-        <source>Zoom &amp;out</source>
-        <translation type="unfinished">&amp;Oddálit</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1090"/>
         <source>Show frame so&amp;urce</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1098"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1086"/>
         <source>Send Page Link</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1114"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1102"/>
         <source>Send Text</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1140"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1128"/>
         <source>Google Translate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1146"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1134"/>
         <source>Dictionary</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1153"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1141"/>
         <source>Go to web address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="2189"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="2172"/>
         <source>&lt;p&gt;Printing is not available due to a bug in PyQt4.Please upgrade.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Tisk není dostupný kvůli bugu v PyQt4.Please upgrade.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1101"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1089"/>
         <source>User Agent</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1791"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1775"/>
         <source>Try Again</source>
         <translation type="unfinished">Zkusit znova</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="997"/>
+        <source>Play</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1000"/>
+        <source>Pause</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1003"/>
+        <source>Unmute</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="1006"/>
+        <source>Mute</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpBrowserWV.py" line="1009"/>
-        <source>Play</source>
+        <source>Copy Media Address to Clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpBrowserWV.py" line="1012"/>
-        <source>Pause</source>
+        <source>Send Media Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpBrowserWV.py" line="1015"/>
-        <source>Unmute</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1018"/>
-        <source>Mute</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1021"/>
-        <source>Copy Media Address to Clipboard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1024"/>
-        <source>Send Media Address</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="1027"/>
         <source>Save Media</source>
         <translation type="unfinished"></translation>
     </message>
@@ -14385,77 +14562,77 @@
 <context>
     <name>HelpTabWidget</name>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="92"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="93"/>
         <source>Show a navigation menu</source>
         <translation type="unfinished">Zobrazit menu navigace</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="112"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="113"/>
         <source>Close the current help window</source>
         <translation type="unfinished">Zavřít aktuální okno nápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="128"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="129"/>
         <source>Open a new help window tab</source>
         <translation type="unfinished">Otevřít nový tab nápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="142"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="143"/>
         <source>New Tab</source>
         <translation type="unfinished">Nový Tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="146"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="147"/>
         <source>Move Left</source>
         <translation type="unfinished">Posun doleva</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="149"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="150"/>
         <source>Move Right</source>
         <translation type="unfinished">Posun doprava</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="153"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="154"/>
         <source>Duplicate Page</source>
         <translation type="unfinished">Duplikovat stranu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="157"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="158"/>
         <source>Close</source>
         <translation type="unfinished">Zavřít</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="160"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="161"/>
         <source>Close Others</source>
         <translation type="unfinished">Zavřít ostatní</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="179"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="180"/>
         <source>Close All</source>
         <translation type="unfinished">Zavřít vše</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="165"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="166"/>
         <source>Print Preview</source>
         <translation type="unfinished">Náhled tisku</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="167"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="168"/>
         <source>Print</source>
         <translation type="unfinished">Tisk</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="169"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="170"/>
         <source>Print as PDF</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="183"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="184"/>
         <source>Bookmark All Tabs</source>
         <translation type="unfinished">Vytvořit záložky pro všechny taby</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="322"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="325"/>
         <source>...</source>
         <translation type="unfinished">...</translation>
     </message>
@@ -14465,32 +14642,32 @@
         <translation type="obsolete">Eric web prohlížeč</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="588"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="591"/>
         <source>&lt;p&gt;Printing is not available due to a bug in PyQt4.Please upgrade.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Tisk není dostupný kvůli bugu v PyQt4.Please upgrade.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="685"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="688"/>
         <source>Loading...</source>
         <translation type="unfinished">Načítám...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="704"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="707"/>
         <source>Finished loading</source>
         <translation type="unfinished">Načteno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="706"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="709"/>
         <source>Failed to load</source>
         <translation type="unfinished">Načtení selhalo</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="743"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="746"/>
         <source>Are you sure you want to close the window?</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="Helpviewer/HelpTabWidget.py" line="743"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="746"/>
         <source>Are you sure you want to close the window?
 You have %n tab(s) open.</source>
         <translation type="unfinished">
@@ -14500,47 +14677,47 @@
         </translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="750"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="753"/>
         <source>&amp;Close</source>
         <translation type="unfinished">&amp;Zavřít</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="753"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="756"/>
         <source>&amp;Quit</source>
         <translation type="unfinished">&amp;Konec</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="755"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="758"/>
         <source>C&amp;lose Current Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="588"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="591"/>
         <source>eric5 Web Browser</source>
         <translation type="unfinished">eric5 web prohlížeč</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="103"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="104"/>
         <source>Show a navigation menu for closed tabs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="181"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="182"/>
         <source>Reload All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="186"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="187"/>
         <source>Restore Closed Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="907"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="913"/>
         <source>Restore All Closed Tabs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpTabWidget.py" line="909"/>
+        <location filename="Helpviewer/HelpTabWidget.py" line="915"/>
         <source>Clear List</source>
         <translation type="unfinished"></translation>
     </message>
@@ -15201,72 +15378,72 @@
 <context>
     <name>HelpWebPage</name>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="313"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="323"/>
         <source>Error loading page: {0}</source>
         <translation>Chyba při načítání strany: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="331"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="341"/>
         <source>When connecting to: {0}.</source>
         <translation>Při připojení na: {0}.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="333"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="343"/>
         <source>Check the address for errors such as &lt;b&gt;ww&lt;/b&gt;.example.org instead of &lt;b&gt;www&lt;/b&gt;.example.org</source>
         <translation>Zkontrolujte adresu na chyby jako je &lt;b&gt;ww&lt;/b&gt;.example.org místo &lt;b&gt;www&lt;/b&gt;.example.org</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="337"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="347"/>
         <source>If the address is correct, try checking the network connection.</source>
         <translation>Je-li adresa v pořádku, prověřte síťové spojení.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="340"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="350"/>
         <source>If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network.</source>
         <translation>Je-li vaše šíť chráněna firewallem nebo proxy, ujistěte se, že váš prohlížeč má na tuto síť povolen přístup.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="344"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="354"/>
         <source>If your cache policy is set to offline browsing,only pages in the local cache are available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="449"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="459"/>
         <source>SSL Certificate Info</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="449"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="459"/>
         <source>There is no SSL Certificate Info available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="204"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="205"/>
         <source>Resending POST request</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="204"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="205"/>
         <source>In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="348"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="358"/>
         <source>Try Again</source>
         <translation type="unfinished">Zkusit znova</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="300"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="305"/>
         <source>Content blocked by AdBlock Plus</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="301"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="306"/>
         <source>Blocked by rule: &lt;i&gt;{0}&lt;/i&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpBrowserWV.py" line="271"/>
+        <location filename="Helpviewer/HelpBrowserWV.py" line="276"/>
         <source>Select files to upload...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -15302,360 +15479,360 @@
 <context>
     <name>HelpWindow</name>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="534"/>
+        <location filename="Helpviewer/HelpWindow.py" line="537"/>
         <source>Close the current help window</source>
         <translation>Zavřít aktuální okno nápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="376"/>
+        <location filename="Helpviewer/HelpWindow.py" line="379"/>
         <source>Open a new help window tab</source>
         <translation>Otevřít nový tab nápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="371"/>
+        <location filename="Helpviewer/HelpWindow.py" line="374"/>
         <source>&amp;New Tab</source>
         <translation>&amp;Nový tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="371"/>
+        <location filename="Helpviewer/HelpWindow.py" line="374"/>
         <source>Ctrl+T</source>
         <comment>File|New Tab</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="377"/>
+        <location filename="Helpviewer/HelpWindow.py" line="380"/>
         <source>&lt;b&gt;New Tab&lt;/b&gt;&lt;p&gt;This opens a new help window tab.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Nový tab&lt;/b&gt;&lt;p&gt;Otevře nový tab v okně nápovědy.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="385"/>
+        <location filename="Helpviewer/HelpWindow.py" line="388"/>
         <source>Ctrl+N</source>
         <comment>File|New Window</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="390"/>
+        <location filename="Helpviewer/HelpWindow.py" line="393"/>
         <source>Open a new help browser window</source>
         <translation>Otevřít nové okno nápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="391"/>
+        <location filename="Helpviewer/HelpWindow.py" line="394"/>
         <source>&lt;b&gt;New Window&lt;/b&gt;&lt;p&gt;This opens a new help browser window.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Nové okno&lt;/b&gt;&lt;p&gt;Otevře nové okno nápovědy.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="399"/>
+        <location filename="Helpviewer/HelpWindow.py" line="402"/>
         <source>&amp;Open File</source>
         <translation>&amp;Otevřít soubor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="399"/>
+        <location filename="Helpviewer/HelpWindow.py" line="402"/>
         <source>Ctrl+O</source>
         <comment>File|Open</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="404"/>
+        <location filename="Helpviewer/HelpWindow.py" line="407"/>
         <source>Open a help file for display</source>
         <translation>Otevřít soubor s nápovědou</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="405"/>
+        <location filename="Helpviewer/HelpWindow.py" line="408"/>
         <source>&lt;b&gt;Open File&lt;/b&gt;&lt;p&gt;This opens a new help file for display. It pops up a file selection dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Otevřít soubor&lt;/b&gt;&lt;p&gt;Zobrazí nové okno s nápovědou. Otevře dialog pro výběr souboru.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="414"/>
+        <location filename="Helpviewer/HelpWindow.py" line="417"/>
         <source>Open File in New &amp;Tab</source>
         <translation>Otevřít soubor do nového &amp;tabu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="414"/>
+        <location filename="Helpviewer/HelpWindow.py" line="417"/>
         <source>Shift+Ctrl+O</source>
         <comment>File|Open in new tab</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="419"/>
+        <location filename="Helpviewer/HelpWindow.py" line="422"/>
         <source>Open a help file for display in a new tab</source>
         <translation>Otevřít nápovědu do nového tabu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="421"/>
+        <location filename="Helpviewer/HelpWindow.py" line="424"/>
         <source>&lt;b&gt;Open File in New Tab&lt;/b&gt;&lt;p&gt;This opens a new help file for display in a new tab. It pops up a file selection dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Otevřít soubor do nového tabu&lt;/b&gt;&lt;p&gt;Zobrazí se nápověda a zobrazí se v novém tabu. Otevře dialog pro výběr souboru.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="488"/>
+        <location filename="Helpviewer/HelpWindow.py" line="491"/>
         <source>&amp;Print</source>
         <translation>&amp;Tisk</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="488"/>
+        <location filename="Helpviewer/HelpWindow.py" line="491"/>
         <source>Ctrl+P</source>
         <comment>File|Print</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="493"/>
+        <location filename="Helpviewer/HelpWindow.py" line="496"/>
         <source>Print the displayed help</source>
         <translation>Tisknout zobrazenou nápovědu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="494"/>
+        <location filename="Helpviewer/HelpWindow.py" line="497"/>
         <source>&lt;b&gt;Print&lt;/b&gt;&lt;p&gt;Print the displayed help text.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Tisk&lt;/b&gt;&lt;p&gt;Tisknout zobrazenou nápovědu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="529"/>
+        <location filename="Helpviewer/HelpWindow.py" line="532"/>
         <source>&amp;Close</source>
         <translation>&amp;Zavřít</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="529"/>
+        <location filename="Helpviewer/HelpWindow.py" line="532"/>
         <source>Ctrl+W</source>
         <comment>File|Close</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="535"/>
+        <location filename="Helpviewer/HelpWindow.py" line="538"/>
         <source>&lt;b&gt;Close&lt;/b&gt;&lt;p&gt;Closes the current help window.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zavřít&lt;/b&gt;&lt;p&gt;Zavře aktuální okno s nápovědou.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="543"/>
+        <location filename="Helpviewer/HelpWindow.py" line="546"/>
         <source>Close &amp;All</source>
         <translation>Z&amp;avřít vše</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="547"/>
+        <location filename="Helpviewer/HelpWindow.py" line="550"/>
         <source>&lt;b&gt;Close All&lt;/b&gt;&lt;p&gt;Closes all help windows except the first one.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zavřít vše&lt;/b&gt;&lt;p&gt;Zavřít všechna okna s nápovědou kromě prvního.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="570"/>
+        <location filename="Helpviewer/HelpWindow.py" line="573"/>
         <source>&amp;Quit</source>
         <translation>&amp;Konec</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="570"/>
+        <location filename="Helpviewer/HelpWindow.py" line="573"/>
         <source>Ctrl+Q</source>
         <comment>File|Quit</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="587"/>
+        <location filename="Helpviewer/HelpWindow.py" line="590"/>
         <source>&amp;Backward</source>
         <translation>&amp;Nazpět</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="593"/>
+        <location filename="Helpviewer/HelpWindow.py" line="596"/>
         <source>Move one help screen backward</source>
         <translation>Posun o jednu obrazovku nápovědy nazpět</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="594"/>
+        <location filename="Helpviewer/HelpWindow.py" line="597"/>
         <source>&lt;b&gt;Backward&lt;/b&gt;&lt;p&gt;Moves one help screen backward. If none is available, this action is disabled.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Nazpět&lt;/b&gt;&lt;p&gt;Posun o jednu obrazovku nazpět. Pokud není taková k dispozici, je tato akce vypnuta.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="603"/>
+        <location filename="Helpviewer/HelpWindow.py" line="606"/>
         <source>&amp;Forward</source>
         <translation>&amp;Dopředu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="609"/>
+        <location filename="Helpviewer/HelpWindow.py" line="612"/>
         <source>Move one help screen forward</source>
         <translation>Posun o jednu obrazovku dopředu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="610"/>
+        <location filename="Helpviewer/HelpWindow.py" line="613"/>
         <source>&lt;b&gt;Forward&lt;/b&gt;&lt;p&gt;Moves one help screen forward. If none is available, this action is disabled.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Dopředu&lt;/b&gt;&lt;p&gt;Posun o jednu obrazovku dopředu. Pokud není taková k dispozici, je tato akce vypnuta.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="619"/>
+        <location filename="Helpviewer/HelpWindow.py" line="622"/>
         <source>&amp;Home</source>
         <translation>&amp;Hlavní strana</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="624"/>
+        <location filename="Helpviewer/HelpWindow.py" line="627"/>
         <source>Move to the initial help screen</source>
         <translation>Posun na hlavní stranu nápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="625"/>
+        <location filename="Helpviewer/HelpWindow.py" line="628"/>
         <source>&lt;b&gt;Home&lt;/b&gt;&lt;p&gt;Moves to the initial help screen.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Hlavní strana&lt;/b&gt;&lt;p&gt;Posun na hlavní stranu nápovědy.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="633"/>
+        <location filename="Helpviewer/HelpWindow.py" line="636"/>
         <source>&amp;Reload</source>
         <translation>&amp;Obnovit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="639"/>
+        <location filename="Helpviewer/HelpWindow.py" line="642"/>
         <source>Reload the current help screen</source>
         <translation>Obsah aktuální nápovědy se obnoví</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="640"/>
+        <location filename="Helpviewer/HelpWindow.py" line="643"/>
         <source>&lt;b&gt;Reload&lt;/b&gt;&lt;p&gt;Reloads the current help screen.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Obnovit&lt;/b&gt;&lt;p&gt;Znovu načte aktuální obrazovku nápovědy.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="677"/>
+        <location filename="Helpviewer/HelpWindow.py" line="680"/>
         <source>&amp;Find...</source>
         <translation>&amp;Hledat...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="682"/>
+        <location filename="Helpviewer/HelpWindow.py" line="685"/>
         <source>Find text in page</source>
         <translation>Hledat text na stránce</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="683"/>
+        <location filename="Helpviewer/HelpWindow.py" line="686"/>
         <source>&lt;b&gt;Find&lt;/b&gt;&lt;p&gt;Find text in the current page.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Hledat&lt;/b&gt;&lt;p&gt;Hledá se text na aktuální straně.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="691"/>
+        <location filename="Helpviewer/HelpWindow.py" line="694"/>
         <source>Find &amp;next</source>
         <translation>Hledat &amp;následující</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="705"/>
+        <location filename="Helpviewer/HelpWindow.py" line="708"/>
         <source>Find &amp;previous</source>
         <translation>Hledat &amp;předchozí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="776"/>
+        <location filename="Helpviewer/HelpWindow.py" line="779"/>
         <source>&amp;What&apos;s This?</source>
         <translation>&amp;Co je to?</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="781"/>
+        <location filename="Helpviewer/HelpWindow.py" line="784"/>
         <source>Context sensitive help</source>
         <translation>Kontextově senzitivní nápověda</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="782"/>
+        <location filename="Helpviewer/HelpWindow.py" line="785"/>
         <source>&lt;b&gt;Display context sensitive help&lt;/b&gt;&lt;p&gt;In What&apos;s This? mode, the mouse cursor shows an arrow with a question mark, and you can click on the interface elements to get a short description of what they do and how to use them. In dialogs, this feature can be accessed using the context help button in the titlebar.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit kontextově senzitivní nápovědu&lt;/b&gt;&lt;p&gt;V režimu &quot;Co je to?&quot; se nad různými prvky aplikace u kurzoru zobrazí otazník. Když pak kliknete na tyto prvky, zobrazí se krátký popis co daný prvek znamená a jak jej použít. V dialogových oknech se tato funkce spustí tlačítkem kontextové nápovědy na horní liště.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="794"/>
-        <source>&amp;About</source>
-        <translation>O &amp;aplikaci</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="797"/>
+        <source>&amp;About</source>
+        <translation>O &amp;aplikaci</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="800"/>
         <source>Display information about this software</source>
         <translation>Zobrazit informace a tomto software</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="798"/>
+        <location filename="Helpviewer/HelpWindow.py" line="801"/>
         <source>&lt;b&gt;About&lt;/b&gt;&lt;p&gt;Display some information about this software.&lt;/p&gt;</source>
         <translation>&lt;b&gt;O aplikaci&lt;/b&gt;&lt;p&gt;Zobrazí se informace o tomto software.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="806"/>
-        <source>About &amp;Qt</source>
-        <translation>O &amp;Qt</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="809"/>
+        <source>About &amp;Qt</source>
+        <translation>O &amp;Qt</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="812"/>
         <source>Display information about the Qt toolkit</source>
         <translation>Zobrazit informace o Qt toolkitu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="811"/>
+        <location filename="Helpviewer/HelpWindow.py" line="814"/>
         <source>&lt;b&gt;About Qt&lt;/b&gt;&lt;p&gt;Display some information about the Qt toolkit.&lt;/p&gt;</source>
         <translation>&lt;b&gt;A Qt&lt;/b&gt;&lt;p&gt;Zobrazit informace o Qt toolkitu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="819"/>
+        <location filename="Helpviewer/HelpWindow.py" line="822"/>
         <source>Zoom &amp;in</source>
         <translation>Př&amp;iblížit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="825"/>
+        <location filename="Helpviewer/HelpWindow.py" line="828"/>
         <source>Zoom in on the text</source>
         <translation>Zvětšovací lupa</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="826"/>
+        <location filename="Helpviewer/HelpWindow.py" line="829"/>
         <source>&lt;b&gt;Zoom in&lt;/b&gt;&lt;p&gt;Zoom in on the text. This makes the text bigger.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Přiblížit&lt;/b&gt;&lt;p&gt;Přiblížit text. Text bude větší.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="834"/>
+        <location filename="Helpviewer/HelpWindow.py" line="837"/>
         <source>Zoom &amp;out</source>
         <translation>&amp;Oddálit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="840"/>
+        <location filename="Helpviewer/HelpWindow.py" line="843"/>
         <source>Zoom out on the text</source>
         <translation>Zmenšovací lupa</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="841"/>
+        <location filename="Helpviewer/HelpWindow.py" line="844"/>
         <source>&lt;b&gt;Zoom out&lt;/b&gt;&lt;p&gt;Zoom out on the text. This makes the text smaller.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Oddálit&lt;/b&gt;&lt;p&gt;Lupa na oddálení textu. Text bude menší.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="663"/>
+        <location filename="Helpviewer/HelpWindow.py" line="666"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopírovat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="663"/>
+        <location filename="Helpviewer/HelpWindow.py" line="666"/>
         <source>Ctrl+C</source>
         <comment>Edit|Copy</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="668"/>
+        <location filename="Helpviewer/HelpWindow.py" line="671"/>
         <source>Copy the selected text</source>
         <translation>Kopírovat vybraný text</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="669"/>
+        <location filename="Helpviewer/HelpWindow.py" line="672"/>
         <source>&lt;b&gt;Copy&lt;/b&gt;&lt;p&gt;Copy the selected text to the clipboard.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Kopírovat&lt;/b&gt;&lt;p&gt;Kopírovat vybraný text do schránky.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1304"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1323"/>
         <source>&amp;File</source>
         <translation>S&amp;oubor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1325"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1344"/>
         <source>&amp;Edit</source>
         <translation>&amp;Edit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1333"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1352"/>
         <source>&amp;View</source>
         <translation>Poh&amp;led</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1349"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1368"/>
         <source>&amp;Go</source>
         <translation>&amp;Jít</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1362"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1381"/>
         <source>H&amp;istory</source>
         <translation>H&amp;istorie</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1369"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1388"/>
         <source>&amp;Bookmarks</source>
         <translation>&amp;Záložky</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1431"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1451"/>
         <source>&amp;Help</source>
         <translation>&amp;Nápověda</translation>
     </message>
@@ -15670,42 +15847,42 @@
         <translation type="obsolete">Posun doprava</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="529"/>
+        <location filename="Helpviewer/HelpWindow.py" line="532"/>
         <source>Close</source>
         <translation>Zavřít</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="488"/>
+        <location filename="Helpviewer/HelpWindow.py" line="491"/>
         <source>Print</source>
         <translation>Tisk</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1442"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1462"/>
         <source>File</source>
         <translation>Soubor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1460"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1480"/>
         <source>Edit</source>
         <translation>Editovat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1465"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1485"/>
         <source>View</source>
         <translation>Pohled</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1474"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1494"/>
         <source>Find</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1509"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1530"/>
         <source>Help</source>
         <translation>Nápověda</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1516"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1537"/>
         <source>Go</source>
         <translation>Jít</translation>
     </message>
@@ -15715,12 +15892,12 @@
         <translation type="obsolete">&lt;p&gt;Zadání souboru s nápovědou, který se zobrazí přímo do tohoto editačního okna. Výběr předchozí zobrazené nápovědy z drop down seznamu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1750"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1771"/>
         <source>Open File</source>
         <translation>Otevřít soubor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1750"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1771"/>
         <source>Help Files (*.html *.htm);;PDF Files (*.pdf);;CHM Files (*.chm);;All Files (*)</source>
         <translation>Help soubory (*.html *.htm);;PDF soubory (*.pdf);;CHM soubory (*.chm);;Všechny soubory (*)</translation>
     </message>
@@ -15730,204 +15907,204 @@
         <translation type="obsolete">...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="371"/>
+        <location filename="Helpviewer/HelpWindow.py" line="374"/>
         <source>New Tab</source>
         <translation>Nový Tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="385"/>
+        <location filename="Helpviewer/HelpWindow.py" line="388"/>
         <source>New Window</source>
         <translation>Nové okno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="414"/>
+        <location filename="Helpviewer/HelpWindow.py" line="417"/>
         <source>Open File in New Tab</source>
         <translation>Otevřít soubor v novém tabu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="543"/>
+        <location filename="Helpviewer/HelpWindow.py" line="546"/>
         <source>Close All</source>
         <translation>Zavřít vše</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="570"/>
+        <location filename="Helpviewer/HelpWindow.py" line="573"/>
         <source>Quit</source>
         <translation>Konec</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="587"/>
+        <location filename="Helpviewer/HelpWindow.py" line="590"/>
         <source>Backward</source>
         <translation>Nazpět</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="587"/>
+        <location filename="Helpviewer/HelpWindow.py" line="590"/>
         <source>Alt+Left</source>
         <comment>Go|Backward</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="587"/>
+        <location filename="Helpviewer/HelpWindow.py" line="590"/>
         <source>Backspace</source>
         <comment>Go|Backward</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="603"/>
+        <location filename="Helpviewer/HelpWindow.py" line="606"/>
         <source>Forward</source>
         <translation>Dopředu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="603"/>
+        <location filename="Helpviewer/HelpWindow.py" line="606"/>
         <source>Alt+Right</source>
         <comment>Go|Forward</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="603"/>
+        <location filename="Helpviewer/HelpWindow.py" line="606"/>
         <source>Shift+Backspace</source>
         <comment>Go|Forward</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="619"/>
+        <location filename="Helpviewer/HelpWindow.py" line="622"/>
         <source>Home</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="619"/>
+        <location filename="Helpviewer/HelpWindow.py" line="622"/>
         <source>Ctrl+Home</source>
         <comment>Go|Home</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="633"/>
+        <location filename="Helpviewer/HelpWindow.py" line="636"/>
         <source>Reload</source>
         <translation>Obnovit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="633"/>
+        <location filename="Helpviewer/HelpWindow.py" line="636"/>
         <source>Ctrl+R</source>
         <comment>Go|Reload</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="663"/>
+        <location filename="Helpviewer/HelpWindow.py" line="666"/>
         <source>Copy</source>
         <translation>Kopírovat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="677"/>
+        <location filename="Helpviewer/HelpWindow.py" line="680"/>
         <source>Find...</source>
         <translation>Hledat...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="677"/>
+        <location filename="Helpviewer/HelpWindow.py" line="680"/>
         <source>Ctrl+F</source>
         <comment>Edit|Find</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="691"/>
+        <location filename="Helpviewer/HelpWindow.py" line="694"/>
         <source>Find next</source>
         <translation>Najít další</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="691"/>
+        <location filename="Helpviewer/HelpWindow.py" line="694"/>
         <source>F3</source>
         <comment>Edit|Find next</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="705"/>
+        <location filename="Helpviewer/HelpWindow.py" line="708"/>
         <source>Find previous</source>
         <translation>Najít předchozí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="705"/>
+        <location filename="Helpviewer/HelpWindow.py" line="708"/>
         <source>Shift+F3</source>
         <comment>Edit|Find previous</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="734"/>
+        <location filename="Helpviewer/HelpWindow.py" line="737"/>
         <source>Add Bookmark</source>
         <translation>Přidat záložku</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="776"/>
+        <location filename="Helpviewer/HelpWindow.py" line="779"/>
         <source>What&apos;s This?</source>
         <translation>Co je to?</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="776"/>
+        <location filename="Helpviewer/HelpWindow.py" line="779"/>
         <source>Shift+F1</source>
         <comment>Help|What&apos;s This?&apos;</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="794"/>
+        <location filename="Helpviewer/HelpWindow.py" line="797"/>
         <source>About</source>
         <translation>O aplikaci</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="806"/>
+        <location filename="Helpviewer/HelpWindow.py" line="809"/>
         <source>About Qt</source>
         <translation>O Qt</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="819"/>
+        <location filename="Helpviewer/HelpWindow.py" line="822"/>
         <source>Zoom in</source>
         <translation>Přiblížit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="819"/>
+        <location filename="Helpviewer/HelpWindow.py" line="822"/>
         <source>Ctrl++</source>
         <comment>View|Zoom in</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="834"/>
+        <location filename="Helpviewer/HelpWindow.py" line="837"/>
         <source>Zoom out</source>
         <translation>Oddálit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="834"/>
+        <location filename="Helpviewer/HelpWindow.py" line="837"/>
         <source>Ctrl+-</source>
         <comment>View|Zoom out</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="696"/>
+        <location filename="Helpviewer/HelpWindow.py" line="699"/>
         <source>Find next occurrence of text in page</source>
         <translation>Hledat následující výskyt textu na straně</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="697"/>
+        <location filename="Helpviewer/HelpWindow.py" line="700"/>
         <source>&lt;b&gt;Find next&lt;/b&gt;&lt;p&gt;Find the next occurrence of text in the current page.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Hledat následující&lt;/b&gt;&lt;p&gt;Vyhledá se následující výskyt textu na aktuální straně.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="710"/>
+        <location filename="Helpviewer/HelpWindow.py" line="713"/>
         <source>Find previous occurrence of text in page</source>
         <translation>Hledat předchozí výskyt textu na stránce</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="712"/>
+        <location filename="Helpviewer/HelpWindow.py" line="715"/>
         <source>&lt;b&gt;Find previous&lt;/b&gt;&lt;p&gt;Find the previous occurrence of text in the current page.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Hledat předchozí&lt;/b&gt;&lt;p&gt;Vyhledá předchozí výskyt textu na aktuální straně.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="515"/>
+        <location filename="Helpviewer/HelpWindow.py" line="518"/>
         <source>Print Preview</source>
         <translation>Náhled tisku</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="519"/>
+        <location filename="Helpviewer/HelpWindow.py" line="522"/>
         <source>Print preview of the displayed help</source>
         <translation>Tisknout náhled zobrazené nápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="521"/>
+        <location filename="Helpviewer/HelpWindow.py" line="524"/>
         <source>&lt;b&gt;Print Preview&lt;/b&gt;&lt;p&gt;Print preview of the displayed help text.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Vytisknout náhled&lt;/b&gt;&lt;p&gt;Tisknout náhled zobrazeného textu nápovědy.&lt;/p&gt;</translation>
     </message>
@@ -15937,222 +16114,222 @@
         <translation type="obsolete">&lt;p&gt;Tisk není dostupný kvůli bugu v PyQt4.Please upgrade.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="905"/>
+        <location filename="Helpviewer/HelpWindow.py" line="908"/>
         <source>Show next tab</source>
         <translation>Zobrazit následující tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="905"/>
+        <location filename="Helpviewer/HelpWindow.py" line="908"/>
         <source>Ctrl+Alt+Tab</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="914"/>
+        <location filename="Helpviewer/HelpWindow.py" line="917"/>
         <source>Show previous tab</source>
         <translation>Zobrazit předchozí tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="914"/>
+        <location filename="Helpviewer/HelpWindow.py" line="917"/>
         <source>Shift+Ctrl+Alt+Tab</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="923"/>
+        <location filename="Helpviewer/HelpWindow.py" line="926"/>
         <source>Switch between tabs</source>
         <translation>Přepnout mezi taby</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="923"/>
+        <location filename="Helpviewer/HelpWindow.py" line="926"/>
         <source>Ctrl+1</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1110"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1129"/>
         <source>Clear icons database</source>
         <translation>Vyčistit ikony databáze</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1114"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1133"/>
         <source>Clear the database of favicons</source>
         <translation>Vyčistit databázi favicons</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1115"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1134"/>
         <source>&lt;b&gt;Clear icons database&lt;/b&gt;&lt;p&gt;Clears the database of favicons of previously visited URLs.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Vyčistit databázi favicons&lt;/b&gt;&lt;p&gt;Vyčistit databázi favicons navštívených URL.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="932"/>
-        <source>Preferences</source>
-        <translation>Předvolby</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="932"/>
-        <source>&amp;Preferences...</source>
-        <translation>&amp;Předvolby...</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="935"/>
+        <source>Preferences</source>
+        <translation>Předvolby</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="935"/>
+        <source>&amp;Preferences...</source>
+        <translation>&amp;Předvolby...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="938"/>
         <source>Set the prefered configuration</source>
         <translation>Nastavit preferovanou konfiguraci</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="936"/>
+        <location filename="Helpviewer/HelpWindow.py" line="939"/>
         <source>&lt;b&gt;Preferences&lt;/b&gt;&lt;p&gt;Set the configuration items of the application with your prefered values.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Předvolby&lt;/b&gt;&lt;p&gt;Upravit položky konfigurace aplikace podle vašich předvoleb.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="167"/>
+        <location filename="Helpviewer/HelpWindow.py" line="170"/>
         <source>Contents</source>
         <translation>Obsah</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="546"/>
+        <location filename="Helpviewer/HelpWindow.py" line="549"/>
         <source>Close all help windows</source>
         <translation>Zavřít všechna okna s nápovědou</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1002"/>
-        <source>Sync with Table of Contents</source>
-        <translation>Sync obsahu</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1006"/>
-        <source>Synchronizes the table of contents with current page</source>
-        <translation>Synchronizuje obsah s aktuální stranou</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1008"/>
-        <source>&lt;b&gt;Sync with Table of Contents&lt;/b&gt;&lt;p&gt;Synchronizes the table of contents with current page.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Sync obsah&lt;/b&gt;&lt;p&gt;Synchronizuje obsah s aktuální stranou.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1016"/>
-        <source>Table of Contents</source>
-        <translation>Obsah</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1019"/>
-        <source>Shows the table of contents window</source>
-        <translation>Zobrazit okno s obsahem</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1021"/>
+        <source>Sync with Table of Contents</source>
+        <translation>Sync obsahu</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1025"/>
+        <source>Synchronizes the table of contents with current page</source>
+        <translation>Synchronizuje obsah s aktuální stranou</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1027"/>
+        <source>&lt;b&gt;Sync with Table of Contents&lt;/b&gt;&lt;p&gt;Synchronizes the table of contents with current page.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Sync obsah&lt;/b&gt;&lt;p&gt;Synchronizuje obsah s aktuální stranou.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1035"/>
+        <source>Table of Contents</source>
+        <translation>Obsah</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1038"/>
+        <source>Shows the table of contents window</source>
+        <translation>Zobrazit okno s obsahem</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1040"/>
         <source>&lt;b&gt;Table of Contents&lt;/b&gt;&lt;p&gt;Shows the table of contents window.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Obsah&lt;/b&gt;&lt;p&gt;Zobrazit okno s obsahem.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1055"/>
-        <source>Manage QtHelp Documents</source>
-        <translation>Uspořádat dokumenty QtNápovědy</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1058"/>
-        <source>Shows a dialog to manage the QtHelp documentation set</source>
-        <translation>Zobrazit dialog pro uspořádání QtNápovědy</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1060"/>
-        <source>&lt;b&gt;Manage QtHelp Documents&lt;/b&gt;&lt;p&gt;Shows a dialog to manage the QtHelp documentation set.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Uspořádat dokumenty QtNápovědy&lt;/b&gt;&lt;p&gt;Zobrazit dialog pro uspořádání QtNápovědy.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1421"/>
-        <source>&amp;Window</source>
-        <translation>O&amp;kno</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1481"/>
-        <source>Filter</source>
-        <translation>Filtr</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1486"/>
-        <source>Filtered by: </source>
-        <translation>Filtrováno: </translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2295"/>
-        <source>Could not find an associated content.</source>
-        <translation>Asociovaný obsah nelze nalézt.</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1069"/>
-        <source>Manage QtHelp Filters</source>
-        <translation>Uspořádat filtry QtNápovědy</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1072"/>
-        <source>Shows a dialog to manage the QtHelp filters</source>
-        <translation>Zobrazit dialog pro uspořádání filtrů QtNápovědy</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1074"/>
+        <source>Manage QtHelp Documents</source>
+        <translation>Uspořádat dokumenty QtNápovědy</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1077"/>
+        <source>Shows a dialog to manage the QtHelp documentation set</source>
+        <translation>Zobrazit dialog pro uspořádání QtNápovědy</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1079"/>
+        <source>&lt;b&gt;Manage QtHelp Documents&lt;/b&gt;&lt;p&gt;Shows a dialog to manage the QtHelp documentation set.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Uspořádat dokumenty QtNápovědy&lt;/b&gt;&lt;p&gt;Zobrazit dialog pro uspořádání QtNápovědy.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1441"/>
+        <source>&amp;Window</source>
+        <translation>O&amp;kno</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1501"/>
+        <source>Filter</source>
+        <translation>Filtr</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1506"/>
+        <source>Filtered by: </source>
+        <translation>Filtrováno: </translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="2319"/>
+        <source>Could not find an associated content.</source>
+        <translation>Asociovaný obsah nelze nalézt.</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1088"/>
+        <source>Manage QtHelp Filters</source>
+        <translation>Uspořádat filtry QtNápovědy</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1091"/>
+        <source>Shows a dialog to manage the QtHelp filters</source>
+        <translation>Zobrazit dialog pro uspořádání filtrů QtNápovědy</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1093"/>
         <source>&lt;b&gt;Manage QtHelp Filters&lt;/b&gt;&lt;p&gt;Shows a dialog to manage the QtHelp filters.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Uspořádat filtry QtNápovědy&lt;/b&gt;&lt;p&gt;Zobrazit dialog pro uspořádání filtrů QtNápovědy.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1029"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1048"/>
         <source>Index</source>
         <translation>Index</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1032"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1051"/>
         <source>Shows the index window</source>
         <translation>Zobrazit index okna</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1034"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1053"/>
         <source>&lt;b&gt;Index&lt;/b&gt;&lt;p&gt;Shows the index window.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Index&lt;/b&gt;&lt;p&gt;Zobrazit index okna.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1042"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1061"/>
         <source>Search</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1045"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1064"/>
         <source>Shows the search window</source>
         <translation>Zobrazit okno hledání</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1047"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1066"/>
         <source>&lt;b&gt;Search&lt;/b&gt;&lt;p&gt;Shows the search window.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Hledání&lt;/b&gt;&lt;p&gt;Zobrazit okno hledání.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1082"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1101"/>
         <source>Reindex Documentation</source>
         <translation>Znovu indexovat dokumentaci</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1085"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1104"/>
         <source>Reindexes the documentation set</source>
         <translation>Přeindexuje dokumentaci</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1087"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1106"/>
         <source>&lt;b&gt;Reindex Documentation&lt;/b&gt;&lt;p&gt;Reindexes the documentation set.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Znovu indexovat dokumentaci&lt;/b&gt;&lt;p&gt;Přeindexuje dokumentaci.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2404"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2428"/>
         <source>Updating search index</source>
         <translation>Aktualizovat index pro hledání</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2456"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2480"/>
         <source>Looking for Documentation...</source>
         <translation>Vyhledat dokumentaci...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2486"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2510"/>
         <source>Unfiltered</source>
         <translation>Nefiltrováno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2505"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2529"/>
         <source>Help Engine</source>
         <translation>Engine nápovědy</translation>
     </message>
@@ -16162,17 +16339,17 @@
         <translation type="obsolete">Zobrazit menu navigace</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="559"/>
+        <location filename="Helpviewer/HelpWindow.py" line="562"/>
         <source>Private Browsing</source>
         <translation>Mód soukromí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="555"/>
+        <location filename="Helpviewer/HelpWindow.py" line="558"/>
         <source>Private &amp;Browsing</source>
         <translation>Mód &amp;soukromí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="560"/>
+        <location filename="Helpviewer/HelpWindow.py" line="563"/>
         <source>&lt;b&gt;Private Browsing&lt;/b&gt;&lt;p&gt;Enables private browsing. In this mode no history is recorded anymore.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Mód soukromí&lt;/b&gt;&lt;p&gt;Zapne mód soukromí. V tomto módu není zaznamenávána historie stran.&lt;/p&gt;</translation>
     </message>
@@ -16187,52 +16364,52 @@
         <translation type="obsolete">Načteno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2037"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2058"/>
         <source>Full Screen</source>
         <translation>Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="895"/>
+        <location filename="Helpviewer/HelpWindow.py" line="898"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="895"/>
+        <location filename="Helpviewer/HelpWindow.py" line="898"/>
         <source>F11</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1055"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1074"/>
         <source>Manage QtHelp &amp;Documents</source>
         <translation>Uspořádat QtHelp &amp;dokumenty</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1069"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1088"/>
         <source>Manage QtHelp &amp;Filters</source>
         <translation>Uspořádat QtHelp &amp;filtry</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1082"/>
-        <source>&amp;Reindex Documentation</source>
-        <translation>Přeinde&amp;xovat dokumentaci</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1100"/>
-        <source>Clear private data</source>
-        <translation>Smazat soukromá data</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1096"/>
-        <source>&amp;Clear private data</source>
-        <translation>Smazat &amp;soukromá data</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1101"/>
+        <source>&amp;Reindex Documentation</source>
+        <translation>Přeinde&amp;xovat dokumentaci</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1119"/>
+        <source>Clear private data</source>
+        <translation>Smazat soukromá data</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1115"/>
+        <source>&amp;Clear private data</source>
+        <translation>Smazat &amp;soukromá data</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1120"/>
         <source>&lt;b&gt;Clear private data&lt;/b&gt;&lt;p&gt;Clears the private data like browsing history, search history or the favicons database.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Smazat soukromá data&lt;/b&gt;&lt;p&gt;Smaže soukromá data jako je historie prohlížení, vyhledávání a databáze favicon.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1110"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1129"/>
         <source>Clear &amp;icons database</source>
         <translation>Smazat databázi &amp;ikon</translation>
     </message>
@@ -16247,7 +16424,7 @@
         <translation type="obsolete">Zobrazit mo&amp;nitor sítě</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1201"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1220"/>
         <source>Show the network monitor dialog</source>
         <translation>Zobrazit dialog monitoru sítě</translation>
     </message>
@@ -16257,260 +16434,260 @@
         <translation type="obsolete">&lt;b&gt;Zobrazit monitor sítě&lt;/b&gt;&lt;p&gt;Zobrazit dialog monitoru sítě.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1384"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1403"/>
         <source>&amp;Settings</source>
         <translation>Na&amp;stavení</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1412"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1432"/>
         <source>&amp;Tools</source>
         <translation>&amp;Nástroje</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="881"/>
+        <location filename="Helpviewer/HelpWindow.py" line="884"/>
         <source>Show page source</source>
         <translation>Zobrazit zdroj strany</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="881"/>
+        <location filename="Helpviewer/HelpWindow.py" line="884"/>
         <source>Ctrl+U</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="885"/>
+        <location filename="Helpviewer/HelpWindow.py" line="888"/>
         <source>Show the page source in an editor</source>
         <translation>Zobrazit zdroj strany v editoru</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="886"/>
+        <location filename="Helpviewer/HelpWindow.py" line="889"/>
         <source>&lt;b&gt;Show page source&lt;/b&gt;&lt;p&gt;Show the page source in an editor.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit zdroj strany&lt;/b&gt;&lt;p&gt;Zobrazit zdroj strany v editoru.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="945"/>
-        <source>&amp;Languages...</source>
-        <translation>&amp;Jazyky...</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="948"/>
+        <source>&amp;Languages...</source>
+        <translation>&amp;Jazyky...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="951"/>
         <source>Configure the accepted languages for web pages</source>
         <translation>Nastavit polovené jazyky pro web strany</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="950"/>
+        <location filename="Helpviewer/HelpWindow.py" line="953"/>
         <source>&lt;b&gt;Languages&lt;/b&gt;&lt;p&gt;Configure the accepted languages for web pages.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Jazyky&lt;/b&gt;&lt;p&gt;Nastavit polovené jazyky pro web strany.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="945"/>
+        <location filename="Helpviewer/HelpWindow.py" line="948"/>
         <source>Languages</source>
         <translation>Jazyky</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="958"/>
+        <location filename="Helpviewer/HelpWindow.py" line="961"/>
         <source>Cookies</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="958"/>
-        <source>C&amp;ookies...</source>
-        <translation>C&amp;ookies...</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="961"/>
+        <source>C&amp;ookies...</source>
+        <translation>C&amp;ookies...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="964"/>
         <source>Configure cookies handling</source>
         <translation>Nastavit ovládání cookies</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="963"/>
+        <location filename="Helpviewer/HelpWindow.py" line="966"/>
         <source>&lt;b&gt;Cookies&lt;/b&gt;&lt;p&gt;Configure cookies handling.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Cookies&lt;/b&gt;&lt;p&gt;Nastavit ovládání cookies.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1492"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1512"/>
         <source>Settings</source>
         <translation>Nastavení</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="849"/>
+        <location filename="Helpviewer/HelpWindow.py" line="852"/>
         <source>Zoom reset</source>
         <translation>Resetovat lupu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="849"/>
+        <location filename="Helpviewer/HelpWindow.py" line="852"/>
         <source>Zoom &amp;reset</source>
         <translation>&amp;Resetovat lupu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="849"/>
+        <location filename="Helpviewer/HelpWindow.py" line="852"/>
         <source>Ctrl+0</source>
         <comment>View|Zoom reset</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="854"/>
+        <location filename="Helpviewer/HelpWindow.py" line="857"/>
         <source>Reset the zoom of the text</source>
         <translation>Resetovat lupu textu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="865"/>
+        <location filename="Helpviewer/HelpWindow.py" line="868"/>
         <source>Zoom text only</source>
         <translation>Jen lupa textu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="865"/>
+        <location filename="Helpviewer/HelpWindow.py" line="868"/>
         <source>Zoom &amp;text only</source>
         <translation>Jen lupa &amp;textu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="869"/>
+        <location filename="Helpviewer/HelpWindow.py" line="872"/>
         <source>Zoom text only; pictures remain constant</source>
         <translation>Jen lupa textu; obrázky zůstávají beze změn</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="871"/>
+        <location filename="Helpviewer/HelpWindow.py" line="874"/>
         <source>&lt;b&gt;Zoom text only&lt;/b&gt;&lt;p&gt;Zoom text only; pictures remain constant.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Jen lupa textu&lt;/b&gt;&lt;p&gt;Jen lupa textu; Obrázky zůstávají beze změn.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="855"/>
+        <location filename="Helpviewer/HelpWindow.py" line="858"/>
         <source>&lt;b&gt;Zoom reset&lt;/b&gt;&lt;p&gt;Reset the zoom of the text. This sets the zoom factor to 100%.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Reset lupy&lt;/b&gt;&lt;p&gt;Reset lupy pro text. Nastaví se lupa na hodnotu 100%.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="385"/>
+        <location filename="Helpviewer/HelpWindow.py" line="388"/>
         <source>New &amp;Window</source>
         <translation>&amp;Nové okno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="460"/>
-        <source>Import Bookmarks</source>
-        <translation>Importovat záložky</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="460"/>
-        <source>&amp;Import Bookmarks...</source>
-        <translation>&amp;Importovat záložky...</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="463"/>
+        <source>Import Bookmarks</source>
+        <translation>Importovat záložky</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="463"/>
+        <source>&amp;Import Bookmarks...</source>
+        <translation>&amp;Importovat záložky...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="466"/>
         <source>Import bookmarks from other browsers</source>
         <translation>Import záložek z jiných prohlížečů</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="465"/>
+        <location filename="Helpviewer/HelpWindow.py" line="468"/>
         <source>&lt;b&gt;Import Bookmarks&lt;/b&gt;&lt;p&gt;Import bookmarks from other browsers.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Import záložek&lt;/b&gt;&lt;p&gt;Import záložek z jiných prohlížečů.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="474"/>
+        <location filename="Helpviewer/HelpWindow.py" line="477"/>
         <source>Export Bookmarks</source>
         <translation>Export záložek</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="474"/>
-        <source>&amp;Export Bookmarks...</source>
-        <translation>&amp;Exportovat záložky...</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="477"/>
+        <source>&amp;Export Bookmarks...</source>
+        <translation>&amp;Exportovat záložky...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="480"/>
         <source>Export the bookmarks into a file</source>
         <translation>Export záložek do souboru</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="479"/>
+        <location filename="Helpviewer/HelpWindow.py" line="482"/>
         <source>&lt;b&gt;Export Bookmarks&lt;/b&gt;&lt;p&gt;Export the bookmarks into a file.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Export záložek&lt;/b&gt;&lt;p&gt;Export záložek do souboru.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="720"/>
+        <location filename="Helpviewer/HelpWindow.py" line="723"/>
         <source>Manage Bookmarks</source>
         <translation>Správa záložek</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="720"/>
+        <location filename="Helpviewer/HelpWindow.py" line="723"/>
         <source>&amp;Manage Bookmarks...</source>
         <translation>&amp;Správa záložek...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="720"/>
+        <location filename="Helpviewer/HelpWindow.py" line="723"/>
         <source>Ctrl+Shift+B</source>
         <comment>Help|Manage bookmarks</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="724"/>
+        <location filename="Helpviewer/HelpWindow.py" line="727"/>
         <source>Open a dialog to manage the bookmarks.</source>
         <translation>Otevřít dialog pro správu záložek.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="726"/>
+        <location filename="Helpviewer/HelpWindow.py" line="729"/>
         <source>&lt;b&gt;Manage Bookmarks...&lt;/b&gt;&lt;p&gt;Open a dialog to manage the bookmarks.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Správa záložek&lt;/b&gt;&lt;p&gt;Otevřít dialog pro správu záložek.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="734"/>
+        <location filename="Helpviewer/HelpWindow.py" line="737"/>
         <source>Add &amp;Bookmark...</source>
         <translation>Přid&amp;at záložku...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="734"/>
+        <location filename="Helpviewer/HelpWindow.py" line="737"/>
         <source>Ctrl+D</source>
         <comment>Help|Add bookmark</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="740"/>
+        <location filename="Helpviewer/HelpWindow.py" line="743"/>
         <source>Open a dialog to add a bookmark.</source>
         <translation>Otevřít dialog pro přidání záložky.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="741"/>
+        <location filename="Helpviewer/HelpWindow.py" line="744"/>
         <source>&lt;b&gt;Add Bookmark&lt;/b&gt;&lt;p&gt;Open a dialog to add the current URL as a bookmark.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Přidat záložku&lt;/b&gt;&lt;p&gt;Otevřít dialog pro přidání aktuální URL jako záložky.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="749"/>
-        <source>Add Folder</source>
-        <translation>Přidat složku</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="749"/>
-        <source>Add &amp;Folder...</source>
-        <translation>Přidat s&amp;ložku...</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="752"/>
+        <source>Add Folder</source>
+        <translation>Přidat složku</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="752"/>
+        <source>Add &amp;Folder...</source>
+        <translation>Přidat s&amp;ložku...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="755"/>
         <source>Open a dialog to add a new bookmarks folder.</source>
         <translation>Otevřít dialog pro přidání nové složky záložek.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="754"/>
+        <location filename="Helpviewer/HelpWindow.py" line="757"/>
         <source>&lt;b&gt;Add Folder...&lt;/b&gt;&lt;p&gt;Open a dialog to add a new bookmarks folder.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Přidat složku...&lt;/b&gt;&lt;p&gt;Otevřít dialog pro přidání nové složky záložek.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="762"/>
-        <source>Bookmark All Tabs</source>
-        <translation>Vytvořit záložky pro všechny taby</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="762"/>
-        <source>Bookmark All Tabs...</source>
-        <translation>Vytvořit záložky pro všechny taby...</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="765"/>
+        <source>Bookmark All Tabs</source>
+        <translation>Vytvořit záložky pro všechny taby</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="765"/>
+        <source>Bookmark All Tabs...</source>
+        <translation>Vytvořit záložky pro všechny taby...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="768"/>
         <source>Bookmark all open tabs.</source>
         <translation>Vytvořit záložky pro všechny otevřené taby.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="767"/>
+        <location filename="Helpviewer/HelpWindow.py" line="770"/>
         <source>&lt;b&gt;Bookmark All Tabs...&lt;/b&gt;&lt;p&gt;Open a dialog to add a new bookmarks folder for all open tabs.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Vytvořit záložky pro všechny taby...&lt;/b&gt;&lt;p&gt;Otevřít dialog pro přidání nové složky záložek pro všechny otevřené taby.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1870"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1891"/>
         <source>Saved Tabs</source>
         <translation>Uložkt taby</translation>
     </message>
@@ -16520,40 +16697,40 @@
         <translation type="obsolete">Zavřít ostatní</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="633"/>
+        <location filename="Helpviewer/HelpWindow.py" line="636"/>
         <source>F5</source>
         <comment>Go|Reload</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="648"/>
+        <location filename="Helpviewer/HelpWindow.py" line="651"/>
         <source>Stop</source>
         <translation>Zastavit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="648"/>
+        <location filename="Helpviewer/HelpWindow.py" line="651"/>
         <source>&amp;Stop</source>
         <translation>Za&amp;stavit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="648"/>
+        <location filename="Helpviewer/HelpWindow.py" line="651"/>
         <source>Ctrl+.</source>
         <comment>Go|Stop</comment>
         <translation>Ctrl+.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="648"/>
+        <location filename="Helpviewer/HelpWindow.py" line="651"/>
         <source>Esc</source>
         <comment>Go|Stop</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="654"/>
+        <location filename="Helpviewer/HelpWindow.py" line="657"/>
         <source>Stop loading</source>
         <translation>Zastavit načítání</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="655"/>
+        <location filename="Helpviewer/HelpWindow.py" line="658"/>
         <source>&lt;b&gt;Stop&lt;/b&gt;&lt;p&gt;Stops loading of the current tab.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zastavit&lt;/b&gt;&lt;p&gt;Zastavit načítání aktuálního tabu.&lt;/p&gt;</translation>
     </message>
@@ -16568,23 +16745,23 @@
         <translation type="obsolete">Uložit jako </translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="430"/>
+        <location filename="Helpviewer/HelpWindow.py" line="433"/>
         <source>&amp;Save As...</source>
         <translation>Uložit j&amp;ako...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="430"/>
+        <location filename="Helpviewer/HelpWindow.py" line="433"/>
         <source>Shift+Ctrl+S</source>
         <comment>File|Save As</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="435"/>
+        <location filename="Helpviewer/HelpWindow.py" line="438"/>
         <source>Save the current page to disk</source>
         <translation>Uložit aktuální stranu na disk</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="437"/>
+        <location filename="Helpviewer/HelpWindow.py" line="440"/>
         <source>&lt;b&gt;Save As...&lt;/b&gt;&lt;p&gt;Saves the current page to disk.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Uložit jako...&lt;/b&gt;&lt;p&gt;Uložit aktuální stranu na disk.&lt;/p&gt;</translation>
     </message>
@@ -16609,62 +16786,62 @@
         <translation type="obsolete">&lt;b&gt;Ukončit&lt;/b&gt;&lt;p&gt;Ukončit web prohlížeč.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1123"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1142"/>
         <source>Configure Search Engines</source>
         <translation>Konfigurovat vyhledávací enginy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1127"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1146"/>
         <source>Configure the available search engines</source>
         <translation>Konfigurovat dostupné vyhledávací enginy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1129"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1148"/>
         <source>&lt;b&gt;Configure Search Engines...&lt;/b&gt;&lt;p&gt;Opens a dialog to configure the available search engines.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Konfigurivat vyhledávací enginy...&lt;/b&gt;&lt;p&gt;Otevře dialog pro konfiguraci dostupných vyhledávacích enginů.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1138"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1157"/>
         <source>Manage Saved Passwords</source>
         <translation>Spravovat uložená hesla</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1138"/>
-        <source>Manage Saved Passwords...</source>
-        <translation>Spravovat uložená hesla...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1142"/>
-        <source>Manage the saved passwords</source>
-        <translation>Spravovat vaše uložená hesla</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1144"/>
-        <source>&lt;b&gt;Manage Saved Passwords...&lt;/b&gt;&lt;p&gt;Opens a dialog to manage the saved passwords.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Spravovat uložená hesla...&lt;/b&gt;&lt;p&gt;Otevře dialog pro spravování uložených hesel.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1152"/>
-        <source>Ad Block</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1152"/>
-        <source>&amp;Ad Block...</source>
-        <translation>&amp;Ad Block...</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1157"/>
+        <source>Manage Saved Passwords...</source>
+        <translation>Spravovat uložená hesla...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1161"/>
+        <source>Manage the saved passwords</source>
+        <translation>Spravovat vaše uložená hesla</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1163"/>
+        <source>&lt;b&gt;Manage Saved Passwords...&lt;/b&gt;&lt;p&gt;Opens a dialog to manage the saved passwords.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Spravovat uložená hesla...&lt;/b&gt;&lt;p&gt;Otevře dialog pro spravování uložených hesel.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1171"/>
+        <source>Ad Block</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1171"/>
+        <source>&amp;Ad Block...</source>
+        <translation>&amp;Ad Block...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1176"/>
         <source>Configure AdBlock subscriptions and rules</source>
         <translation>Konfigurovat AdBlock odebírání a pravidla</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1159"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1178"/>
         <source>&lt;b&gt;Ad Block...&lt;/b&gt;&lt;p&gt;Opens a dialog to configure AdBlock subscriptions and rules.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Ad Block...&lt;/b&gt;&lt;p&gt;Otevře dialog pro konfiguraci AdBlock odebírání a pravidel.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2465"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2489"/>
         <source>eric5 Web Browser</source>
         <translation>eric5 web prohlížeč</translation>
     </message>
@@ -16674,52 +16851,52 @@
         <translation type="obsolete">Načtení selhalo</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="502"/>
+        <location filename="Helpviewer/HelpWindow.py" line="505"/>
         <source>Print as PDF</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="506"/>
+        <location filename="Helpviewer/HelpWindow.py" line="509"/>
         <source>Print the displayed help as PDF</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="507"/>
+        <location filename="Helpviewer/HelpWindow.py" line="510"/>
         <source>&lt;b&gt;Print as PDF&lt;/b&gt;&lt;p&gt;Print the displayed help text as a PDF file.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="971"/>
+        <location filename="Helpviewer/HelpWindow.py" line="974"/>
         <source>Offline Storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="971"/>
-        <source>Offline &amp;Storage...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="974"/>
+        <source>Offline &amp;Storage...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="977"/>
         <source>Configure offline storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="976"/>
+        <location filename="Helpviewer/HelpWindow.py" line="979"/>
         <source>&lt;b&gt;Offline Storage&lt;/b&gt;&lt;p&gt;Opens a dialog to configure offline storage.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1123"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1142"/>
         <source>Configure Search &amp;Engines...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2066"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2087"/>
         <source>&lt;b&gt;Are you sure you want to turn on private browsing?&lt;/b&gt;&lt;p&gt;When private browsing is turned on, web pages are not added to the history, searches are not added to the list of recent searches and web site icons and cookies are not stored. HTML5 offline storage will be deactivated. Until you close the window, you can still click the Back and Forward buttons to return to the web pages you have opened.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1344"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1363"/>
         <source>Text Encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -16729,320 +16906,340 @@
         <translation type="obsolete">Výchozí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2870"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2914"/>
         <source>ISO</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2871"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2915"/>
         <source>Windows</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2872"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2916"/>
         <source>ISCII</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2873"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2917"/>
         <source>Unicode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2874"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2918"/>
         <source>Other</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2875"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2919"/>
         <source>IBM</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2897"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2941"/>
         <source>Default Encoding</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1210"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1229"/>
         <source>Downloads</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1213"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1232"/>
         <source>Shows the downloads window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1215"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1234"/>
         <source>&lt;b&gt;Downloads&lt;/b&gt;&lt;p&gt;Shows the downloads window.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1183"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1202"/>
         <source>Manage Certificates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1183"/>
-        <source>Manage Certificates...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1187"/>
-        <source>Manage the saved certificates</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1189"/>
-        <source>&lt;b&gt;Manage Saved Certificates...&lt;/b&gt;&lt;p&gt;Opens a dialog to manage the saved certificates.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1566"/>
-        <source>VirusTotal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1572"/>
-        <source>&lt;h2&gt;File search&lt;/h2&gt;&lt;p&gt;In order to search for the last VirusTotal report on a given file just enter its hash. Currently the allowed hashes are MD5, SHA1 and SHA256. You can also search for a particular file report by typing in its permalink id.&lt;/p&gt;&lt;h2&gt;URL search&lt;/h2&gt;&lt;p&gt;URL searches are simple, just type in the given URL, the application will normalize it and compare it with the entries in VirusTotal&apos;s database. Alternatively you may enter the MD5 hash of an URL preceded by &quot;url:&quot;, e.g. url:7f911bbcf618f052ac6b9928600d2820.&lt;/p&gt;&lt;h2&gt;User search&lt;/h2&gt;&lt;p&gt;Do you want to know whether a friend has a VT Community account? Simply type in his nick preceded by the symbol &quot;@&quot;, e.g. @EmilianoMartinez.&lt;/p&gt;&lt;h2&gt;Search through comments&lt;/h2&gt;&lt;p&gt;The comments in VT Community may often help in disinfecting your PC or may proof themselves useful when analysing a particular malware sample, comment tags enable users to search through the VT Community reviews. The standard file tags are: {0} The standard URL tags are: {1}User generated tags are preceded by the symbol &quot;#&quot;, e.g. #disinfect.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1616"/>
-        <source>Search VirusTotal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1622"/>
-        <source>Scan current site</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="3148"/>
-        <source>VirusTotal Scan</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="3148"/>
-        <source>&lt;p&gt;The VirusTotal scan could not be scheduled.&lt;p&gt;
-&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="575"/>
-        <source>Quit the eric5 Web Browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="576"/>
-        <source>&lt;b&gt;Quit&lt;/b&gt;&lt;p&gt;Quit the eric5 Web Browser.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1223"/>
-        <source>RSS Feeds Dialog</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1223"/>
-        <source>&amp;RSS Feeds Dialog...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1223"/>
-        <source>Ctrl+Shift+F</source>
-        <comment>Help|RSS Feeds Dialog</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1228"/>
-        <source>Open a dialog showing the configured RSS feeds.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1230"/>
-        <source>&lt;b&gt;RSS Feeds Dialog...&lt;/b&gt;&lt;p&gt;Open a dialog to show the configured RSS feeds. It can be used to mange the feeds and to show their contents.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1239"/>
-        <source>Siteinfo Dialog</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1239"/>
-        <source>&amp;Siteinfo Dialog...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1239"/>
-        <source>Ctrl+Shift+I</source>
-        <comment>Help|Siteinfo Dialog</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1244"/>
-        <source>Open a dialog showing some information about the current site.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1246"/>
-        <source>&lt;b&gt;Siteinfo Dialog...&lt;/b&gt;&lt;p&gt;Opens a dialog showing some information about the current site.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1501"/>
-        <source>Tools</source>
-        <translation type="unfinished">Nástroje</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="819"/>
-        <source>Zoom In</source>
-        <comment>View|Zoom in</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="834"/>
-        <source>Zoom Out</source>
-        <comment>View|Zoom out</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1197"/>
-        <source>Network Monitor</source>
-        <translation type="unfinished">Monitor sítě</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1197"/>
-        <source>&amp;Network Monitor...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1202"/>
-        <source>&lt;b&gt;Network Monitor...&lt;/b&gt;&lt;p&gt;Shows the network monitor dialog.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1785"/>
-        <source>&lt;b&gt;eric5 Web Browser - {0}&lt;/b&gt;&lt;p&gt;The eric5 Web Browser is a combined help file and HTML browser. It is part of the eric5 development toolset.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2043"/>
-        <source>Restore Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1255"/>
-        <source>Manage User Agent Settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1255"/>
-        <source>Manage &amp;User Agent Settings</source>
+        <source>Manage Certificates...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1206"/>
+        <source>Manage the saved certificates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1208"/>
+        <source>&lt;b&gt;Manage Saved Certificates...&lt;/b&gt;&lt;p&gt;Opens a dialog to manage the saved certificates.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1587"/>
+        <source>VirusTotal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1593"/>
+        <source>&lt;h2&gt;File search&lt;/h2&gt;&lt;p&gt;In order to search for the last VirusTotal report on a given file just enter its hash. Currently the allowed hashes are MD5, SHA1 and SHA256. You can also search for a particular file report by typing in its permalink id.&lt;/p&gt;&lt;h2&gt;URL search&lt;/h2&gt;&lt;p&gt;URL searches are simple, just type in the given URL, the application will normalize it and compare it with the entries in VirusTotal&apos;s database. Alternatively you may enter the MD5 hash of an URL preceded by &quot;url:&quot;, e.g. url:7f911bbcf618f052ac6b9928600d2820.&lt;/p&gt;&lt;h2&gt;User search&lt;/h2&gt;&lt;p&gt;Do you want to know whether a friend has a VT Community account? Simply type in his nick preceded by the symbol &quot;@&quot;, e.g. @EmilianoMartinez.&lt;/p&gt;&lt;h2&gt;Search through comments&lt;/h2&gt;&lt;p&gt;The comments in VT Community may often help in disinfecting your PC or may proof themselves useful when analysing a particular malware sample, comment tags enable users to search through the VT Community reviews. The standard file tags are: {0} The standard URL tags are: {1}User generated tags are preceded by the symbol &quot;#&quot;, e.g. #disinfect.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1637"/>
+        <source>Search VirusTotal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1643"/>
+        <source>Scan current site</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="3192"/>
+        <source>VirusTotal Scan</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="3192"/>
+        <source>&lt;p&gt;The VirusTotal scan could not be scheduled.&lt;p&gt;
+&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="578"/>
+        <source>Quit the eric5 Web Browser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="579"/>
+        <source>&lt;b&gt;Quit&lt;/b&gt;&lt;p&gt;Quit the eric5 Web Browser.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1242"/>
+        <source>RSS Feeds Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1242"/>
+        <source>&amp;RSS Feeds Dialog...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1242"/>
+        <source>Ctrl+Shift+F</source>
+        <comment>Help|RSS Feeds Dialog</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1247"/>
+        <source>Open a dialog showing the configured RSS feeds.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1249"/>
+        <source>&lt;b&gt;RSS Feeds Dialog...&lt;/b&gt;&lt;p&gt;Open a dialog to show the configured RSS feeds. It can be used to mange the feeds and to show their contents.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1258"/>
+        <source>Siteinfo Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1258"/>
+        <source>&amp;Siteinfo Dialog...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="1258"/>