Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.

Sat, 04 Aug 2012 13:30:04 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 04 Aug 2012 13:30:04 +0200
changeset 1970
02cf3bac079b
parent 1969
5522b3266c8b
child 1971
a68d78702c98

Rewrote huge part of AdBlock to speed up and added support for dependent AdBlock subscriptions.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas 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.AdBlock.AdBlockDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockManager.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockSubscription.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.HelpWindow.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.AdBlock.html file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockAccessHandler.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockDialog.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockDialog.ui file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockIcon.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockManager.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockModel.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockNetwork.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockPage.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockSubscription.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockTreeWidget.py file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
Helpviewer/HelpWindow.py file | annotate | diff | comparison | revisions
Helpviewer/Network/NetworkAccessManager.py file | annotate | diff | comparison | revisions
Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.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
--- a/APIs/Python3/eric5.api	Mon Jul 30 19:19:29 2012 +0200
+++ b/APIs/Python3/eric5.api	Sat Aug 04 13:30:04 2012 +0200
@@ -1707,10 +1707,11 @@
 eric5.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply.abort?4()
 eric5.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply.readData?4(maxlen)
 eric5.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply?1(request, subscription, rule, parent=None)
-eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.addCustomRule?4(rule="")
-eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.model?4()
+eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.addSubscription?4(subscription, refresh=True)
+eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.on_adBlockGroup_toggled?4(state)
+eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.on_searchEdit_textChanged?4(filter)
+eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.on_subscriptionsTabWidget_currentChanged?4(index)
 eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.on_updateSpinBox_valueChanged?4(value)
-eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.setCurrentIndex?4(index)
 eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.showRule?4(rule)
 eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog?1(parent=None)
 eric5.Helpviewer.AdBlock.AdBlockIcon.AdBlockIcon.menuAction?4()
@@ -1721,32 +1722,23 @@
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.customRules?4()
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.elementHidingRules?4()
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.elementHidingRulesForDomain?4(url)
+eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.getRequiresSubscriptions?4(subscription)
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.isEnabled?4()
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.load?4()
+eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.loadRequiredSubscription?4(location, title)
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.network?4()
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.page?4()
-eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.removeSubscription?4(subscription)
+eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.removeSubscription?4(subscription, emitSignal=True)
+eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.requiredSubscriptionLoaded?7
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.rulesChanged?7
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.save?4()
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.setEnabled?4(enabled)
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.showDialog?4()
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.showRule?4()
+eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.subscription?4(location)
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.subscriptions?4()
+eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.updateAllSubscriptions?4()
 eric5.Helpviewer.AdBlock.AdBlockManager.AdBlockManager?1(parent=None)
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.columnCount?4(parent=QModelIndex())
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.data?4(index, role=Qt.DisplayRole)
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.flags?4(index)
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.hasChildren?4(parent=QModelIndex())
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.index?4(row, column, parent=QModelIndex())
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.parent?4(index=QModelIndex())
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.removeRows?4(row, count, parent=QModelIndex())
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.rowCount?4(parent=QModelIndex())
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.rule?4(index)
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.setData?4(index, value, role=Qt.EditRole)
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.subscription?4(index)
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel.subscriptionIndex?4(subscription)
-eric5.Helpviewer.AdBlock.AdBlockModel.AdBlockModel?1(parent=None)
 eric5.Helpviewer.AdBlock.AdBlockNetwork.AdBlockNetwork.block?4(request)
 eric5.Helpviewer.AdBlock.AdBlockNetwork.AdBlockNetwork.canRunOnScheme?4(scheme)
 eric5.Helpviewer.AdBlock.AdBlockPage.AdBlockPage.hideBlockedPageEntries?4(page)
@@ -1779,6 +1771,8 @@
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.adBlockDisabledForUrl?4(url)
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.addRule?4(rule)
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.allRules?4()
+eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.canBeRemoved?4()
+eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.canEditRules?4()
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.changed?7
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.checkForUpdate?4()
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.elemHideDisabledForUrl?4(url)
@@ -1790,16 +1784,26 @@
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.match?4(req, urlDomain, urlString)
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.removeRule?4(offset)
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.replaceRule?4(rule, offset)
+eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.requiresLocation?4()
+eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.rule?4(offset)
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.rulesChanged?7
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.rulesFileName?4()
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.saveRules?4()
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.setEnabled?4(enabled)
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.setLocation?4(url)
+eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.setRuleEnabled?4(offset, enabled)
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.setTitle?4(title)
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.title?4()
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.updateNow?4()
 eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.url?4()
-eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription?1(url, parent=None, default=False)
+eric5.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription?1(url, custom, parent=None, default=False)
+eric5.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.addRule?4()
+eric5.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.keyPressEvent?4(evt)
+eric5.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.refresh?4()
+eric5.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.removeRule?4()
+eric5.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.showRule?4(rule)
+eric5.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.subscription?4()
+eric5.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget?1(subscription, parent=None)
 eric5.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.accept?4()
 eric5.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.addedNode?4()
 eric5.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.currentIndex?4()
@@ -2366,7 +2370,7 @@
 eric5.Helpviewer.HelpWindow.HelpWindow._syncManager?8
 eric5.Helpviewer.HelpWindow.HelpWindow._userAgentsManager?8
 eric5.Helpviewer.HelpWindow.HelpWindow.adBlockIcon?4()
-eric5.Helpviewer.HelpWindow.HelpWindow.adblockManager?4()
+eric5.Helpviewer.HelpWindow.HelpWindow.adBlockManager?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.bookmarkAll?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.bookmarksManager?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.browserAt?4(index)
@@ -2403,6 +2407,7 @@
 eric5.Helpviewer.HelpWindow.HelpWindow.preferencesChanged?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.previewer?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.privacyChanged?7
+eric5.Helpviewer.HelpWindow.HelpWindow.reloadUserStyleSheet?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.requestVirusTotalScan?4(url)
 eric5.Helpviewer.HelpWindow.HelpWindow.search?4(word)
 eric5.Helpviewer.HelpWindow.HelpWindow.searchEnginesAction?4()
--- a/APIs/Python3/eric5.bas	Mon Jul 30 19:19:29 2012 +0200
+++ b/APIs/Python3/eric5.bas	Sat Aug 04 13:30:04 2012 +0200
@@ -8,10 +8,10 @@
 AdBlockDialog QDialog Ui_AdBlockDialog
 AdBlockIcon E5ClickableLabel
 AdBlockManager QObject
-AdBlockModel QAbstractItemModel
 AdBlockNetwork QObject
 AdBlockPage QObject
 AdBlockSubscription QObject
+AdBlockTreeWidget E5TreeWidget
 AddBookmarkDialog QDialog Ui_AddBookmarkDialog
 AddBookmarkProxyModel QSortFilterProxyModel
 AddDirectoryDialog QDialog Ui_AddDirectoryDialog
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Mon Jul 30 19:19:29 2012 +0200
+++ b/Documentation/Help/source.qhp	Sat Aug 04 13:30:04 2012 +0200
@@ -196,11 +196,11 @@
               <section title="eric5.Helpviewer.AdBlock.AdBlockDialog" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html" />
               <section title="eric5.Helpviewer.AdBlock.AdBlockIcon" ref="eric5.Helpviewer.AdBlock.AdBlockIcon.html" />
               <section title="eric5.Helpviewer.AdBlock.AdBlockManager" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html" />
-              <section title="eric5.Helpviewer.AdBlock.AdBlockModel" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html" />
               <section title="eric5.Helpviewer.AdBlock.AdBlockNetwork" ref="eric5.Helpviewer.AdBlock.AdBlockNetwork.html" />
               <section title="eric5.Helpviewer.AdBlock.AdBlockPage" ref="eric5.Helpviewer.AdBlock.AdBlockPage.html" />
               <section title="eric5.Helpviewer.AdBlock.AdBlockRule" ref="eric5.Helpviewer.AdBlock.AdBlockRule.html" />
               <section title="eric5.Helpviewer.AdBlock.AdBlockSubscription" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html" />
+              <section title="eric5.Helpviewer.AdBlock.AdBlockTreeWidget" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html" />
             </section>
             <section title="eric5.Helpviewer.Bookmarks" ref="index-eric5.Helpviewer.Bookmarks.html">
               <section title="eric5.Helpviewer.Bookmarks.BookmarksImporters" ref="index-eric5.Helpviewer.Bookmarks.BookmarksImporters.html">
@@ -1056,14 +1056,22 @@
       <keyword name="AdBlockDialog (Constructor)" id="AdBlockDialog (Constructor)" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__init__" />
       <keyword name="AdBlockDialog (Module)" id="AdBlockDialog (Module)" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html" />
       <keyword name="AdBlockDialog.__aboutToShowActionMenu" id="AdBlockDialog.__aboutToShowActionMenu" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__aboutToShowActionMenu" />
+      <keyword name="AdBlockDialog.__addCustomRule" id="AdBlockDialog.__addCustomRule" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__addCustomRule" />
       <keyword name="AdBlockDialog.__browseSubscriptions" id="AdBlockDialog.__browseSubscriptions" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__browseSubscriptions" />
       <keyword name="AdBlockDialog.__learnAboutWritingFilters" id="AdBlockDialog.__learnAboutWritingFilters" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__learnAboutWritingFilters" />
+      <keyword name="AdBlockDialog.__load" id="AdBlockDialog.__load" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__load" />
+      <keyword name="AdBlockDialog.__loadSubscriptions" id="AdBlockDialog.__loadSubscriptions" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__loadSubscriptions" />
+      <keyword name="AdBlockDialog.__removeCustomRule" id="AdBlockDialog.__removeCustomRule" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__removeCustomRule" />
       <keyword name="AdBlockDialog.__removeSubscription" id="AdBlockDialog.__removeSubscription" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__removeSubscription" />
+      <keyword name="AdBlockDialog.__setSubscriptionEnabled" id="AdBlockDialog.__setSubscriptionEnabled" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__setSubscriptionEnabled" />
+      <keyword name="AdBlockDialog.__switchSubscriptionEnabled" id="AdBlockDialog.__switchSubscriptionEnabled" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__switchSubscriptionEnabled" />
+      <keyword name="AdBlockDialog.__updateAllSubscriptions" id="AdBlockDialog.__updateAllSubscriptions" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__updateAllSubscriptions" />
       <keyword name="AdBlockDialog.__updateSubscription" id="AdBlockDialog.__updateSubscription" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__updateSubscription" />
-      <keyword name="AdBlockDialog.addCustomRule" id="AdBlockDialog.addCustomRule" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.addCustomRule" />
-      <keyword name="AdBlockDialog.model" id="AdBlockDialog.model" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.model" />
+      <keyword name="AdBlockDialog.addSubscription" id="AdBlockDialog.addSubscription" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.addSubscription" />
+      <keyword name="AdBlockDialog.on_adBlockGroup_toggled" id="AdBlockDialog.on_adBlockGroup_toggled" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.on_adBlockGroup_toggled" />
+      <keyword name="AdBlockDialog.on_searchEdit_textChanged" id="AdBlockDialog.on_searchEdit_textChanged" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.on_searchEdit_textChanged" />
+      <keyword name="AdBlockDialog.on_subscriptionsTabWidget_currentChanged" id="AdBlockDialog.on_subscriptionsTabWidget_currentChanged" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.on_subscriptionsTabWidget_currentChanged" />
       <keyword name="AdBlockDialog.on_updateSpinBox_valueChanged" id="AdBlockDialog.on_updateSpinBox_valueChanged" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.on_updateSpinBox_valueChanged" />
-      <keyword name="AdBlockDialog.setCurrentIndex" id="AdBlockDialog.setCurrentIndex" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.setCurrentIndex" />
       <keyword name="AdBlockDialog.showRule" id="AdBlockDialog.showRule" ref="eric5.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.showRule" />
       <keyword name="AdBlockIcon" id="AdBlockIcon" ref="eric5.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon" />
       <keyword name="AdBlockIcon (Constructor)" id="AdBlockIcon (Constructor)" ref="eric5.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.__init__" />
@@ -1084,8 +1092,10 @@
       <keyword name="AdBlockManager.customRules" id="AdBlockManager.customRules" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.customRules" />
       <keyword name="AdBlockManager.elementHidingRules" id="AdBlockManager.elementHidingRules" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.elementHidingRules" />
       <keyword name="AdBlockManager.elementHidingRulesForDomain" id="AdBlockManager.elementHidingRulesForDomain" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.elementHidingRulesForDomain" />
+      <keyword name="AdBlockManager.getRequiresSubscriptions" id="AdBlockManager.getRequiresSubscriptions" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.getRequiresSubscriptions" />
       <keyword name="AdBlockManager.isEnabled" id="AdBlockManager.isEnabled" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.isEnabled" />
       <keyword name="AdBlockManager.load" id="AdBlockManager.load" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.load" />
+      <keyword name="AdBlockManager.loadRequiredSubscription" id="AdBlockManager.loadRequiredSubscription" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.loadRequiredSubscription" />
       <keyword name="AdBlockManager.network" id="AdBlockManager.network" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.network" />
       <keyword name="AdBlockManager.page" id="AdBlockManager.page" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.page" />
       <keyword name="AdBlockManager.removeSubscription" id="AdBlockManager.removeSubscription" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.removeSubscription" />
@@ -1093,24 +1103,9 @@
       <keyword name="AdBlockManager.setEnabled" id="AdBlockManager.setEnabled" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.setEnabled" />
       <keyword name="AdBlockManager.showDialog" id="AdBlockManager.showDialog" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.showDialog" />
       <keyword name="AdBlockManager.showRule" id="AdBlockManager.showRule" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.showRule" />
+      <keyword name="AdBlockManager.subscription" id="AdBlockManager.subscription" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.subscription" />
       <keyword name="AdBlockManager.subscriptions" id="AdBlockManager.subscriptions" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.subscriptions" />
-      <keyword name="AdBlockModel" id="AdBlockModel" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel" />
-      <keyword name="AdBlockModel (Constructor)" id="AdBlockModel (Constructor)" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.__init__" />
-      <keyword name="AdBlockModel (Module)" id="AdBlockModel (Module)" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html" />
-      <keyword name="AdBlockModel.__rulesChanged" id="AdBlockModel.__rulesChanged" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.__rulesChanged" />
-      <keyword name="AdBlockModel.columnCount" id="AdBlockModel.columnCount" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.columnCount" />
-      <keyword name="AdBlockModel.data" id="AdBlockModel.data" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.data" />
-      <keyword name="AdBlockModel.flags" id="AdBlockModel.flags" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.flags" />
-      <keyword name="AdBlockModel.hasChildren" id="AdBlockModel.hasChildren" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.hasChildren" />
-      <keyword name="AdBlockModel.headerData" id="AdBlockModel.headerData" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.headerData" />
-      <keyword name="AdBlockModel.index" id="AdBlockModel.index" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.index" />
-      <keyword name="AdBlockModel.parent" id="AdBlockModel.parent" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.parent" />
-      <keyword name="AdBlockModel.removeRows" id="AdBlockModel.removeRows" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.removeRows" />
-      <keyword name="AdBlockModel.rowCount" id="AdBlockModel.rowCount" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.rowCount" />
-      <keyword name="AdBlockModel.rule" id="AdBlockModel.rule" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.rule" />
-      <keyword name="AdBlockModel.setData" id="AdBlockModel.setData" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.setData" />
-      <keyword name="AdBlockModel.subscription" id="AdBlockModel.subscription" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.subscription" />
-      <keyword name="AdBlockModel.subscriptionIndex" id="AdBlockModel.subscriptionIndex" ref="eric5.Helpviewer.AdBlock.AdBlockModel.html#AdBlockModel.subscriptionIndex" />
+      <keyword name="AdBlockManager.updateAllSubscriptions" id="AdBlockManager.updateAllSubscriptions" ref="eric5.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.updateAllSubscriptions" />
       <keyword name="AdBlockNetwork" id="AdBlockNetwork" ref="eric5.Helpviewer.AdBlock.AdBlockNetwork.html#AdBlockNetwork" />
       <keyword name="AdBlockNetwork (Module)" id="AdBlockNetwork (Module)" ref="eric5.Helpviewer.AdBlock.AdBlockNetwork.html" />
       <keyword name="AdBlockNetwork.__canBeBlocked" id="AdBlockNetwork.__canBeBlocked" ref="eric5.Helpviewer.AdBlock.AdBlockNetwork.html#AdBlockNetwork.__canBeBlocked" />
@@ -1157,6 +1152,8 @@
       <keyword name="AdBlockSubscription.adBlockDisabledForUrl" id="AdBlockSubscription.adBlockDisabledForUrl" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.adBlockDisabledForUrl" />
       <keyword name="AdBlockSubscription.addRule" id="AdBlockSubscription.addRule" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.addRule" />
       <keyword name="AdBlockSubscription.allRules" id="AdBlockSubscription.allRules" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.allRules" />
+      <keyword name="AdBlockSubscription.canBeRemoved" id="AdBlockSubscription.canBeRemoved" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.canBeRemoved" />
+      <keyword name="AdBlockSubscription.canEditRules" id="AdBlockSubscription.canEditRules" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.canEditRules" />
       <keyword name="AdBlockSubscription.checkForUpdate" id="AdBlockSubscription.checkForUpdate" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.checkForUpdate" />
       <keyword name="AdBlockSubscription.elemHideDisabledForUrl" id="AdBlockSubscription.elemHideDisabledForUrl" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.elemHideDisabledForUrl" />
       <keyword name="AdBlockSubscription.elementHidingRules" id="AdBlockSubscription.elementHidingRules" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.elementHidingRules" />
@@ -1167,14 +1164,31 @@
       <keyword name="AdBlockSubscription.match" id="AdBlockSubscription.match" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.match" />
       <keyword name="AdBlockSubscription.removeRule" id="AdBlockSubscription.removeRule" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.removeRule" />
       <keyword name="AdBlockSubscription.replaceRule" id="AdBlockSubscription.replaceRule" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.replaceRule" />
+      <keyword name="AdBlockSubscription.requiresLocation" id="AdBlockSubscription.requiresLocation" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.requiresLocation" />
+      <keyword name="AdBlockSubscription.rule" id="AdBlockSubscription.rule" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.rule" />
       <keyword name="AdBlockSubscription.rulesFileName" id="AdBlockSubscription.rulesFileName" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.rulesFileName" />
       <keyword name="AdBlockSubscription.saveRules" id="AdBlockSubscription.saveRules" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.saveRules" />
       <keyword name="AdBlockSubscription.setEnabled" id="AdBlockSubscription.setEnabled" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setEnabled" />
       <keyword name="AdBlockSubscription.setLocation" id="AdBlockSubscription.setLocation" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setLocation" />
+      <keyword name="AdBlockSubscription.setRuleEnabled" id="AdBlockSubscription.setRuleEnabled" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setRuleEnabled" />
       <keyword name="AdBlockSubscription.setTitle" id="AdBlockSubscription.setTitle" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setTitle" />
       <keyword name="AdBlockSubscription.title" id="AdBlockSubscription.title" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.title" />
       <keyword name="AdBlockSubscription.updateNow" id="AdBlockSubscription.updateNow" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.updateNow" />
       <keyword name="AdBlockSubscription.url" id="AdBlockSubscription.url" ref="eric5.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.url" />
+      <keyword name="AdBlockTreeWidget" id="AdBlockTreeWidget" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget" />
+      <keyword name="AdBlockTreeWidget (Constructor)" id="AdBlockTreeWidget (Constructor)" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__init__" />
+      <keyword name="AdBlockTreeWidget (Module)" id="AdBlockTreeWidget (Module)" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html" />
+      <keyword name="AdBlockTreeWidget.__adjustItemFeatures" id="AdBlockTreeWidget.__adjustItemFeatures" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__adjustItemFeatures" />
+      <keyword name="AdBlockTreeWidget.__contextMenuRequested" id="AdBlockTreeWidget.__contextMenuRequested" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__contextMenuRequested" />
+      <keyword name="AdBlockTreeWidget.__copyFilter" id="AdBlockTreeWidget.__copyFilter" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__copyFilter" />
+      <keyword name="AdBlockTreeWidget.__itemChanged" id="AdBlockTreeWidget.__itemChanged" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__itemChanged" />
+      <keyword name="AdBlockTreeWidget.__subscriptionChanged" id="AdBlockTreeWidget.__subscriptionChanged" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__subscriptionChanged" />
+      <keyword name="AdBlockTreeWidget.addRule" id="AdBlockTreeWidget.addRule" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.addRule" />
+      <keyword name="AdBlockTreeWidget.keyPressEvent" id="AdBlockTreeWidget.keyPressEvent" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.keyPressEvent" />
+      <keyword name="AdBlockTreeWidget.refresh" id="AdBlockTreeWidget.refresh" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.refresh" />
+      <keyword name="AdBlockTreeWidget.removeRule" id="AdBlockTreeWidget.removeRule" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.removeRule" />
+      <keyword name="AdBlockTreeWidget.showRule" id="AdBlockTreeWidget.showRule" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.showRule" />
+      <keyword name="AdBlockTreeWidget.subscription" id="AdBlockTreeWidget.subscription" ref="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.subscription" />
       <keyword name="AdBlockedPageEntry" id="AdBlockedPageEntry" ref="eric5.Helpviewer.AdBlock.AdBlockPage.html#AdBlockedPageEntry" />
       <keyword name="AdBlockedPageEntry (Constructor)" id="AdBlockedPageEntry (Constructor)" ref="eric5.Helpviewer.AdBlock.AdBlockPage.html#AdBlockedPageEntry.__init__" />
       <keyword name="AdBlockedPageEntry.__eq__" id="AdBlockedPageEntry.__eq__" ref="eric5.Helpviewer.AdBlock.AdBlockPage.html#AdBlockedPageEntry.__eq__" />
@@ -5005,6 +5019,7 @@
       <keyword name="HelpWindow.__switchTab" id="HelpWindow.__switchTab" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__switchTab" />
       <keyword name="HelpWindow.__syncTOC" id="HelpWindow.__syncTOC" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__syncTOC" />
       <keyword name="HelpWindow.__titleChanged" id="HelpWindow.__titleChanged" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__titleChanged" />
+      <keyword name="HelpWindow.__userStyleSheet" id="HelpWindow.__userStyleSheet" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__userStyleSheet" />
       <keyword name="HelpWindow.__viewFullScreen" id="HelpWindow.__viewFullScreen" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__viewFullScreen" />
       <keyword name="HelpWindow.__virusTotalFileScanReport" id="HelpWindow.__virusTotalFileScanReport" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__virusTotalFileScanReport" />
       <keyword name="HelpWindow.__virusTotalScanCurrentSite" id="HelpWindow.__virusTotalScanCurrentSite" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__virusTotalScanCurrentSite" />
@@ -5019,7 +5034,7 @@
       <keyword name="HelpWindow.__zoomReset" id="HelpWindow.__zoomReset" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__zoomReset" />
       <keyword name="HelpWindow.__zoomTextOnly" id="HelpWindow.__zoomTextOnly" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__zoomTextOnly" />
       <keyword name="HelpWindow.adBlockIcon" id="HelpWindow.adBlockIcon" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.adBlockIcon" />
-      <keyword name="HelpWindow.adblockManager" id="HelpWindow.adblockManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.adblockManager" />
+      <keyword name="HelpWindow.adBlockManager" id="HelpWindow.adBlockManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.adBlockManager" />
       <keyword name="HelpWindow.bookmarkAll" id="HelpWindow.bookmarkAll" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.bookmarkAll" />
       <keyword name="HelpWindow.bookmarksManager" id="HelpWindow.bookmarksManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.bookmarksManager" />
       <keyword name="HelpWindow.browserAt" id="HelpWindow.browserAt" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.browserAt" />
@@ -5052,6 +5067,7 @@
       <keyword name="HelpWindow.personalInformationManager" id="HelpWindow.personalInformationManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.personalInformationManager" />
       <keyword name="HelpWindow.preferencesChanged" id="HelpWindow.preferencesChanged" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.preferencesChanged" />
       <keyword name="HelpWindow.previewer" id="HelpWindow.previewer" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.previewer" />
+      <keyword name="HelpWindow.reloadUserStyleSheet" id="HelpWindow.reloadUserStyleSheet" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.reloadUserStyleSheet" />
       <keyword name="HelpWindow.requestVirusTotalScan" id="HelpWindow.requestVirusTotalScan" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.requestVirusTotalScan" />
       <keyword name="HelpWindow.search" id="HelpWindow.search" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.search" />
       <keyword name="HelpWindow.searchEnginesAction" id="HelpWindow.searchEnginesAction" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.searchEnginesAction" />
@@ -12432,11 +12448,11 @@
       <file>eric5.Helpviewer.AdBlock.AdBlockDialog.html</file>
       <file>eric5.Helpviewer.AdBlock.AdBlockIcon.html</file>
       <file>eric5.Helpviewer.AdBlock.AdBlockManager.html</file>
-      <file>eric5.Helpviewer.AdBlock.AdBlockModel.html</file>
       <file>eric5.Helpviewer.AdBlock.AdBlockNetwork.html</file>
       <file>eric5.Helpviewer.AdBlock.AdBlockPage.html</file>
       <file>eric5.Helpviewer.AdBlock.AdBlockRule.html</file>
       <file>eric5.Helpviewer.AdBlock.AdBlockSubscription.html</file>
+      <file>eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html</file>
       <file>eric5.Helpviewer.Bookmarks.AddBookmarkDialog.html</file>
       <file>eric5.Helpviewer.Bookmarks.BookmarkNode.html</file>
       <file>eric5.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html</file>
--- a/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockDialog.html	Mon Jul 30 19:19:29 2012 +0200
+++ b/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockDialog.html	Sat Aug 04 13:30:04 2012 +0200
@@ -64,30 +64,54 @@
 <td><a href="#AdBlockDialog.__aboutToShowActionMenu">__aboutToShowActionMenu</a></td>
 <td>Private slot to show the actions menu.</td>
 </tr><tr>
+<td><a href="#AdBlockDialog.__addCustomRule">__addCustomRule</a></td>
+<td>Private slot to add a custom AdBlock rule.</td>
+</tr><tr>
 <td><a href="#AdBlockDialog.__browseSubscriptions">__browseSubscriptions</a></td>
 <td>Private slot to browse the list of available AdBlock subscriptions.</td>
 </tr><tr>
 <td><a href="#AdBlockDialog.__learnAboutWritingFilters">__learnAboutWritingFilters</a></td>
 <td>Private slot to show the web page about how to write filters.</td>
 </tr><tr>
+<td><a href="#AdBlockDialog.__load">__load</a></td>
+<td>Private slot to populate the tab widget with subscriptions.</td>
+</tr><tr>
+<td><a href="#AdBlockDialog.__loadSubscriptions">__loadSubscriptions</a></td>
+<td>Private slot to load the AdBlock subscription rules.</td>
+</tr><tr>
+<td><a href="#AdBlockDialog.__removeCustomRule">__removeCustomRule</a></td>
+<td>Private slot to remove a custom AdBlock rule.</td>
+</tr><tr>
 <td><a href="#AdBlockDialog.__removeSubscription">__removeSubscription</a></td>
 <td>Private slot to remove the selected subscription.</td>
 </tr><tr>
+<td><a href="#AdBlockDialog.__setSubscriptionEnabled">__setSubscriptionEnabled</a></td>
+<td>Private slot to set the enabled state of a subscription.</td>
+</tr><tr>
+<td><a href="#AdBlockDialog.__switchSubscriptionEnabled">__switchSubscriptionEnabled</a></td>
+<td>Private slot to switch the enabled state of the selected subscription</td>
+</tr><tr>
+<td><a href="#AdBlockDialog.__updateAllSubscriptions">__updateAllSubscriptions</a></td>
+<td>Private slot to update all subscriptions.</td>
+</tr><tr>
 <td><a href="#AdBlockDialog.__updateSubscription">__updateSubscription</a></td>
 <td>Private slot to update the selected subscription.</td>
 </tr><tr>
-<td><a href="#AdBlockDialog.addCustomRule">addCustomRule</a></td>
-<td>Public slot to add a custom AdBlock rule.</td>
+<td><a href="#AdBlockDialog.addSubscription">addSubscription</a></td>
+<td>Public slot adding a subscription to the list.</td>
+</tr><tr>
+<td><a href="#AdBlockDialog.on_adBlockGroup_toggled">on_adBlockGroup_toggled</a></td>
+<td>Private slot handling the enabling/disabling of AdBlock.</td>
 </tr><tr>
-<td><a href="#AdBlockDialog.model">model</a></td>
-<td>Public method to return a reference to the subscriptions tree model.</td>
+<td><a href="#AdBlockDialog.on_searchEdit_textChanged">on_searchEdit_textChanged</a></td>
+<td>Private slot to set a new filter on the current widget.</td>
+</tr><tr>
+<td><a href="#AdBlockDialog.on_subscriptionsTabWidget_currentChanged">on_subscriptionsTabWidget_currentChanged</a></td>
+<td>Private slot handling the selection of another tab.</td>
 </tr><tr>
 <td><a href="#AdBlockDialog.on_updateSpinBox_valueChanged">on_updateSpinBox_valueChanged</a></td>
 <td>Private slot to handle changes of the update period.</td>
 </tr><tr>
-<td><a href="#AdBlockDialog.setCurrentIndex">setCurrentIndex</a></td>
-<td>Private slot to set the current index of the subscriptions tree.</td>
-</tr><tr>
 <td><a href="#AdBlockDialog.showRule">showRule</a></td>
 <td>Public slot to show the given rule.</td>
 </tr>
@@ -106,6 +130,11 @@
 <b>__aboutToShowActionMenu</b>(<i></i>)
 <p>
         Private slot to show the actions menu.
+</p><a NAME="AdBlockDialog.__addCustomRule" ID="AdBlockDialog.__addCustomRule"></a>
+<h4>AdBlockDialog.__addCustomRule</h4>
+<b>__addCustomRule</b>(<i></i>)
+<p>
+        Private slot to add a custom AdBlock rule.
 </p><a NAME="AdBlockDialog.__browseSubscriptions" ID="AdBlockDialog.__browseSubscriptions"></a>
 <h4>AdBlockDialog.__browseSubscriptions</h4>
 <b>__browseSubscriptions</b>(<i></i>)
@@ -116,32 +145,99 @@
 <b>__learnAboutWritingFilters</b>(<i></i>)
 <p>
         Private slot to show the web page about how to write filters.
+</p><a NAME="AdBlockDialog.__load" ID="AdBlockDialog.__load"></a>
+<h4>AdBlockDialog.__load</h4>
+<b>__load</b>(<i></i>)
+<p>
+        Private slot to populate the tab widget with subscriptions.
+</p><a NAME="AdBlockDialog.__loadSubscriptions" ID="AdBlockDialog.__loadSubscriptions"></a>
+<h4>AdBlockDialog.__loadSubscriptions</h4>
+<b>__loadSubscriptions</b>(<i></i>)
+<p>
+        Private slot to load the AdBlock subscription rules.
+</p><a NAME="AdBlockDialog.__removeCustomRule" ID="AdBlockDialog.__removeCustomRule"></a>
+<h4>AdBlockDialog.__removeCustomRule</h4>
+<b>__removeCustomRule</b>(<i></i>)
+<p>
+        Private slot to remove a custom AdBlock rule.
 </p><a NAME="AdBlockDialog.__removeSubscription" ID="AdBlockDialog.__removeSubscription"></a>
 <h4>AdBlockDialog.__removeSubscription</h4>
 <b>__removeSubscription</b>(<i></i>)
 <p>
         Private slot to remove the selected subscription.
+</p><a NAME="AdBlockDialog.__setSubscriptionEnabled" ID="AdBlockDialog.__setSubscriptionEnabled"></a>
+<h4>AdBlockDialog.__setSubscriptionEnabled</h4>
+<b>__setSubscriptionEnabled</b>(<i>subscription, enable</i>)
+<p>
+        Private slot to set the enabled state of a subscription.
+</p><dl>
+<dt><i>subscription</i></dt>
+<dd>
+subscription to set the state for (AdBlockSubscription)
+</dd><dt><i>enable</i></dt>
+<dd>
+state to set to (boolean)
+</dd>
+</dl><a NAME="AdBlockDialog.__switchSubscriptionEnabled" ID="AdBlockDialog.__switchSubscriptionEnabled"></a>
+<h4>AdBlockDialog.__switchSubscriptionEnabled</h4>
+<b>__switchSubscriptionEnabled</b>(<i></i>)
+<p>
+        Private slot to switch the enabled state of the selected subscription
+</p><a NAME="AdBlockDialog.__updateAllSubscriptions" ID="AdBlockDialog.__updateAllSubscriptions"></a>
+<h4>AdBlockDialog.__updateAllSubscriptions</h4>
+<b>__updateAllSubscriptions</b>(<i></i>)
+<p>
+        Private slot to update all subscriptions.
 </p><a NAME="AdBlockDialog.__updateSubscription" ID="AdBlockDialog.__updateSubscription"></a>
 <h4>AdBlockDialog.__updateSubscription</h4>
 <b>__updateSubscription</b>(<i></i>)
 <p>
         Private slot to update the selected subscription.
-</p><a NAME="AdBlockDialog.addCustomRule" ID="AdBlockDialog.addCustomRule"></a>
-<h4>AdBlockDialog.addCustomRule</h4>
-<b>addCustomRule</b>(<i>rule=""</i>)
+</p><a NAME="AdBlockDialog.addSubscription" ID="AdBlockDialog.addSubscription"></a>
+<h4>AdBlockDialog.addSubscription</h4>
+<b>addSubscription</b>(<i>subscription, refresh=True</i>)
 <p>
-        Public slot to add a custom AdBlock rule.
+        Public slot adding a subscription to the list.
 </p><dl>
-<dt><i>rule</i></dt>
+<dt><i>subscription</i></dt>
+<dd>
+reference to the subscription to be
+            added (AdBlockSubscription)
+</dd><dt><i>refresh</i></dt>
+<dd>
+flag indicating to refresh the tree (boolean)
+</dd>
+</dl><a NAME="AdBlockDialog.on_adBlockGroup_toggled" ID="AdBlockDialog.on_adBlockGroup_toggled"></a>
+<h4>AdBlockDialog.on_adBlockGroup_toggled</h4>
+<b>on_adBlockGroup_toggled</b>(<i>state</i>)
+<p>
+        Private slot handling the enabling/disabling of AdBlock.
+</p><dl>
+<dt><i>state</i></dt>
 <dd>
-string defining the rule to be added (string)
+state of the toggle (boolean)
+</dd>
+</dl><a NAME="AdBlockDialog.on_searchEdit_textChanged" ID="AdBlockDialog.on_searchEdit_textChanged"></a>
+<h4>AdBlockDialog.on_searchEdit_textChanged</h4>
+<b>on_searchEdit_textChanged</b>(<i>filter</i>)
+<p>
+        Private slot to set a new filter on the current widget.
+</p><dl>
+<dt><i>filter</i></dt>
+<dd>
+filter to be set (string)
 </dd>
-</dl><a NAME="AdBlockDialog.model" ID="AdBlockDialog.model"></a>
-<h4>AdBlockDialog.model</h4>
-<b>model</b>(<i></i>)
+</dl><a NAME="AdBlockDialog.on_subscriptionsTabWidget_currentChanged" ID="AdBlockDialog.on_subscriptionsTabWidget_currentChanged"></a>
+<h4>AdBlockDialog.on_subscriptionsTabWidget_currentChanged</h4>
+<b>on_subscriptionsTabWidget_currentChanged</b>(<i>index</i>)
 <p>
-        Public method to return a reference to the subscriptions tree model.
-</p><a NAME="AdBlockDialog.on_updateSpinBox_valueChanged" ID="AdBlockDialog.on_updateSpinBox_valueChanged"></a>
+        Private slot handling the selection of another tab.
+</p><dl>
+<dt><i>index</i></dt>
+<dd>
+index of the new current tab (integer)
+</dd>
+</dl><a NAME="AdBlockDialog.on_updateSpinBox_valueChanged" ID="AdBlockDialog.on_updateSpinBox_valueChanged"></a>
 <h4>AdBlockDialog.on_updateSpinBox_valueChanged</h4>
 <b>on_updateSpinBox_valueChanged</b>(<i>value</i>)
 <p>
@@ -151,16 +247,6 @@
 <dd>
 update period (integer)
 </dd>
-</dl><a NAME="AdBlockDialog.setCurrentIndex" ID="AdBlockDialog.setCurrentIndex"></a>
-<h4>AdBlockDialog.setCurrentIndex</h4>
-<b>setCurrentIndex</b>(<i>index</i>)
-<p>
-        Private slot to set the current index of the subscriptions tree.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index to be set (QModelIndex)
-</dd>
 </dl><a NAME="AdBlockDialog.showRule" ID="AdBlockDialog.showRule"></a>
 <h4>AdBlockDialog.showRule</h4>
 <b>showRule</b>(<i>rule</i>)
--- a/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockManager.html	Mon Jul 30 19:19:29 2012 +0200
+++ b/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockManager.html	Sat Aug 04 13:30:04 2012 +0200
@@ -91,12 +91,18 @@
 <td><a href="#AdBlockManager.elementHidingRulesForDomain">elementHidingRulesForDomain</a></td>
 <td>Public method to get the element hiding rules for a domain.</td>
 </tr><tr>
+<td><a href="#AdBlockManager.getRequiresSubscriptions">getRequiresSubscriptions</a></td>
+<td>Public method to get a list of subscriptions, that require the given one.</td>
+</tr><tr>
 <td><a href="#AdBlockManager.isEnabled">isEnabled</a></td>
 <td>Public method to check, if blocking ads is enabled.</td>
 </tr><tr>
 <td><a href="#AdBlockManager.load">load</a></td>
 <td>Public method to load the AdBlock subscriptions.</td>
 </tr><tr>
+<td><a href="#AdBlockManager.loadRequiredSubscription">loadRequiredSubscription</a></td>
+<td>Public method to load a subscription required by another one.</td>
+</tr><tr>
 <td><a href="#AdBlockManager.network">network</a></td>
 <td>Public method to get a reference to the network block object.</td>
 </tr><tr>
@@ -118,8 +124,14 @@
 <td><a href="#AdBlockManager.showRule">showRule</a></td>
 <td>Public slot to show an AdBlock rule.</td>
 </tr><tr>
+<td><a href="#AdBlockManager.subscription">subscription</a></td>
+<td>Public method to get a subscription based on it's location.</td>
+</tr><tr>
 <td><a href="#AdBlockManager.subscriptions">subscriptions</a></td>
 <td>Public method to get all subscriptions.</td>
+</tr><tr>
+<td><a href="#AdBlockManager.updateAllSubscriptions">updateAllSubscriptions</a></td>
+<td>Public method to update all subscriptions.</td>
 </tr>
 </table>
 <h3>Static Methods</h3>
@@ -211,6 +223,21 @@
 <dd>
 element hiding rules (string)
 </dd>
+</dl><a NAME="AdBlockManager.getRequiresSubscriptions" ID="AdBlockManager.getRequiresSubscriptions"></a>
+<h4>AdBlockManager.getRequiresSubscriptions</h4>
+<b>getRequiresSubscriptions</b>(<i>subscription</i>)
+<p>
+        Public method to get a list of subscriptions, that require the given one.
+</p><dl>
+<dt><i>subscription</i></dt>
+<dd>
+subscription to check for (AdBlockSubscription)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+list of subscription requiring the given one (list of AdBlockSubscription)
+</dd>
 </dl><a NAME="AdBlockManager.isEnabled" ID="AdBlockManager.isEnabled"></a>
 <h4>AdBlockManager.isEnabled</h4>
 <b>isEnabled</b>(<i></i>)
@@ -226,7 +253,20 @@
 <b>load</b>(<i></i>)
 <p>
         Public method to load the AdBlock subscriptions.
-</p><a NAME="AdBlockManager.network" ID="AdBlockManager.network"></a>
+</p><a NAME="AdBlockManager.loadRequiredSubscription" ID="AdBlockManager.loadRequiredSubscription"></a>
+<h4>AdBlockManager.loadRequiredSubscription</h4>
+<b>loadRequiredSubscription</b>(<i>location, title</i>)
+<p>
+        Public method to load a subscription required by another one.
+</p><dl>
+<dt><i>location</i></dt>
+<dd>
+location of the required subscription (string)
+</dd><dt><i>title</i></dt>
+<dd>
+title of the required subscription (string)
+</dd>
+</dl><a NAME="AdBlockManager.network" ID="AdBlockManager.network"></a>
 <h4>AdBlockManager.network</h4>
 <b>network</b>(<i></i>)
 <p>
@@ -248,13 +288,16 @@
 </dd>
 </dl><a NAME="AdBlockManager.removeSubscription" ID="AdBlockManager.removeSubscription"></a>
 <h4>AdBlockManager.removeSubscription</h4>
-<b>removeSubscription</b>(<i>subscription</i>)
+<b>removeSubscription</b>(<i>subscription, emitSignal=True</i>)
 <p>
         Public method to remove an AdBlock subscription.
 </p><dl>
 <dt><i>subscription</i></dt>
 <dd>
 AdBlock subscription to be removed (AdBlockSubscription)
+</dd><dt><i>emitSignal</i></dt>
+<dd>
+flag indicating to send a signal (boolean)
 </dd>
 </dl><a NAME="AdBlockManager.save" ID="AdBlockManager.save"></a>
 <h4>AdBlockManager.save</h4>
@@ -281,7 +324,22 @@
 <b>showRule</b>(<i></i>)
 <p>
         Public slot to show an AdBlock rule.
-</p><a NAME="AdBlockManager.subscriptions" ID="AdBlockManager.subscriptions"></a>
+</p><a NAME="AdBlockManager.subscription" ID="AdBlockManager.subscription"></a>
+<h4>AdBlockManager.subscription</h4>
+<b>subscription</b>(<i>location</i>)
+<p>
+        Public method to get a subscription based on it's location.
+</p><dl>
+<dt><i>location</i></dt>
+<dd>
+location of the subscription to search for (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+subscription or None (AdBlockSubscription)
+</dd>
+</dl><a NAME="AdBlockManager.subscriptions" ID="AdBlockManager.subscriptions"></a>
 <h4>AdBlockManager.subscriptions</h4>
 <b>subscriptions</b>(<i></i>)
 <p>
@@ -291,7 +349,12 @@
 <dd>
 list of subscriptions (list of AdBlockSubscription)
 </dd>
-</dl>
+</dl><a NAME="AdBlockManager.updateAllSubscriptions" ID="AdBlockManager.updateAllSubscriptions"></a>
+<h4>AdBlockManager.updateAllSubscriptions</h4>
+<b>updateAllSubscriptions</b>(<i></i>)
+<p>
+        Public method to update all subscriptions.
+</p>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockModel.html	Mon Jul 30 19:19:29 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,351 +0,0 @@
-<?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.AdBlock.AdBlockModel</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.AdBlock.AdBlockModel</h1>
-<p>
-Module implementing a model for the AdBlock dialog.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockModel">AdBlockModel</a></td>
-<td>Class implementing a model for the AdBlock dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockModel" ID="AdBlockModel"></a>
-<h2>AdBlockModel</h2>
-<p>
-    Class implementing a model for the AdBlock dialog.
-</p>
-<h3>Derived from</h3>
-QAbstractItemModel
-<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="#AdBlockModel.__init__">AdBlockModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockModel.__rulesChanged">__rulesChanged</a></td>
-<td>Private slot to handle changes in rules.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.flags">flags</a></td>
-<td>Public method to get flags for a node cell.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.hasChildren">hasChildren</a></td>
-<td>Public method to check, if a parent node has some children.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.index">index</a></td>
-<td>Public method to get a model index for a node cell.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.parent">parent</a></td>
-<td>Public method to get the index of the parent node.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.removeRows">removeRows</a></td>
-<td>Public method to remove bookmarks from the model.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.rowCount">rowCount</a></td>
-<td>Public method to determine the number of rows.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.rule">rule</a></td>
-<td>Public method to get the rule given it's index.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.setData">setData</a></td>
-<td>Public method to set the data of a node cell.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.subscription">subscription</a></td>
-<td>Public method to get the subscription given it's index.</td>
-</tr><tr>
-<td><a href="#AdBlockModel.subscriptionIndex">subscriptionIndex</a></td>
-<td>Public method to get the index of a subscription.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockModel.__init__" ID="AdBlockModel.__init__"></a>
-<h4>AdBlockModel (Constructor)</h4>
-<b>AdBlockModel</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="AdBlockModel.__rulesChanged" ID="AdBlockModel.__rulesChanged"></a>
-<h4>AdBlockModel.__rulesChanged</h4>
-<b>__rulesChanged</b>(<i></i>)
-<p>
-        Private slot to handle changes in rules.
-</p><a NAME="AdBlockModel.columnCount" ID="AdBlockModel.columnCount"></a>
-<h4>AdBlockModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=QModelIndex()</i>)
-<p>
-        Public method to get the number of columns.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="AdBlockModel.data" ID="AdBlockModel.data"></a>
-<h4>AdBlockModel.data</h4>
-<b>data</b>(<i>index, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of bookmark to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-bookmark data
-</dd>
-</dl><a NAME="AdBlockModel.flags" ID="AdBlockModel.flags"></a>
-<h4>AdBlockModel.flags</h4>
-<b>flags</b>(<i>index</i>)
-<p>
-        Public method to get flags for a node cell.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the node cell (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flags (Qt.ItemFlags)
-</dd>
-</dl><a NAME="AdBlockModel.hasChildren" ID="AdBlockModel.hasChildren"></a>
-<h4>AdBlockModel.hasChildren</h4>
-<b>hasChildren</b>(<i>parent=QModelIndex()</i>)
-<p>
-        Public method to check, if a parent node has some children.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of the parent node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the presence of children (boolean)
-</dd>
-</dl><a NAME="AdBlockModel.headerData" ID="AdBlockModel.headerData"></a>
-<h4>AdBlockModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="AdBlockModel.index" ID="AdBlockModel.index"></a>
-<h4>AdBlockModel.index</h4>
-<b>index</b>(<i>row, column, parent=QModelIndex()</i>)
-<p>
-        Public method to get a model index for a node cell.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number (integer)
-</dd><dt><i>column</i></dt>
-<dd>
-column number (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index (QModelIndex)
-</dd>
-</dl><a NAME="AdBlockModel.parent" ID="AdBlockModel.parent"></a>
-<h4>AdBlockModel.parent</h4>
-<b>parent</b>(<i>index=QModelIndex()</i>)
-<p>
-        Public method to get the index of the parent node.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the child node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index of the parent node (QModelIndex)
-</dd>
-</dl><a NAME="AdBlockModel.removeRows" ID="AdBlockModel.removeRows"></a>
-<h4>AdBlockModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=QModelIndex()</i>)
-<p>
-        Public method to remove bookmarks from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row of the first bookmark to remove (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of bookmarks to remove (integer)
-</dd><dt><i>index</i></dt>
-<dd>
-of the parent bookmark node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful removal (boolean)
-</dd>
-</dl><a NAME="AdBlockModel.rowCount" ID="AdBlockModel.rowCount"></a>
-<h4>AdBlockModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=QModelIndex()</i>)
-<p>
-        Public method to determine the number of rows.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl><a NAME="AdBlockModel.rule" ID="AdBlockModel.rule"></a>
-<h4>AdBlockModel.rule</h4>
-<b>rule</b>(<i>index</i>)
-<p>
-        Public method to get the rule given it's index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the rule (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the rule (AdBlockRule)
-</dd>
-</dl><a NAME="AdBlockModel.setData" ID="AdBlockModel.setData"></a>
-<h4>AdBlockModel.setData</h4>
-<b>setData</b>(<i>index, value, role=Qt.EditRole</i>)
-<p>
-        Public method to set the data of a node cell.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the node cell (QModelIndex)
-</dd><dt><i>value</i></dt>
-<dd>
-value to be set
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="AdBlockModel.subscription" ID="AdBlockModel.subscription"></a>
-<h4>AdBlockModel.subscription</h4>
-<b>subscription</b>(<i>index</i>)
-<p>
-        Public method to get the subscription given it's index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the subscription (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the subscription (AdBlockSubscription)
-</dd>
-</dl><a NAME="AdBlockModel.subscriptionIndex" ID="AdBlockModel.subscriptionIndex"></a>
-<h4>AdBlockModel.subscriptionIndex</h4>
-<b>subscriptionIndex</b>(<i>subscription</i>)
-<p>
-        Public method to get the index of a subscription.
-</p><dl>
-<dt><i>subscription</i></dt>
-<dd>
-reference to the subscription (AdBlockSubscription)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index of the subscription (QModelIndex)
-</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.AdBlock.AdBlockSubscription.html	Mon Jul 30 19:19:29 2012 +0200
+++ b/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockSubscription.html	Sat Aug 04 13:30:04 2012 +0200
@@ -91,6 +91,12 @@
 <td><a href="#AdBlockSubscription.allRules">allRules</a></td>
 <td>Public method to get the list of rules.</td>
 </tr><tr>
+<td><a href="#AdBlockSubscription.canBeRemoved">canBeRemoved</a></td>
+<td>Public method to check, if the subscription can be removed.</td>
+</tr><tr>
+<td><a href="#AdBlockSubscription.canEditRules">canEditRules</a></td>
+<td>Public method to check, if rules can be edited.</td>
+</tr><tr>
 <td><a href="#AdBlockSubscription.checkForUpdate">checkForUpdate</a></td>
 <td>Public method to check for an update.</td>
 </tr><tr>
@@ -121,6 +127,12 @@
 <td><a href="#AdBlockSubscription.replaceRule">replaceRule</a></td>
 <td>Public method to replace a rule given the offset.</td>
 </tr><tr>
+<td><a href="#AdBlockSubscription.requiresLocation">requiresLocation</a></td>
+<td>Public method to get the location of a required subscription.</td>
+</tr><tr>
+<td><a href="#AdBlockSubscription.rule">rule</a></td>
+<td>Public method to get a specific rule.</td>
+</tr><tr>
 <td><a href="#AdBlockSubscription.rulesFileName">rulesFileName</a></td>
 <td>Public method to get the name of the rules file.</td>
 </tr><tr>
@@ -133,6 +145,9 @@
 <td><a href="#AdBlockSubscription.setLocation">setLocation</a></td>
 <td>Public method to set the subscription location.</td>
 </tr><tr>
+<td><a href="#AdBlockSubscription.setRuleEnabled">setRuleEnabled</a></td>
+<td>Public method to enable a specific rule.</td>
+</tr><tr>
 <td><a href="#AdBlockSubscription.setTitle">setTitle</a></td>
 <td>Public method to set the subscription title.</td>
 </tr><tr>
@@ -152,19 +167,22 @@
 </table>
 <a NAME="AdBlockSubscription.__init__" ID="AdBlockSubscription.__init__"></a>
 <h4>AdBlockSubscription (Constructor)</h4>
-<b>AdBlockSubscription</b>(<i>url, parent=None, default=False</i>)
+<b>AdBlockSubscription</b>(<i>url, custom, parent=None, default=False</i>)
 <p>
         Constructor
 </p><dl>
 <dt><i>url</i></dt>
 <dd>
 AdBlock URL for the subscription (QUrl)
+</dd><dt><i>custom</i></dt>
+<dd>
+flag indicating a custom subscription (boolean)
 </dd><dt><i>parent</i></dt>
 <dd>
 reference to the parent object (QObject)
 </dd><dt><i>default</i></dt>
 <dd>
-flag indicating a default subscription (Boolean)
+flag indicating a default subscription (boolean)
 </dd>
 </dl><a NAME="AdBlockSubscription.__loadRules" ID="AdBlockSubscription.__loadRules"></a>
 <h4>AdBlockSubscription.__loadRules</h4>
@@ -216,6 +234,11 @@
 <dd>
 reference to the rule to add (AdBlockRule)
 </dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+offset of the rule (integer)
+</dd>
 </dl><a NAME="AdBlockSubscription.allRules" ID="AdBlockSubscription.allRules"></a>
 <h4>AdBlockSubscription.allRules</h4>
 <b>allRules</b>(<i></i>)
@@ -226,6 +249,26 @@
 <dd>
 list of rules (list of AdBlockRule)
 </dd>
+</dl><a NAME="AdBlockSubscription.canBeRemoved" ID="AdBlockSubscription.canBeRemoved"></a>
+<h4>AdBlockSubscription.canBeRemoved</h4>
+<b>canBeRemoved</b>(<i></i>)
+<p>
+        Public method to check, if the subscription can be removed.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating removal is allowed (boolean)
+</dd>
+</dl><a NAME="AdBlockSubscription.canEditRules" ID="AdBlockSubscription.canEditRules"></a>
+<h4>AdBlockSubscription.canEditRules</h4>
+<b>canEditRules</b>(<i></i>)
+<p>
+        Public method to check, if rules can be edited.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating rules may be edited (boolean)
+</dd>
 </dl><a NAME="AdBlockSubscription.checkForUpdate" ID="AdBlockSubscription.checkForUpdate"></a>
 <h4>AdBlockSubscription.checkForUpdate</h4>
 <b>checkForUpdate</b>(<i></i>)
@@ -345,6 +388,36 @@
 <dd>
 offset of the rule to remove (integer)
 </dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+requested rule (AdBlockRule)
+</dd>
+</dl><a NAME="AdBlockSubscription.requiresLocation" ID="AdBlockSubscription.requiresLocation"></a>
+<h4>AdBlockSubscription.requiresLocation</h4>
+<b>requiresLocation</b>(<i></i>)
+<p>
+        Public method to get the location of a required subscription.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+location of a required subscription (string)
+</dd>
+</dl><a NAME="AdBlockSubscription.rule" ID="AdBlockSubscription.rule"></a>
+<h4>AdBlockSubscription.rule</h4>
+<b>rule</b>(<i>offset</i>)
+<p>
+        Public method to get a specific rule.
+</p><dl>
+<dt><i>offset</i></dt>
+<dd>
+offset of the rule (integer)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+requested rule (AdBlockRule)
+</dd>
 </dl><a NAME="AdBlockSubscription.rulesFileName" ID="AdBlockSubscription.rulesFileName"></a>
 <h4>AdBlockSubscription.rulesFileName</h4>
 <b>rulesFileName</b>(<i></i>)
@@ -380,6 +453,24 @@
 <dd>
 URL of the subscription location (QUrl)
 </dd>
+</dl><a NAME="AdBlockSubscription.setRuleEnabled" ID="AdBlockSubscription.setRuleEnabled"></a>
+<h4>AdBlockSubscription.setRuleEnabled</h4>
+<b>setRuleEnabled</b>(<i>offset, enabled</i>)
+<p>
+        Public method to enable a specific rule.
+</p><dl>
+<dt><i>offset</i></dt>
+<dd>
+offset of the rule (integer)
+</dd><dt><i>enabled</i></dt>
+<dd>
+new enabled state (boolean)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the changed rule (AdBlockRule)
+</dd>
 </dl><a NAME="AdBlockSubscription.setTitle" ID="AdBlockSubscription.setTitle"></a>
 <h4>AdBlockSubscription.setTitle</h4>
 <b>setTitle</b>(<i>title</i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html	Sat Aug 04 13:30:04 2012 +0200
@@ -0,0 +1,206 @@
+<?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.AdBlock.AdBlockTreeWidget</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.AdBlock.AdBlockTreeWidget</h1>
+<p>
+Module implementing a tree widget for the AdBlock configuration dialog.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#AdBlockTreeWidget">AdBlockTreeWidget</a></td>
+<td>Class implementing a tree widget for the AdBlock configuration dialog.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="AdBlockTreeWidget" ID="AdBlockTreeWidget"></a>
+<h2>AdBlockTreeWidget</h2>
+<p>
+    Class implementing a tree widget for the AdBlock configuration dialog.
+</p>
+<h3>Derived from</h3>
+E5TreeWidget
+<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="#AdBlockTreeWidget.__init__">AdBlockTreeWidget</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.__adjustItemFeatures">__adjustItemFeatures</a></td>
+<td>Private method to adjust an item.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.__contextMenuRequested">__contextMenuRequested</a></td>
+<td>Private slot to show the context menu.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.__copyFilter">__copyFilter</a></td>
+<td>Private slot to copy the current filter to the clipboard.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.__itemChanged">__itemChanged</a></td>
+<td>Private slot to handle the change of an item.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.__subscriptionChanged">__subscriptionChanged</a></td>
+<td>Private slot handling a subscription change.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.addRule">addRule</a></td>
+<td>Public slot to add a new rule.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.keyPressEvent">keyPressEvent</a></td>
+<td>Protected method handling key presses.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.refresh">refresh</a></td>
+<td>Public method to refresh the tree.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.removeRule">removeRule</a></td>
+<td>Public slot to remove the current rule.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.showRule">showRule</a></td>
+<td>Public method to highlight the given rule.</td>
+</tr><tr>
+<td><a href="#AdBlockTreeWidget.subscription">subscription</a></td>
+<td>Public method to get a reference to the subscription.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="AdBlockTreeWidget.__init__" ID="AdBlockTreeWidget.__init__"></a>
+<h4>AdBlockTreeWidget (Constructor)</h4>
+<b>AdBlockTreeWidget</b>(<i>subscription, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>subscription</i></dt>
+<dd>
+reference to the subscription (AdBlockSubscription)
+</dd><dt><i>parenbt</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="AdBlockTreeWidget.__adjustItemFeatures" ID="AdBlockTreeWidget.__adjustItemFeatures"></a>
+<h4>AdBlockTreeWidget.__adjustItemFeatures</h4>
+<b>__adjustItemFeatures</b>(<i>itm, rule</i>)
+<p>
+        Private method to adjust an item.
+</p><dl>
+<dt><i>itm</i></dt>
+<dd>
+item to be adjusted (QTreeWidgetItem)
+</dd><dt><i>rule</i></dt>
+<dd>
+rule for the adjustment (AdBlockRule)
+</dd>
+</dl><a NAME="AdBlockTreeWidget.__contextMenuRequested" ID="AdBlockTreeWidget.__contextMenuRequested"></a>
+<h4>AdBlockTreeWidget.__contextMenuRequested</h4>
+<b>__contextMenuRequested</b>(<i>pos</i>)
+<p>
+        Private slot to show the context menu.
+</p><dl>
+<dt><i>pos</i></dt>
+<dd>
+position for the menu (QPoint)
+</dd>
+</dl><a NAME="AdBlockTreeWidget.__copyFilter" ID="AdBlockTreeWidget.__copyFilter"></a>
+<h4>AdBlockTreeWidget.__copyFilter</h4>
+<b>__copyFilter</b>(<i></i>)
+<p>
+        Private slot to copy the current filter to the clipboard.
+</p><a NAME="AdBlockTreeWidget.__itemChanged" ID="AdBlockTreeWidget.__itemChanged"></a>
+<h4>AdBlockTreeWidget.__itemChanged</h4>
+<b>__itemChanged</b>(<i>itm</i>)
+<p>
+        Private slot to handle the change of an item.
+</p><dl>
+<dt><i>itm</i></dt>
+<dd>
+changed item (QTreeWidgetItem)
+</dd>
+</dl><a NAME="AdBlockTreeWidget.__subscriptionChanged" ID="AdBlockTreeWidget.__subscriptionChanged"></a>
+<h4>AdBlockTreeWidget.__subscriptionChanged</h4>
+<b>__subscriptionChanged</b>(<i></i>)
+<p>
+        Private slot handling a subscription change.
+</p><a NAME="AdBlockTreeWidget.addRule" ID="AdBlockTreeWidget.addRule"></a>
+<h4>AdBlockTreeWidget.addRule</h4>
+<b>addRule</b>(<i></i>)
+<p>
+        Public slot to add a new rule.
+</p><a NAME="AdBlockTreeWidget.keyPressEvent" ID="AdBlockTreeWidget.keyPressEvent"></a>
+<h4>AdBlockTreeWidget.keyPressEvent</h4>
+<b>keyPressEvent</b>(<i>evt</i>)
+<p>
+        Protected method handling key presses.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+key press event (QKeyEvent)
+</dd>
+</dl><a NAME="AdBlockTreeWidget.refresh" ID="AdBlockTreeWidget.refresh"></a>
+<h4>AdBlockTreeWidget.refresh</h4>
+<b>refresh</b>(<i></i>)
+<p>
+        Public method to refresh the tree.
+</p><a NAME="AdBlockTreeWidget.removeRule" ID="AdBlockTreeWidget.removeRule"></a>
+<h4>AdBlockTreeWidget.removeRule</h4>
+<b>removeRule</b>(<i></i>)
+<p>
+        Public slot to remove the current rule.
+</p><a NAME="AdBlockTreeWidget.showRule" ID="AdBlockTreeWidget.showRule"></a>
+<h4>AdBlockTreeWidget.showRule</h4>
+<b>showRule</b>(<i>rule</i>)
+<p>
+        Public method to highlight the given rule.
+</p><dl>
+<dt><i>rule</i></dt>
+<dd>
+AdBlock rule to be shown (AdBlockRule)
+</dd>
+</dl><a NAME="AdBlockTreeWidget.subscription" ID="AdBlockTreeWidget.subscription"></a>
+<h4>AdBlockTreeWidget.subscription</h4>
+<b>subscription</b>(<i></i>)
+<p>
+        Public method to get a reference to the subscription.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the subscription (AdBlockSubscription)
+</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	Mon Jul 30 19:19:29 2012 +0200
+++ b/Documentation/Source/eric5.Helpviewer.HelpWindow.html	Sat Aug 04 13:30:04 2012 +0200
@@ -64,7 +64,7 @@
 <h3>Class Methods</h3>
 <table>
 <tr>
-<td><a href="#HelpWindow.adblockManager">adblockManager</a></td>
+<td><a href="#HelpWindow.adBlockManager">adBlockManager</a></td>
 <td>Class method to get a reference to the AdBlock manager.</td>
 </tr><tr>
 <td><a href="#HelpWindow.bookmarksManager">bookmarksManager</a></td>
@@ -359,6 +359,9 @@
 <td><a href="#HelpWindow.__titleChanged">__titleChanged</a></td>
 <td>Private slot called to handle a change of s browser's title.</td>
 </tr><tr>
+<td><a href="#HelpWindow.__userStyleSheet">__userStyleSheet</a></td>
+<td>Private method to generate the user style sheet.</td>
+</tr><tr>
 <td><a href="#HelpWindow.__viewFullScreen">__viewFullScreen</a></td>
 <td>Private slot called to toggle fullscreen mode.</td>
 </tr><tr>
@@ -458,6 +461,9 @@
 <td><a href="#HelpWindow.previewer">previewer</a></td>
 <td>Public method to get a reference to the previewer tab.</td>
 </tr><tr>
+<td><a href="#HelpWindow.reloadUserStyleSheet">reloadUserStyleSheet</a></td>
+<td>Public method to reload the user style sheet.</td>
+</tr><tr>
 <td><a href="#HelpWindow.requestVirusTotalScan">requestVirusTotalScan</a></td>
 <td>Public method to submit a request to scan an URL by VirusTotal.</td>
 </tr><tr>
@@ -493,9 +499,9 @@
 <td>Private static method to fetch the icon for a URL.</td>
 </tr>
 </table>
-<a NAME="HelpWindow.adblockManager" ID="HelpWindow.adblockManager"></a>
-<h4>HelpWindow.adblockManager (class method)</h4>
-<b>adblockManager</b>(<i></i>)
+<a NAME="HelpWindow.adBlockManager" ID="HelpWindow.adBlockManager"></a>
+<h4>HelpWindow.adBlockManager (class method)</h4>
+<b>adBlockManager</b>(<i></i>)
 <p>
         Class method to get a reference to the AdBlock manager.
 </p><dl>
@@ -1169,6 +1175,21 @@
 <dd>
 new title (string)
 </dd>
+</dl><a NAME="HelpWindow.__userStyleSheet" ID="HelpWindow.__userStyleSheet"></a>
+<h4>HelpWindow.__userStyleSheet</h4>
+<b>__userStyleSheet</b>(<i>styleSheetFile</i>)
+<p>
+        Private method to generate the user style sheet.
+</p><dl>
+<dt><i>styleSheetFile</i></dt>
+<dd>
+name of the user style sheet file (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+style sheet (QUrl)
+</dd>
 </dl><a NAME="HelpWindow.__viewFullScreen" ID="HelpWindow.__viewFullScreen"></a>
 <h4>HelpWindow.__viewFullScreen</h4>
 <b>__viewFullScreen</b>(<i></i>)
@@ -1476,7 +1497,12 @@
 <dd>
 reference to the previewer tab (HelpBrowserWV)
 </dd>
-</dl><a NAME="HelpWindow.requestVirusTotalScan" ID="HelpWindow.requestVirusTotalScan"></a>
+</dl><a NAME="HelpWindow.reloadUserStyleSheet" ID="HelpWindow.reloadUserStyleSheet"></a>
+<h4>HelpWindow.reloadUserStyleSheet</h4>
+<b>reloadUserStyleSheet</b>(<i></i>)
+<p>
+        Public method to reload the user style sheet.
+</p><a NAME="HelpWindow.requestVirusTotalScan" ID="HelpWindow.requestVirusTotalScan"></a>
 <h4>HelpWindow.requestVirusTotalScan</h4>
 <b>requestVirusTotalScan</b>(<i>url</i>)
 <p>
--- a/Documentation/Source/index-eric5.Helpviewer.AdBlock.html	Mon Jul 30 19:19:29 2012 +0200
+++ b/Documentation/Source/index-eric5.Helpviewer.AdBlock.html	Sat Aug 04 13:30:04 2012 +0200
@@ -44,9 +44,6 @@
 <td><a href="eric5.Helpviewer.AdBlock.AdBlockManager.html">AdBlockManager</a></td>
 <td>Module implementing the AdBlock manager.</td>
 </tr><tr>
-<td><a href="eric5.Helpviewer.AdBlock.AdBlockModel.html">AdBlockModel</a></td>
-<td>Module implementing a model for the AdBlock dialog.</td>
-</tr><tr>
 <td><a href="eric5.Helpviewer.AdBlock.AdBlockNetwork.html">AdBlockNetwork</a></td>
 <td>Module implementing the network block class.</td>
 </tr><tr>
@@ -58,6 +55,9 @@
 </tr><tr>
 <td><a href="eric5.Helpviewer.AdBlock.AdBlockSubscription.html">AdBlockSubscription</a></td>
 <td>Module implementing the AdBlock subscription class.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.AdBlock.AdBlockTreeWidget.html">AdBlockTreeWidget</a></td>
+<td>Module implementing a tree widget for the AdBlock configuration dialog.</td>
 </tr>
 </table>
 </body></html>
\ No newline at end of file
--- a/Helpviewer/AdBlock/AdBlockAccessHandler.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockAccessHandler.py	Sat Aug 04 13:30:04 2012 +0200
@@ -7,6 +7,7 @@
 Module implementing a scheme access handler for AdBlock URLs.
 """
 
+from PyQt4.QtCore import QUrl
 from PyQt4.QtNetwork import QNetworkAccessManager
 
 from E5Gui import E5MessageBox
@@ -35,22 +36,25 @@
         if op != QNetworkAccessManager.GetOperation:
             return None
         
-        if request.url().path() != "subscribe":
+        url = request.url()
+        if url.path() != "subscribe":
             return None
         
-        subscription = AdBlockSubscription(request.url(),
-                            Helpviewer.HelpWindow.HelpWindow.adblockManager())
-        
+        title = QUrl.fromPercentEncoding(url.encodedQueryItemValue("title"))
+        if not title:
+            return None
         res = E5MessageBox.yesNo(None,
             self.trUtf8("Subscribe?"),
             self.trUtf8("""<p>Subscribe to this AdBlock subscription?</p><p>{0}</p>""")\
-                .format(subscription.title()))
+                .format(title))
         if res:
-            Helpviewer.HelpWindow.HelpWindow.adblockManager()\
+            dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager().showDialog()
+            subscription = AdBlockSubscription(url, False,
+                Helpviewer.HelpWindow.HelpWindow.adBlockManager())
+            Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
                 .addSubscription(subscription)
-            dlg = Helpviewer.HelpWindow.HelpWindow.adblockManager().showDialog()
-            model = dlg.model()
-            dlg.setCurrentIndex(model.index(model.rowCount() - 1, 0))
+            dlg.addSubscription(subscription, False)
             dlg.setFocus()
+            dlg.raise_()
         
         return EmptyNetworkReply(self.parent())
--- a/Helpviewer/AdBlock/AdBlockDialog.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockDialog.py	Sat Aug 04 13:30:04 2012 +0200
@@ -7,17 +7,18 @@
 Module implementing the AdBlock configuration dialog.
 """
 
-from PyQt4.QtCore import pyqtSlot, Qt, QUrl
-from PyQt4.QtGui import QDialog, QMenu, QToolButton, QApplication, QDesktopServices
+from PyQt4.QtCore import pyqtSlot, QTimer, QCoreApplication
+from PyQt4.QtGui import QDialog, QMenu, QToolButton
 
-from E5Gui.E5TreeSortFilterProxyModel import E5TreeSortFilterProxyModel
+from E5Gui.E5LineEditButton import E5LineEditButton
+from E5Gui.E5LineEdit import E5LineEdit
+from E5Gui import E5MessageBox
 
 import Helpviewer.HelpWindow
 
 from .Ui_AdBlockDialog import Ui_AdBlockDialog
 
-from .AdBlockModel import AdBlockModel
-from .AdBlockRule import AdBlockRule
+from .AdBlockTreeWidget import AdBlockTreeWidget
 
 import UI.PixmapCache
 import Preferences
@@ -34,21 +35,23 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.clearButton.setIcon(UI.PixmapCache.getIcon("clearLeft.png"))
         self.iconLabel.setPixmap(UI.PixmapCache.getPixmap("adBlockPlus48.png"))
         
         self.updateSpinBox.setValue(Preferences.getHelp("AdBlockUpdatePeriod"))
         
-        self.__adBlockModel = AdBlockModel(self)
-        self.__proxyModel = E5TreeSortFilterProxyModel(self)
-        self.__proxyModel.setSourceModel(self.__adBlockModel)
-        self.subscriptionsTree.setModel(self.__proxyModel)
+        self.searchEdit.setInactiveText(self.trUtf8("Search..."))
+        self.__clearSearchButton = E5LineEditButton(self)
+        self.__clearSearchButton.setIcon(UI.PixmapCache.getIcon("clearLeft.png"))
+        self.searchEdit.addWidget(self.__clearSearchButton, E5LineEdit.RightSide)
+        self.__clearSearchButton.clicked[()].connect(self.searchEdit.clear)
         
-        self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString)
+        self.__manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
+        self.adBlockGroup.setChecked(self.__manager.isEnabled())
+        self.__manager.requiredSubscriptionLoaded.connect(self.addSubscription)
         
-        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
-        self.adBlockGroup.setChecked(manager.isEnabled())
-        self.adBlockGroup.toggled[bool].connect(manager.setEnabled)
+        self.__currentTreeWidget = None
+        self.__currentSubscription = None
+        self.__loaded = False
         
         menu = QMenu(self)
         menu.aboutToShow.connect(self.__aboutToShowActionMenu)
@@ -56,108 +59,200 @@
         self.actionButton.setIcon(UI.PixmapCache.getIcon("adBlockAction.png"))
         self.actionButton.setPopupMode(QToolButton.InstantPopup)
         
-        if self.adBlockGroup.isChecked():
-            subscription = manager.customRules()
-            subscriptionIndex = self.__adBlockModel.subscriptionIndex(subscription)
-            self.subscriptionsTree.expand(
-                self.__proxyModel.mapFromSource(subscriptionIndex))
+        self.__load()
+        
+        self.buttonBox.setFocus()
     
-    def model(self):
+    def __loadSubscriptions(self):
+        """
+        Private slot to load the AdBlock subscription rules.
         """
-        Public method to return a reference to the subscriptions tree model.
+        for index in range(self.subscriptionsTabWidget.count()):
+            tree = self.subscriptionsTabWidget.widget(index)
+            tree.refresh()
+    
+    def __load(self):
+        """
+        Private slot to populate the tab widget with subscriptions.
         """
-        return self.subscriptionsTree.model()
+        if self.__loaded or not self.adBlockGroup.isChecked():
+            return
+        
+        for subscription in self.__manager.subscriptions():
+            tree = AdBlockTreeWidget(subscription, self.subscriptionsTabWidget)
+            if subscription.isEnabled():
+                icon = UI.PixmapCache.getIcon("adBlockPlus.png")
+            else:
+                icon = UI.PixmapCache.getIcon("adBlockPlusDisabled.png")
+            self.subscriptionsTabWidget.addTab(tree, icon, subscription.title())
+        
+        self.__loaded = True
+        QCoreApplication.processEvents()
+        
+        QTimer.singleShot(50, self.__loadSubscriptions)
     
-    def setCurrentIndex(self, index):
+    def addSubscription(self, subscription, refresh=True):
         """
-        Private slot to set the current index of the subscriptions tree.
+        Public slot adding a subscription to the list.
         
-        @param index index to be set (QModelIndex)
+        @param subscription reference to the subscription to be
+            added (AdBlockSubscription)
+        @param refresh flag indicating to refresh the tree (boolean)
         """
-        self.subscriptionsTree.setCurrentIndex(index)
+        tree = AdBlockTreeWidget(subscription, self.subscriptionsTabWidget)
+        index = self.subscriptionsTabWidget.insertTab(
+            self.subscriptionsTabWidget.count() - 1, tree, subscription.title())
+        self.subscriptionsTabWidget.setCurrentIndex(index)
+        QCoreApplication.processEvents()
+        if refresh:
+            tree.refresh()
+        self.__setSubscriptionEnabled(subscription, True)
     
     def __aboutToShowActionMenu(self):
         """
         Private slot to show the actions menu.
         """
+        subscriptionEditable = self.__currentSubscription and \
+                               self.__currentSubscription.canEditRules()
+        subscriptionRemovable = self.__currentSubscription and \
+                               self.__currentSubscription.canBeRemoved()
+        subscriptionEnabled = self.__currentSubscription and \
+                              self.__currentSubscription.isEnabled()
+        
         menu = self.actionButton.menu()
         menu.clear()
         
-        menu.addAction(self.trUtf8("Add Custom Rule"), self.addCustomRule)
-        
+        menu.addAction(self.trUtf8("Add Rule"), self.__addCustomRule)\
+            .setEnabled(subscriptionEditable)
+        menu.addAction(self.trUtf8("Remove Rule"), self.__removeCustomRule)\
+            .setEnabled(subscriptionEditable)
+        menu.addSeparator()
+        menu.addAction(self.trUtf8("Browse Subscriptions..."), self.__browseSubscriptions)
+        menu.addAction(self.trUtf8("Remove Subscription"), self.__removeSubscription)\
+            .setEnabled(subscriptionRemovable)
+        if self.__currentSubscription:
+            menu.addSeparator()
+            if subscriptionEnabled:
+                txt = self.trUtf8("Disable Subscription")
+            else:
+                txt = self.trUtf8("Enable Subscription")
+            menu.addAction(txt, self.__switchSubscriptionEnabled)
+        menu.addSeparator()
+        menu.addAction(self.trUtf8("Update Subscription"), self.__updateSubscription)\
+            .setEnabled(not subscriptionEditable)
+        menu.addAction(self.trUtf8("Update All Subscriptions"),
+            self.__updateAllSubscriptions)
+        menu.addSeparator()
         menu.addAction(self.trUtf8("Learn more about writing rules..."),
                        self.__learnAboutWritingFilters)
-        
-        menu.addSeparator()
-        
-        idx = self.__proxyModel.mapToSource(self.subscriptionsTree.currentIndex())
-        
-        act = menu.addAction(self.trUtf8("Update Subscription"),
-                             self.__updateSubscription)
-        act.setEnabled(idx.isValid())
-        
-        menu.addAction(self.trUtf8("Browse Subscriptions..."), self.__browseSubscriptions)
-        
-        menu.addSeparator()
-        
-        act = menu.addAction(self.trUtf8("Remove Subscription"),
-                             self.__removeSubscription)
-        act.setEnabled(idx.isValid())
     
-    def addCustomRule(self, rule=""):
+    def __addCustomRule(self):
         """
-        Public slot to add a custom AdBlock rule.
-        
-        @param rule string defining the rule to be added (string)
+        Private slot to add a custom AdBlock rule.
         """
-        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
-        subscription = manager.customRules()
-        assert subscription is not None
-        subscription.addRule(AdBlockRule(rule, subscription))
-        QApplication.processEvents()
-        
-        parent = self.__adBlockModel.subscriptionIndex(subscription)
-        cnt = self.__adBlockModel.rowCount(parent)
-        ruleIndex = self.__adBlockModel.index(cnt - 1, 0, parent)
-        self.subscriptionsTree.expand(self.__proxyModel.mapFromSource(parent))
-        self.subscriptionsTree.edit(self.__proxyModel.mapFromSource(ruleIndex))
+        self.__currentTreeWidget.addRule()
+    
+    def __removeCustomRule(self):
+        """
+        Private slot to remove a custom AdBlock rule.
+        """
+        self.__currentTreeWidget.removeRule()
     
     def __updateSubscription(self):
         """
         Private slot to update the selected subscription.
         """
-        idx = self.__proxyModel.mapToSource(self.subscriptionsTree.currentIndex())
-        if not idx.isValid():
-            return
-        if idx.parent().isValid():
-            idx = idx.parent()
-        subscription = self.__adBlockModel.subscription(idx)
-        subscription.updateNow()
+        self.__currentSubscription.updateNow()
+    
+    def __updateAllSubscriptions(self):
+        """
+        Private slot to update all subscriptions.
+        """
+        self.__manager.updateAllSubscriptions()
     
     def __browseSubscriptions(self):
         """
         Private slot to browse the list of available AdBlock subscriptions.
         """
-        QDesktopServices.openUrl(QUrl("http://adblockplus.org/en/subscriptions"))
+        mw = Helpviewer.HelpWindow.HelpWindow.mainWindow()
+        mw.newTab("http://adblockplus.org/en/subscriptions")
+        mw.raise_()
     
     def __learnAboutWritingFilters(self):
         """
         Private slot to show the web page about how to write filters.
         """
-        QDesktopServices.openUrl(QUrl("http://adblockplus.org/en/filters"))
+        mw = Helpviewer.HelpWindow.HelpWindow.mainWindow()
+        mw.newTab("http://adblockplus.org/en/filters")
+        mw.raise_()
     
     def __removeSubscription(self):
         """
         Private slot to remove the selected subscription.
         """
-        idx = self.__proxyModel.mapToSource(self.subscriptionsTree.currentIndex())
-        if not idx.isValid():
-            return
-        if idx.parent().isValid():
-            idx = idx.parent()
-        subscription = self.__adBlockModel.subscription(idx)
-        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
-        manager.removeSubscription(subscription)
+        requiresTitles = []
+        requiresSubscriptions = \
+            self.__manager.getRequiresSubscriptions(self.__currentSubscription)
+        for subscription in requiresSubscriptions:
+            requiresTitles.append(subscription.title())
+        if requiresTitles:
+            message = self.trUtf8("<p>Do you really want to remove subscription"
+                " <b>{0}</b> and all subscriptions requiring it?</p>"
+                "<ul><li>{1}</li></ul>").format(
+                    self.__currentSubscription.title(),
+                    "</li><li>".join(requiresTitles))
+        else:
+            message = self.trUtf8("<p>Do you really want to remove subscription"
+                " <b>{0}</b>?</p>").format(self.__currentSubscription.title())
+        res = E5MessageBox.yesNo(self,
+            self.trUtf8("Remove Subscription"),
+            message)
+        
+        if res:
+            removeSubscription = self.__currentSubscription
+            removeTrees = [self.__currentTreeWidget]
+            for index in range(self.subscriptionsTabWidget.count()):
+                tree = self.subscriptionsTabWidget.widget(index)
+                if tree.subscription() in requiresSubscriptions:
+                    removeTrees.append(tree)
+            for tree in removeTrees:
+                self.subscriptionsTabWidget.removeTab(
+                    self.subscriptionsTabWidget.indexOf(tree))
+            self.__manager.removeSubscription(removeSubscription)
+    
+    def __switchSubscriptionEnabled(self):
+        """
+        Private slot to switch the enabled state of the selected subscription
+        """
+        newState = not self.__currentSubscription.isEnabled()
+        self.__setSubscriptionEnabled(self.__currentSubscription, newState)
+    
+    def __setSubscriptionEnabled(self, subscription, enable):
+        """
+        Private slot to set the enabled state of a subscription.
+        
+        @param subscription subscription to set the state for (AdBlockSubscription)
+        @param enable state to set to (boolean)
+        """
+        if enable:
+            # enable required one as well
+            sub = self.__manager.subscription(subscription.requiresLocation())
+            requiresSubscriptions = [] if sub is None else [sub]
+            icon = UI.PixmapCache.getIcon("adBlockPlus.png")
+        else:
+            # disable dependent ones as well
+            requiresSubscriptions = \
+                self.__manager.getRequiresSubscriptions(subscription)
+            icon = UI.PixmapCache.getIcon("adBlockPlusDisabled.png")
+        requiresSubscriptions.append(subscription)
+        for sub in requiresSubscriptions:
+            sub.setEnabled(enable)
+        
+        for index in range(self.subscriptionsTabWidget.count()):
+            tree = self.subscriptionsTabWidget.widget(index)
+            if tree.subscription() in requiresSubscriptions:
+                self.subscriptionsTabWidget.setTabIcon(
+                    self.subscriptionsTabWidget.indexOf(tree), icon)
     
     @pyqtSlot(int)
     def on_updateSpinBox_valueChanged(self, value):
@@ -169,10 +264,43 @@
         if value != Preferences.getHelp("AdBlockUpdatePeriod"):
             Preferences.setHelp("AdBlockUpdatePeriod", value)
             
-            manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
+            manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
             for subscription in manager.subscriptions():
                 subscription.checkForUpdate()
     
+    @pyqtSlot(int)
+    def on_subscriptionsTabWidget_currentChanged(self, index):
+        """
+        Private slot handling the selection of another tab.
+        
+        @param index index of the new current tab (integer)
+        """
+        if index != -1:
+            self.__currentTreeWidget = self.subscriptionsTabWidget.widget(index)
+            self.__currentSubscription = self.__currentTreeWidget.subscription()
+    
+    @pyqtSlot(str)
+    def on_searchEdit_textChanged(self, filter):
+        """
+        Private slot to set a new filter on the current widget.
+        
+        @param filter filter to be set (string)
+        """
+        if self.__currentTreeWidget and self.adBlockGroup.isChecked():
+            self.__currentTreeWidget.filterString(filter)
+    
+    @pyqtSlot(bool)
+    def on_adBlockGroup_toggled(self, state):
+        """
+        Private slot handling the enabling/disabling of AdBlock.
+        
+        @param state state of the toggle (boolean)
+        """
+        self.__manager.setEnabled(state)
+        
+        if state:
+            self.__load()
+    
     def showRule(self, rule):
         """
         Public slot to show the given rule.
@@ -186,17 +314,10 @@
         if subscription is None:
             return
         
-        self.searchEdit.clear()
-        
-        subscriptionIndex = self.__adBlockModel.subscriptionIndex(subscription)
-        subscriptionProxyIndex = self.__proxyModel.mapFromSource(subscriptionIndex)
-        filter = rule.filter()
-        if filter:
-            indexes = self.__proxyModel.match(
-                subscriptionProxyIndex, Qt.DisplayRole, filter, 1,
-                Qt.MatchStartsWith | Qt.MatchRecursive)
-            if indexes:
-                self.subscriptionsTree.expand(subscriptionProxyIndex)
-                self.subscriptionsTree.scrollTo(indexes[0])
-                self.subscriptionsTree.setCurrentIndex(indexes[0])
+        for index in range(self.subscriptionsTabWidget.count()):
+            tree = self.subscriptionsTabWidget.widget(index)
+            if subscription == tree.subscription():
+                tree.showRule(rule)
+                self.subscriptionsTabWidget.setCurrentIndex(index)
                 self.raise_()
+                break
--- a/Helpviewer/AdBlock/AdBlockDialog.ui	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockDialog.ui	Sat Aug 04 13:30:04 2012 +0200
@@ -29,29 +29,22 @@
       <item>
        <layout class="QGridLayout" name="gridLayout">
         <property name="horizontalSpacing">
-         <number>0</number>
+         <number>20</number>
         </property>
         <item row="0" column="0" rowspan="2">
          <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 row="0" column="1" colspan="3">
-         <spacer name="horizontalSpacer_3">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>158</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item row="1" column="1">
+        <item row="0" column="1">
          <spacer name="horizontalSpacer">
           <property name="orientation">
            <enum>Qt::Horizontal</enum>
@@ -64,40 +57,18 @@
           </property>
          </spacer>
         </item>
-        <item row="1" column="2">
-         <widget class="QLineEdit" name="searchEdit">
+        <item row="1" column="1">
+         <widget class="E5LineEdit" name="searchEdit">
           <property name="toolTip">
            <string>Enter search term for subscriptions and rules</string>
           </property>
          </widget>
         </item>
-        <item row="1" column="3">
-         <widget class="QToolButton" name="clearButton">
-          <property name="toolTip">
-           <string>Press to clear the search edit</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
        </layout>
       </item>
       <item>
-       <widget class="E5TreeView" name="subscriptionsTree">
-        <property name="dragDropMode">
-         <enum>QAbstractItemView::InternalMove</enum>
-        </property>
-        <property name="alternatingRowColors">
-         <bool>true</bool>
-        </property>
-        <property name="selectionMode">
-         <enum>QAbstractItemView::ExtendedSelection</enum>
-        </property>
-        <property name="textElideMode">
-         <enum>Qt::ElideMiddle</enum>
-        </property>
-        <property name="uniformRowHeights">
+       <widget class="QTabWidget" name="subscriptionsTabWidget">
+        <property name="documentMode">
          <bool>true</bool>
         </property>
        </widget>
@@ -172,16 +143,15 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TreeView</class>
-   <extends>QTreeView</extends>
-   <header>E5Gui/E5TreeView</header>
+   <class>E5LineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>E5Gui/E5LineEdit.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
   <tabstop>adBlockGroup</tabstop>
   <tabstop>searchEdit</tabstop>
-  <tabstop>clearButton</tabstop>
-  <tabstop>subscriptionsTree</tabstop>
+  <tabstop>subscriptionsTabWidget</tabstop>
   <tabstop>actionButton</tabstop>
   <tabstop>updateSpinBox</tabstop>
   <tabstop>buttonBox</tabstop>
@@ -220,21 +190,5 @@
     </hint>
    </hints>
   </connection>
-  <connection>
-   <sender>clearButton</sender>
-   <signal>clicked()</signal>
-   <receiver>searchEdit</receiver>
-   <slot>clear()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>728</x>
-     <y>21</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>706</x>
-     <y>20</y>
-    </hint>
-   </hints>
-  </connection>
  </connections>
 </ui>
--- a/Helpviewer/AdBlock/AdBlockIcon.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockIcon.py	Sat Aug 04 13:30:04 2012 +0200
@@ -65,7 +65,7 @@
         
         menu.clear()
         
-        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
+        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         
         if manager.isEnabled():
             menu.addAction(UI.PixmapCache.getIcon("adBlockPlusDisabled.png"),
@@ -126,4 +126,4 @@
         """
         act = self.sender()
         if act is not None:
-            Helpviewer.HelpWindow.HelpWindow.adblockManager().setEnabled(act.data())
+            Helpviewer.HelpWindow.HelpWindow.adBlockManager().setEnabled(act.data())
--- a/Helpviewer/AdBlock/AdBlockManager.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockManager.py	Sat Aug 04 13:30:04 2012 +0200
@@ -30,6 +30,7 @@
     @signal rulesChanged() emitted after some rule has changed
     """
     rulesChanged = pyqtSignal()
+    requiredSubscriptionLoaded = pyqtSignal(AdBlockSubscription)
     
     def __init__(self, parent=None):
         """
@@ -48,12 +49,20 @@
         self.__subscriptions = []
         self.__saveTimer = AutoSaver(self, self.save)
         
+        self.__defaultSubscriptionUrlString = \
+            "abp:subscribe?location=" \
+            "https://easylist-downloads.adblockplus.org/easylist.txt&title=EasyList"
+        self.__customSubscriptionUrlString = \
+            bytes(self.__customSubscriptionUrl().toEncoded()).decode()
+        
         self.rulesChanged.connect(self.__saveTimer.changeOccurred)
     
     def close(self):
         """
         Public method to close the open search engines manager.
         """
+        self.__adBlockDialog and self.__adBlockDialog.close()
+        
         self.__saveTimer.saveIfNeccessary()
     
     def isEnabled(self):
@@ -139,7 +148,7 @@
                 return subscription
         
         url = self.__customSubscriptionUrl()
-        customAdBlockSubscription = AdBlockSubscription(url, self)
+        customAdBlockSubscription = AdBlockSubscription(url, True, self)
         self.addSubscription(customAdBlockSubscription)
         return customAdBlockSubscription
     
@@ -154,20 +163,50 @@
         
         return self.__subscriptions[:]
     
-    def removeSubscription(self, subscription):
+    def subscription(self, location):
+        """
+        Public method to get a subscription based on it's location.
+        
+        @param location location of the subscription to search for (string)
+        @return subscription or None (AdBlockSubscription)
+        """
+        if location != "":
+            for subscription in self.__subscriptions:
+                if subscription.location().toString() == location:
+                    return subscription
+        
+        return None
+    
+    def updateAllSubscriptions(self):
+        """
+        Public method to update all subscriptions.
+        """
+        for subscription in self.__subscriptions:
+            subscription.updateNow()
+    
+    def removeSubscription(self, subscription, emitSignal=True):
         """
         Public method to remove an AdBlock subscription.
         
         @param subscription AdBlock subscription to be removed (AdBlockSubscription)
+        @param emitSignal flag indicating to send a signal (boolean)
         """
         if subscription is None:
             return
         
+        if subscription.url().toString().startswith(
+            (self.__defaultSubscriptionUrlString, self.__customSubscriptionUrlString)):
+            return
+        
         try:
             self.__subscriptions.remove(subscription)
             rulesFileName = subscription.rulesFileName()
             QFile.remove(rulesFileName)
-            self.rulesChanged.emit()
+            requiresSubscriptions = self.getRequiresSubscriptions(subscription)
+            for requiresSubscription in requiresSubscriptions:
+                self.removeSubscription(requiresSubscription, False)
+            if emitSignal:
+                self.rulesChanged.emit()
         except ValueError:
             pass
     
@@ -180,7 +219,7 @@
         if subscription is None:
             return
         
-        self.__subscriptions.append(subscription)
+        self.__subscriptions.insert(-1, subscription)
         
         subscription.rulesChanged.connect(self.rulesChanged)
         subscription.changed.connect(self.rulesChanged)
@@ -197,11 +236,19 @@
         Preferences.setHelp("AdBlockEnabled", self.__enabled)
         if self.__subscriptionsLoaded:
             subscriptions = []
+            requiresSubscriptions = [] # intermediate store for
+                                       # subscription requiring others
             for subscription in self.__subscriptions:
                 if subscription is None:
                     continue
-                subscriptions.append(bytes(subscription.url().toEncoded()).decode())
+                urlString = bytes(subscription.url().toEncoded()).decode()
+                if "requiresLocation" in urlString:
+                    requiresSubscriptions.append(urlString)
+                else:
+                    subscriptions.append(urlString)
                 subscription.saveRules()
+            for subscription in requiresSubscriptions:
+                subscriptions.insert(-1, subscription) # custom should be last
             Preferences.setHelp("AdBlockSubscriptions", subscriptions)
     
     def load(self):
@@ -224,27 +271,67 @@
         if self.__subscriptionsLoaded:
             return
         
-        defaultSubscriptionUrl = \
-            "abp:subscribe?location=" \
-            "http://adblockplus.mozdev.org/easylist/easylist.txt&title=EasyList"
-        defaultSubscriptions = []
-        defaultSubscriptions.append(
-            bytes(self.__customSubscriptionUrl().toEncoded()).decode())
-        defaultSubscriptions.append(defaultSubscriptionUrl)
-        
         subscriptions = Preferences.getHelp("AdBlockSubscriptions")
-        if len(subscriptions) == 0:
-            subscriptions = defaultSubscriptions
+        if subscriptions:
+            for subscription in subscriptions:
+                if subscription.startswith(self.__defaultSubscriptionUrlString):
+                    break
+            else:
+                subscriptions.insert(0, self.__defaultSubscriptionUrlString)
+            for subscription in subscriptions:
+                if subscription.startswith(self.__customSubscriptionUrlString):
+                    break
+            else:
+                subscriptions.append(self.__customSubscriptionUrlString)
+        else:
+            subscriptions = [self.__defaultSubscriptionUrlString, self.__customSubscriptionUrlString]
         for subscription in subscriptions:
             url = QUrl.fromEncoded(subscription.encode())
-            adBlockSubscription = AdBlockSubscription(url, self,
-                subscription == defaultSubscriptionUrl)
+            adBlockSubscription = AdBlockSubscription(url,
+                subscription.startswith(self.__customSubscriptionUrlString),
+                self,
+                subscription.startswith(self.__defaultSubscriptionUrlString))
             adBlockSubscription.rulesChanged.connect(self.rulesChanged)
             adBlockSubscription.changed.connect(self.rulesChanged)
             self.__subscriptions.append(adBlockSubscription)
         
         self.__subscriptionsLoaded = True
     
+    def loadRequiredSubscription(self, location, title):
+        """
+        Public method to load a subscription required by another one.
+        
+        @param location location of the required subscription (string)
+        @param title title of the required subscription (string)
+        """
+        # Step 1: check, if the subscription is in the list of subscriptions
+        urlString = "abp:subscribe?location={0}&title={1}".format(location, title)
+        for subscription in self.__subscriptions:
+            if subscription.url().toString().startswith(urlString):
+                # We found it!
+                return
+        
+        # Step 2: if it is not, get it
+        url = QUrl.fromEncoded(urlString.encode())
+        adBlockSubscription = AdBlockSubscription(url, False, self)
+        self.addSubscription(adBlockSubscription)
+        self.requiredSubscriptionLoaded.emit(adBlockSubscription)
+    
+    def getRequiresSubscriptions(self, subscription):
+        """
+        Public method to get a list of subscriptions, that require the given one.
+        
+        @param subscription subscription to check for (AdBlockSubscription)
+        @return list of subscription requiring the given one (list of AdBlockSubscription)
+        """
+        subscriptions = []
+        location = subscription.location().toString()
+        for subscription in self.__subscriptions:
+            if subscription.requiresLocation() == location:
+                subscriptions.append(subscription)
+        
+        return subscriptions
+    
     def showDialog(self):
         """
         Public slot to show the AdBlock subscription management dialog.
--- a/Helpviewer/AdBlock/AdBlockModel.py	Mon Jul 30 19:19:29 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2012 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a model for the AdBlock dialog.
-"""
-
-from PyQt4.QtCore import Qt, QAbstractItemModel, QModelIndex
-
-import Helpviewer.HelpWindow
-
-
-class AdBlockModel(QAbstractItemModel):
-    """
-    Class implementing a model for the AdBlock dialog.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super().__init__(parent)
-        
-        self.__manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
-        self.__manager.rulesChanged.connect(self.__rulesChanged)
-    
-    def __rulesChanged(self):
-        """
-        Private slot to handle changes in rules.
-        """
-        self.reset()
-    
-    def rule(self, index):
-        """
-        Public method to get the rule given it's index.
-        
-        @param index index of the rule (QModelIndex)
-        @return reference to the rule (AdBlockRule)
-        """
-        parent = index.internalPointer()
-        return parent.allRules()[index.row()]
-    
-    def subscription(self, index):
-        """
-        Public method to get the subscription given it's index.
-        
-        @param index index of the subscription (QModelIndex)
-        @return reference to the subscription (AdBlockSubscription)
-        """
-        parent = index.internalPointer()
-        if parent is not None:
-            return None
-        row = index.row()
-        if row < 0 or row >= len(self.__manager.subscriptions()):
-            return None
-        return self.__manager.subscriptions()[row]
-    
-    def subscriptionIndex(self, subscription):
-        """
-        Public method to get the index of a subscription.
-        
-        @param subscription reference to the subscription (AdBlockSubscription)
-        @return index of the subscription (QModelIndex)
-        """
-        try:
-            row = self.__manager.subscriptions().index(subscription)
-            if row < 0 or row >= len(self.__manager.subscriptions()):
-                return QModelIndex()
-            return self.createIndex(row, 0, 0)
-        except ValueError:
-            return QModelIndex()
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            if section == 0:
-                return self.trUtf8("Rule")
-        return QAbstractItemModel.headerData(self, section, orientation, role)
-    
-    def data(self, index, role=Qt.DisplayRole):
-        """
-        Public method to get data from the model.
-        
-        @param index index of bookmark to get data for (QModelIndex)
-        @param role data role (integer)
-        @return bookmark data
-        """
-        if not index.isValid() or index.model() != self or index.column() != 0:
-            return None
-        
-        if role in [Qt.EditRole, Qt.DisplayRole]:
-            if index.parent().isValid():
-                r = self.rule(index)
-                return r.filter()
-            else:
-                sub = self.subscription(index)
-                if sub is not None:
-                    return sub.title()
-        
-        elif role == Qt.CheckStateRole:
-            if index.parent().isValid():
-                r = self.rule(index)
-                if r.isEnabled():
-                    return Qt.Checked
-                else:
-                    return Qt.Unchecked
-            else:
-                sub = self.subscription(index)
-                if sub is not None:
-                    if sub.isEnabled():
-                        return Qt.Checked
-                    else:
-                        return Qt.Unchecked
-        
-        return None
-    
-    def columnCount(self, parent=QModelIndex()):
-        """
-        Public method to get the number of columns.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent.column() > 0:
-            return 0
-        else:
-            return 1
-    
-    def rowCount(self, parent=QModelIndex()):
-        """
-        Public method to determine the number of rows.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent.column() > 0:
-            return 0
-        
-        if not parent.isValid():
-            return len(self.__manager.subscriptions())
-        
-        if parent.internalPointer() is not None:
-            return 0
-        
-        parentNode = self.subscription(parent)
-        if parentNode is not None:
-            return len(parentNode.allRules())
-        
-        return 0
-    
-    def index(self, row, column, parent=QModelIndex()):
-        """
-        Public method to get a model index for a node cell.
-        
-        @param row row number (integer)
-        @param column column number (integer)
-        @param parent index of the parent (QModelIndex)
-        @return index (QModelIndex)
-        """
-        if row < 0 or column < 0 or \
-           row >= self.rowCount(parent) or column >= self.columnCount(parent):
-            return QModelIndex()
-        
-        if not parent.isValid():
-            return self.createIndex(row, column, None)
-        
-        parentNode = self.subscription(parent)
-        return self.createIndex(row, column, parentNode)
-    
-    def parent(self, index=QModelIndex()):
-        """
-        Public method to get the index of the parent node.
-        
-        @param index index of the child node (QModelIndex)
-        @return index of the parent node (QModelIndex)
-        """
-        if not index.isValid():
-            return QModelIndex()
-        
-        parent = index.internalPointer()
-        if parent is None:
-            return QModelIndex()
-        
-        parentRow = self.__manager.subscriptions().index(parent)
-        return self.createIndex(parentRow, 0, None)
-    
-    def flags(self, index):
-        """
-        Public method to get flags for a node cell.
-        
-        @param index index of the node cell (QModelIndex)
-        @return flags (Qt.ItemFlags)
-        """
-        if not index.isValid():
-            return Qt.NoItemFlags
-        
-        flags = Qt.ItemIsSelectable
-        
-        if index.parent().isValid():
-            flags |= Qt.ItemIsUserCheckable | Qt.ItemIsEditable
-            
-            parentNode = self.subscription(index.parent())
-            if parentNode is not None and parentNode.isEnabled():
-                flags |= Qt.ItemIsEnabled
-        else:
-            flags |= Qt.ItemIsUserCheckable | Qt.ItemIsEditable | Qt.ItemIsEnabled
-        
-        return flags
-    
-    def removeRows(self, row, count, parent=QModelIndex()):
-        """
-        Public method to remove bookmarks from the model.
-        
-        @param row row of the first bookmark to remove (integer)
-        @param count number of bookmarks to remove (integer)
-        @param index of the parent bookmark node (QModelIndex)
-        @return flag indicating successful removal (boolean)
-        """
-        if row < 0 or count <= 0 or row + count > self.rowCount(parent):
-            return False
-        
-        if not parent.isValid():
-            self.__manager.rulesChanged.disconnect(self.__rulesChanged)
-            self.beginRemoveRows(QModelIndex(), row, row + count - 1)
-            for subscription in self.__manager.subscriptions()[row:row + count]:
-                self.__manager.removeSubscription(subscription)
-            self.endRemoveRows()
-            self.__manager.rulesChanged.connect(self.__rulesChanged)
-            return True
-        else:
-            sub = self.subscription(parent)
-            if sub is not None:
-                self.__manager.rulesChanged.disconnect(self.__rulesChanged)
-                self.beginRemoveRows(parent, row, row + count - 1)
-                for i in reversed(list(range(row, row + count))):
-                    sub.removeRule(i)
-                self.endRemoveRows()
-                self.__manager.rulesChanged.connect(self.__rulesChanged)
-                return True
-        
-        return False
-    
-    def setData(self, index, value, role=Qt.EditRole):
-        """
-        Public method to set the data of a node cell.
-        
-        @param index index of the node cell (QModelIndex)
-        @param value value to be set
-        @param role role of the data (integer)
-        @return flag indicating success (boolean)
-        """
-        if not index.isValid() or \
-           index.model() != self or \
-           index.column() != 0 or \
-           (self.flags(index) & Qt.ItemIsEditable) == 0:
-            return False
-        
-        self.__manager.rulesChanged.disconnect(self.__rulesChanged)
-        changed = False
-        
-        if role in [Qt.EditRole, Qt.DisplayRole]:
-            if index.parent().isValid():
-                sub = self.subscription(index.parent())
-                if sub is not None:
-                    r = self.rule(index)
-                    r.setFilter(value)
-                    sub.replaceRule(r, index.row())
-                    self.dataChanged.emit(index, index)
-                    changed = True
-            else:
-                sub = self.subscription(index)
-                if sub is not None:
-                    sub.setTitle(value)
-                    self.dataChanged.emit(index, index)
-                    changed = True
-        
-        elif role == Qt.CheckStateRole:
-            if index.parent().isValid():
-                sub = self.subscription(index.parent())
-                if sub is not None:
-                    r = self.rule(index)
-                    r.setEnabled(value == Qt.Checked)
-                    sub.replaceRule(r, index.row())
-                    self.dataChanged.emit(index, index)
-                    changed = True
-            else:
-                sub = self.subscription(index)
-                if sub is not None:
-                    sub.setEnabled(value == Qt.Checked)
-                    self.dataChanged.emit(index, index)
-                    changed = True
-        
-        self.__manager.rulesChanged.connect(self.__rulesChanged)
-        return changed
-    
-    def hasChildren(self, parent=QModelIndex()):
-        """
-        Public method to check, if a parent node has some children.
-        
-        @param parent index of the parent node (QModelIndex)
-        @return flag indicating the presence of children (boolean)
-        """
-        if not parent.isValid():
-            return True
-        
-        if parent.internalPointer() is None:
-            return True
-        
-        return False
--- a/Helpviewer/AdBlock/AdBlockNetwork.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockNetwork.py	Sat Aug 04 13:30:04 2012 +0200
@@ -30,22 +30,24 @@
         urlDomain = url.host()
         urlScheme = url.scheme()
         
-        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
+        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         if not manager.isEnabled() or not self.canRunOnScheme(urlScheme):
             return None
         
         for subscription in manager.subscriptions():
-            blockedRule = subscription.match(request, urlDomain, urlString)
-            if blockedRule:
-                webPage = request.attribute(QNetworkRequest.User + 100)
-                if  webPage is not None:
-                    if not self.__canBeBlocked(webPage.url()):
-                        return None
+            if subscription.isEnabled():
+                blockedRule = subscription.match(request, urlDomain, urlString)
+                if blockedRule:
+                    webPage = request.attribute(QNetworkRequest.User + 100)
+                    if  webPage is not None:
+                        if not self.__canBeBlocked(webPage.url()):
+                            return None
+                        
+                        webPage.addAdBlockRule(blockedRule, url)
                     
-                    webPage.addAdBlockRule(blockedRule, url)
-                
-                reply = AdBlockBlockedNetworkReply(request, subscription, blockedRule, self)
-                return reply
+                    reply = AdBlockBlockedNetworkReply(
+                        request, subscription, blockedRule, self)
+                    return reply
         
         return None
     
@@ -65,9 +67,9 @@
         @param url URL to be checked (QUrl)
         @return flag indicating, that the URL can be blocked (boolean)
         """
-        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
+        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         for subscription in manager.subscriptions():
-            if subscription.adBlockDisabledForUrl(url):
+            if subscription.isEnabled() and subscription.adBlockDisabledForUrl(url):
                 return False
         
         return True
--- a/Helpviewer/AdBlock/AdBlockPage.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockPage.py	Sat Aug 04 13:30:04 2012 +0200
@@ -25,7 +25,7 @@
         if page is None or page.mainFrame() is None:
             return
         
-        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
+        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         if not manager.isEnabled():
             return
         
--- a/Helpviewer/AdBlock/AdBlockSubscription.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockSubscription.py	Sat Aug 04 13:30:04 2012 +0200
@@ -34,16 +34,18 @@
     changed = pyqtSignal()
     rulesChanged = pyqtSignal()
     
-    def __init__(self, url, parent=None, default=False):
+    def __init__(self, url, custom, parent=None, default=False):
         """
         Constructor
         
         @param url AdBlock URL for the subscription (QUrl)
+        @param custom flag indicating a custom subscription (boolean)
         @param parent reference to the parent object (QObject)
-        @param default flag indicating a default subscription (Boolean)
+        @param default flag indicating a default subscription (boolean)
         """
         super().__init__(parent)
         
+        self.__custom = custom
         self.__url = url.toEncoded()
         self.__enabled = False
         self.__downloading = None
@@ -52,11 +54,17 @@
         self.__title = ""
         self.__location = QByteArray()
         self.__lastUpdate = QDateTime()
+        self.__requiresLocation = ""
+        self.__requiresTitle = ""
         
         self.__rules = []   # list containing all AdBlock rules
         
         self.__networkExceptionRules = []
         self.__networkBlockRules = []
+        self.__domainRestrictedCssRules = []
+        self.__elementHidingRules = ""
+        self.__documentRules = []
+        self.__elemhideRules = []
         
         self.__parseUrl(url)
     
@@ -79,9 +87,22 @@
         self.__location = \
             QByteArray(QUrl.fromPercentEncoding(url.encodedQueryItemValue("location")))
         
+        # Check for required subscription
+        self.__requiresLocation = \
+            QUrl.fromPercentEncoding(url.encodedQueryItemValue("requiresLocation"))
+        self.__requiresTitle = \
+            QUrl.fromPercentEncoding(url.encodedQueryItemValue("requiresTitle"))
+        if self.__requiresLocation and self.__requiresTitle:
+            Helpviewer.HelpWindow.HelpWindow.adBlockManager().loadRequiredSubscription(
+                self.__requiresLocation, self.__requiresTitle)
+        
         lastUpdateByteArray = url.encodedQueryItemValue("lastUpdate")
         lastUpdateString = QUrl.fromPercentEncoding(lastUpdateByteArray)
         self.__lastUpdate = QDateTime.fromString(lastUpdateString, Qt.ISODate)
+##        if lastUpdateString:
+##            self.__lastUpdate = QDateTime.fromString(lastUpdateString, Qt.ISODate)
+##        else:
+##            self.__lastUpdate = QDateTime.currentDateTime()
         
         self.__loadRules()
     
@@ -98,6 +119,9 @@
         queryItems = []
         queryItems.append(("location", bytes(self.__location).decode()))
         queryItems.append(("title", self.__title))
+        if self.__requiresLocation and self.__requiresTitle:
+            queryItems.append(("requiresLocation", self.__requiresLocation))
+            queryItems.append(("requiresTitle", self.__requiresTitle))
         if not self.__enabled:
             queryItems.append(("enabled", "false"))
         if self.__lastUpdate.isValid():
@@ -124,8 +148,6 @@
             return
         
         self.__enabled = enabled
-        self.__populateCache()
-        self.changed.emit()
     
     def title(self):
         """
@@ -168,6 +190,14 @@
         self.__lastUpdate = QDateTime()
         self.changed.emit()
     
+    def requiresLocation(self):
+        """
+        Public method to get the location of a required subscription.
+        
+        @return location of a required subscription (string)
+        """
+        return self.__requiresLocation
+    
     def lastUpdate(self):
         """
         Public method to get the date and time of the last update.
@@ -253,7 +283,6 @@
         if self.location().scheme() == "file":
             self.__lastUpdate = QDateTime.currentDateTime()
             self.__loadRules()
-            self.changed.emit()
             return
         
         self.__downloading = FollowRedirectReply(self.location(),
@@ -299,7 +328,6 @@
         f.write(response)
         self.__lastUpdate = QDateTime.currentDateTime()
         self.__loadRules()
-        self.changed.emit()
         self.__downloading = None
     
     def saveRules(self):
@@ -319,7 +347,7 @@
             return
         
         textStream = QTextStream(f)
-        textStream << "[Adblock Plus 0.7.1]\n"
+        textStream << "[Adblock Plus 1.1.1]\n"
         for rule in self.__rules:
             textStream << rule.filter() << "\n"
     
@@ -394,6 +422,18 @@
         
         return rules
     
+    def rule(self, offset):
+        """
+        Public method to get a specific rule.
+        
+        @param offset offset of the rule (integer)
+        @return requested rule (AdBlockRule)
+        """
+        if offset >= len(self.__rules):
+            return None
+        
+        return self.__rules[offset]
+    
     def allRules(self):
         """
         Public method to get the list of rules.
@@ -407,10 +447,13 @@
         Public method to add a rule.
         
         @param rule reference to the rule to add (AdBlockRule)
+        @return offset of the rule (integer)
         """
         self.__rules.append(rule)
         self.__populateCache()
         self.rulesChanged.emit()
+        
+        return len(self.__rules) - 1
     
     def removeRule(self, offset):
         """
@@ -431,10 +474,16 @@
         
         @param rule reference to the rule to set (AdBlockRule)
         @param offset offset of the rule to remove (integer)
+        @return requested rule (AdBlockRule)
         """
+        if offset >= len(self.__rules):
+            return None
+        
         self.__rules[offset] = rule
         self.__populateCache()
         self.rulesChanged.emit()
+        
+        return self.__rules[offset]
     
     def __populateCache(self):
         """
@@ -464,3 +513,38 @@
                 self.__networkExceptionRules.append(rule)
             else:
                 self.__networkBlockRules.append(rule)
+    
+    def canEditRules(self):
+        """
+        Public method to check, if rules can be edited.
+        
+        @return flag indicating rules may be edited (boolean)
+        """
+        return self.__custom
+    
+    def canBeRemoved(self):
+        """
+        Public method to check, if the subscription can be removed.
+        
+        @return flag indicating removal is allowed (boolean)
+        """
+        return not self.__custom and not self.__defaultSubscription
+    
+    def setRuleEnabled(self, offset, enabled):
+        """
+        Public method to enable a specific rule.
+        
+        @param offset offset of the rule (integer)
+        @param enabled new enabled state (boolean)
+        @return reference to the changed rule (AdBlockRule)
+        """
+        if offset >= len(self.__rules):
+            return None
+        
+        rule = self.__rules[offset]
+        rule.setEnabled(enabled)
+        if rule.isCSSRule():
+            self.__populateCache()
+            Helpviewer.HelpWindow.HelpWindow.mainWindow().reloadUserStyleSheet()
+        
+        return rule
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/AdBlock/AdBlockTreeWidget.py	Sat Aug 04 13:30:04 2012 +0200
@@ -0,0 +1,266 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a tree widget for the AdBlock configuration dialog.
+"""
+
+from PyQt4.QtCore import Qt
+from PyQt4.QtGui import QAbstractItemView, QFont, QTreeWidgetItem, QInputDialog, \
+    QLineEdit, QMenu, QApplication, QColor
+
+from E5Gui.E5TreeWidget import E5TreeWidget
+
+from .AdBlockRule import AdBlockRule
+
+
+class AdBlockTreeWidget(E5TreeWidget):
+    """
+    Class implementing a tree widget for the AdBlock configuration dialog.
+    """
+    def __init__(self, subscription, parent=None):
+        """
+        Constructor
+        
+        @param subscription reference to the subscription (AdBlockSubscription)
+        @param parenbt reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__subscription = subscription
+        self.__topItem = None
+        self.__ruleToBeSelected = ""
+        self.__itemChangingBlock = False
+        
+        self.setContextMenuPolicy(Qt.CustomContextMenu)
+        self.setDefaultItemShowMode(E5TreeWidget.ItemsExpanded)
+        self.setHeaderHidden(True)
+        self.setAlternatingRowColors(True)
+        
+        self.customContextMenuRequested.connect(self.__contextMenuRequested)
+        self.itemChanged.connect(self.__itemChanged)
+        self.__subscription.changed.connect(self.__subscriptionChanged)
+        self.__subscription.rulesChanged.connect(self.__subscriptionChanged)
+    
+    def subscription(self):
+        """
+        Public method to get a reference to the subscription.
+        
+        @return reference to the subscription (AdBlockSubscription)
+        """
+        return self.__subscription
+    
+    def showRule(self, rule):
+        """
+        Public method to highlight the given rule.
+        
+        @param rule AdBlock rule to be shown (AdBlockRule)
+        """
+        if rule:
+            self.__ruleToBeSelected = rule.filter()
+        if not self.__topItem:
+            return
+        if self.__ruleToBeSelected:
+            items = self.findItems(self.__ruleToBeSelected, Qt.MatchRecursive)
+            if items:
+                item = items[0]
+                self.setCurrentItem(item)
+                self.scrollToItem(item, QAbstractItemView.PositionAtCenter)
+            
+            self.__ruleToBeSelected = ""
+    
+    def refresh(self):
+        """
+        Public method to refresh the tree.
+        """
+        QApplication.setOverrideCursor(Qt.WaitCursor)
+        self.__itemChangingBlock = True
+        self.clear()
+        
+        boldFont = QFont()
+        boldFont.setBold(True)
+        
+        self.__topItem = QTreeWidgetItem(self)
+        self.__topItem.setText(0, self.__subscription.title())
+        self.__topItem.setFont(0, boldFont)
+        self.addTopLevelItem(self.__topItem)
+        
+        allRules = self.__subscription.allRules()
+        
+        index = 0
+        for rule in allRules:
+            item = QTreeWidgetItem(self.__topItem)
+            item.setText(0, rule.filter())
+            item.setData(0, Qt.UserRole, index)
+            if self.__subscription.canEditRules():
+                item.setFlags(item.flags() | Qt.ItemIsEditable)
+            self.__adjustItemFeatures(item, rule)
+            index += 1
+        
+        self.expandAll()
+        self.showRule(None)
+        self.__itemChangingBlock = False
+        QApplication.restoreOverrideCursor()
+        QApplication.processEvents()
+    
+    def addRule(self):
+        """
+        Public slot to add a new rule.
+        """
+        if not self.__subscription.canEditRules():
+            return
+        
+        filter = QInputDialog.getText(
+            self,
+            self.trUtf8("Add Custom Rule"),
+            self.trUtf8("Write your rule here:"),
+            QLineEdit.Normal)
+        if filter == "":
+            return
+        
+        rule = AdBlockRule(filter, self.__subscription)
+        offset = self.__subscription.addRule(rule)
+        
+        item = QTreeWidgetItem()
+        item.setText(0, filter)
+        item.setData(0, Qt.UserRole, offset)
+        item.setFlags(item.flags() | Qt.ItemIsEditable)
+        
+        self.__itemChangingBlock = True
+        self.__topItem.addChild(item)
+        self.__itemChangingBlock = False
+        
+        self.__adjustItemFeatures(item, rule)
+    
+    def removeRule(self):
+        """
+        Public slot to remove the current rule.
+        """
+        item = self.currentItem()
+        if item is None or \
+           not self.__subscription.canEditRules() or \
+           item == self.__topItem:
+            return
+        
+        offset = item.data(0,  Qt.UserRole)
+        self.__subscription.removeRule(offset)
+        self.deleteItem(item)
+    
+    def __contextMenuRequested(self, pos):
+        """
+        Private slot to show the context menu.
+        
+        @param pos position for the menu (QPoint)
+        """
+        if not self.__subscription.canEditRules():
+            return
+        
+        item = self.itemAt(pos)
+        if item is None:
+            return
+        
+        menu = QMenu()
+        menu.addAction(self.trUtf8("Add Rule"), self.addRule)
+        menu.addSeparator()
+        act = menu.addAction(self.trUtf8("Remove Rule"), self.removeRule)
+        if item.parent() is None:
+            act.setDisabled(True)
+        
+        menu.exec_(self.viewport().mapToGlobal(pos))
+    
+    def __itemChanged(self, itm):
+        """
+        Private slot to handle the change of an item.
+        
+        @param itm changed item (QTreeWidgetItem)
+        """
+        if itm is None or self.__itemChangingBlock:
+            return
+        
+        self.__itemChangingBlock = True
+        
+        offset = itm.data(0, Qt.UserRole)
+        oldRule = self.__subscription.rule(offset)
+        
+        if itm.checkState(0) == Qt.Unchecked and oldRule.isEnabled():
+            # Disable rule
+            rule = self.__subscription.setRuleEnabled(offset, False)
+            self.__adjustItemFeatures(itm, rule)
+        elif itm.checkState(0) == Qt.Checked and not oldRule.isEnabled():
+            # Enable rule
+            rule = self.__subscription.setRuleEnabled(offset, True)
+            self.__adjustItemFeatures(itm, rule)
+        elif self.__subscription.canEditRules():
+            # Custom rule has been changed
+            rule = self.__subscription.replaceRule(
+                AdBlockRule(itm.text(0), self.__subscription), offset)
+            self.__adjustItemFeatures(itm, rule)
+        
+        self.__itemChangingBlock = False
+    
+    def __copyFilter(self):
+        """
+        Private slot to copy the current filter to the clipboard.
+        """
+        item = self.currentItem()
+        if item is not None:
+            QApplication.clipboard().setText(item.text(0))
+    
+    def __subscriptionChanged(self):
+        """
+        Private slot handling a subscription change.
+        """
+        self.refresh()
+        
+        self.__itemChangingBlock = True
+        self.__topItem.setText(0,
+            self.trUtf8("{0} (recently updated)").format(self.__subscription.title()))
+        self.__itemChangingBlock = False
+    
+    def __adjustItemFeatures(self, itm, rule):
+        """
+        Private method to adjust an item.
+        
+        @param itm item to be adjusted (QTreeWidgetItem)
+        @param rule rule for the adjustment (AdBlockRule)
+        """
+        if not rule.isEnabled():
+            font = QFont()
+            font.setItalic(True)
+            itm.setForeground(0, QColor(Qt.gray))
+            
+            if not rule.isComment():
+                itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
+                itm.setCheckState(0, Qt.Unchecked)
+                itm.setFont(0, font)
+            
+            return
+        
+        itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
+        itm.setCheckState(0, Qt.Checked)
+        
+        if rule.isCSSRule():
+            itm.setForeground(0, QColor(Qt.darkBlue))
+            itm.setFont(0, QFont())
+        elif rule.isException():
+            itm.setForeground(0, QColor(Qt.darkGreen))
+            itm.setFont(0, QFont())
+        else:
+            itm.setForeground(0, QColor())
+            itm.setFont(0, QFont())
+    
+    def keyPressEvent(self, evt):
+        """
+        Protected method handling key presses.
+        
+        @param evt key press event (QKeyEvent)
+        """
+        if evt.key() == Qt.Key_C and \
+           evt.modifiers() & Qt.ControlModifier:
+            self.__copyFilter()
+        elif evt.key() == Qt.Key_Delete:
+            self.removeRule()
+        else:
+            super().keyPressEvent(evt)
--- a/Helpviewer/HelpBrowserWV.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/HelpBrowserWV.py	Sat Aug 04 13:30:04 2012 +0200
@@ -1282,7 +1282,7 @@
         """
         act = self.sender()
         url = act.data()
-        dlg = Helpviewer.HelpWindow.HelpWindow.adblockManager().showDialog()
+        dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager().showDialog()
         dlg.addCustomRule(url)
     
     def __downloadMedia(self):
@@ -1709,7 +1709,7 @@
             self.zoomOut()
         
         if ok:
-            self.mw.adblockManager().page().hideBlockedPageEntries(self.page())
+            self.mw.adBlockManager().page().hideBlockedPageEntries(self.page())
             self.mw.passwordManager().fill(self.page())
     
     def isLoading(self):
--- a/Helpviewer/HelpWindow.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/HelpWindow.py	Sat Aug 04 13:30:04 2012 +0200
@@ -289,8 +289,7 @@
         settings.setFontSize(QWebSettings.DefaultFixedFontSize, fixedFont.pointSize())
         
         styleSheet = Preferences.getHelp("UserStyleSheet")
-        if styleSheet:
-            settings.setUserStyleSheetUrl(QUrl(styleSheet))
+        settings.setUserStyleSheetUrl(self.__userStyleSheet(styleSheet))
         
         settings.setAttribute(QWebSettings.AutoLoadImages,
             Preferences.getHelp("AutoLoadImages"))
@@ -1957,7 +1956,7 @@
         
         self.passwordManager().close()
         
-        self.adblockManager().close()
+        self.adBlockManager().close()
         
         self.userAgentsManager().close()
         
@@ -2671,7 +2670,7 @@
         """
         Private slot to show the AdBlock configuration dialog.
         """
-        self.adblockManager().showDialog()
+        self.adBlockManager().showDialog()
         
     def __showClickToFlashDialog(self):
         """
@@ -2832,7 +2831,7 @@
         return cls._passwordManager
         
     @classmethod
-    def adblockManager(cls):
+    def adBlockManager(cls):
         """
         Class method to get a reference to the AdBlock manager.
         
@@ -3232,3 +3231,36 @@
         @param url URL of the file scan report page (string)
         """
         self.newTab(url)
+    
+    def reloadUserStyleSheet(self):
+        """
+        Public method to reload the user style sheet.
+        """
+        settings = QWebSettings.globalSettings()
+        styleSheet = Preferences.getHelp("UserStyleSheet")
+        settings.setUserStyleSheetUrl(self.__userStyleSheet(styleSheet))
+    
+    def __userStyleSheet(self, styleSheetFile):
+        """
+        Private method to generate the user style sheet.
+        
+        @param styleSheetFile name of the user style sheet file (string)
+        @return style sheet (QUrl)
+        """
+        userStyle = self.adBlockManager().elementHidingRules() + \
+                    "{display:none !important;}"
+        
+        if styleSheetFile:
+            try:
+                f = open(styleSheetFile, "r")
+                fileData = f.read()
+                f.close()
+                fileData = fileData.replace("\n", "")
+                userStyle += fileData
+            except IOError:
+                pass
+        
+        encodedStyle = bytes(QByteArray(userStyle).toBase64()).decode()
+        dataString = "data:text/css;charset=utf-8;base64,{0}".format(encodedStyle)
+        
+        return QUrl(dataString)
--- a/Helpviewer/Network/NetworkAccessManager.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/Network/NetworkAccessManager.py	Sat Aug 04 13:30:04 2012 +0200
@@ -161,7 +161,7 @@
         if op == QNetworkAccessManager.GetOperation:
             if self.__adblockNetwork is None:
                 self.__adblockNetwork = \
-                    Helpviewer.HelpWindow.HelpWindow.adblockManager().network()
+                    Helpviewer.HelpWindow.HelpWindow.adBlockManager().network()
             reply = self.__adblockNetwork.block(req)
             if reply is not None:
                 reply.setParent(self)
--- a/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.py	Sat Aug 04 13:30:04 2012 +0200
@@ -42,7 +42,7 @@
         super().__init__(parent)
         
         # Check AdBlock first
-        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
+        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         if manager.isEnabled():
             urlString = bytes(url.toEncoded()).decode()
             urlDomain = url.host()
--- a/changelog	Mon Jul 30 19:19:29 2012 +0200
+++ b/changelog	Sat Aug 04 13:30:04 2012 +0200
@@ -17,6 +17,8 @@
      through field context menu entries or by pressing Ctrl+Return or Ctrl+Enter
   -- added support for GreaseMonkey scripts
   -- added an icon to the status bar to give direct access to AdBlock
+  -- rewrote huge part of AdBlock to speed up
+  -- added support for dependent AdBlock subscriptions
 
 Version 5.3-snapshot-20120624:
 - bug fixes
--- a/eric5.e4p	Mon Jul 30 19:19:29 2012 +0200
+++ b/eric5.e4p	Sat Aug 04 13:30:04 2012 +0200
@@ -666,7 +666,6 @@
     <Source>Helpviewer/AdBlock/AdBlockManager.py</Source>
     <Source>Helpviewer/AdBlock/AdBlockAccessHandler.py</Source>
     <Source>Helpviewer/AdBlock/AdBlockDialog.py</Source>
-    <Source>Helpviewer/AdBlock/AdBlockModel.py</Source>
     <Source>Helpviewer/AdBlock/AdBlockNetwork.py</Source>
     <Source>Helpviewer/AdBlock/AdBlockPage.py</Source>
     <Source>compileUiFiles.py</Source>
@@ -1038,6 +1037,7 @@
     <Source>E5Gui/E5ClickableLabel.py</Source>
     <Source>Helpviewer/AdBlock/AdBlockIcon.py</Source>
     <Source>E5Gui/E5TreeWidget.py</Source>
+    <Source>Helpviewer/AdBlock/AdBlockTreeWidget.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
--- a/i18n/eric5_cs.ts	Mon Jul 30 19:19:29 2012 +0200
+++ b/i18n/eric5_cs.ts	Sat Aug 04 13:30:04 2012 +0200
@@ -79,12 +79,12 @@
 <context>
     <name>AdBlockAccessHandler</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="44"/>
+        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="46"/>
         <source>Subscribe?</source>
         <translation>Odebírat?</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="44"/>
+        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="46"/>
         <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>
@@ -112,53 +112,93 @@
     <message>
         <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="77"/>
         <source>Press to clear the search edit</source>
-        <translation>Stisknout pro vymazání okna vyhledávání</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="110"/>
+        <translation type="obsolete">Stisknout pro vymazání okna vyhledávání</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="81"/>
         <source>Actions</source>
         <translation>Akce</translation>
     </message>
     <message>
         <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="86"/>
         <source>Add Custom Rule</source>
-        <translation>Přidat vlastní pravidlo</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="88"/>
+        <translation type="obsolete">Přidat vlastní pravidlo</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="146"/>
         <source>Learn more about writing rules...</source>
         <translation>Další informace o pravidlech psaní...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="95"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="141"/>
         <source>Update Subscription</source>
         <translation>Aktualizovat odběr</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="99"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="130"/>
         <source>Browse Subscriptions...</source>
         <translation>Procházet odběry...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="103"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="207"/>
         <source>Remove Subscription</source>
         <translation>Odebrat odběr</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="70"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="63"/>
         <source>Enter search term for subscriptions and rules</source>
         <translation>Zadejte výraz pro vyhledání odběrů a pravidel</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="130"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="101"/>
         <source>Update Period (days):</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="137"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="108"/>
         <source>Enter the update period (1 to 14 days)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="42"/>
+        <source>Search...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="125"/>
+        <source>Add Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="127"/>
+        <source>Remove Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="136"/>
+        <source>Disable Subscription</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="138"/>
+        <source>Enable Subscription</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="143"/>
+        <source>Update All Subscriptions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="199"/>
+        <source>&lt;p&gt;Do you really want to remove subscription &lt;b&gt;{0}&lt;/b&gt; and all subscriptions requiring it?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="205"/>
+        <source>&lt;p&gt;Do you really want to remove subscription &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>AdBlockIcon</name>
@@ -206,7 +246,7 @@
 <context>
     <name>AdBlockManager</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockManager.py" line="126"/>
+        <location filename="Helpviewer/AdBlock/AdBlockManager.py" line="135"/>
         <source>Custom Rules</source>
         <translation>Vlastní pravidla</translation>
     </message>
@@ -216,53 +256,81 @@
     <message>
         <location filename="Helpviewer/AdBlock/AdBlockModel.py" line="87"/>
         <source>Rule</source>
-        <translation>Pravidlo</translation>
+        <translation type="obsolete">Pravidlo</translation>
     </message>
 </context>
 <context>
     <name>AdBlockSubscription</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="216"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="246"/>
         <source>Load subscription rules</source>
         <translation>Nahrát odebíraná pravidla</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="294"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="323"/>
         <source>Downloading subscription rules</source>
         <translation>Stažení odebíraných pravidel</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="286"/>
-        <source>Got empty subscription rules.</source>
-        <translation>Odebíraná pravidla jsou prázdná.</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="315"/>
+        <source>Got empty subscription rules.</source>
+        <translation>Odebíraná pravidla jsou prázdná.</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="343"/>
         <source>Saving subscription rules</source>
         <translation>Ukládání odebíraných pravidel</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="208"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="238"/>
         <source>Unable to open adblock file &apos;{0}&apos; for reading.</source>
         <translation>Nelze otevřít adblock soubor &apos;{0}&apos; pro čtení.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="216"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="246"/>
         <source>Adblock file &apos;{0}&apos; does not start with [Adblock.</source>
         <translation>Adblock soubor &apos;{0}&apos; nezačíná s [Adblock.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="276"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="305"/>
         <source>&lt;p&gt;Subscription rules could not be downloaded.&lt;/p&gt;&lt;p&gt;Error: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Pravidla pro předplatné nelze stáhnout.&lt;/p&gt;&lt;p&gt;Chyba: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="315"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="343"/>
         <source>Unable to open adblock file &apos;{0}&apos; for writing.</source>
         <translation>Nelze otevřít adblock soubor &apos;{0}&apos; pro zápis.</translation>
     </message>
 </context>
 <context>
+    <name>AdBlockTreeWidget</name>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="115"/>
+        <source>Add Custom Rule</source>
+        <translation type="unfinished">Přidat vlastní pravidlo</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="115"/>
+        <source>Write your rule here:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="165"/>
+        <source>Add Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="167"/>
+        <source>Remove Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="218"/>
+        <source>{0} (recently updated)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>AddBookmarkDialog</name>
     <message>
         <location filename="Helpviewer/Bookmarks/AddBookmarkDialog.py" line="198"/>
@@ -15527,360 +15595,360 @@
 <context>
     <name>HelpWindow</name>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="542"/>
+        <location filename="Helpviewer/HelpWindow.py" line="541"/>
         <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="383"/>
+        <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="378"/>
+        <source>&amp;New Tab</source>
+        <translation>&amp;Nový tab</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="378"/>
+        <source>Ctrl+T</source>
+        <comment>File|New Tab</comment>
+        <translation></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="384"/>
-        <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="379"/>
-        <source>&amp;New Tab</source>
-        <translation>&amp;Nový tab</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="379"/>
-        <source>Ctrl+T</source>
-        <comment>File|New Tab</comment>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="385"/>
         <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="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>Ctrl+N</source>
         <comment>File|New Window</comment>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="397"/>
+        <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="398"/>
-        <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="399"/>
         <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="407"/>
+        <location filename="Helpviewer/HelpWindow.py" line="406"/>
         <source>&amp;Open File</source>
         <translation>&amp;Otevřít soubor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="407"/>
+        <location filename="Helpviewer/HelpWindow.py" line="406"/>
         <source>Ctrl+O</source>
         <comment>File|Open</comment>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="411"/>
+        <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="412"/>
-        <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="413"/>
         <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="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <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="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <source>Shift+Ctrl+O</source>
         <comment>File|Open in new tab</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="427"/>
+        <location filename="Helpviewer/HelpWindow.py" line="426"/>
         <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="429"/>
+        <location filename="Helpviewer/HelpWindow.py" line="428"/>
         <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="496"/>
+        <location filename="Helpviewer/HelpWindow.py" line="495"/>
         <source>&amp;Print</source>
         <translation>&amp;Tisk</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="496"/>
+        <location filename="Helpviewer/HelpWindow.py" line="495"/>
         <source>Ctrl+P</source>
         <comment>File|Print</comment>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="500"/>
+        <source>Print the displayed help</source>
+        <translation>Tisknout zobrazenou nápovědu</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="501"/>
-        <source>Print the displayed help</source>
-        <translation>Tisknout zobrazenou nápovědu</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="502"/>
         <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="537"/>
+        <location filename="Helpviewer/HelpWindow.py" line="536"/>
         <source>&amp;Close</source>
         <translation>&amp;Zavřít</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="537"/>
+        <location filename="Helpviewer/HelpWindow.py" line="536"/>
         <source>Ctrl+W</source>
         <comment>File|Close</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="543"/>
+        <location filename="Helpviewer/HelpWindow.py" line="542"/>
         <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="551"/>
+        <location filename="Helpviewer/HelpWindow.py" line="550"/>
         <source>Close &amp;All</source>
         <translation>Z&amp;avřít vše</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="555"/>
+        <location filename="Helpviewer/HelpWindow.py" line="554"/>
         <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="578"/>
+        <location filename="Helpviewer/HelpWindow.py" line="577"/>
         <source>&amp;Quit</source>
         <translation>&amp;Konec</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="578"/>
+        <location filename="Helpviewer/HelpWindow.py" line="577"/>
         <source>Ctrl+Q</source>
         <comment>File|Quit</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="595"/>
+        <location filename="Helpviewer/HelpWindow.py" line="594"/>
         <source>&amp;Backward</source>
         <translation>&amp;Nazpět</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="600"/>
+        <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="601"/>
-        <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="602"/>
         <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="611"/>
+        <location filename="Helpviewer/HelpWindow.py" line="610"/>
         <source>&amp;Forward</source>
         <translation>&amp;Dopředu</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="616"/>
+        <source>Move one help screen forward</source>
+        <translation>Posun o jednu obrazovku dopředu</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="617"/>
-        <source>Move one help screen forward</source>
-        <translation>Posun o jednu obrazovku dopředu</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="618"/>
         <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="627"/>
+        <location filename="Helpviewer/HelpWindow.py" line="626"/>
         <source>&amp;Home</source>
         <translation>&amp;Hlavní strana</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="631"/>
+        <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="632"/>
-        <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="633"/>
         <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="641"/>
+        <location filename="Helpviewer/HelpWindow.py" line="640"/>
         <source>&amp;Reload</source>
         <translation>&amp;Obnovit</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="646"/>
+        <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="647"/>
-        <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="648"/>
         <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="685"/>
+        <location filename="Helpviewer/HelpWindow.py" line="684"/>
         <source>&amp;Find...</source>
         <translation>&amp;Hledat...</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="689"/>
+        <source>Find text in page</source>
+        <translation>Hledat text na stránce</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="690"/>
-        <source>Find text in page</source>
-        <translation>Hledat text na stránce</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="691"/>
         <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="699"/>
+        <location filename="Helpviewer/HelpWindow.py" line="698"/>
         <source>Find &amp;next</source>
         <translation>Hledat &amp;následující</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="713"/>
+        <location filename="Helpviewer/HelpWindow.py" line="712"/>
         <source>Find &amp;previous</source>
         <translation>Hledat &amp;předchozí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="784"/>
+        <location filename="Helpviewer/HelpWindow.py" line="783"/>
         <source>&amp;What&apos;s This?</source>
         <translation>&amp;Co je to?</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="788"/>
+        <source>Context sensitive help</source>
+        <translation>Kontextově senzitivní nápověda</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="789"/>
-        <source>Context sensitive help</source>
-        <translation>Kontextově senzitivní nápověda</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="790"/>
         <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="802"/>
+        <location filename="Helpviewer/HelpWindow.py" line="801"/>
         <source>&amp;About</source>
         <translation>O &amp;aplikaci</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="804"/>
+        <source>Display information about this software</source>
+        <translation>Zobrazit informace a tomto software</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="805"/>
-        <source>Display information about this software</source>
-        <translation>Zobrazit informace a tomto software</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="806"/>
         <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="814"/>
+        <location filename="Helpviewer/HelpWindow.py" line="813"/>
         <source>About &amp;Qt</source>
         <translation>O &amp;Qt</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="817"/>
+        <location filename="Helpviewer/HelpWindow.py" line="816"/>
         <source>Display information about the Qt toolkit</source>
         <translation>Zobrazit informace o Qt toolkitu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="819"/>
+        <location filename="Helpviewer/HelpWindow.py" line="818"/>
         <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="827"/>
+        <location filename="Helpviewer/HelpWindow.py" line="826"/>
         <source>Zoom &amp;in</source>
         <translation>Př&amp;iblížit</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="832"/>
+        <source>Zoom in on the text</source>
+        <translation>Zvětšovací lupa</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="833"/>
-        <source>Zoom in on the text</source>
-        <translation>Zvětšovací lupa</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="834"/>
         <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="842"/>
+        <location filename="Helpviewer/HelpWindow.py" line="841"/>
         <source>Zoom &amp;out</source>
         <translation>&amp;Oddálit</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="847"/>
+        <source>Zoom out on the text</source>
+        <translation>Zmenšovací lupa</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="848"/>
-        <source>Zoom out on the text</source>
-        <translation>Zmenšovací lupa</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="849"/>
         <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="671"/>
+        <location filename="Helpviewer/HelpWindow.py" line="670"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopírovat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="671"/>
+        <location filename="Helpviewer/HelpWindow.py" line="670"/>
         <source>Ctrl+C</source>
         <comment>Edit|Copy</comment>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="675"/>
+        <source>Copy the selected text</source>
+        <translation>Kopírovat vybraný text</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="676"/>
-        <source>Copy the selected text</source>
-        <translation>Kopírovat vybraný text</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="677"/>
         <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="1328"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1327"/>
         <source>&amp;File</source>
         <translation>S&amp;oubor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1349"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1348"/>
         <source>&amp;Edit</source>
         <translation>&amp;Edit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1357"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1356"/>
         <source>&amp;View</source>
         <translation>Poh&amp;led</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1373"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1372"/>
         <source>&amp;Go</source>
         <translation>&amp;Jít</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1386"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1385"/>
         <source>H&amp;istory</source>
         <translation>H&amp;istorie</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1392"/>
         <source>&amp;Bookmarks</source>
         <translation>&amp;Záložky</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1456"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1455"/>
         <source>&amp;Help</source>
         <translation>&amp;Nápověda</translation>
     </message>
@@ -15895,42 +15963,42 @@
         <translation type="obsolete">Posun doprava</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="537"/>
+        <location filename="Helpviewer/HelpWindow.py" line="536"/>
         <source>Close</source>
         <translation>Zavřít</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="496"/>
+        <location filename="Helpviewer/HelpWindow.py" line="495"/>
         <source>Print</source>
         <translation>Tisk</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1467"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1466"/>
         <source>File</source>
         <translation>Soubor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1485"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1484"/>
         <source>Edit</source>
         <translation>Editovat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1490"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1489"/>
         <source>View</source>
         <translation>Pohled</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1499"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1498"/>
         <source>Find</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1535"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1534"/>
         <source>Help</source>
         <translation>Nápověda</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1542"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1541"/>
         <source>Go</source>
         <translation>Jít</translation>
     </message>
@@ -15940,12 +16008,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="1776"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1775"/>
         <source>Open File</source>
         <translation>Otevřít soubor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1776"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1775"/>
         <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>
@@ -15955,204 +16023,204 @@
         <translation type="obsolete">...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="379"/>
+        <location filename="Helpviewer/HelpWindow.py" line="378"/>
         <source>New Tab</source>
         <translation>Nový Tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>New Window</source>
         <translation>Nové okno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <source>Open File in New Tab</source>
         <translation>Otevřít soubor v novém tabu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="551"/>
+        <location filename="Helpviewer/HelpWindow.py" line="550"/>
         <source>Close All</source>
         <translation>Zavřít vše</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="578"/>
+        <location filename="Helpviewer/HelpWindow.py" line="577"/>
         <source>Quit</source>
         <translation>Konec</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="595"/>
+        <location filename="Helpviewer/HelpWindow.py" line="594"/>
         <source>Backward</source>
         <translation>Nazpět</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="595"/>
+        <location filename="Helpviewer/HelpWindow.py" line="594"/>
         <source>Alt+Left</source>
         <comment>Go|Backward</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="595"/>
+        <location filename="Helpviewer/HelpWindow.py" line="594"/>
         <source>Backspace</source>
         <comment>Go|Backward</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="611"/>
+        <location filename="Helpviewer/HelpWindow.py" line="610"/>
         <source>Forward</source>
         <translation>Dopředu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="611"/>
+        <location filename="Helpviewer/HelpWindow.py" line="610"/>
         <source>Alt+Right</source>
         <comment>Go|Forward</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="611"/>
+        <location filename="Helpviewer/HelpWindow.py" line="610"/>
         <source>Shift+Backspace</source>
         <comment>Go|Forward</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="627"/>
+        <location filename="Helpviewer/HelpWindow.py" line="626"/>
         <source>Home</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="627"/>
+        <location filename="Helpviewer/HelpWindow.py" line="626"/>
         <source>Ctrl+Home</source>
         <comment>Go|Home</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="641"/>
+        <location filename="Helpviewer/HelpWindow.py" line="640"/>
         <source>Reload</source>
         <translation>Obnovit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="641"/>
+        <location filename="Helpviewer/HelpWindow.py" line="640"/>
         <source>Ctrl+R</source>
         <comment>Go|Reload</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="671"/>
+        <location filename="Helpviewer/HelpWindow.py" line="670"/>
         <source>Copy</source>
         <translation>Kopírovat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="685"/>
+        <location filename="Helpviewer/HelpWindow.py" line="684"/>
         <source>Find...</source>
         <translation>Hledat...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="685"/>
+        <location filename="Helpviewer/HelpWindow.py" line="684"/>
         <source>Ctrl+F</source>
         <comment>Edit|Find</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="699"/>
+        <location filename="Helpviewer/HelpWindow.py" line="698"/>
         <source>Find next</source>
         <translation>Najít další</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="699"/>
+        <location filename="Helpviewer/HelpWindow.py" line="698"/>
         <source>F3</source>
         <comment>Edit|Find next</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="713"/>
+        <location filename="Helpviewer/HelpWindow.py" line="712"/>
         <source>Find previous</source>
         <translation>Najít předchozí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="713"/>
+        <location filename="Helpviewer/HelpWindow.py" line="712"/>
         <source>Shift+F3</source>
         <comment>Edit|Find previous</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="742"/>
+        <location filename="Helpviewer/HelpWindow.py" line="741"/>
         <source>Add Bookmark</source>
         <translation>Přidat záložku</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="784"/>
+        <location filename="Helpviewer/HelpWindow.py" line="783"/>
         <source>What&apos;s This?</source>
         <translation>Co je to?</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="784"/>
+        <location filename="Helpviewer/HelpWindow.py" line="783"/>
         <source>Shift+F1</source>
         <comment>Help|What&apos;s This?&apos;</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="802"/>
+        <location filename="Helpviewer/HelpWindow.py" line="801"/>
         <source>About</source>
         <translation>O aplikaci</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="814"/>
+        <location filename="Helpviewer/HelpWindow.py" line="813"/>
         <source>About Qt</source>
         <translation>O Qt</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="827"/>
+        <location filename="Helpviewer/HelpWindow.py" line="826"/>
         <source>Zoom in</source>
         <translation>Přiblížit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="827"/>
+        <location filename="Helpviewer/HelpWindow.py" line="826"/>
         <source>Ctrl++</source>
         <comment>View|Zoom in</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="842"/>
+        <location filename="Helpviewer/HelpWindow.py" line="841"/>
         <source>Zoom out</source>
         <translation>Oddálit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="842"/>
+        <location filename="Helpviewer/HelpWindow.py" line="841"/>
         <source>Ctrl+-</source>
         <comment>View|Zoom out</comment>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="703"/>
+        <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="704"/>
-        <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="705"/>
         <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="718"/>
+        <location filename="Helpviewer/HelpWindow.py" line="717"/>
         <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="720"/>
+        <location filename="Helpviewer/HelpWindow.py" line="719"/>
         <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="523"/>
+        <location filename="Helpviewer/HelpWindow.py" line="522"/>
         <source>Print Preview</source>
         <translation>Náhled tisku</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="527"/>
+        <location filename="Helpviewer/HelpWindow.py" line="526"/>
         <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="529"/>
+        <location filename="Helpviewer/HelpWindow.py" line="528"/>
         <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>
@@ -16162,67 +16230,67 @@
         <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="913"/>
+        <location filename="Helpviewer/HelpWindow.py" line="912"/>
         <source>Show next tab</source>
         <translation>Zobrazit následující tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="913"/>
+        <location filename="Helpviewer/HelpWindow.py" line="912"/>
         <source>Ctrl+Alt+Tab</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="922"/>
+        <location filename="Helpviewer/HelpWindow.py" line="921"/>
         <source>Show previous tab</source>
         <translation>Zobrazit předchozí tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="922"/>
+        <location filename="Helpviewer/HelpWindow.py" line="921"/>
         <source>Shift+Ctrl+Alt+Tab</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="931"/>
+        <location filename="Helpviewer/HelpWindow.py" line="930"/>
         <source>Switch between tabs</source>
         <translation>Přepnout mezi taby</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="931"/>
+        <location filename="Helpviewer/HelpWindow.py" line="930"/>
         <source>Ctrl+1</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1134"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1133"/>
         <source>Clear icons database</source>
         <translation>Vyčistit ikony databáze</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1137"/>
+        <source>Clear the database of favicons</source>
+        <translation>Vyčistit databázi favicons</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1138"/>
-        <source>Clear the database of favicons</source>
-        <translation>Vyčistit databázi favicons</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1139"/>
         <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="940"/>
+        <location filename="Helpviewer/HelpWindow.py" line="939"/>
         <source>Preferences</source>
         <translation>Předvolby</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="940"/>
+        <location filename="Helpviewer/HelpWindow.py" line="939"/>
         <source>&amp;Preferences...</source>
         <translation>&amp;Předvolby...</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="942"/>
+        <source>Set the prefered configuration</source>
+        <translation>Nastavit preferovanou konfiguraci</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="943"/>
-        <source>Set the prefered configuration</source>
-        <translation>Nastavit preferovanou konfiguraci</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="944"/>
         <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>
@@ -16232,152 +16300,152 @@
         <translation>Obsah</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="554"/>
+        <location filename="Helpviewer/HelpWindow.py" line="553"/>
         <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="1026"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1025"/>
         <source>Sync with Table of Contents</source>
         <translation>Sync obsahu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1030"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1029"/>
         <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="1032"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1031"/>
         <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="1040"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1039"/>
         <source>Table of Contents</source>
         <translation>Obsah</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1043"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1042"/>
         <source>Shows the table of contents window</source>
         <translation>Zobrazit okno s obsahem</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1045"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1044"/>
         <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="1079"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1078"/>
         <source>Manage QtHelp Documents</source>
         <translation>Uspořádat dokumenty QtNápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1082"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1081"/>
         <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="1084"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1083"/>
         <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="1446"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1445"/>
         <source>&amp;Window</source>
         <translation>O&amp;kno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1506"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1505"/>
         <source>Filter</source>
         <translation>Filtr</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1511"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1510"/>
         <source>Filtered by: </source>
         <translation>Filtrováno: </translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2325"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2324"/>
         <source>Could not find an associated content.</source>
         <translation>Asociovaný obsah nelze nalézt.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1093"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1092"/>
         <source>Manage QtHelp Filters</source>
         <translation>Uspořádat filtry QtNápovědy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1096"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1095"/>
         <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="1098"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1097"/>
         <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="1053"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1052"/>
         <source>Index</source>
         <translation>Index</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1056"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1055"/>
         <source>Shows the index window</source>
         <translation>Zobrazit index okna</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1058"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1057"/>
         <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="1066"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1065"/>
         <source>Search</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1069"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1068"/>
         <source>Shows the search window</source>
         <translation>Zobrazit okno hledání</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1071"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1070"/>
         <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="1106"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1105"/>
         <source>Reindex Documentation</source>
         <translation>Znovu indexovat dokumentaci</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1109"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1108"/>
         <source>Reindexes the documentation set</source>
         <translation>Přeindexuje dokumentaci</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1111"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1110"/>
         <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="2434"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2433"/>
         <source>Updating search index</source>
         <translation>Aktualizovat index pro hledání</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2486"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2485"/>
         <source>Looking for Documentation...</source>
         <translation>Vyhledat dokumentaci...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2516"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2515"/>
         <source>Unfiltered</source>
         <translation>Nefiltrováno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2535"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2534"/>
         <source>Help Engine</source>
         <translation>Engine nápovědy</translation>
     </message>
@@ -16387,17 +16455,17 @@
         <translation type="obsolete">Zobrazit menu navigace</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="567"/>
+        <location filename="Helpviewer/HelpWindow.py" line="566"/>
         <source>Private Browsing</source>
         <translation>Mód soukromí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="563"/>
+        <location filename="Helpviewer/HelpWindow.py" line="562"/>
         <source>Private &amp;Browsing</source>
         <translation>Mód &amp;soukromí</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="568"/>
+        <location filename="Helpviewer/HelpWindow.py" line="567"/>
         <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>
@@ -16412,52 +16480,52 @@
         <translation type="obsolete">Načteno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2064"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2063"/>
         <source>Full Screen</source>
         <translation>Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="903"/>
+        <location filename="Helpviewer/HelpWindow.py" line="902"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="903"/>
+        <location filename="Helpviewer/HelpWindow.py" line="902"/>
         <source>F11</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1079"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1078"/>
         <source>Manage QtHelp &amp;Documents</source>
         <translation>Uspořádat QtHelp &amp;dokumenty</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1093"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1092"/>
         <source>Manage QtHelp &amp;Filters</source>
         <translation>Uspořádat QtHelp &amp;filtry</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1106"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1105"/>
         <source>&amp;Reindex Documentation</source>
         <translation>Přeinde&amp;xovat dokumentaci</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1123"/>
+        <source>Clear private data</source>
+        <translation>Smazat soukromá data</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1119"/>
+        <source>&amp;Clear private data</source>
+        <translation>Smazat &amp;soukromá data</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1124"/>
-        <source>Clear private data</source>
-        <translation>Smazat soukromá data</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1120"/>
-        <source>&amp;Clear private data</source>
-        <translation>Smazat &amp;soukromá data</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1125"/>
         <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="1134"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1133"/>
         <source>Clear &amp;icons database</source>
         <translation>Smazat databázi &amp;ikon</translation>
     </message>
@@ -16472,7 +16540,7 @@
         <translation type="obsolete">Zobrazit mo&amp;nitor sítě</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1225"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1224"/>
         <source>Show the network monitor dialog</source>
         <translation>Zobrazit dialog monitoru sítě</translation>
     </message>
@@ -16482,260 +16550,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="1408"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1407"/>
         <source>&amp;Settings</source>
         <translation>Na&amp;stavení</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1437"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1436"/>
         <source>&amp;Tools</source>
         <translation>&amp;Nástroje</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="889"/>
+        <location filename="Helpviewer/HelpWindow.py" line="888"/>
         <source>Show page source</source>
         <translation>Zobrazit zdroj strany</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="889"/>
+        <location filename="Helpviewer/HelpWindow.py" line="888"/>
         <source>Ctrl+U</source>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="892"/>
+        <source>Show the page source in an editor</source>
+        <translation>Zobrazit zdroj strany v editoru</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="893"/>
-        <source>Show the page source in an editor</source>
-        <translation>Zobrazit zdroj strany v editoru</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="894"/>
         <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="953"/>
+        <location filename="Helpviewer/HelpWindow.py" line="952"/>
         <source>&amp;Languages...</source>
         <translation>&amp;Jazyky...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="956"/>
+        <location filename="Helpviewer/HelpWindow.py" line="955"/>
         <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="958"/>
+        <location filename="Helpviewer/HelpWindow.py" line="957"/>
         <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="953"/>
+        <location filename="Helpviewer/HelpWindow.py" line="952"/>
         <source>Languages</source>
         <translation>Jazyky</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="966"/>
+        <location filename="Helpviewer/HelpWindow.py" line="965"/>
         <source>Cookies</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="966"/>
+        <location filename="Helpviewer/HelpWindow.py" line="965"/>
         <source>C&amp;ookies...</source>
         <translation>C&amp;ookies...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="969"/>
+        <location filename="Helpviewer/HelpWindow.py" line="968"/>
         <source>Configure cookies handling</source>
         <translation>Nastavit ovládání cookies</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="971"/>
+        <location filename="Helpviewer/HelpWindow.py" line="970"/>
         <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="1517"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1516"/>
         <source>Settings</source>
         <translation>Nastavení</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="857"/>
+        <location filename="Helpviewer/HelpWindow.py" line="856"/>
         <source>Zoom reset</source>
         <translation>Resetovat lupu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="857"/>
+        <location filename="Helpviewer/HelpWindow.py" line="856"/>
         <source>Zoom &amp;reset</source>
         <translation>&amp;Resetovat lupu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="857"/>
+        <location filename="Helpviewer/HelpWindow.py" line="856"/>
         <source>Ctrl+0</source>
         <comment>View|Zoom reset</comment>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="861"/>
+        <source>Reset the zoom of the text</source>
+        <translation>Resetovat lupu textu</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="872"/>
+        <source>Zoom text only</source>
+        <translation>Jen lupa textu</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="872"/>
+        <source>Zoom &amp;text only</source>
+        <translation>Jen lupa &amp;textu</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="876"/>
+        <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="878"/>
+        <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="862"/>
-        <source>Reset the zoom of the text</source>
-        <translation>Resetovat lupu textu</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="873"/>
-        <source>Zoom text only</source>
-        <translation>Jen lupa textu</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="873"/>
-        <source>Zoom &amp;text only</source>
-        <translation>Jen lupa &amp;textu</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="877"/>
-        <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="879"/>
-        <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="863"/>
         <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="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>New &amp;Window</source>
         <translation>&amp;Nové okno</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="468"/>
+        <location filename="Helpviewer/HelpWindow.py" line="467"/>
         <source>Import Bookmarks</source>
         <translation>Importovat záložky</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="468"/>
+        <location filename="Helpviewer/HelpWindow.py" line="467"/>
         <source>&amp;Import Bookmarks...</source>
         <translation>&amp;Importovat záložky...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="471"/>
+        <location filename="Helpviewer/HelpWindow.py" line="470"/>
         <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="473"/>
+        <location filename="Helpviewer/HelpWindow.py" line="472"/>
         <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="482"/>
+        <location filename="Helpviewer/HelpWindow.py" line="481"/>
         <source>Export Bookmarks</source>
         <translation>Export záložek</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="482"/>
+        <location filename="Helpviewer/HelpWindow.py" line="481"/>
         <source>&amp;Export Bookmarks...</source>
         <translation>&amp;Exportovat záložky...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="485"/>
+        <location filename="Helpviewer/HelpWindow.py" line="484"/>
         <source>Export the bookmarks into a file</source>
         <translation>Export záložek do souboru</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="487"/>
+        <location filename="Helpviewer/HelpWindow.py" line="486"/>
         <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="728"/>
+        <location filename="Helpviewer/HelpWindow.py" line="727"/>
         <source>Manage Bookmarks</source>
         <translation>Správa záložek</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="728"/>
+        <location filename="Helpviewer/HelpWindow.py" line="727"/>
         <source>&amp;Manage Bookmarks...</source>
         <translation>&amp;Správa záložek...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="728"/>
+        <location filename="Helpviewer/HelpWindow.py" line="727"/>
         <source>Ctrl+Shift+B</source>
         <comment>Help|Manage bookmarks</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="732"/>
+        <location filename="Helpviewer/HelpWindow.py" line="731"/>
         <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="734"/>
+        <location filename="Helpviewer/HelpWindow.py" line="733"/>
         <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="742"/>
+        <location filename="Helpviewer/HelpWindow.py" line="741"/>
         <source>Add &amp;Bookmark...</source>
         <translation>Přid&amp;at záložku...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="742"/>
+        <location filename="Helpviewer/HelpWindow.py" line="741"/>
         <source>Ctrl+D</source>
         <comment>Help|Add bookmark</comment>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="747"/>
+        <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="748"/>
-        <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="749"/>
         <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="757"/>
+        <location filename="Helpviewer/HelpWindow.py" line="756"/>
         <source>Add Folder</source>
         <translation>Přidat složku</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="757"/>
+        <location filename="Helpviewer/HelpWindow.py" line="756"/>
         <source>Add &amp;Folder...</source>
         <translation>Přidat s&amp;ložku...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="760"/>
+        <location filename="Helpviewer/HelpWindow.py" line="759"/>
         <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="762"/>
+        <location filename="Helpviewer/HelpWindow.py" line="761"/>
         <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="770"/>
+        <location filename="Helpviewer/HelpWindow.py" line="769"/>
         <source>Bookmark All Tabs</source>
         <translation>Vytvořit záložky pro všechny taby</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="770"/>
+        <location filename="Helpviewer/HelpWindow.py" line="769"/>
         <source>Bookmark All Tabs...</source>
         <translation>Vytvořit záložky pro všechny taby...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="773"/>
+        <location filename="Helpviewer/HelpWindow.py" line="772"/>
         <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="775"/>
+        <location filename="Helpviewer/HelpWindow.py" line="774"/>
         <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="1896"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1895"/>
         <source>Saved Tabs</source>
         <translation>Uložkt taby</translation>
     </message>
@@ -16745,40 +16813,40 @@
         <translation type="obsolete">Zavřít ostatní</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="641"/>
+        <location filename="Helpviewer/HelpWindow.py" line="640"/>
         <source>F5</source>
         <comment>Go|Reload</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="656"/>
+        <location filename="Helpviewer/HelpWindow.py" line="655"/>
         <source>Stop</source>
         <translation>Zastavit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="656"/>
+        <location filename="Helpviewer/HelpWindow.py" line="655"/>
         <source>&amp;Stop</source>
         <translation>Za&amp;stavit</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="656"/>
+        <location filename="Helpviewer/HelpWindow.py" line="655"/>
         <source>Ctrl+.</source>
         <comment>Go|Stop</comment>
         <translation>Ctrl+.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="656"/>
+        <location filename="Helpviewer/HelpWindow.py" line="655"/>
         <source>Esc</source>
         <comment>Go|Stop</comment>
         <translation></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="661"/>
+        <source>Stop loading</source>
+        <translation>Zastavit načítání</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="662"/>
-        <source>Stop loading</source>
-        <translation>Zastavit načítání</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="663"/>
         <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>
@@ -16793,23 +16861,23 @@
         <translation type="obsolete">Uložit jako </translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="438"/>
+        <location filename="Helpviewer/HelpWindow.py" line="437"/>
         <source>&amp;Save As...</source>
         <translation>Uložit j&amp;ako...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="438"/>
+        <location filename="Helpviewer/HelpWindow.py" line="437"/>
         <source>Shift+Ctrl+S</source>
         <comment>File|Save As</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="443"/>
+        <location filename="Helpviewer/HelpWindow.py" line="442"/>
         <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="445"/>
+        <location filename="Helpviewer/HelpWindow.py" line="444"/>
         <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>
@@ -16834,62 +16902,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="1147"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1146"/>
         <source>Configure Search Engines</source>
         <translation>Konfigurovat vyhledávací enginy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1151"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1150"/>
         <source>Configure the available search engines</source>
         <translation>Konfigurovat dostupné vyhledávací enginy</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1153"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1152"/>
         <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="1162"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1161"/>
         <source>Manage Saved Passwords</source>
         <translation>Spravovat uložená hesla</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1162"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1161"/>
         <source>Manage Saved Passwords...</source>
         <translation>Spravovat uložená hesla...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1166"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1165"/>
         <source>Manage the saved passwords</source>
         <translation>Spravovat vaše uložená hesla</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1168"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1167"/>
         <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="1176"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1175"/>
         <source>Ad Block</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1176"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1175"/>
         <source>&amp;Ad Block...</source>
         <translation>&amp;Ad Block...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1181"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1180"/>
         <source>Configure AdBlock subscriptions and rules</source>
         <translation>Konfigurovat AdBlock odebírání a pravidla</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1183"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1182"/>
         <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="2495"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2494"/>
         <source>eric5 Web Browser</source>
         <translation>eric5 web prohlížeč</translation>
     </message>
@@ -16899,52 +16967,52 @@
         <translation type="obsolete">Načtení selhalo</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="510"/>
+        <location filename="Helpviewer/HelpWindow.py" line="509"/>
         <source>Print as PDF</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="513"/>
+        <source>Print the displayed help as PDF</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="514"/>
-        <source>Print the displayed help as PDF</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="515"/>
         <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="979"/>
+        <location filename="Helpviewer/HelpWindow.py" line="978"/>
         <source>Offline Storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="979"/>
+        <location filename="Helpviewer/HelpWindow.py" line="978"/>
         <source>Offline &amp;Storage...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="982"/>
+        <location filename="Helpviewer/HelpWindow.py" line="981"/>
         <source>Configure offline storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="984"/>
+        <location filename="Helpviewer/HelpWindow.py" line="983"/>
         <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="1147"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1146"/>
         <source>Configure Search &amp;Engines...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2093"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2092"/>
         <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="1368"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1367"/>
         <source>Text Encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -16954,337 +17022,337 @@
         <translation type="obsolete">Výchozí</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="2936"/>
+        <source>ISO</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="2937"/>
-        <source>ISO</source>
+        <source>Windows</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="2938"/>
-        <source>Windows</source>
+        <source>ISCII</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="2939"/>
-        <source>ISCII</source>
+        <source>Unicode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="2940"/>
-        <source>Unicode</source>
+        <source>Other</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="2941"/>
-        <source>Other</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2942"/>
         <source>IBM</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2964"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2963"/>
         <source>Default Encoding</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1234"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1233"/>
         <source>Downloads</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1237"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1236"/>
         <source>Shows the downloads window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1239"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1238"/>
         <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="1207"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1206"/>
         <source>Manage Certificates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1207"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1206"/>
         <source>Manage Certificates...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1211"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1210"/>
         <source>Manage the saved certificates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1213"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1212"/>
         <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="1592"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1591"/>
         <source>VirusTotal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1598"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1597"/>
         <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="1642"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1641"/>
         <source>Search VirusTotal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1648"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1647"/>
         <source>Scan current site</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="3215"/>
+        <location filename="Helpviewer/HelpWindow.py" line="3214"/>
         <source>VirusTotal Scan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="3215"/>
+        <location filename="Helpviewer/HelpWindow.py" line="3214"/>
         <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="582"/>
+        <source>Quit the eric5 Web Browser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="583"/>
-        <source>Quit the eric5 Web Browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="584"/>
         <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="1247"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1246"/>
         <source>RSS Feeds Dialog</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1247"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1246"/>
         <source>&amp;RSS Feeds Dialog...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1247"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1246"/>
         <source>Ctrl+Shift+F</source>
         <comment>Help|RSS Feeds Dialog</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1252"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1251"/>
         <source>Open a dialog showing the configured RSS feeds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1254"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1253"/>
         <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="1263"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1262"/>
         <source>Siteinfo Dialog</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1263"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1262"/>
         <source>&amp;Siteinfo Dialog...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1263"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1262"/>
         <source>Ctrl+Shift+I</source>
         <comment>Help|Siteinfo Dialog</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1268"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1267"/>
         <source>Open a dialog showing some information about the current site.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1270"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1269"/>
         <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="1527"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1526"/>
         <source>Tools</source>
         <translation type="unfinished">Nástroje</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="827"/>
+        <location filename="Helpviewer/HelpWindow.py" line="826"/>
         <source>Zoom In</source>
         <comment>View|Zoom in</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="842"/>
+        <location filename="Helpviewer/HelpWindow.py" line="841"/>
         <source>Zoom Out</source>
         <comment>View|Zoom out</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1221"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1220"/>
         <source>Network Monitor</source>
         <translation type="unfinished">Monitor sítě</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1221"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1220"/>
         <source>&amp;Network Monitor...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1226"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1225"/>
         <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="1811"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1810"/>
         <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="2070"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2069"/>
         <source>Restore Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1279"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1278"/>
         <source>Manage User Agent Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1279"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1278"/>
         <source>Manage &amp;User Agent Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1282"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1281"/>
         <source>Shows a dialog to manage the User Agent settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1284"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1283"/>
         <source>&lt;b&gt;Manage User Agent Settings&lt;/b&gt;&lt;p&gt;Shows a dialog to manage the User Agent settings.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1426"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1425"/>
         <source>Global User Agent</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="438"/>
+        <location filename="Helpviewer/HelpWindow.py" line="437"/>
         <source>Save As</source>
         <translation type="unfinished">Uložit jako</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="453"/>
+        <location filename="Helpviewer/HelpWindow.py" line="452"/>
         <source>Save Page Screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="453"/>
+        <location filename="Helpviewer/HelpWindow.py" line="452"/>
         <source>Save Page Screen...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="457"/>
+        <location filename="Helpviewer/HelpWindow.py" line="456"/>
         <source>Save the current page as a screen shot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="459"/>
+        <location filename="Helpviewer/HelpWindow.py" line="458"/>
         <source>&lt;b&gt;Save Page Screen...&lt;/b&gt;&lt;p&gt;Saves the current page as a screen shot.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1293"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1292"/>
         <source>Synchronize data</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1293"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1292"/>
         <source>&amp;Synchronize Data...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1297"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1296"/>
         <source>Shows a dialog to synchronize data via the network</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1299"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1298"/>
         <source>&lt;b&gt;Synchronize Data...&lt;/b&gt;&lt;p&gt;This shows a dialog to synchronize data via the network.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1191"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1190"/>
         <source>ClickToFlash</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1191"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1190"/>
         <source>&amp;ClickToFlash...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1196"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1195"/>
         <source>Configure ClickToFlash whitelist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1198"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1197"/>
         <source>&lt;b&gt;ClickToFlash...&lt;/b&gt;&lt;p&gt;Opens a dialog to configure the ClickToFlash whitelist.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="993"/>
+        <location filename="Helpviewer/HelpWindow.py" line="992"/>
         <source>Personal Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="993"/>
+        <location filename="Helpviewer/HelpWindow.py" line="992"/>
         <source>Personal Information...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="998"/>
+        <location filename="Helpviewer/HelpWindow.py" line="997"/>
         <source>Configure personal information for completing form fields</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1000"/>
+        <location filename="Helpviewer/HelpWindow.py" line="999"/>
         <source>&lt;b&gt;Personal Information...&lt;/b&gt;&lt;p&gt;Opens a dialog to configure the personal information used for completing form fields.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1010"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1009"/>
         <source>GreaseMonkey Scripts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1010"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1009"/>
         <source>GreaseMonkey Scripts...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1015"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1014"/>
         <source>Configure the GreaseMonkey Scripts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1017"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1016"/>
         <source>&lt;b&gt;GreaseMonkey Scripts...&lt;/b&gt;&lt;p&gt;Opens a dialog to configure the available GreaseMonkey Scripts.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
Binary file i18n/eric5_de.qm has changed
--- a/i18n/eric5_de.ts	Mon Jul 30 19:19:29 2012 +0200
+++ b/i18n/eric5_de.ts	Sat Aug 04 13:30:04 2012 +0200
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="de">
+<!DOCTYPE TS><TS version="2.0" language="de" sourcelanguage="">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -80,12 +79,12 @@
 <context>
     <name>AdBlockAccessHandler</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="44"/>
+        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="46"/>
         <source>Subscribe?</source>
         <translation>Abonieren?</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="44"/>
+        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="46"/>
         <source>&lt;p&gt;Subscribe to this AdBlock subscription?&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soll dieses AdBlock Abonnement gebucht werden?&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
@@ -103,55 +102,85 @@
         <translation>AdBlock aktivieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="77"/>
-        <source>Press to clear the search edit</source>
-        <translation>Drücken, um den Suchtext zu löschen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="110"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="81"/>
         <source>Actions</source>
         <translation>Aktionen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="86"/>
-        <source>Add Custom Rule</source>
-        <translation>Spezifische Regel hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="88"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="146"/>
         <source>Learn more about writing rules...</source>
         <translation>Mehr über das Schreiben von Regeln lernen...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="95"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="141"/>
         <source>Update Subscription</source>
         <translation>Abonnement aktualisieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="99"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="130"/>
         <source>Browse Subscriptions...</source>
         <translation>Abonnements anschauen...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="103"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="207"/>
         <source>Remove Subscription</source>
         <translation>Abonnement löschen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="70"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="63"/>
         <source>Enter search term for subscriptions and rules</source>
         <translation>Gib den Suchtext für Abonnements und Regeln ein</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="130"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="101"/>
         <source>Update Period (days):</source>
         <translation>Aktualisierungsperiode (Tage):</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="137"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="108"/>
         <source>Enter the update period (1 to 14 days)</source>
         <translation>Gib die Aktualisierungsperiode ein (1 bis 14 Tage)</translation>
     </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="42"/>
+        <source>Search...</source>
+        <translation>Suchen...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="125"/>
+        <source>Add Rule</source>
+        <translation>Regel hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="127"/>
+        <source>Remove Rule</source>
+        <translation>Regel löschen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="136"/>
+        <source>Disable Subscription</source>
+        <translation>Abonnement deaktivieren</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="138"/>
+        <source>Enable Subscription</source>
+        <translation>Abonnement aktivieren</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="143"/>
+        <source>Update All Subscriptions</source>
+        <translation>Alle Abonnements aktualisieren</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="199"/>
+        <source>&lt;p&gt;Do you really want to remove subscription &lt;b&gt;{0}&lt;/b&gt; and all subscriptions requiring it?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;</source>
+        <translation>&lt;p&gt;Soll das Abonnement &lt;b&gt;{0}&lt;/b&gt; und alle abhängigen Abonnements wirklich gelöscht werden?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="205"/>
+        <source>&lt;p&gt;Do you really want to remove subscription &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Soll das Abonnement &lt;b&gt;{0}&lt;/b&gt; wirklich gelöscht werden?&lt;/p&gt;</translation>
+    </message>
 </context>
 <context>
     <name>AdBlockIcon</name>
@@ -199,63 +228,83 @@
 <context>
     <name>AdBlockManager</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockManager.py" line="126"/>
+        <location filename="Helpviewer/AdBlock/AdBlockManager.py" line="135"/>
         <source>Custom Rules</source>
         <translation>Spezifische Regel</translation>
     </message>
 </context>
 <context>
-    <name>AdBlockModel</name>
-    <message>
-        <location filename="Helpviewer/AdBlock/AdBlockModel.py" line="87"/>
-        <source>Rule</source>
-        <translation>Regel</translation>
-    </message>
-</context>
-<context>
     <name>AdBlockSubscription</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="216"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="246"/>
         <source>Load subscription rules</source>
         <translation>Abonnementregeln laden</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="208"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="238"/>
         <source>Unable to open adblock file &apos;{0}&apos; for reading.</source>
         <translation>Adblock Datei &apos;{0}&apos; konnte nicht zum Lesen geöffnet werden.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="216"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="246"/>
         <source>Adblock file &apos;{0}&apos; does not start with [Adblock.</source>
         <translation>Adblock Datei &apos;{0}&apos; startet nicht mit [Adblock.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="294"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="323"/>
         <source>Downloading subscription rules</source>
         <translation>Lade Abonnementregeln herunter</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="276"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="305"/>
         <source>&lt;p&gt;Subscription rules could not be downloaded.&lt;/p&gt;&lt;p&gt;Error: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Abonnementregeln konnten nicht heruntergeladen werden.&lt;/p&gt;&lt;p&gt;Fehler: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="286"/>
-        <source>Got empty subscription rules.</source>
-        <translation>Habe leere Abonnementregeln erhalten.</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="315"/>
+        <source>Got empty subscription rules.</source>
+        <translation>Habe leere Abonnementregeln erhalten.</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="343"/>
         <source>Unable to open adblock file &apos;{0}&apos; for writing.</source>
         <translation>Adblock Datei &apos;{0}&apos; konnte nicht zum Schreiben geöffnet werden.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="315"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="343"/>
         <source>Saving subscription rules</source>
         <translation>Speichern der Abonnementregeln</translation>
     </message>
 </context>
 <context>
+    <name>AdBlockTreeWidget</name>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="115"/>
+        <source>Add Custom Rule</source>
+        <translation>Spezifische Regel hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="115"/>
+        <source>Write your rule here:</source>
+        <translation>Schreibe die Regel hier:</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="165"/>
+        <source>Add Rule</source>
+        <translation>Regel hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="167"/>
+        <source>Remove Rule</source>
+        <translation>Regel löschen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="218"/>
+        <source>{0} (recently updated)</source>
+        <translation>{0} (kürzlich aktualisiert)</translation>
+    </message>
+</context>
+<context>
     <name>AddBookmarkDialog</name>
     <message>
         <location filename="Helpviewer/Bookmarks/AddBookmarkDialog.py" line="198"/>
@@ -1826,7 +1875,7 @@
     </message>
     <message>
         <location filename="Helpviewer/Bookmarks/BookmarksMenu.py" line="142"/>
-        <source>Open in New &amp;Tab	Ctrl+LMB</source>
+        <source>Open in New &amp;Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation>In neuem &amp;Register öffnen\tStrg+LMK</translation>
     </message>
 </context>
@@ -2063,7 +2112,7 @@
     </message>
     <message>
         <location filename="Helpviewer/Bookmarks/BookmarksToolBar.py" line="90"/>
-        <source>Open in New &amp;Tab	Ctrl+LMB</source>
+        <source>Open in New &amp;Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation>In neuem &amp;Register öffnen\tStrg+LMK</translation>
     </message>
 </context>
@@ -13382,16 +13431,6 @@
         <translation>&lt;h2&gt;GreaseMonkey Skripte&lt;/h2&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui" line="73"/>
-        <source>Double clicking script will show additional information</source>
-        <translation type="obsolete">Ein Doppelklick auf ein Skript zeigt Zusatzinformationen an</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="obsolete">&lt;p&gt;Weitere Skripte von &lt;a href=&quot;www.userscript.org&quot;&gt;userscript.org&lt;/a&gt; herunterladen.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui" line="123"/>
         <source>Press to open the scripts directory</source>
         <translation>Drücken, um das Skripteverzeichnis zu öffnen</translation>
@@ -13915,7 +13954,7 @@
     </message>
     <message>
         <location filename="Helpviewer/HelpBrowserWV.py" line="977"/>
-        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation>Link in neuem Fenster öffnen\tStrg+LMK</translation>
     </message>
     <message>
@@ -15191,677 +15230,677 @@
 <context>
     <name>HelpWindow</name>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1776"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1775"/>
         <source>Open File</source>
         <translation>Datei öffnen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="407"/>
+        <location filename="Helpviewer/HelpWindow.py" line="406"/>
         <source>&amp;Open File</source>
         <translation>Datei &amp;öffnen</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="411"/>
+        <source>Open a help file for display</source>
+        <translation>Öffnet eine Hilfedatei zur Anzeige</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="412"/>
-        <source>Open a help file for display</source>
-        <translation>Öffnet eine Hilfedatei zur Anzeige</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="413"/>
         <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;Datei öffnen&lt;/b&gt;&lt;p&gt;Dies öffnet eine neue Hilfedatei zur Anzeige. Es wird zunächst ein Dateiauswahldialog angezeigt.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="496"/>
+        <location filename="Helpviewer/HelpWindow.py" line="495"/>
         <source>&amp;Print</source>
         <translation>&amp;Drucken</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="500"/>
+        <source>Print the displayed help</source>
+        <translation>Druckt die angezeigte Hilfe</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="501"/>
-        <source>Print the displayed help</source>
-        <translation>Druckt die angezeigte Hilfe</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="502"/>
         <source>&lt;b&gt;Print&lt;/b&gt;&lt;p&gt;Print the displayed help text.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Drucken&lt;/b&gt;&lt;p&gt;Druckt den angezeigten Hilfetext.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="537"/>
+        <location filename="Helpviewer/HelpWindow.py" line="536"/>
         <source>&amp;Close</source>
         <translation>Schl&amp;ießen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="542"/>
+        <location filename="Helpviewer/HelpWindow.py" line="541"/>
         <source>Close the current help window</source>
         <translation>Schließt das aktuelle Fenster</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="595"/>
+        <location filename="Helpviewer/HelpWindow.py" line="594"/>
         <source>&amp;Backward</source>
         <translation>&amp;Zurück</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="602"/>
-        <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;Zurück&lt;/b&gt;&lt;p&gt;Bewegt die Hilfeanzeige rückwärts. Falls keine Anzeige möglich ist, ist diese Aktion inaktiv.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="611"/>
-        <source>&amp;Forward</source>
-        <translation>&amp;Vorwärts</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="617"/>
-        <source>Move one help screen forward</source>
-        <translation>Eine Hilfeseite vorwärts</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="618"/>
-        <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;Vorwärts&lt;/b&gt;&lt;p&gt;Bewegt die Hilfeanzeige vorwärts. Falls keine Anzeige möglich ist, ist diese Aktion inaktiv.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="627"/>
-        <source>&amp;Home</source>
-        <translation>&amp;Anfang</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="632"/>
-        <source>Move to the initial help screen</source>
-        <translation>Zur ersten Hilfeseite</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="633"/>
-        <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;Anfang&lt;/b&gt;&lt;p&gt;Zeigt die erste Hilfeseite an.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="789"/>
-        <source>Context sensitive help</source>
-        <translation>Kontextsensitive Hilfe</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="790"/>
-        <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;Zeige kontextsensitive Hilfe an&lt;b&gt;&lt;/p&gt;Im &quot;Was ist das?&quot; Mode (der Mauszeiger stellt einen Pfeil mit Fragezeichen dar) wird auf einen Mausklick eine kurze Hilfebeschreibung zu dem ausgewählten MMI-Element angezeigt. In Dialogen kann diese Funktionalität durch den entsprechenden Knopf im Fensterkopf erreicht werden.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="802"/>
-        <source>&amp;About</source>
-        <translation>&amp;Über</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="805"/>
-        <source>Display information about this software</source>
-        <translation>Zeigt Informationen zu diesem Programm an</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="814"/>
-        <source>About &amp;Qt</source>
-        <translation>Über &amp;Qt</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="817"/>
-        <source>Display information about the Qt toolkit</source>
-        <translation>Zeige Informationen über das Qt Toolkit an</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1328"/>
-        <source>&amp;File</source>
-        <translation>&amp;Datei</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1373"/>
-        <source>&amp;Go</source>
-        <translation>&amp;Gehe zu</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1393"/>
-        <source>&amp;Bookmarks</source>
-        <translation>&amp;Lesezeichen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1456"/>
-        <source>&amp;Help</source>
-        <translation>&amp;Hilfe</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="601"/>
+        <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;Zurück&lt;/b&gt;&lt;p&gt;Bewegt die Hilfeanzeige rückwärts. Falls keine Anzeige möglich ist, ist diese Aktion inaktiv.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="610"/>
+        <source>&amp;Forward</source>
+        <translation>&amp;Vorwärts</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="616"/>
+        <source>Move one help screen forward</source>
+        <translation>Eine Hilfeseite vorwärts</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="617"/>
+        <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;Vorwärts&lt;/b&gt;&lt;p&gt;Bewegt die Hilfeanzeige vorwärts. Falls keine Anzeige möglich ist, ist diese Aktion inaktiv.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="626"/>
+        <source>&amp;Home</source>
+        <translation>&amp;Anfang</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="631"/>
+        <source>Move to the initial help screen</source>
+        <translation>Zur ersten Hilfeseite</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="632"/>
+        <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;Anfang&lt;/b&gt;&lt;p&gt;Zeigt die erste Hilfeseite an.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="788"/>
+        <source>Context sensitive help</source>
+        <translation>Kontextsensitive Hilfe</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="789"/>
+        <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;Zeige kontextsensitive Hilfe an&lt;b&gt;&lt;/p&gt;Im &quot;Was ist das?&quot; Mode (der Mauszeiger stellt einen Pfeil mit Fragezeichen dar) wird auf einen Mausklick eine kurze Hilfebeschreibung zu dem ausgewählten MMI-Element angezeigt. In Dialogen kann diese Funktionalität durch den entsprechenden Knopf im Fensterkopf erreicht werden.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="801"/>
+        <source>&amp;About</source>
+        <translation>&amp;Über</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="804"/>
+        <source>Display information about this software</source>
+        <translation>Zeigt Informationen zu diesem Programm an</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="813"/>
+        <source>About &amp;Qt</source>
+        <translation>Über &amp;Qt</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="816"/>
+        <source>Display information about the Qt toolkit</source>
+        <translation>Zeige Informationen über das Qt Toolkit an</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1327"/>
+        <source>&amp;File</source>
+        <translation>&amp;Datei</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1372"/>
+        <source>&amp;Go</source>
+        <translation>&amp;Gehe zu</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1392"/>
+        <source>&amp;Bookmarks</source>
+        <translation>&amp;Lesezeichen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1455"/>
+        <source>&amp;Help</source>
+        <translation>&amp;Hilfe</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="600"/>
         <source>Move one help screen backward</source>
         <translation>Eine Hilfeseite zurück</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="806"/>
+        <location filename="Helpviewer/HelpWindow.py" line="805"/>
         <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;Über&lt;/b&gt;&lt;p&gt;Zeigt einige Informationen über dieses Programm an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="819"/>
+        <location filename="Helpviewer/HelpWindow.py" line="818"/>
         <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;Über Qt&lt;/b&gt;&lt;p&gt;Zeige informationen über das Qt Toolkit an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="833"/>
+        <location filename="Helpviewer/HelpWindow.py" line="832"/>
         <source>Zoom in on the text</source>
         <translation>Text vergrößern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="848"/>
+        <location filename="Helpviewer/HelpWindow.py" line="847"/>
         <source>Zoom out on the text</source>
         <translation>Text verkleinern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="671"/>
+        <location filename="Helpviewer/HelpWindow.py" line="670"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="675"/>
+        <source>Copy the selected text</source>
+        <translation>Kopiert den ausgewählten Text</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="676"/>
-        <source>Copy the selected text</source>
-        <translation>Kopiert den ausgewählten Text</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="677"/>
         <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;Kopieren&lt;/b&gt;&lt;p&gt;Kopiert den ausgewählten Text in die Zwischenablage.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1349"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1348"/>
         <source>&amp;Edit</source>
         <translation>&amp;Bearbeiten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1357"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1356"/>
         <source>&amp;View</source>
         <translation>&amp;Ansicht</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="578"/>
+        <location filename="Helpviewer/HelpWindow.py" line="577"/>
         <source>&amp;Quit</source>
         <translation>B&amp;eenden</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="784"/>
+        <location filename="Helpviewer/HelpWindow.py" line="783"/>
         <source>&amp;What&apos;s This?</source>
         <translation>&amp;Was ist das?</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="827"/>
+        <location filename="Helpviewer/HelpWindow.py" line="826"/>
         <source>Zoom &amp;in</source>
         <translation>Ver&amp;größern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="834"/>
+        <location filename="Helpviewer/HelpWindow.py" line="833"/>
         <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;Vergrößern&lt;/b&gt;&lt;p&gt;Den angezeigten Text vergrößern.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="842"/>
+        <location filename="Helpviewer/HelpWindow.py" line="841"/>
         <source>Zoom &amp;out</source>
         <translation>Ver&amp;kleinern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="849"/>
+        <location filename="Helpviewer/HelpWindow.py" line="848"/>
         <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;Verkleinern&lt;/b&gt;&lt;p&gt;Den angezeigten Text verkleinern.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1386"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1385"/>
         <source>H&amp;istory</source>
         <translation>&amp;Chronik</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="641"/>
+        <location filename="Helpviewer/HelpWindow.py" line="640"/>
         <source>&amp;Reload</source>
         <translation>E&amp;rneut laden</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="646"/>
+        <source>Reload the current help screen</source>
+        <translation>Die aktuelle Hilfeseite ernaut laden</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="647"/>
-        <source>Reload the current help screen</source>
-        <translation>Die aktuelle Hilfeseite ernaut laden</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="648"/>
         <source>&lt;b&gt;Reload&lt;/b&gt;&lt;p&gt;Reloads the current help screen.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Erneut laden&lt;/b&gt;&lt;p&gt;Lädt die aktuelle Hilfeseite erneut.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>Ctrl+N</source>
         <comment>File|New Window</comment>
         <translation>Ctrl+N</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="407"/>
+        <location filename="Helpviewer/HelpWindow.py" line="406"/>
         <source>Ctrl+O</source>
         <comment>File|Open</comment>
         <translation>Ctrl+O</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="496"/>
+        <location filename="Helpviewer/HelpWindow.py" line="495"/>
         <source>Ctrl+P</source>
         <comment>File|Print</comment>
         <translation>Ctrl+P</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="537"/>
+        <location filename="Helpviewer/HelpWindow.py" line="536"/>
         <source>Ctrl+W</source>
         <comment>File|Close</comment>
         <translation>Ctrl+W</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="578"/>
+        <location filename="Helpviewer/HelpWindow.py" line="577"/>
         <source>Ctrl+Q</source>
         <comment>File|Quit</comment>
         <translation>Ctrl+Q</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="685"/>
+        <location filename="Helpviewer/HelpWindow.py" line="684"/>
         <source>&amp;Find...</source>
         <translation>&amp;Suchen...</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="689"/>
+        <source>Find text in page</source>
+        <translation>Text in Seite suchen</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="690"/>
-        <source>Find text in page</source>
-        <translation>Text in Seite suchen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="691"/>
         <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;Suchen&lt;/b&gt;&lt;p&gt;Text in der angezeigten Seite suchen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="699"/>
+        <location filename="Helpviewer/HelpWindow.py" line="698"/>
         <source>Find &amp;next</source>
         <translation>&amp;Weitersuchen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="713"/>
+        <location filename="Helpviewer/HelpWindow.py" line="712"/>
         <source>Find &amp;previous</source>
         <translation>&amp;Rückwärtssuchen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="671"/>
+        <location filename="Helpviewer/HelpWindow.py" line="670"/>
         <source>Ctrl+C</source>
         <comment>Edit|Copy</comment>
         <translation>Ctrl+C</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1467"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1466"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1485"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1484"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1490"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1489"/>
         <source>View</source>
         <translation>Ansicht</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1499"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1498"/>
         <source>Find</source>
         <translation>Suchen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1535"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1534"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1542"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1541"/>
         <source>Go</source>
         <translation>Gehe zu</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1776"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1775"/>
         <source>Help Files (*.html *.htm);;PDF Files (*.pdf);;CHM Files (*.chm);;All Files (*)</source>
         <translation>Hilfedateien (*.html *.htm);;PDF Dateien (*.pdf);;CHM Dateien (*.chm);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="379"/>
+        <location filename="Helpviewer/HelpWindow.py" line="378"/>
         <source>&amp;New Tab</source>
         <translation>&amp;Neues Register</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="379"/>
+        <location filename="Helpviewer/HelpWindow.py" line="378"/>
         <source>Ctrl+T</source>
         <comment>File|New Tab</comment>
         <translation>Ctrl+T</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="385"/>
+        <location filename="Helpviewer/HelpWindow.py" line="384"/>
         <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;Neues Register&lt;/b&gt;&lt;p&gt;Dies öffnet ein neues Hilfe Register.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="399"/>
-        <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;Neues Fenster&lt;/b&gt;&lt;p&gt;Dies öffnet ein neues Hilfeanzeiger Fenster.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="543"/>
-        <source>&lt;b&gt;Close&lt;/b&gt;&lt;p&gt;Closes the current help window.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Schließen&lt;/b&gt;&lt;p&gt;Schließt das aktuelle Hilfefenster.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="551"/>
-        <source>Close &amp;All</source>
-        <translation>Alle &amp;schließen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="555"/>
-        <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;Alle schließen&lt;/b&gt;&lt;p&gt;Schließt alle Hilfefenster mit Ausnahme des ersten.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="537"/>
-        <source>Close</source>
-        <translation>Schließen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="496"/>
-        <source>Print</source>
-        <translation>Drucken</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="384"/>
-        <source>Open a new help window tab</source>
-        <translation>Öffne ein neues Hilferegister</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/HelpWindow.py" line="398"/>
+        <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;Neues Fenster&lt;/b&gt;&lt;p&gt;Dies öffnet ein neues Hilfeanzeiger Fenster.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="542"/>
+        <source>&lt;b&gt;Close&lt;/b&gt;&lt;p&gt;Closes the current help window.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Schließen&lt;/b&gt;&lt;p&gt;Schließt das aktuelle Hilfefenster.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="550"/>
+        <source>Close &amp;All</source>
+        <translation>Alle &amp;schließen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="554"/>
+        <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;Alle schließen&lt;/b&gt;&lt;p&gt;Schließt alle Hilfefenster mit Ausnahme des ersten.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="536"/>
+        <source>Close</source>
+        <translation>Schließen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="495"/>
+        <source>Print</source>
+        <translation>Drucken</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="383"/>
+        <source>Open a new help window tab</source>
+        <translation>Öffne ein neues Hilferegister</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="397"/>
         <source>Open a new help browser window</source>
         <translation>Öffne ein neues Hilfeanzeiger Fenster</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <source>Open File in New &amp;Tab</source>
         <translation>Datei in neuem &amp;Register öffnen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <source>Shift+Ctrl+O</source>
         <comment>File|Open in new tab</comment>
         <translation>Shift+Ctrl+O</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="427"/>
+        <location filename="Helpviewer/HelpWindow.py" line="426"/>
         <source>Open a help file for display in a new tab</source>
         <translation>Öffnet eine Hilfedatei zur Anzeige in einem neuen Register</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="429"/>
+        <location filename="Helpviewer/HelpWindow.py" line="428"/>
         <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;Datei in neuem Register öffnen&lt;/b&gt;&lt;p&gt;Dies öffnet eine Hilfedatei zur Anzeige in einem neuen Register. Es wird zunächst ein Dateiauswahldialog angezeigt.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="379"/>
+        <location filename="Helpviewer/HelpWindow.py" line="378"/>
         <source>New Tab</source>
         <translation>Neues Register</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>New Window</source>
         <translation>Neues Fenster</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <source>Open File in New Tab</source>
         <translation>Datei in neuem Register öffnen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="551"/>
+        <location filename="Helpviewer/HelpWindow.py" line="550"/>
         <source>Close All</source>
         <translation>Alle schließen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="578"/>
+        <location filename="Helpviewer/HelpWindow.py" line="577"/>
         <source>Quit</source>
         <translation>Beenden</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="595"/>
+        <location filename="Helpviewer/HelpWindow.py" line="594"/>
         <source>Backward</source>
         <translation>Zurück</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="595"/>
+        <location filename="Helpviewer/HelpWindow.py" line="594"/>
         <source>Alt+Left</source>
         <comment>Go|Backward</comment>
         <translation>Alt+Left</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="595"/>
+        <location filename="Helpviewer/HelpWindow.py" line="594"/>
         <source>Backspace</source>
         <comment>Go|Backward</comment>
         <translation>Backspace</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="611"/>
+        <location filename="Helpviewer/HelpWindow.py" line="610"/>
         <source>Forward</source>
         <translation>Vorwärts</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="611"/>
+        <location filename="Helpviewer/HelpWindow.py" line="610"/>
         <source>Alt+Right</source>
         <comment>Go|Forward</comment>
         <translation>Alt+Right</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="611"/>
+        <location filename="Helpviewer/HelpWindow.py" line="610"/>
         <source>Shift+Backspace</source>
         <comment>Go|Forward</comment>
         <translation>Shift+Backspace</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="627"/>
+        <location filename="Helpviewer/HelpWindow.py" line="626"/>
         <source>Home</source>
         <translation>Home</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="627"/>
+        <location filename="Helpviewer/HelpWindow.py" line="626"/>
         <source>Ctrl+Home</source>
         <comment>Go|Home</comment>
         <translation>Ctrl+Home</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="641"/>
+        <location filename="Helpviewer/HelpWindow.py" line="640"/>
         <source>Reload</source>
         <translation>Erneut laden</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="641"/>
+        <location filename="Helpviewer/HelpWindow.py" line="640"/>
         <source>Ctrl+R</source>
         <comment>Go|Reload</comment>
         <translation>Ctrl+R</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="671"/>
+        <location filename="Helpviewer/HelpWindow.py" line="670"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="685"/>
+        <location filename="Helpviewer/HelpWindow.py" line="684"/>
         <source>Find...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="685"/>
+        <location filename="Helpviewer/HelpWindow.py" line="684"/>
         <source>Ctrl+F</source>
         <comment>Edit|Find</comment>
         <translation>Ctrl+F</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="699"/>
+        <location filename="Helpviewer/HelpWindow.py" line="698"/>
         <source>Find next</source>
         <translation>Weitersuchen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="699"/>
+        <location filename="Helpviewer/HelpWindow.py" line="698"/>
         <source>F3</source>
         <comment>Edit|Find next</comment>
         <translation>F3</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="713"/>
+        <location filename="Helpviewer/HelpWindow.py" line="712"/>
         <source>Find previous</source>
         <translation>Rückwärtssuchen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="713"/>
+        <location filename="Helpviewer/HelpWindow.py" line="712"/>
         <source>Shift+F3</source>
         <comment>Edit|Find previous</comment>
         <translation>Shift+F3</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="742"/>
+        <location filename="Helpviewer/HelpWindow.py" line="741"/>
         <source>Add Bookmark</source>
         <translation>Lesezeichen hinzufügen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="784"/>
+        <location filename="Helpviewer/HelpWindow.py" line="783"/>
         <source>What&apos;s This?</source>
         <translation>Was ist das?</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="784"/>
+        <location filename="Helpviewer/HelpWindow.py" line="783"/>
         <source>Shift+F1</source>
         <comment>Help|What&apos;s This?&apos;</comment>
         <translation>Shift+F1</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="802"/>
+        <location filename="Helpviewer/HelpWindow.py" line="801"/>
         <source>About</source>
         <translation>Über</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="814"/>
+        <location filename="Helpviewer/HelpWindow.py" line="813"/>
         <source>About Qt</source>
         <translation>Über Qt</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="827"/>
+        <location filename="Helpviewer/HelpWindow.py" line="826"/>
         <source>Zoom in</source>
         <translation>Vergrößern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="827"/>
+        <location filename="Helpviewer/HelpWindow.py" line="826"/>
         <source>Ctrl++</source>
         <comment>View|Zoom in</comment>
         <translation>Ctrl++</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="842"/>
+        <location filename="Helpviewer/HelpWindow.py" line="841"/>
         <source>Zoom out</source>
         <translation>Verkleinern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="842"/>
+        <location filename="Helpviewer/HelpWindow.py" line="841"/>
         <source>Ctrl+-</source>
         <comment>View|Zoom out</comment>
         <translation>Ctrl+-</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="704"/>
+        <location filename="Helpviewer/HelpWindow.py" line="703"/>
         <source>Find next occurrence of text in page</source>
         <translation>Das nächste Vorkommen des Textes in der Seite suchen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="705"/>
+        <location filename="Helpviewer/HelpWindow.py" line="704"/>
         <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;Weitersuchen&lt;/b&gt;&lt;p&gt;Suche das nächste Vorkommen des Textes in der aktuellen Seite.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="718"/>
+        <location filename="Helpviewer/HelpWindow.py" line="717"/>
         <source>Find previous occurrence of text in page</source>
         <translation>Das vorherige Vorkommen des Textes in der Seite suchen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="720"/>
+        <location filename="Helpviewer/HelpWindow.py" line="719"/>
         <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;Rückwärtssuchen&lt;/b&gt;&lt;p&gt;Suche das vorherige Vorkommen des Textes in der aktuellen Seite.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="523"/>
+        <location filename="Helpviewer/HelpWindow.py" line="522"/>
         <source>Print Preview</source>
         <translation>Seitenansicht</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="527"/>
+        <location filename="Helpviewer/HelpWindow.py" line="526"/>
         <source>Print preview of the displayed help</source>
         <translation>Seitenansicht der angezeigten Hilfe</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="529"/>
+        <location filename="Helpviewer/HelpWindow.py" line="528"/>
         <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;Seitenansicht&lt;/b&gt;&lt;p&gt;Zeigt eine Seitenansicht des angezeigten Hilfetextes.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="913"/>
+        <location filename="Helpviewer/HelpWindow.py" line="912"/>
         <source>Show next tab</source>
         <translation>Zeige nächste Seite</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="913"/>
+        <location filename="Helpviewer/HelpWindow.py" line="912"/>
         <source>Ctrl+Alt+Tab</source>
         <translation>Ctrl+Alt+Tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="922"/>
+        <location filename="Helpviewer/HelpWindow.py" line="921"/>
         <source>Show previous tab</source>
         <translation>Zeige vorherige Seite</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="922"/>
+        <location filename="Helpviewer/HelpWindow.py" line="921"/>
         <source>Shift+Ctrl+Alt+Tab</source>
         <translation>Shift+Ctrl+Alt+Tab</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="931"/>
+        <location filename="Helpviewer/HelpWindow.py" line="930"/>
         <source>Switch between tabs</source>
         <translation>Zwischen Tabs umschalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="931"/>
+        <location filename="Helpviewer/HelpWindow.py" line="930"/>
         <source>Ctrl+1</source>
         <translation>Ctrl+1</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1134"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1133"/>
         <source>Clear icons database</source>
         <translation>Iconsdatenbank löschen</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1137"/>
+        <source>Clear the database of favicons</source>
+        <translation>Löscht die Datenbank mit den Favicons</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1138"/>
-        <source>Clear the database of favicons</source>
-        <translation>Löscht die Datenbank mit den Favicons</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1139"/>
         <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;Iconsdatenbank löschen&lt;/b&gt;&lt;p&gt;Löscht die Datenbank mit den Favicons besuchter URLs.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="940"/>
+        <location filename="Helpviewer/HelpWindow.py" line="939"/>
         <source>Preferences</source>
         <translation>Einstellungen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="940"/>
+        <location filename="Helpviewer/HelpWindow.py" line="939"/>
         <source>&amp;Preferences...</source>
         <translation>&amp;Einstellungen...</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="942"/>
+        <source>Set the prefered configuration</source>
+        <translation>Konfiguriert die Einstellungen</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="943"/>
-        <source>Set the prefered configuration</source>
-        <translation>Konfiguriert die Einstellungen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="944"/>
         <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;Einstellungen&lt;/b&gt;&lt;p&gt;Konfiguriert die einstellbaren Parameter der Applikation nach ihren Wünschen.&lt;/p&gt;</translation>
     </message>
@@ -15871,985 +15910,985 @@
         <translation>Inhalt</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="554"/>
+        <location filename="Helpviewer/HelpWindow.py" line="553"/>
         <source>Close all help windows</source>
         <translation>Schließt alle Hilfefenster</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1026"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1025"/>
         <source>Sync with Table of Contents</source>
         <translation>Mit Inhalt synchronisieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1030"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1029"/>
         <source>Synchronizes the table of contents with current page</source>
         <translation>Synchronisiert das Inhaltsverzeichnis mit der aktuellen Seite</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1032"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1031"/>
         <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;Mit Inhalt synchronisieren&lt;/b&gt;&lt;p&gt;Synchronisiert das Inhaltsverzeichnis mit der aktuellen Seite.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1040"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1039"/>
         <source>Table of Contents</source>
         <translation>Inhaltsverzeichnis</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1043"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1042"/>
         <source>Shows the table of contents window</source>
         <translation>Zeigt das Fenster mit dem Inhaltsverzeichnis an</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1045"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1044"/>
         <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;Inhaltsverzeichnis&lt;/b&gt;&lt;p&gt;Zeigt das Fenster mit dem Inhaltsverzeichnis an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1079"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1078"/>
         <source>Manage QtHelp Documents</source>
         <translation>QtHelp Dokumente verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1082"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1081"/>
         <source>Shows a dialog to manage the QtHelp documentation set</source>
         <translation>Zeigt einen Dialog zur Verwaltung der QtHelp Dokumente</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1084"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1083"/>
         <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;QtHelp Dokumente verwalten&lt;/b&gt;&lt;p&gt;Zeigt einen Dialog zur Verwaltung der QtHelp Dokumente.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1446"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1445"/>
         <source>&amp;Window</source>
         <translation>&amp;Fenster</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1506"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1505"/>
         <source>Filter</source>
         <translation>Filter</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1511"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1510"/>
         <source>Filtered by: </source>
         <translation>Filter: </translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2325"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2324"/>
         <source>Could not find an associated content.</source>
         <translation>Konnte keinen zugehörigen Inhalt finden.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1093"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1092"/>
         <source>Manage QtHelp Filters</source>
         <translation>QtHelp Filter verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1096"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1095"/>
         <source>Shows a dialog to manage the QtHelp filters</source>
         <translation>Zeigt einen Dialog zur Verwaltung der QtHelp Filter</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1098"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1097"/>
         <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;QtHelp Filter verwalten&lt;/b&gt;&lt;p&gt;Zeigt einen Dialog zur Verwaltung der QtHelp Filter.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1053"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1052"/>
         <source>Index</source>
         <translation>Index</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1056"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1055"/>
         <source>Shows the index window</source>
         <translation>Zeigt das Indexfenster an</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1058"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1057"/>
         <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;Zeigt das Indexfenster an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1066"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1065"/>
         <source>Search</source>
         <translation>Suchen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1069"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1068"/>
         <source>Shows the search window</source>
         <translation>Zeigt das Suchfenster an</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1071"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1070"/>
         <source>&lt;b&gt;Search&lt;/b&gt;&lt;p&gt;Shows the search window.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Suchen&lt;/b&gt;&lt;p&gt;Zeigt das Suchfenster an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1106"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1105"/>
         <source>Reindex Documentation</source>
         <translation>Dokumentation reindizieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1109"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1108"/>
         <source>Reindexes the documentation set</source>
         <translation>Reindiziert die Dokumentation</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1111"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1110"/>
         <source>&lt;b&gt;Reindex Documentation&lt;/b&gt;&lt;p&gt;Reindexes the documentation set.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Dokumentation reindizieren&lt;/b&gt;&lt;p&gt;Reindiziert die Dokumentation.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2434"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2433"/>
         <source>Updating search index</source>
         <translation>Aktualisiere Suchindex</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2486"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2485"/>
         <source>Looking for Documentation...</source>
         <translation>Suche nach Dokumentation...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2516"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2515"/>
         <source>Unfiltered</source>
         <translation>Ungefiltert</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2535"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2534"/>
         <source>Help Engine</source>
         <translation>Hilfe</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="566"/>
+        <source>Private Browsing</source>
+        <translation>Privates Browsen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="562"/>
+        <source>Private &amp;Browsing</source>
+        <translation>Privates &amp;Browsen</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="567"/>
-        <source>Private Browsing</source>
-        <translation>Privates Browsen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="563"/>
-        <source>Private &amp;Browsing</source>
-        <translation>Privates &amp;Browsen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="568"/>
         <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;Privates Browsen&lt;/b&gt;&lt;p&gt;Schaltet das private Browsen ein. In diesem Modus wird keine Chronik mehr aufgezeichnet.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2064"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2063"/>
         <source>Full Screen</source>
         <translation>Vollbild</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="903"/>
+        <location filename="Helpviewer/HelpWindow.py" line="902"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Vollbild</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="903"/>
+        <location filename="Helpviewer/HelpWindow.py" line="902"/>
         <source>F11</source>
         <translation>F11</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1079"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1078"/>
         <source>Manage QtHelp &amp;Documents</source>
         <translation>QtHelp &amp;Dokumente verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1093"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1092"/>
         <source>Manage QtHelp &amp;Filters</source>
         <translation>QtHelp &amp;Filter verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1106"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1105"/>
         <source>&amp;Reindex Documentation</source>
         <translation>Dokumentation &amp;reindizieren</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1123"/>
+        <source>Clear private data</source>
+        <translation>Private Daten löschen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="1119"/>
+        <source>&amp;Clear private data</source>
+        <translation>&amp;Private Daten löschen</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="1124"/>
-        <source>Clear private data</source>
-        <translation>Private Daten löschen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1120"/>
-        <source>&amp;Clear private data</source>
-        <translation>&amp;Private Daten löschen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1125"/>
         <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;Private Daten löschen&lt;/b&gt;&lt;p&gt;Löscht private Daten wie die Web-Chronik, Such-Chronik oder die Icons-Datenbank.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1134"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1133"/>
         <source>Clear &amp;icons database</source>
         <translation>Iconsdatenbank &amp;löschen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1225"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1224"/>
         <source>Show the network monitor dialog</source>
         <translation>Zeigt den Netzwerkmonitordialog an</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1408"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1407"/>
         <source>&amp;Settings</source>
         <translation>&amp;Einstellungen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1437"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1436"/>
         <source>&amp;Tools</source>
         <translation>&amp;Werkzeuge</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="889"/>
+        <location filename="Helpviewer/HelpWindow.py" line="888"/>
         <source>Show page source</source>
         <translation>Seitenquelltext anzeigen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="889"/>
+        <location filename="Helpviewer/HelpWindow.py" line="888"/>
         <source>Ctrl+U</source>
         <translation>Ctrl+U</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="892"/>
+        <source>Show the page source in an editor</source>
+        <translation>Zeige den Seitenquelltext in einem Editor</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="893"/>
-        <source>Show the page source in an editor</source>
-        <translation>Zeige den Seitenquelltext in einem Editor</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="894"/>
         <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;Seitenquelltext anzeigen&lt;/b&gt;&lt;p&gt;Zeige den Seitenquelltext in einem Editor.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="953"/>
+        <location filename="Helpviewer/HelpWindow.py" line="952"/>
         <source>&amp;Languages...</source>
         <translation>&amp;Sprachen...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="956"/>
+        <location filename="Helpviewer/HelpWindow.py" line="955"/>
         <source>Configure the accepted languages for web pages</source>
         <translation>Konfigurieren der bevorzugten Sprachen für Websites</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="958"/>
+        <location filename="Helpviewer/HelpWindow.py" line="957"/>
         <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;Sprachen&lt;/b&gt;&lt;p&gt;Konfigurieren der bevorzugten Sprachen für Websites.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="953"/>
+        <location filename="Helpviewer/HelpWindow.py" line="952"/>
         <source>Languages</source>
         <translation>Sprachen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="966"/>
+        <location filename="Helpviewer/HelpWindow.py" line="965"/>
         <source>Cookies</source>
         <translation>Cookies</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="966"/>
+        <location filename="Helpviewer/HelpWindow.py" line="965"/>
         <source>C&amp;ookies...</source>
         <translation>C&amp;ookies...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="969"/>
+        <location filename="Helpviewer/HelpWindow.py" line="968"/>
         <source>Configure cookies handling</source>
         <translation>Cookieverwaltung konfigurieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="971"/>
+        <location filename="Helpviewer/HelpWindow.py" line="970"/>
         <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;Cookieverwaltung konfigurieren&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1517"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1516"/>
         <source>Settings</source>
         <translation>Einstellungen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="857"/>
+        <location filename="Helpviewer/HelpWindow.py" line="856"/>
         <source>Zoom reset</source>
         <translation>Vergrößerung zurücksetzen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="857"/>
+        <location filename="Helpviewer/HelpWindow.py" line="856"/>
         <source>Zoom &amp;reset</source>
         <translation>Vergrößerung &amp;zurücksetzen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="857"/>
+        <location filename="Helpviewer/HelpWindow.py" line="856"/>
         <source>Ctrl+0</source>
         <comment>View|Zoom reset</comment>
         <translation>Ctrl+0</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="861"/>
+        <source>Reset the zoom of the text</source>
+        <translation>Die Textgröße zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="872"/>
+        <source>Zoom text only</source>
+        <translation>Nur Text vergrößern</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="872"/>
+        <source>Zoom &amp;text only</source>
+        <translation>Nur &amp;Text vergrößern</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="876"/>
+        <source>Zoom text only; pictures remain constant</source>
+        <translation>Nur Text vergrößern; Bilder behalten ihre Größe</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/HelpWindow.py" line="878"/>
+        <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;Nur Text vergrößern&lt;/b&gt;&lt;p&gt;Nur Text vergrößern; Bilder behalten ihre Größe.&lt;/p&gt;</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="862"/>
-        <source>Reset the zoom of the text</source>
-        <translation>Die Textgröße zurücksetzen</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="873"/>
-        <source>Zoom text only</source>
-        <translation>Nur Text vergrößern</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="873"/>
-        <source>Zoom &amp;text only</source>
-        <translation>Nur &amp;Text vergrößern</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="877"/>
-        <source>Zoom text only; pictures remain constant</source>
-        <translation>Nur Text vergrößern; Bilder behalten ihre Größe</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="879"/>
-        <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;Nur Text vergrößern&lt;/b&gt;&lt;p&gt;Nur Text vergrößern; Bilder behalten ihre Größe.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="863"/>
         <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;Vergrößerung zurücksetzen&lt;/b&gt;&lt;p&gt;Setzt die Vergrößerung auf den Wert 100% zurück.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>New &amp;Window</source>
         <translation>Neues &amp;Fenster</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="468"/>
+        <location filename="Helpviewer/HelpWindow.py" line="467"/>
         <source>Import Bookmarks</source>
         <translation>Lesezeichen importieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="468"/>
+        <location filename="Helpviewer/HelpWindow.py" line="467"/>
         <source>&amp;Import Bookmarks...</source>
         <translation>Lesezeichen &amp;importieren...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="471"/>
+        <location filename="Helpviewer/HelpWindow.py" line="470"/>
         <source>Import bookmarks from other browsers</source>
         <translation>Importiere Lesezeichen von anderen Browsern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="473"/>
+        <location filename="Helpviewer/HelpWindow.py" line="472"/>
         <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;Lesezeichen importieren&lt;/b&gt;&lt;p&gt;Importiere Lesezeichen von anderen Browsern.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="482"/>
+        <location filename="Helpviewer/HelpWindow.py" line="481"/>
         <source>Export Bookmarks</source>
         <translation>Lesezeichen exportieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="482"/>
+        <location filename="Helpviewer/HelpWindow.py" line="481"/>
         <source>&amp;Export Bookmarks...</source>
         <translation>Lesezeichen &amp;exportieren...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="485"/>
+        <location filename="Helpviewer/HelpWindow.py" line="484"/>
         <source>Export the bookmarks into a file</source>
         <translation>Exportiert die Lesezeichen in eine Datei</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="487"/>
+        <location filename="Helpviewer/HelpWindow.py" line="486"/>
         <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;Lesezeichen exportieren&lt;/b&gt;&lt;p&gt;Exportiert die Lesezeichen in eine Datei.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="728"/>
+        <location filename="Helpviewer/HelpWindow.py" line="727"/>
         <source>Manage Bookmarks</source>
         <translation>Lesezeichen verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="728"/>
+        <location filename="Helpviewer/HelpWindow.py" line="727"/>
         <source>&amp;Manage Bookmarks...</source>
         <translation>Lesezeichen &amp;verwalten...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="728"/>
+        <location filename="Helpviewer/HelpWindow.py" line="727"/>
         <source>Ctrl+Shift+B</source>
         <comment>Help|Manage bookmarks</comment>
         <translation>Ctrl+Shift+B</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="732"/>
+        <location filename="Helpviewer/HelpWindow.py" line="731"/>
         <source>Open a dialog to manage the bookmarks.</source>
         <translation>Öffnet einen Dialog zur Verwaltung der Lesezeichen.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="734"/>
+        <location filename="Helpviewer/HelpWindow.py" line="733"/>
         <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;Lesezeichen verwalten...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zur Verwaltung der Lesezeichen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="742"/>
+        <location filename="Helpviewer/HelpWindow.py" line="741"/>
         <source>Add &amp;Bookmark...</source>
         <translation>Lesezeichen &amp;hinzufügen...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="742"/>
+        <location filename="Helpviewer/HelpWindow.py" line="741"/>
         <source>Ctrl+D</source>
         <comment>Help|Add bookmark</comment>
         <translation>Ctrl+D</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="747"/>
+        <source>Open a dialog to add a bookmark.</source>
+        <translation>Öffnet einen Dialog zum Hinzufügen von Lesezeichen.</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="748"/>
-        <source>Open a dialog to add a bookmark.</source>
-        <translation>Öffnet einen Dialog zum Hinzufügen von Lesezeichen.</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="749"/>
         <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;Lesezeichen hinzufügen...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zum Hinzufügen von Lesezeichen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="757"/>
+        <location filename="Helpviewer/HelpWindow.py" line="756"/>
         <source>Add Folder</source>
         <translation>Ordner hinzufügen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="757"/>
+        <location filename="Helpviewer/HelpWindow.py" line="756"/>
         <source>Add &amp;Folder...</source>
         <translation>&amp;Ordner hinzufügen...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="760"/>
+        <location filename="Helpviewer/HelpWindow.py" line="759"/>
         <source>Open a dialog to add a new bookmarks folder.</source>
         <translation>Öffnet einen Dialog zum Hinzufügen eines Lesezeichenordners.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="762"/>
+        <location filename="Helpviewer/HelpWindow.py" line="761"/>
         <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;Ordner hinzufügen...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zum Hinzufügen eines Lesezeichenordners.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="770"/>
+        <location filename="Helpviewer/HelpWindow.py" line="769"/>
         <source>Bookmark All Tabs</source>
         <translation>Lesezeichen für alle Tabs</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="770"/>
+        <location filename="Helpviewer/HelpWindow.py" line="769"/>
         <source>Bookmark All Tabs...</source>
         <translation>Lesezeichen für alle Tabs...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="773"/>
+        <location filename="Helpviewer/HelpWindow.py" line="772"/>
         <source>Bookmark all open tabs.</source>
         <translation>Fügt Lesezeichen für alle offenen Tabs hinzu.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="775"/>
+        <location filename="Helpviewer/HelpWindow.py" line="774"/>
         <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;Lesezeichen für alle Tabs...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog, um einen neuen Lesezeichenordner für alle offenen Tabs hinzuzufügen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1896"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1895"/>
         <source>Saved Tabs</source>
         <translation>Gesicherte Tabs</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="641"/>
+        <location filename="Helpviewer/HelpWindow.py" line="640"/>
         <source>F5</source>
         <comment>Go|Reload</comment>
         <translation>F5</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="656"/>
+        <location filename="Helpviewer/HelpWindow.py" line="655"/>
         <source>Stop</source>
         <translation>Anhalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="656"/>
+        <location filename="Helpviewer/HelpWindow.py" line="655"/>
         <source>&amp;Stop</source>
         <translation>An&amp;halten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="656"/>
+        <location filename="Helpviewer/HelpWindow.py" line="655"/>
         <source>Ctrl+.</source>
         <comment>Go|Stop</comment>
         <translation>Ctrl+.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="656"/>
+        <location filename="Helpviewer/HelpWindow.py" line="655"/>
         <source>Esc</source>
         <comment>Go|Stop</comment>
         <translation>Esc</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="661"/>
+        <source>Stop loading</source>
+        <translation>Laden anhalten</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="662"/>
-        <source>Stop loading</source>
-        <translation>Laden anhalten</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="663"/>
         <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;Anhalten&lt;/b&gt;&lt;p&gt;Hält das Laden der aktuellen Seite an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="438"/>
+        <location filename="Helpviewer/HelpWindow.py" line="437"/>
         <source>&amp;Save As...</source>
         <translation>&amp;Speichern unter...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="438"/>
+        <location filename="Helpviewer/HelpWindow.py" line="437"/>
         <source>Shift+Ctrl+S</source>
         <comment>File|Save As</comment>
         <translation>Shift+Ctrl+S</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="443"/>
+        <location filename="Helpviewer/HelpWindow.py" line="442"/>
         <source>Save the current page to disk</source>
         <translation>Speichert die aktuelle Seite</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="445"/>
+        <location filename="Helpviewer/HelpWindow.py" line="444"/>
         <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;Speichern unter&lt;/b&gt;&lt;p&gt;Dies speichert die aktuelle Seite in eine Datei.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1147"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1146"/>
         <source>Configure Search Engines</source>
         <translation>Suchmaschinen verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1151"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1150"/>
         <source>Configure the available search engines</source>
         <translation>Verwalte die verfügbaren Suchmaschinen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1153"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1152"/>
         <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;Suchmaschinen verwalten...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zur Verwaltung der verfügbaren Suchmaschinen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1162"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1161"/>
         <source>Manage Saved Passwords</source>
         <translation>Gespeicherte Passwörter verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1162"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1161"/>
         <source>Manage Saved Passwords...</source>
         <translation>Gespeicherte Passwörter verwalten...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1166"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1165"/>
         <source>Manage the saved passwords</source>
         <translation>Verwalten gespeicherter Passwörter</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1168"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1167"/>
         <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;Gespeicherte Passwörter verwalten...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zur Verwaltung gespeicherter Passwörter.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1176"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1175"/>
         <source>Ad Block</source>
         <translation>Ad Block</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1176"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1175"/>
         <source>&amp;Ad Block...</source>
         <translation>&amp;Ad Block...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1181"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1180"/>
         <source>Configure AdBlock subscriptions and rules</source>
         <translation>Konfiguriert AdBlock Abonnements und Regeln</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1183"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1182"/>
         <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;Öffnet einen Dialog zum konfigurieren von AdBlock Abonnements und Regeln&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2495"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2494"/>
         <source>eric5 Web Browser</source>
         <translation>eric5 Web-Browser</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="510"/>
+        <location filename="Helpviewer/HelpWindow.py" line="509"/>
         <source>Print as PDF</source>
         <translation>Als PDF drucken</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="513"/>
+        <source>Print the displayed help as PDF</source>
+        <translation>Druckt die angezeigte Hilfe als PDF</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="514"/>
-        <source>Print the displayed help as PDF</source>
-        <translation>Druckt die angezeigte Hilfe als PDF</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="515"/>
         <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>&lt;b&gt;Als PDF drucken&lt;/b&gt;&lt;p&gt;Druckt den angezeigten Hilfetext als PDF-Datei.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="979"/>
+        <location filename="Helpviewer/HelpWindow.py" line="978"/>
         <source>Offline Storage</source>
         <translation>Offline Speicher</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="979"/>
+        <location filename="Helpviewer/HelpWindow.py" line="978"/>
         <source>Offline &amp;Storage...</source>
         <translation>Offline &amp;Speicher...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="982"/>
+        <location filename="Helpviewer/HelpWindow.py" line="981"/>
         <source>Configure offline storage</source>
         <translation>Konfiguren des Offline Speicher</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="984"/>
+        <location filename="Helpviewer/HelpWindow.py" line="983"/>
         <source>&lt;b&gt;Offline Storage&lt;/b&gt;&lt;p&gt;Opens a dialog to configure offline storage.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Offline Speicher&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zum Konfigurieren des Offline Speichers.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1147"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1146"/>
         <source>Configure Search &amp;Engines...</source>
         <translation>Such&amp;maschinen verwalten...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2093"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2092"/>
         <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>&lt;b&gt;Sind sie sicher, dass sie privates Browsen einschalten möchten?&lt;/b&gt;&lt;p&gt;Wenn das private Browsen eingeschaltet ist, werden keine Web Seiten mehr zur Chronik hinzugefügt und Suchanfragen, Web Site Icons und Cookies werden nicht mehr gespeichert. HTML5 Offline Speicher wird deaktiviert. Bis das Fenster geschlossen wird, können sie jedoch weiterhin die Zurück und Vorwärts Knöpfe nutzen, um zu besuchten Web Seiten zurückzukehren.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1368"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1367"/>
         <source>Text Encoding</source>
         <translation>Zeichenkodierung</translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="2936"/>
+        <source>ISO</source>
+        <translation>ISO</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="2937"/>
-        <source>ISO</source>
-        <translation>ISO</translation>
+        <source>Windows</source>
+        <translation>Windows</translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="2938"/>
-        <source>Windows</source>
-        <translation>Windows</translation>
+        <source>ISCII</source>
+        <translation>ISCII</translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="2939"/>
-        <source>ISCII</source>
-        <translation>ISCII</translation>
+        <source>Unicode</source>
+        <translation>Unicode</translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="2940"/>
-        <source>Unicode</source>
-        <translation>Unicode</translation>
+        <source>Other</source>
+        <translation>Sonstige</translation>
     </message>
     <message>
         <location filename="Helpviewer/HelpWindow.py" line="2941"/>
-        <source>Other</source>
-        <translation>Sonstige</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2942"/>
         <source>IBM</source>
         <translation>IBM</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2964"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2963"/>
         <source>Default Encoding</source>
         <translation>Standardkodierung</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1234"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1233"/>
         <source>Downloads</source>
         <translation>Downloads</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1237"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1236"/>
         <source>Shows the downloads window</source>
         <translation>Zeig das Downloadsfenster an</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1239"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1238"/>
         <source>&lt;b&gt;Downloads&lt;/b&gt;&lt;p&gt;Shows the downloads window.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Downloads&lt;/b&gt;&lt;p&gt;Zeig das Downloadsfenster an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1207"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1206"/>
         <source>Manage Certificates</source>
         <translation>Zertifikate verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1207"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1206"/>
         <source>Manage Certificates...</source>
         <translation>Zertifikate verwalten...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1211"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1210"/>
         <source>Manage the saved certificates</source>
         <translation>Verwalten der gespeicherten Zertifikate</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1213"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1212"/>
         <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>&lt;b&gt;Gespeicherte Zertifikate verwalten...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zur Verwaltung gespeicherter Zertifikate.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1592"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1591"/>
         <source>VirusTotal</source>
         <translation>VirusTotal</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1598"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1597"/>
         <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>&lt;h2&gt;Dateisuche&lt;/h2&gt;&lt;p&gt;Um nach dem aktuellsten VirusTotal Bericht einer Datei zu suchen, geben sie den Hashwert ein. Momentan sind die Hashmethoden MD5, SHA1 und SHA256 zugelassen. Sie können auch nach einem Dateibericht suchen, indem sie die Permalink-ID eingeben.&lt;/p&gt;&lt;h2&gt;URL Suche&lt;/h2&gt;&lt;p&gt;URL Suchen sind einfach. Geben sie lediglich die URL ein. Die Anwendung normalisiert sie und vergleicht sie mit den Einträgen in der VirusTotal Datenbank. Alternativ könne sie den MD5 hashwert der URL mit vorangestelltem &quot;url:&quot; eingeben, z.B. url:7f911bbcf618f052ac6b9928600d2820.&lt;/p&gt;&lt;h2&gt;Nutzersuche:&lt;/h2&gt;&lt;p&gt;Wollen sie wissen, ob ein Freund ein VT Community Konto hat? Geben sie einfach seinen Spitznamen mit vorangestelltem &quot;@&quot;-Symbol ein, z.B. @EmilianoMartinez.&lt;/p&gt;&lt;h2&gt;Kommentare durchsuchen&lt;/h2&gt;&lt;p&gt;Die Kommentar in der VT Community können ihnen oft helfen, ihren PC zu desinfizieren, oder sind hilfreich bei der Untersuchung von Schadsoftware. Kommentartags erlauben es den Nutzern, die VT Community Reviews zu durchsuchen. Die standardisierten Datei Tags sind: {0} Die standardisierten URL Tags sind: {1}Von Nutzern definierte Tags werden mit einem &quot;#&quot;-symbol eingeleitet, z.B. #disinfect.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1642"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1641"/>
         <source>Search VirusTotal</source>
         <translation>Suchen bei VirusTotal</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1648"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1647"/>
         <source>Scan current site</source>
         <translation>Aktuelle Seite prüfen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="3215"/>
+        <location filename="Helpviewer/HelpWindow.py" line="3214"/>
         <source>VirusTotal Scan</source>
         <translation>VirusTotal Prüfung</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="3215"/>
+        <location filename="Helpviewer/HelpWindow.py" line="3214"/>
         <source>&lt;p&gt;The VirusTotal scan could not be scheduled.&lt;p&gt;
 &lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die VirusTotal Prüfung konnte nicht beauftragt werden.&lt;p&gt;
 &lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="583"/>
+        <location filename="Helpviewer/HelpWindow.py" line="582"/>
         <source>Quit the eric5 Web Browser</source>
         <translation>Beendet den eric5 Web-Browser</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="584"/>
+        <location filename="Helpviewer/HelpWindow.py" line="583"/>
         <source>&lt;b&gt;Quit&lt;/b&gt;&lt;p&gt;Quit the eric5 Web Browser.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Beenden&lt;/b&gt;&lt;p&gt;Beendet den eric5 Web-Browser.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1247"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1246"/>
         <source>RSS Feeds Dialog</source>
         <translation>RSS Feeds Dialog</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1247"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1246"/>
         <source>&amp;RSS Feeds Dialog...</source>
         <translation>&amp;RSS Feeds Dialog...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1247"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1246"/>
         <source>Ctrl+Shift+F</source>
         <comment>Help|RSS Feeds Dialog</comment>
         <translation>Ctrl+Shift+F</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1252"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1251"/>
         <source>Open a dialog showing the configured RSS feeds.</source>
         <translation>Öffnet einen Dialog mit den konfigurierten RSS Feeds.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1254"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1253"/>
         <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>&lt;b&gt;RSS Feeds Dialog...&lt;/b&gt;&lt;p&gt;Dies öffnet einen Dialog zur Anzeige der konfigurierten RSS Feeds. Er kann verwendet werden, um sie zu verwalten und ihren Inhalt anzuzeigen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1263"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1262"/>
         <source>Siteinfo Dialog</source>
         <translation>Site Informationen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1263"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1262"/>
         <source>&amp;Siteinfo Dialog...</source>
         <translation>&amp;Site Informationen...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1263"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1262"/>
         <source>Ctrl+Shift+I</source>
         <comment>Help|Siteinfo Dialog</comment>
         <translation>Ctrl+Shift+I</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1268"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1267"/>
         <source>Open a dialog showing some information about the current site.</source>
         <translation>Öffnet einen Dialog zur Anzeige von Informationen über die aktuelle Site.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1270"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1269"/>
         <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>&lt;b&gt;Site Informationen...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zur Anzeige von Informationen über die aktuelle Site.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1527"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1526"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="827"/>
+        <location filename="Helpviewer/HelpWindow.py" line="826"/>
         <source>Zoom In</source>
         <comment>View|Zoom in</comment>
         <translation>Vergrößern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="842"/>
+        <location filename="Helpviewer/HelpWindow.py" line="841"/>
         <source>Zoom Out</source>
         <comment>View|Zoom out</comment>
         <translation>Verkleinern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1221"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1220"/>
         <source>Network Monitor</source>
         <translation>Netzwerkmonitor</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1221"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1220"/>
         <source>&amp;Network Monitor...</source>
         <translation>&amp;Netzwerkmonitor...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1226"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1225"/>
         <source>&lt;b&gt;Network Monitor...&lt;/b&gt;&lt;p&gt;Shows the network monitor dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Netzwerkmonitor...&lt;/b&gt;&lt;p&gt;Zeigt den Netzwerkmonitordialog an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1811"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1810"/>
         <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>&lt;b&gt;eric5 Web Browser - {0}&lt;/b&gt;&lt;p&gt;Der eric5-Web-Browser ist eine kombinierte Anzeige für Hilfe- und HTML-Dateien. Er ist Bestandteil der eric5 Entwicklungsumgebung.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2070"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2069"/>
         <source>Restore Window</source>
         <translation>Fenster wiederherstellen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1279"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1278"/>
         <source>Manage User Agent Settings</source>
         <translation>User Agent Einstellungen verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1279"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1278"/>
         <source>Manage &amp;User Agent Settings</source>
         <translation>User &amp;Agent Einstellungen verwalten</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1282"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1281"/>
         <source>Shows a dialog to manage the User Agent settings</source>
         <translation>Zeigt einen Dialog zum Verwalten der User Agent Einstellungen an</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1284"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1283"/>
         <source>&lt;b&gt;Manage User Agent Settings&lt;/b&gt;&lt;p&gt;Shows a dialog to manage the User Agent settings.&lt;/p&gt;</source>
         <translation>&lt;b&gt;User Agent Einstellungen verwalten&lt;/b&gt;&lt;p&gt;Zeigt einen Dialog zum Verwalten der User Agent Einstellungen an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1426"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1425"/>
         <source>Global User Agent</source>
         <translation>Globaler User Agent</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="438"/>
+        <location filename="Helpviewer/HelpWindow.py" line="437"/>
         <source>Save As</source>
         <translation>Speichern unter</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="453"/>
+        <location filename="Helpviewer/HelpWindow.py" line="452"/>
         <source>Save Page Screen</source>
         <translation>Bildschirmphoto speichern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="453"/>
+        <location filename="Helpviewer/HelpWindow.py" line="452"/>
         <source>Save Page Screen...</source>
         <translation>Bildschirmphoto speichern...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="457"/>
+        <location filename="Helpviewer/HelpWindow.py" line="456"/>
         <source>Save the current page as a screen shot</source>
         <translation>Speichert die aktuelle Seite als Bildschirmphoto</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="459"/>
+        <location filename="Helpviewer/HelpWindow.py" line="458"/>
         <source>&lt;b&gt;Save Page Screen...&lt;/b&gt;&lt;p&gt;Saves the current page as a screen shot.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Bildschirmphoto speichern...&lt;/b&gt;&lt;p&gt;Dies speichert die aktuelle Seite als Bildschirmphoto.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1293"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1292"/>
         <source>Synchronize data</source>
         <translation>Synchronisation</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1293"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1292"/>
         <source>&amp;Synchronize Data...</source>
         <translation>&amp;Synchronisation...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1297"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1296"/>
         <source>Shows a dialog to synchronize data via the network</source>
         <translation>Zeigt einen Dialog zum Synchronisieren von Daten über das Netzwerk</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1299"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1298"/>
         <source>&lt;b&gt;Synchronize Data...&lt;/b&gt;&lt;p&gt;This shows a dialog to synchronize data via the network.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Synchronisation...&lt;/b&gt;&lt;p&gt;Dies zeigt einen Dialog zum Synchronisieren von Daten über das Netzwerk.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1191"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1190"/>
         <source>ClickToFlash</source>
         <translation>ClickToFlash</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1191"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1190"/>
         <source>&amp;ClickToFlash...</source>
         <translation>&amp;ClickToFlash...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1196"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1195"/>
         <source>Configure ClickToFlash whitelist</source>
         <translation>ClickToFlash Whitelist konfigurieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1198"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1197"/>
         <source>&lt;b&gt;ClickToFlash...&lt;/b&gt;&lt;p&gt;Opens a dialog to configure the ClickToFlash whitelist.&lt;/p&gt;</source>
         <translation>&lt;b&gt;ClickToFlash...&lt;/b&gt;&lt;p&gt;Dies öffnet einen Dialog zur Konfiguration der ClickToFlash Whitelist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="993"/>
+        <location filename="Helpviewer/HelpWindow.py" line="992"/>
         <source>Personal Information</source>
         <translation>Persönliche Informationen</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="993"/>
+        <location filename="Helpviewer/HelpWindow.py" line="992"/>
         <source>Personal Information...</source>
         <translation>Persönliche Informationen...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="998"/>
+        <location filename="Helpviewer/HelpWindow.py" line="997"/>
         <source>Configure personal information for completing form fields</source>
         <translation>Persönliche Informationen zum Ausfüllen von Formularen eingeben</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1000"/>
+        <location filename="Helpviewer/HelpWindow.py" line="999"/>
         <source>&lt;b&gt;Personal Information...&lt;/b&gt;&lt;p&gt;Opens a dialog to configure the personal information used for completing form fields.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Persönliche Informationen...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zur Eingabe persönlicher Informationen, die zum Ausfüllen von Formularen verwendet werden.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1010"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1009"/>
         <source>GreaseMonkey Scripts</source>
         <translation>GreaseMonkey Skripte</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1010"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1009"/>
         <source>GreaseMonkey Scripts...</source>
         <translation>GreaseMonkey Skripte...</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1015"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1014"/>
         <source>Configure the GreaseMonkey Scripts</source>
         <translation>GreaseMonkey Skripte konfigurieren</translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1017"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1016"/>
         <source>&lt;b&gt;GreaseMonkey Scripts...&lt;/b&gt;&lt;p&gt;Opens a dialog to configure the available GreaseMonkey Scripts.&lt;/p&gt;</source>
         <translation>&lt;b&gt;GreaseMonkey Skripte...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zur Konfiguration der verfügbaren GreaseMonkey Skripte.&lt;/p&gt;</translation>
     </message>
--- a/i18n/eric5_en.ts	Mon Jul 30 19:19:29 2012 +0200
+++ b/i18n/eric5_en.ts	Sat Aug 04 13:30:04 2012 +0200
@@ -79,12 +79,12 @@
 <context>
     <name>AdBlockAccessHandler</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="44"/>
+        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="46"/>
         <source>Subscribe?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="44"/>
+        <location filename="Helpviewer/AdBlock/AdBlockAccessHandler.py" line="46"/>
         <source>&lt;p&gt;Subscribe to this AdBlock subscription?&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -102,55 +102,85 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="70"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="63"/>
         <source>Enter search term for subscriptions and rules</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="77"/>
-        <source>Press to clear the search edit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="110"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="81"/>
         <source>Actions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="86"/>
-        <source>Add Custom Rule</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="88"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="146"/>
         <source>Learn more about writing rules...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="95"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="141"/>
         <source>Update Subscription</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="99"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="130"/>
         <source>Browse Subscriptions...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="103"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="207"/>
         <source>Remove Subscription</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="130"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="101"/>
         <source>Update Period (days):</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="137"/>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.ui" line="108"/>
         <source>Enter the update period (1 to 14 days)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="42"/>
+        <source>Search...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="125"/>
+        <source>Add Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="127"/>
+        <source>Remove Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="136"/>
+        <source>Disable Subscription</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="138"/>
+        <source>Enable Subscription</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="143"/>
+        <source>Update All Subscriptions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="199"/>
+        <source>&lt;p&gt;Do you really want to remove subscription &lt;b&gt;{0}&lt;/b&gt; and all subscriptions requiring it?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockDialog.py" line="205"/>
+        <source>&lt;p&gt;Do you really want to remove subscription &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>AdBlockIcon</name>
@@ -198,63 +228,86 @@
 <context>
     <name>AdBlockManager</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockManager.py" line="126"/>
+        <location filename="Helpviewer/AdBlock/AdBlockManager.py" line="135"/>
         <source>Custom Rules</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>AdBlockModel</name>
-    <message>
-        <location filename="Helpviewer/AdBlock/AdBlockModel.py" line="87"/>
-        <source>Rule</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>AdBlockSubscription</name>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="216"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="246"/>
         <source>Load subscription rules</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="208"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="238"/>
         <source>Unable to open adblock file &apos;{0}&apos; for reading.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="216"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="246"/>
         <source>Adblock file &apos;{0}&apos; does not start with [Adblock.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="294"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="323"/>
         <source>Downloading subscription rules</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="276"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="305"/>
         <source>&lt;p&gt;Subscription rules could not be downloaded.&lt;/p&gt;&lt;p&gt;Error: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="286"/>
-        <source>Got empty subscription rules.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="315"/>
+        <source>Got empty subscription rules.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="343"/>
         <source>Unable to open adblock file &apos;{0}&apos; for writing.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="315"/>
+        <location filename="Helpviewer/AdBlock/AdBlockSubscription.py" line="343"/>
         <source>Saving subscription rules</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>AdBlockTreeWidget</name>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="115"/>
+        <source>Add Custom Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="115"/>
+        <source>Write your rule here:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="165"/>
+        <source>Add Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="167"/>
+        <source>Remove Rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/AdBlock/AdBlockTreeWidget.py" line="218"/>
+        <source>{0} (recently updated)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>AddBookmarkDialog</name>
     <message>
         <location filename="Helpviewer/Bookmarks/AddBookmarkDialog.py" line="198"/>
@@ -15090,7 +15143,7 @@
 <context>
     <name>HelpWindow</name>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="2495"/>
+        <location filename="Helpviewer/HelpWindow.py" line="2494"/>
         <source>eric5 Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
@@ -15100,1654 +15153,1654 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1053"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1052"/>
         <source>Index</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1066"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1065"/>
         <source>Search</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="379"/>
+        <location filename="Helpviewer/HelpWindow.py" line="378"/>
         <source>New Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="379"/>
+        <location filename="Helpviewer/HelpWindow.py" line="378"/>
         <source>&amp;New Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="379"/>
+        <location filename="Helpviewer/HelpWindow.py" line="378"/>
         <source>Ctrl+T</source>
         <comment>File|New Tab</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="383"/>
+        <source>Open a new help window tab</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="384"/>
-        <source>Open a new help window tab</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="385"/>
         <source>&lt;b&gt;New Tab&lt;/b&gt;&lt;p&gt;This opens a new help window tab.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>New Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>New &amp;Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="393"/>
+        <location filename="Helpviewer/HelpWindow.py" line="392"/>
         <source>Ctrl+N</source>
         <comment>File|New Window</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="397"/>
+        <source>Open a new help browser window</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="398"/>
-        <source>Open a new help browser window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="399"/>
         <source>&lt;b&gt;New Window&lt;/b&gt;&lt;p&gt;This opens a new help browser window.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="1776"/>
+        <location filename="Helpviewer/HelpWindow.py" line="1775"/>
         <source>Open File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="407"/>
+        <location filename="Helpviewer/HelpWindow.py" line="406"/>
         <source>&amp;Open File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="407"/>
+        <location filename="Helpviewer/HelpWindow.py" line="406"/>
         <source>Ctrl+O</source>
         <comment>File|Open</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/HelpWindow.py" line="411"/>
+        <source>Open a help file for display</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/HelpWindow.py" line="412"/>
-        <source>Open a help file for display</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/HelpWindow.py" line="413"/>
         <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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <source>Open File in New Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <source>Open File in New &amp;Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="422"/>
+        <location filename="Helpviewer/HelpWindow.py" line="421"/>
         <source>Shift+Ctrl+O</source>
         <comment>File|Open in new tab</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="427"/>
+        <location filename="Helpviewer/HelpWindow.py" line="426"/>
         <source>Open a help file for display in a new tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="429"/>
+        <location filename="Helpviewer/HelpWindow.py" line="428"/>
         <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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="438"/>
+        <location filename="Helpviewer/HelpWindow.py" line="437"/>
         <source>&amp;Save As...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/HelpWindow.py" line="438"/>
<