Continued implementing the delayed import.

Sun, 10 Feb 2013 18:31:31 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 10 Feb 2013 18:31:31 +0100
changeset 2403
e3d7a861547c
parent 2402
304fcefd3b04
child 2404
cba0ff902c2b

Continued implementing the delayed import.

Helpviewer/AdBlock/AdBlockAccessHandler.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockDialog.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockExceptionsDialog.py 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/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/Bookmarks/AddBookmarkDialog.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarkPropertiesDialog.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksDialog.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/ChromeImporter.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/HtmlImporter.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/IExplorerImporter.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/OperaImporter.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/SafariImporter.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/XbelImporter.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksManager.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksMenu.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksModel.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksToolBar.py file | annotate | diff | comparison | revisions
Helpviewer/CookieJar/CookieExceptionsModel.py file | annotate | diff | comparison | revisions
Helpviewer/CookieJar/CookiesConfigurationDialog.py file | annotate | diff | comparison | revisions
Helpviewer/CookieJar/CookiesDialog.py file | annotate | diff | comparison | revisions
Helpviewer/CookieJar/CookiesExceptionsDialog.py file | annotate | diff | comparison | revisions
Helpviewer/Download/DownloadItem.py file | annotate | diff | comparison | revisions
Helpviewer/Download/DownloadManager.py file | annotate | diff | comparison | revisions
Helpviewer/Feeds/FeedsDialog.py file | annotate | diff | comparison | revisions
Helpviewer/Feeds/FeedsManager.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py file | annotate | diff | comparison | revisions
Helpviewer/GreaseMonkey/GreaseMonkeyManager.py file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
Helpviewer/HelpIndexWidget.py file | annotate | diff | comparison | revisions
Helpviewer/HelpTabBar.py file | annotate | diff | comparison | revisions
Helpviewer/HelpTabWidget.py file | annotate | diff | comparison | revisions
Helpviewer/HelpWebSearchWidget.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryDialog.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryManager.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryMenu.py file | annotate | diff | comparison | revisions
Helpviewer/Network/AboutAccessHandler.py file | annotate | diff | comparison | revisions
Helpviewer/Network/EricAccessHandler.py file | annotate | diff | comparison | revisions
Helpviewer/Network/FileAccessHandler.py file | annotate | diff | comparison | revisions
Helpviewer/Network/FtpAccessHandler.py file | annotate | diff | comparison | revisions
Helpviewer/Network/FtpReply.py file | annotate | diff | comparison | revisions
Helpviewer/Network/NetworkAccessManager.py file | annotate | diff | comparison | revisions
Helpviewer/OfflineStorage/OfflineStorageConfigDialog.py file | annotate | diff | comparison | revisions
Helpviewer/OpenSearch/OpenSearchDialog.py file | annotate | diff | comparison | revisions
Helpviewer/OpenSearch/OpenSearchEngineAction.py file | annotate | diff | comparison | revisions
Helpviewer/OpenSearch/OpenSearchManager.py file | annotate | diff | comparison | revisions
Helpviewer/OpenSearch/OpenSearchReader.py file | annotate | diff | comparison | revisions
Helpviewer/Passwords/PasswordManager.py file | annotate | diff | comparison | revisions
Helpviewer/Passwords/PasswordReader.py file | annotate | diff | comparison | revisions
Helpviewer/Passwords/PasswordsDialog.py file | annotate | diff | comparison | revisions
Helpviewer/PersonalInformationManager/PersonalInformationManager.py file | annotate | diff | comparison | revisions
Helpviewer/SiteInfo/SiteInfoDialog.py file | annotate | diff | comparison | revisions
Helpviewer/SpeedDial/PageThumbnailer.py file | annotate | diff | comparison | revisions
Helpviewer/SpeedDial/SpeedDial.py file | annotate | diff | comparison | revisions
Helpviewer/SpeedDial/SpeedDialReader.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncAssistantDialog.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncCheckPage.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncDataPage.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncDirectorySettingsPage.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncEncryptionPage.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncFtpSettingsPage.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncManager.py file | annotate | diff | comparison | revisions
Helpviewer/UrlBar/BookmarkActionSelectionDialog.py file | annotate | diff | comparison | revisions
Helpviewer/UrlBar/BookmarkInfoDialog.py file | annotate | diff | comparison | revisions
Helpviewer/UrlBar/FavIconLabel.py file | annotate | diff | comparison | revisions
Helpviewer/UrlBar/UrlBar.py file | annotate | diff | comparison | revisions
Helpviewer/UserAgent/UserAgentManager.py file | annotate | diff | comparison | revisions
Helpviewer/UserAgent/UserAgentMenu.py file | annotate | diff | comparison | revisions
Helpviewer/VirusTotalApi.py file | annotate | diff | comparison | revisions
Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.py file | annotate | diff | comparison | revisions
Helpviewer/WebPlugins/ClickToFlash/ClickToFlashPlugin.py file | annotate | diff | comparison | revisions
Helpviewer/WebPlugins/WebPluginFactory.py file | annotate | diff | comparison | revisions
--- a/Helpviewer/AdBlock/AdBlockAccessHandler.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockAccessHandler.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,9 +12,6 @@
 
 from E5Gui import E5MessageBox
 
-from .AdBlockSubscription import AdBlockSubscription
-
-import Helpviewer.HelpWindow
 from Helpviewer.Network.SchemeAccessHandler import SchemeAccessHandler
 from Helpviewer.Network.EmptyNetworkReply import EmptyNetworkReply
 
@@ -48,6 +45,9 @@
             self.trUtf8("""<p>Subscribe to this AdBlock subscription?</p><p>{0}</p>""")\
                 .format(title))
         if res:
+            from .AdBlockSubscription import AdBlockSubscription
+            import Helpviewer.HelpWindow
+            
             dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager().showDialog()
             subscription = AdBlockSubscription(url, False,
                 Helpviewer.HelpWindow.HelpWindow.adBlockManager())
--- a/Helpviewer/AdBlock/AdBlockDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,12 +12,8 @@
 
 from E5Gui import E5MessageBox
 
-import Helpviewer.HelpWindow
-
 from .Ui_AdBlockDialog import Ui_AdBlockDialog
 
-from .AdBlockTreeWidget import AdBlockTreeWidget
-
 import UI.PixmapCache
 import Preferences
 
@@ -39,6 +35,7 @@
         
         self.searchEdit.setInactiveText(self.trUtf8("Search..."))
         
+        import Helpviewer.HelpWindow
         self.__manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         self.adBlockGroup.setChecked(self.__manager.isEnabled())
         self.__manager.requiredSubscriptionLoaded.connect(self.addSubscription)
@@ -72,6 +69,7 @@
         if self.__loaded or not self.adBlockGroup.isChecked():
             return
         
+        from .AdBlockTreeWidget import AdBlockTreeWidget
         for subscription in self.__manager.subscriptions():
             tree = AdBlockTreeWidget(subscription, self.subscriptionsTabWidget)
             if subscription.isEnabled():
@@ -93,6 +91,7 @@
             added (AdBlockSubscription)
         @param refresh flag indicating to refresh the tree (boolean)
         """
+        from .AdBlockTreeWidget import AdBlockTreeWidget
         tree = AdBlockTreeWidget(subscription, self.subscriptionsTabWidget)
         index = self.subscriptionsTabWidget.insertTab(
             self.subscriptionsTabWidget.count() - 1, tree, subscription.title())
@@ -178,6 +177,7 @@
         """
         Private slot to browse the list of available AdBlock subscriptions.
         """
+        import Helpviewer.HelpWindow
         mw = Helpviewer.HelpWindow.HelpWindow.mainWindow()
         mw.newTab("http://adblockplus.org/en/subscriptions")
         mw.raise_()
@@ -186,6 +186,7 @@
         """
         Private slot to show the web page about how to write filters.
         """
+        import Helpviewer.HelpWindow
         mw = Helpviewer.HelpWindow.HelpWindow.mainWindow()
         mw.newTab("http://adblockplus.org/en/filters")
         mw.raise_()
@@ -268,6 +269,7 @@
         if value != Preferences.getHelp("AdBlockUpdatePeriod"):
             Preferences.setHelp("AdBlockUpdatePeriod", value)
             
+            import Helpviewer.HelpWindow
             manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
             for subscription in manager.subscriptions():
                 subscription.checkForUpdate()
--- a/Helpviewer/AdBlock/AdBlockExceptionsDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockExceptionsDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,8 +12,6 @@
 
 from .Ui_AdBlockExceptionsDialog import Ui_AdBlockExceptionsDialog
 
-import Helpviewer.HelpWindow
-
 import UI.PixmapCache
 
 
@@ -87,6 +85,7 @@
         for row in range(self.hostList.count()):
             hosts.append(self.hostList.item(row).text())
         
+        import Helpviewer.HelpWindow
         Helpviewer.HelpWindow.HelpWindow.adBlockManager().setExceptions(hosts)
         
         super().accept()
--- a/Helpviewer/AdBlock/AdBlockIcon.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockIcon.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,8 +12,6 @@
 
 from E5Gui.E5ClickableLabel import E5ClickableLabel
 
-import Helpviewer.HelpWindow
-
 import UI.PixmapCache
 
 
@@ -65,6 +63,7 @@
         
         menu.clear()
         
+        import Helpviewer.HelpWindow
         manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         
         if manager.isEnabled():
@@ -139,6 +138,7 @@
         """
         act = self.sender()
         if act is not None:
+            import Helpviewer.HelpWindow
             Helpviewer.HelpWindow.HelpWindow.adBlockManager().setEnabled(act.data())
     
     def __isCurrentHostExcepted(self):
@@ -150,6 +150,7 @@
         browser = self.__mw.currentBrowser()
         urlHost = browser.page().url().host()
         
+        import Helpviewer.HelpWindow
         return urlHost and \
                Helpviewer.HelpWindow.HelpWindow.adBlockManager().isHostExcepted(urlHost)
     
@@ -169,6 +170,7 @@
         """
         act = self.sender()
         if act is not None:
+            import Helpviewer.HelpWindow
             urlHost = self.__mw.currentBrowser().page().url().host()
             if act.data():
                 Helpviewer.HelpWindow.HelpWindow.adBlockManager().addException(urlHost)
--- a/Helpviewer/AdBlock/AdBlockManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,13 +11,7 @@
 
 from PyQt4.QtCore import pyqtSignal, QObject, QUrl, QFile
 
-from .AdBlockNetwork import AdBlockNetwork
-from .AdBlockPage import AdBlockPage
 from .AdBlockSubscription import AdBlockSubscription
-from .AdBlockDialog import AdBlockDialog
-from .AdBlockExceptionsDialog import AdBlockExceptionsDialog
-
-import Helpviewer.HelpWindow
 
 from Utilities.AutoSaver import AutoSaver
 import Utilities
@@ -89,6 +83,7 @@
         if self.isEnabled() == enabled:
             return
         
+        import Helpviewer.HelpWindow
         self.__enabled = enabled
         for mainWindow in Helpviewer.HelpWindow.HelpWindow.mainWindows():
             mainWindow.adBlockIcon().setEnabled(enabled)
@@ -103,6 +98,7 @@
         @return reference to the network block object (AdBlockNetwork)
         """
         if self.__adBlockNetwork is None:
+            from .AdBlockNetwork import AdBlockNetwork
             self.__adBlockNetwork = AdBlockNetwork(self)
         return self.__adBlockNetwork
     
@@ -113,6 +109,7 @@
         @return reference to the page block object (AdBlockPage)
         """
         if self.__adBlockPage is None:
+            from .AdBlockPage import AdBlockPage
             self.__adBlockPage = AdBlockPage(self)
         return self.__adBlockPage
     
@@ -346,6 +343,7 @@
         @return reference to the dialog (AdBlockDialog)
         """
         if self.__adBlockDialog is None:
+            from .AdBlockDialog import AdBlockDialog
             self.__adBlockDialog = AdBlockDialog()
         
         self.__adBlockDialog.show()
@@ -458,6 +456,7 @@
         @return reference to the exceptions dialog (AdBlockExceptionsDialog)
         """
         if self.__adBlockExceptionsDialog is None:
+            from .AdBlockExceptionsDialog import AdBlockExceptionsDialog
             self.__adBlockExceptionsDialog = AdBlockExceptionsDialog()
         
         self.__adBlockExceptionsDialog.load(self.__exceptedHosts)
--- a/Helpviewer/AdBlock/AdBlockNetwork.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockNetwork.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import QObject, QUrl
 from PyQt4.QtNetwork import QNetworkRequest
 
-import Helpviewer.HelpWindow
-
 from .AdBlockBlockedNetworkReply import AdBlockBlockedNetworkReply
 
 
@@ -31,6 +29,7 @@
         urlScheme = url.scheme()
         refererHost = QUrl.fromEncoded(request.rawHeader("Referer")).host()
         
+        import Helpviewer.HelpWindow
         manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         if not manager.isEnabled() or \
            not self.canRunOnScheme(urlScheme) or \
@@ -71,6 +70,7 @@
         @param url URL to be checked (QUrl)
         @return flag indicating, that the URL can be blocked (boolean)
         """
+        import Helpviewer.HelpWindow
         manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         if manager.isHostExcepted(url.host()):
             return False
--- a/Helpviewer/AdBlock/AdBlockPage.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockPage.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,8 +9,6 @@
 
 from PyQt4.QtCore import QObject, QUrl
 
-import Helpviewer.HelpWindow
-
 
 class AdBlockPage(QObject):
     """
@@ -25,6 +23,7 @@
         if page is None or page.mainFrame() is None:
             return
         
+        import Helpviewer.HelpWindow
         manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         if not manager.isEnabled():
             return
--- a/Helpviewer/AdBlock/AdBlockSubscription.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockSubscription.py	Sun Feb 10 18:31:31 2013 +0100
@@ -18,11 +18,6 @@
 
 from E5Gui import E5MessageBox
 
-from .AdBlockRule import AdBlockRule
-
-import Helpviewer.HelpWindow
-from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply
-
 import Utilities
 import Preferences
 
@@ -127,6 +122,7 @@
         self.__requiresTitle = \
             QUrl.fromPercentEncoding(url.encodedQueryItemValue("requiresTitle"))
         if self.__requiresLocation and self.__requiresTitle:
+            import Helpviewer.HelpWindow
             Helpviewer.HelpWindow.HelpWindow.adBlockManager().loadRequiredSubscription(
                 self.__requiresLocation, self.__requiresTitle)
         
@@ -283,6 +279,8 @@
                     f.remove()
                     self.__lastUpdate = QDateTime()
                 else:
+                    from .AdBlockRule import AdBlockRule
+                    
                     self.__updatePeriod = 0
                     self.__remoteModified = QDateTime()
                     self.__rules = []
@@ -346,6 +344,8 @@
             self.__loadRules()
             return
         
+        import Helpviewer.HelpWindow
+        from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply
         self.__downloading = FollowRedirectReply(self.location(),
             Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
         self.__downloading.finished[()].connect(self.__rulesDownloaded)
@@ -656,6 +656,7 @@
         rule = self.__rules[offset]
         rule.setEnabled(enabled)
         if rule.isCSSRule():
+            import Helpviewer.HelpWindow
             self.__populateCache()
             Helpviewer.HelpWindow.HelpWindow.mainWindow().reloadUserStyleSheet()
         
--- a/Helpviewer/AdBlock/AdBlockTreeWidget.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/AdBlock/AdBlockTreeWidget.py	Sun Feb 10 18:31:31 2013 +0100
@@ -13,8 +13,6 @@
 
 from E5Gui.E5TreeWidget import E5TreeWidget
 
-from .AdBlockRule import AdBlockRule
-
 
 class AdBlockTreeWidget(E5TreeWidget):
     """
@@ -123,6 +121,7 @@
             if filter == "":
                 return
         
+        from .AdBlockRule import AdBlockRule
         rule = AdBlockRule(filter, self.__subscription)
         offset = self.__subscription.addRule(rule)
         
@@ -196,6 +195,7 @@
             rule = self.__subscription.setRuleEnabled(offset, True)
             self.__adjustItemFeatures(itm, rule)
         elif self.__subscription.canEditRules():
+            from .AdBlockRule import AdBlockRule
             # Custom rule has been changed
             rule = self.__subscription.replaceRule(
                 AdBlockRule(itm.text(0), self.__subscription), offset)
--- a/Helpviewer/Bookmarks/AddBookmarkDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/AddBookmarkDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,10 +10,6 @@
 from PyQt4.QtCore import QModelIndex
 from PyQt4.QtGui import QSortFilterProxyModel, QDialog, QTreeView
 
-import Helpviewer.HelpWindow
-
-from .BookmarkNode import BookmarkNode
-
 from .Ui_AddBookmarkDialog import Ui_AddBookmarkDialog
 
 
@@ -90,6 +86,7 @@
         self.__addFolder = False
         
         if self.__bookmarksManager is None:
+            import Helpviewer.HelpWindow
             self.__bookmarksManager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
         
         self.__proxyModel = AddBookmarkProxyModel(self)
@@ -225,6 +222,8 @@
             super().accept()
             return
         
+        from .BookmarkNode import BookmarkNode
+        
         idx = self.currentIndex()
         if not idx.isValid():
             idx = self.__bookmarksManager.bookmarksModel().index(0, 0)
--- a/Helpviewer/Bookmarks/BookmarkPropertiesDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarkPropertiesDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,10 +11,6 @@
 
 from .Ui_BookmarkPropertiesDialog import Ui_BookmarkPropertiesDialog
 
-from .BookmarkNode import BookmarkNode
-
-import Helpviewer.HelpWindow
-
 
 class BookmarkPropertiesDialog(QDialog, Ui_BookmarkPropertiesDialog):
     """
@@ -29,6 +25,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
+        from .BookmarkNode import BookmarkNode
         self.__node = node
         if self.__node.type() == BookmarkNode.Folder:
             self.addressLabel.hide()
@@ -42,12 +39,15 @@
         """
         Public slot handling the acceptance of the dialog.
         """
+        from .BookmarkNode import BookmarkNode
+        
         if (self.__node.type() == BookmarkNode.Bookmark and \
             not self.addressEdit.text()) or \
            not self.nameEdit.text():
             super().accept()
             return
         
+        import Helpviewer.HelpWindow
         bookmarksManager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
         title = self.nameEdit.text()
         if title != self.__node.title:
--- a/Helpviewer/Bookmarks/BookmarksDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,11 +12,6 @@
 
 from E5Gui.E5TreeSortFilterProxyModel import E5TreeSortFilterProxyModel
 
-import Helpviewer.HelpWindow
-from .BookmarkNode import BookmarkNode
-from .BookmarksModel import BookmarksModel
-from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
-
 from .Ui_BookmarksDialog import Ui_BookmarksDialog
 
 
@@ -42,6 +37,7 @@
         
         self.__bookmarksManager = manager
         if self.__bookmarksManager is None:
+            import Helpviewer.HelpWindow
             self.__bookmarksManager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
         
         self.__bookmarksModel = self.__bookmarksManager.bookmarksModel()
@@ -131,6 +127,8 @@
         
         @param pos position the context menu was requested (QPoint)
         """
+        from .BookmarkNode import BookmarkNode
+        
         menu = QMenu()
         idx = self.bookmarksTree.indexAt(pos)
         idx = idx.sibling(idx.row(), 0)
@@ -178,6 +176,9 @@
         
         @param newTab flag indicating to open the bookmark in a new tab (boolean)
         """
+        from .BookmarkNode import BookmarkNode
+        from .BookmarksModel import BookmarksModel
+        
         idx = self.bookmarksTree.currentIndex()
         sourceIndex = self.__proxyModel.mapToSource(idx)
         node = self.__bookmarksModel.node(sourceIndex)
@@ -214,6 +215,8 @@
         """
         Private slot to edit a bookmarks properties.
         """
+        from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
+        
         idx = self.bookmarksTree.currentIndex()
         sourceIndex = self.__proxyModel.mapToSource(idx)
         node = self.__bookmarksModel.node(sourceIndex)
@@ -224,6 +227,8 @@
         """
         Private slot to add a new bookmarks folder.
         """
+        from .BookmarkNode import BookmarkNode
+        
         currentIndex = self.bookmarksTree.currentIndex()
         idx = QModelIndex(currentIndex)
         sourceIndex = self.__proxyModel.mapToSource(idx)
--- a/Helpviewer/Bookmarks/BookmarksImporters/ChromeImporter.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksImporters/ChromeImporter.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,8 +12,6 @@
 
 from PyQt4.QtCore import QCoreApplication, QDate, Qt
 
-from ..BookmarkNode import BookmarkNode
-
 from .BookmarksImporter import BookmarksImporter
 
 import UI.PixmapCache
@@ -121,6 +119,7 @@
                 .format(self.__fileName, str(err))
             return None
         
+        from ..BookmarkNode import BookmarkNode
         importRootNode = BookmarkNode(BookmarkNode.Folder)
         if contents["version"] == 1:
             self.__processRoots(contents["roots"], importRootNode)
@@ -154,6 +153,7 @@
         @param data dictionary with the bookmarks data (dict)
         @param rootNode node to add the bookmarks to (BookmarkNode)
         """
+        from ..BookmarkNode import BookmarkNode
         folder = BookmarkNode(BookmarkNode.Folder, rootNode)
         folder.title = data["name"].replace("&", "&&")
         for node in data["children"]:
@@ -169,6 +169,7 @@
         @param data dictionary with the bookmarks data (dict)
         @param rootNode node to add the bookmarks to (BookmarkNode)
         """
+        from ..BookmarkNode import BookmarkNode
         bookmark = BookmarkNode(BookmarkNode.Bookmark, rootNode)
         bookmark.url = data["url"]
         bookmark.title = data["name"].replace("&", "&&")
--- a/Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,8 +12,6 @@
 
 from PyQt4.QtCore import QCoreApplication, QDate, Qt, QUrl
 
-from ..BookmarkNode import BookmarkNode
-
 from .BookmarksImporter import BookmarksImporter
 
 import UI.PixmapCache
@@ -104,6 +102,7 @@
         
         @return imported bookmarks (BookmarkNode)
         """
+        from ..BookmarkNode import BookmarkNode
         importRootNode = BookmarkNode(BookmarkNode.Root)
         
         # step 1: build the hierarchy of bookmark folders
--- a/Helpviewer/Bookmarks/BookmarksImporters/HtmlImporter.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksImporters/HtmlImporter.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,9 +11,6 @@
 
 from PyQt4.QtCore import QCoreApplication, QDate, Qt
 
-from ..BookmarkNode import BookmarkNode
-from ..NsHtmlReader import NsHtmlReader
-
 from .BookmarksImporter import BookmarksImporter
 
 import UI.PixmapCache
@@ -87,6 +84,9 @@
         
         @return imported bookmarks (BookmarkNode)
         """
+        from ..BookmarkNode import BookmarkNode
+        from ..NsHtmlReader import NsHtmlReader
+        
         reader = NsHtmlReader()
         importRootNode = reader.read(self.__fileName)
         
--- a/Helpviewer/Bookmarks/BookmarksImporters/IExplorerImporter.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksImporters/IExplorerImporter.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,8 +11,6 @@
 
 from PyQt4.QtCore import QCoreApplication, QDate, Qt
 
-from ..BookmarkNode import BookmarkNode
-
 from .BookmarksImporter import BookmarksImporter
 
 import UI.PixmapCache
@@ -94,6 +92,8 @@
         
         @return imported bookmarks (BookmarkNode)
         """
+        from ..BookmarkNode import BookmarkNode
+        
         folders = {}
         
         importRootNode = BookmarkNode(BookmarkNode.Folder)
--- a/Helpviewer/Bookmarks/BookmarksImporters/OperaImporter.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksImporters/OperaImporter.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,8 +11,6 @@
 
 from PyQt4.QtCore import QCoreApplication, QDate, Qt
 
-from ..BookmarkNode import BookmarkNode
-
 from .BookmarksImporter import BookmarksImporter
 
 import UI.PixmapCache
@@ -104,6 +102,7 @@
         
         folderStack = []
         
+        from ..BookmarkNode import BookmarkNode
         importRootNode = BookmarkNode(BookmarkNode.Folder)
         folderStack.append(importRootNode)
         
--- a/Helpviewer/Bookmarks/BookmarksImporters/SafariImporter.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksImporters/SafariImporter.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,8 +11,6 @@
 
 from PyQt4.QtCore import QCoreApplication, QDate, Qt
 
-from ..BookmarkNode import BookmarkNode
-
 from .BookmarksImporter import BookmarksImporter
 
 import UI.PixmapCache
@@ -102,6 +100,7 @@
                 "Bookmarks file cannot be read.\nReason: {0}".format(str(err)))
             return None
         
+        from ..BookmarkNode import BookmarkNode
         importRootNode = BookmarkNode(BookmarkNode.Folder)
         if bookmarksDict["WebBookmarkFileVersion"] == 1 and \
            bookmarksDict["WebBookmarkType"] == "WebBookmarkTypeList":
@@ -121,6 +120,7 @@
         @param children list of child nodes to be processed (list of dict)
         @param rootNode node to add the bookmarks to (BookmarkNode)
         """
+        from ..BookmarkNode import BookmarkNode
         for child in children:
             if child["WebBookmarkType"] == "WebBookmarkTypeList":
                 folder = BookmarkNode(BookmarkNode.Folder, rootNode)
--- a/Helpviewer/Bookmarks/BookmarksImporters/XbelImporter.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksImporters/XbelImporter.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,10 +11,6 @@
 
 from PyQt4.QtCore import QCoreApplication, QXmlStreamReader, QDate, Qt
 
-from ..BookmarksManager import BookmarksManager
-from ..BookmarkNode import BookmarkNode
-from ..XbelReader import XbelReader
-
 from .BookmarksImporter import BookmarksImporter
 
 import UI.PixmapCache
@@ -29,6 +25,7 @@
         a prompt (string) and the default directory of the bookmarks file (string)
     """
     if id == "e5browser":
+        from ..BookmarksManager import BookmarksManager
         bookmarksFile = BookmarksManager.getFileName()
         return (
             UI.PixmapCache.getPixmap("ericWeb48.png"),
@@ -119,6 +116,8 @@
         
         @return imported bookmarks (BookmarkNode)
         """
+        from ..XbelReader import XbelReader
+        
         reader = XbelReader()
         importRootNode = reader.read(self.__fileName)
         
@@ -131,6 +130,7 @@
                         reader.errorString())
             return None
         
+        from ..BookmarkNode import BookmarkNode
         importRootNode.setType(BookmarkNode.Folder)
         if self._id == "e5browser":
             importRootNode.title = self.trUtf8("eric5 Web Browser Import")
--- a/Helpviewer/Bookmarks/BookmarksManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -16,12 +16,6 @@
 from E5Gui import E5MessageBox, E5FileDialog
 
 from .BookmarkNode import BookmarkNode
-from .BookmarksModel import BookmarksModel
-from .DefaultBookmarks import DefaultBookmarks
-from .XbelReader import XbelReader
-from .XbelWriter import XbelWriter
-from .NsHtmlWriter import NsHtmlWriter
-from .BookmarksImportDialog import BookmarksImportDialog
 
 from Utilities.AutoSaver import AutoSaver
 import Utilities
@@ -126,10 +120,12 @@
         
         bookmarkFile = self.getFileName()
         if not QFile.exists(bookmarkFile):
+            from .DefaultBookmarks import DefaultBookmarks
             ba = QByteArray(DefaultBookmarks)
             bookmarkFile = QBuffer(ba)
             bookmarkFile.open(QIODevice.ReadOnly)
         
+        from .XbelReader import XbelReader
         reader = XbelReader()
         self.__bookmarkRootNode = reader.read(bookmarkFile)
         if reader.error() != QXmlStreamReader.NoError:
@@ -187,6 +183,7 @@
         if not self.__loaded:
             return
         
+        from .XbelWriter import XbelWriter
         writer = XbelWriter()
         bookmarkFile = self.getFileName()
         
@@ -331,6 +328,7 @@
         @return reference to the bookmarks model (BookmarksModel)
         """
         if self.__bookmarksModel is None:
+            from .BookmarksModel import BookmarksModel
             self.__bookmarksModel = BookmarksModel(self, self)
         return self.__bookmarksModel
     
@@ -338,6 +336,7 @@
         """
         Public method to import bookmarks.
         """
+        from .BookmarksImportDialog import BookmarksImportDialog
         dlg = BookmarksImportDialog()
         if dlg.exec_() == QDialog.Accepted:
             importRootNode = dlg.getImportedBookmarks()
@@ -366,8 +365,10 @@
         
         ext = QFileInfo(fileName).suffix()
         if ext == "html":
+            from .NsHtmlWriter import NsHtmlWriter
             writer = NsHtmlWriter()
         else:
+            from .XbelWriter import XbelWriter
             writer = XbelWriter()
         if not writer.write(fileName, self.__bookmarkRootNode):
             E5MessageBox.critical(None,
--- a/Helpviewer/Bookmarks/BookmarksMenu.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksMenu.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,11 +12,8 @@
 
 from E5Gui.E5ModelMenu import E5ModelMenu
 
-import Helpviewer.HelpWindow
-
 from .BookmarksModel import BookmarksModel
 from .BookmarkNode import BookmarkNode
-from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
 
 
 class BookmarksMenu(E5ModelMenu):
@@ -190,6 +187,8 @@
         """
         Private slot to edit a bookmarks properties.
         """
+        from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
+        
         idx = self.index(self.sender())
         node = self.model().node(idx)
         dlg = BookmarkPropertiesDialog(node)
@@ -224,6 +223,8 @@
        
         @return flag indicating if any actions were added (boolean)
         """
+        import Helpviewer.HelpWindow
+        
         self.__bookmarksManager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
         self.setModel(self.__bookmarksManager.bookmarksModel())
         self.setRootIndex(self.__bookmarksManager.bookmarksModel()\
--- a/Helpviewer/Bookmarks/BookmarksModel.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksModel.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,12 +10,6 @@
 from PyQt4.QtCore import Qt, QAbstractItemModel, QModelIndex, QUrl, QByteArray, \
     QDataStream, QIODevice, QBuffer, QMimeData
 
-from .BookmarkNode import BookmarkNode
-from .XbelWriter import XbelWriter
-from .XbelReader import XbelReader
-
-import Helpviewer.HelpWindow
-
 import UI.PixmapCache
 
 
@@ -164,6 +158,8 @@
         if not index.isValid() or index.model() != self:
             return None
         
+        from .BookmarkNode import BookmarkNode
+        
         bookmarkNode = self.node(index)
         if role in [Qt.EditRole, Qt.DisplayRole]:
             if bookmarkNode.type() == BookmarkNode.Separator:
@@ -193,6 +189,7 @@
             if index.column() == 0:
                 if bookmarkNode.type() == BookmarkNode.Folder:
                     return UI.PixmapCache.getIcon("dirOpen.png")
+                import Helpviewer.HelpWindow
                 return Helpviewer.HelpWindow.HelpWindow.icon(
                         QUrl(bookmarkNode.url))
         
@@ -276,6 +273,7 @@
         if not parent.isValid():
             return True
         
+        from .BookmarkNode import BookmarkNode
         parentNode = self.node(parent)
         return parentNode.type() == BookmarkNode.Folder
     
@@ -302,6 +300,7 @@
         
         flags |= Qt.ItemIsDragEnabled
         
+        from .BookmarkNode import BookmarkNode
         if (index.column() == 0 and type_ != BookmarkNode.Separator) or \
            (index.column() == 1 and type_ == BookmarkNode.Bookmark):
             flags |= Qt.ItemIsEditable
@@ -331,6 +330,8 @@
         @param indexes list of indexes (QModelIndexList)
         @return mime data (QMimeData)
         """
+        from .XbelWriter import XbelWriter
+        
         data = QByteArray()
         stream = QDataStream(data, QIODevice.WriteOnly)
         urls = []
@@ -376,6 +377,7 @@
             if not data.hasUrls():
                 return False
             
+            from .BookmarkNode import BookmarkNode
             node = BookmarkNode(BookmarkNode.Bookmark, parentNode)
             node.url = bytes(data.urls()[0].toEncoded()).decode()
             
@@ -395,6 +397,7 @@
         undoStack = self.__bookmarksManager.undoRedoStack()
         undoStack.beginMacro("Move Bookmarks")
         
+        from .XbelReader import XbelReader
         while not stream.atEnd():
             encodedData = QByteArray()
             stream >> encodedData
--- a/Helpviewer/Bookmarks/BookmarksToolBar.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Bookmarks/BookmarksToolBar.py	Sun Feb 10 18:31:31 2013 +0100
@@ -16,9 +16,6 @@
 import Helpviewer.HelpWindow
 
 from .BookmarksModel import BookmarksModel
-from .BookmarksMenu import BookmarksMenu
-from .AddBookmarkDialog import AddBookmarkDialog
-from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
 
 
 class BookmarksToolBar(E5ModelToolBar):
@@ -175,6 +172,7 @@
         """
         Private slot to add a new bookmark.
         """
+        from .AddBookmarkDialog import AddBookmarkDialog
         dlg = AddBookmarkDialog()
         dlg.setCurrentIndex(self.rootIndex())
         dlg.exec_()
@@ -183,6 +181,7 @@
         """
         Private slot to add a new bookmarks folder.
         """
+        from .AddBookmarkDialog import AddBookmarkDialog
         dlg = AddBookmarkDialog()
         dlg.setCurrentIndex(self.rootIndex())
         dlg.setFolder(True)
@@ -194,6 +193,7 @@
         
         @return menu for a tool bar action (E5ModelMenu)
         """
+        from .BookmarksMenu import BookmarksMenu
         menu = BookmarksMenu(self)
         menu.openUrl.connect(self.openUrl)
         menu.newUrl.connect(self.newUrl)
@@ -203,6 +203,7 @@
         """
         Private slot to edit a bookmarks properties.
         """
+        from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
         idx = self.index(self.sender())
         node = self.__bookmarksModel.node(idx)
         dlg = BookmarkPropertiesDialog(node)
--- a/Helpviewer/CookieJar/CookieExceptionsModel.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/CookieJar/CookieExceptionsModel.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import Qt, QAbstractTableModel, QSize, QModelIndex
 from PyQt4.QtGui import QFont, QFontMetrics
 
-from .CookieJar import CookieJar
-
 
 class CookieExceptionsModel(QAbstractTableModel):
     """
@@ -178,6 +176,8 @@
         if not host:
             return
         
+        from .CookieJar import CookieJar
+        
         if rule == CookieJar.Allow:
             self.__addHost(host,
                 self.__allowedCookies, self.__blockedCookies, self.__sessionCookies)
--- a/Helpviewer/CookieJar/CookiesConfigurationDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/CookieJar/CookiesConfigurationDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import pyqtSlot
 from PyQt4.QtGui import QDialog
 
-from .CookiesDialog import CookiesDialog
-from .CookiesExceptionsDialog import CookiesExceptionsDialog
 from .CookieJar import CookieJar
 
 from .Ui_CookiesConfigurationDialog import Ui_CookiesConfigurationDialog
@@ -81,6 +79,7 @@
         """
         Private slot to show the cookies exceptions dialog.
         """
+        from .CookiesExceptionsDialog import CookiesExceptionsDialog
         dlg = CookiesExceptionsDialog(self.__mw.cookieJar())
         dlg.exec_()
     
@@ -89,5 +88,6 @@
         """
         Private slot to show the cookies dialog.
         """
+        from .CookiesDialog import CookiesDialog
         dlg = CookiesDialog(self.__mw.cookieJar())
         dlg.exec_()
--- a/Helpviewer/CookieJar/CookiesDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/CookieJar/CookiesDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,8 +11,6 @@
 from PyQt4.QtGui import QDialog, QFont, QFontMetrics, QSortFilterProxyModel
 
 from .CookieModel import CookieModel
-from .CookieDetailsDialog import CookieDetailsDialog
-from .CookiesExceptionsDialog import CookiesExceptionsDialog
 
 from .Ui_CookiesDialog import Ui_CookiesDialog
 
@@ -96,6 +94,7 @@
             QByteArray.fromPercentEncoding(model.data(model.index(row, 5)))).decode()
         
         if self.__detailsDialog is None:
+            from .CookieDetailsDialog import CookieDetailsDialog
             self.__detailsDialog = CookieDetailsDialog(self)
         self.__detailsDialog.setData(domain, name, path, secure, expires, value)
         self.__detailsDialog.show()
@@ -109,6 +108,8 @@
         if len(selection) == 0:
             return
         
+        from .CookiesExceptionsDialog import CookiesExceptionsDialog
+        
         firstSelected = selection[0]
         domainSelection = firstSelected.sibling(firstSelected.row(), 0)
         domain = self.__proxyModel.data(domainSelection, Qt.DisplayRole)
--- a/Helpviewer/CookieJar/CookiesExceptionsDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/CookieJar/CookiesExceptionsDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,7 +10,6 @@
 from PyQt4.QtCore import pyqtSlot
 from PyQt4.QtGui import QDialog, QSortFilterProxyModel, QCompleter, QFont, QFontMetrics
 
-from .CookieJar import CookieJar
 from .CookieExceptionsModel import CookieExceptionsModel
 from .CookieModel import CookieModel
 
@@ -87,6 +86,7 @@
         """
         Private slot to block cookies of a domain.
         """
+        from .CookieJar import CookieJar
         self.__exceptionsModel.addRule(self.domainEdit.text(), CookieJar.Block)
     
     @pyqtSlot()
@@ -94,6 +94,7 @@
         """
         Private slot to allow cookies of a domain for the current session only.
         """
+        from .CookieJar import CookieJar
         self.__exceptionsModel.addRule(self.domainEdit.text(), CookieJar.AllowForSession)
     
     @pyqtSlot()
@@ -101,4 +102,5 @@
         """
         Private slot to allow cookies of a domain.
         """
+        from .CookieJar import CookieJar
         self.__exceptionsModel.addRule(self.domainEdit.text(), CookieJar.Allow)
--- a/Helpviewer/Download/DownloadItem.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Download/DownloadItem.py	Sun Feb 10 18:31:31 2013 +0100
@@ -16,10 +16,7 @@
 
 from .Ui_DownloadItem import Ui_DownloadItem
 
-import Helpviewer.HelpWindow
-
 from .DownloadUtilities import timeString, dataString
-from .DownloadAskActionDialog import DownloadAskActionDialog
 
 import UI.PixmapCache
 import Preferences
@@ -158,6 +155,7 @@
         if self.__gettingFileName:
             return
         
+        import Helpviewer.HelpWindow
         downloadDirectory = Helpviewer.HelpWindow.HelpWindow\
             .downloadManager().downloadDirectory()
         
@@ -173,6 +171,7 @@
             ask = True
         self.__autoOpen = False
         if not self.__toDownload:
+            from .DownloadAskActionDialog import DownloadAskActionDialog
             url = self.__reply.url()
             dlg = DownloadAskActionDialog(
                 QFileInfo(originalFileName).fileName(),
@@ -324,6 +323,7 @@
         if self.__page:
             nam = self.__page.networkAccessManager()
         else:
+            import Helpviewer.HelpWindow
             nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
         reply = nam.get(QNetworkRequest(self.__url))
         if self.__output.exists():
@@ -446,6 +446,7 @@
         locationHeader = self.__reply.header(QNetworkRequest.LocationHeader)
         if locationHeader and locationHeader.isValid():
             self.__url = QUrl(locationHeader)
+            import Helpviewer.HelpWindow
             self.__reply = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().get(
                            QNetworkRequest(self.__url))
             self.initialize()
--- a/Helpviewer/Download/DownloadManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Download/DownloadManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -13,7 +13,6 @@
 
 from .Ui_DownloadManager import Ui_DownloadManager
 
-from .DownloadItem import DownloadItem
 from .DownloadModel import DownloadModel
 
 import Helpviewer.HelpWindow
@@ -185,6 +184,7 @@
         if size == 0:
             return
         
+        from .DownloadItem import DownloadItem
         itm = DownloadItem(reply=reply, requestFilename=requestFileName,
             webPage=webPage, download=download, parent=self, mainWindow=mainWindow)
         self.__addItem(itm)
@@ -324,6 +324,7 @@
         for download in downloads:
             if not download[0].isEmpty() and \
                download[1] != "":
+                from .DownloadItem import DownloadItem
                 itm = DownloadItem(parent=self)
                 itm.setData(download)
                 self.__addItem(itm)
--- a/Helpviewer/Feeds/FeedsDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Feeds/FeedsDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -16,8 +16,6 @@
 
 import UI.PixmapCache
 
-import Helpviewer.HelpWindow
-
 
 class FeedsDialog(QDialog, Ui_FeedsDialog):
     """
@@ -75,6 +73,7 @@
         else:
             title = self.__browser.url().host()
         
+        import Helpviewer.HelpWindow
         feedsManager = Helpviewer.HelpWindow.HelpWindow.feedsManager()
         if feedsManager.addFeed(urlString, title, self.__browser.icon()):
             if Helpviewer.HelpWindow.HelpWindow.notificationsEnabled():
--- a/Helpviewer/Feeds/FeedsManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Feeds/FeedsManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -16,10 +16,6 @@
 
 from .Ui_FeedsManager import Ui_FeedsManager
 
-from .FeedEditDialog import FeedEditDialog
-
-import Helpviewer.HelpWindow
-
 import Preferences
 import UI.PixmapCache
 
@@ -168,6 +164,7 @@
         if feedToChange:
             feedIndex = self.__feeds.index(feedToChange)
             
+            from .FeedEditDialog import FeedEditDialog
             dlg = FeedEditDialog(origUrlString, origTitle)
             if dlg.exec_() == QDialog.Accepted:
                 urlString, title = dlg.getData()
@@ -250,6 +247,7 @@
         for child in itm.takeChildren():
             del child
         
+        import Helpviewer.HelpWindow
         request = QNetworkRequest(QUrl(urlString))
         reply = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().get(request)
         reply.finished[()].connect(self.__feedLoaded)
--- a/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -17,11 +17,6 @@
 
 from .Ui_GreaseMonkeyAddScriptDialog import Ui_GreaseMonkeyAddScriptDialog
 
-from QScintilla.MiniEditor import MiniEditor
-
-from Helpviewer import HelpUtilities
-import Helpviewer.HelpWindow
-
 import UI.PixmapCache
 
 
@@ -70,9 +65,12 @@
         """
         Private slot to show an editor window with the source code.
         """
+        from Helpviewer import HelpUtilities
+        
         tmpFileName = HelpUtilities.ensureUniqueFilename(
             os.path.join(QDir.tempPath(), "tmp-userscript.js"))
         if QFile.copy(self.__script.fileName(), tmpFileName):
+            from QScintilla.MiniEditor import MiniEditor
             editor = MiniEditor(tmpFileName, "JavaScript", self)
             editor.show()
     
@@ -88,6 +86,7 @@
             msg = self.trUtf8("<p>Cannot install script.</p>")
             success = False
         
+        import Helpviewer.HelpWindow
         if success and Helpviewer.HelpWindow.HelpWindow.notificationsEnabled():
             Helpviewer.HelpWindow.HelpWindow.showNotification(
                 UI.PixmapCache.getPixmap("greaseMonkey48.png"),
--- a/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -14,11 +14,6 @@
 
 from .Ui_GreaseMonkeyConfigurationDialog import Ui_GreaseMonkeyConfigurationDialog
 
-from .GreaseMonkeyConfigurationScriptInfoDialog import \
-    GreaseMonkeyConfigurationScriptInfoDialog
-
-import Helpviewer.HelpWindow
-
 import UI.PixmapCache
 
 
@@ -60,6 +55,7 @@
         """
         Private slot to open the userscript.org web site.
         """
+        import Helpviewer.HelpWindow
         Helpviewer.HelpWindow.HelpWindow.mainWindow().newTab(
             QUrl("http://www.userscript.org"))
         self.close()
@@ -71,6 +67,8 @@
         """
         script = self.__getScript(item)
         if script is not None:
+            from .GreaseMonkeyConfigurationScriptInfoDialog import \
+                GreaseMonkeyConfigurationScriptInfoDialog
             infoDlg = GreaseMonkeyConfigurationScriptInfoDialog(script, self)
             infoDlg.exec_()
     
--- a/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -15,8 +15,6 @@
 
 from ..GreaseMonkeyScript import GreaseMonkeyScript
 
-from QScintilla.MiniEditor import MiniEditor
-
 import UI.PixmapCache
 
 
@@ -57,5 +55,6 @@
         """
         Private slot to show an editor window with the script source code.
         """
+        from QScintilla.MiniEditor import MiniEditor
         editor = MiniEditor(self.__scriptFileName, "JavaScript", self)
         editor.show()
--- a/Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py	Sun Feb 10 18:31:31 2013 +0100
@@ -16,12 +16,8 @@
 from E5Gui import E5MessageBox
 
 import Helpviewer.HelpWindow
-from Helpviewer import HelpUtilities
 from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply
 
-from .GreaseMonkeyScript import GreaseMonkeyScript
-from .GreaseMonkeyAddScriptDialog import GreaseMonkeyAddScriptDialog
-
 
 class GreaseMonkeyDownloader(QObject):
     """
@@ -59,6 +55,7 @@
         
         if self.__reply.error() == QNetworkReply.NoError and \
            "// ==UserScript==" in response:
+            from Helpviewer import HelpUtilities
             filePath = os.path.join(self.__manager.scriptsDirectory(),
                 HelpUtilities.getFileNameFromUrl(self.__reply.url()))
             self.__fileName = HelpUtilities.ensureUniqueFilename(filePath)
@@ -106,6 +103,7 @@
         response = bytes(self.__reply.readAll()).decode()
         
         if self.__reply.error() == QNetworkReply.NoError and response:
+            from Helpviewer import HelpUtilities
             filePath = os.path.join(self.__manager.requireScriptsDirectory(),
                                     "require.js")
             fileName = HelpUtilities.ensureUniqueFilename(filePath, "{0}")
@@ -143,11 +141,13 @@
                 Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
             self.__reply.finished.connect(self.__requireDownloaded)
         else:
+            from .GreaseMonkeyScript import GreaseMonkeyScript
             deleteScript = True
             script = GreaseMonkeyScript(self.__manager, self.__fileName)
             
             if script.isValid():
                 if not self.__manager.containsScript(script.fullName()):
+                    from .GreaseMonkeyAddScriptDialog import GreaseMonkeyAddScriptDialog
                     dlg = GreaseMonkeyAddScriptDialog(self.__manager, script)
                     deleteScript = dlg.exec_() != QDialog.Accepted
                 else:
--- a/Helpviewer/GreaseMonkey/GreaseMonkeyManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -13,15 +13,6 @@
     QByteArray
 from PyQt4.QtNetwork import QNetworkAccessManager
 
-from .GreaseMonkeyJavaScript import bootstrap_js
-from .GreaseMonkeyDownloader import GreaseMonkeyDownloader
-from .GreaseMonkeyScript import GreaseMonkeyScript
-
-from .GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog import \
-    GreaseMonkeyConfigurationDialog
-
-from Helpviewer.Network.EmptyNetworkReply import EmptyNetworkReply
-
 import Utilities
 import Preferences
 
@@ -53,6 +44,8 @@
         
         @param parent reference to the parent widget (QWidget)
         """
+        from .GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog import \
+            GreaseMonkeyConfigurationDialog
         self.__configDiaolg = GreaseMonkeyConfigurationDialog(self, parent)
         self.__configDiaolg.show()
     
@@ -62,6 +55,7 @@
         
         @param request reference to the request (QNetworkRequest)
         """
+        from .GreaseMonkeyDownloader import GreaseMonkeyDownloader
         downloader = GreaseMonkeyDownloader(request, self)
         downloader.finished.connect(self.__downloaderFinished)
         self.__downloaders.append(downloader)
@@ -182,6 +176,7 @@
         if not script:
             return False
         
+        from .GreaseMonkeyScript import GreaseMonkeyScript
         if script.startAt() == GreaseMonkeyScript.DocumentStart:
             self.__startScripts.append(script)
         else:
@@ -200,6 +195,7 @@
         if not script:
             return False
         
+        from .GreaseMonkeyScript import GreaseMonkeyScript
         if script.startAt() == GreaseMonkeyScript.DocumentStart:
             try:
                 self.__startScripts.remove(script)
@@ -242,6 +238,7 @@
         if not self.canRunOnScheme(urlScheme):
             return
         
+        from .GreaseMonkeyJavaScript import bootstrap_js
         for script in self.__startScripts:
             if script.match(urlString):
                 frame.evaluateJavaScript(bootstrap_js + script.script())
@@ -266,6 +263,7 @@
         
         self.__disabledScripts = Preferences.getHelp("GreaseMonkeyDisabledScripts")
         
+        from .GreaseMonkeyScript import GreaseMonkeyScript
         for fileName in scriptsDir.entryList(["*.js"], QDir.Files):
             absolutePath = scriptsDir.absoluteFilePath(fileName)
             script = GreaseMonkeyScript(self, absolutePath)
@@ -301,6 +299,7 @@
             urlString = request.url().toString(QUrl.RemoveFragment | QUrl.RemoveQuery)
             if urlString.endswith(".user.js"):
                 self.downloadScript(request)
+                from Helpviewer.Network.EmptyNetworkReply import EmptyNetworkReply
                 return EmptyNetworkReply(self)
         
         return None
--- a/Helpviewer/HelpBrowserWV.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/HelpBrowserWV.py	Sun Feb 10 18:31:31 2013 +0100
@@ -27,25 +27,12 @@
 import Preferences
 import UI.PixmapCache
 
-from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
-from .Bookmarks.BookmarkNode import BookmarkNode
 try:
     from PyQt4.QtNetwork import QSslCertificate
     from E5Network.E5SslInfoDialog import E5SslInfoDialog
     SSL_AVAILABLE = True
 except ImportError:
     SSL_AVAILABLE = False
-import Helpviewer.HelpWindow
-from .HelpLanguagesDialog import HelpLanguagesDialog
-
-from .Network.NetworkAccessManagerProxy import NetworkAccessManagerProxy
-
-from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
-from .OpenSearch.OpenSearchEngine import OpenSearchEngine
-
-from .WebPlugins.WebPluginFactory import WebPluginFactory
-
-from .AdBlock.AdBlockPage import AdBlockedPageEntry
 
 ##########################################################################################
 
@@ -175,6 +162,8 @@
         self.__lastRequest = None
         self.__lastRequestType = QWebPage.NavigationTypeOther
         
+        import Helpviewer.HelpWindow
+        from .Network.NetworkAccessManagerProxy import NetworkAccessManagerProxy
         self.__proxy = NetworkAccessManagerProxy(self)
         self.__proxy.setWebPage(self)
         self.__proxy.setPrimaryNetworkAccessManager(
@@ -379,6 +368,7 @@
         @param rule AdBlock rule to add (AdBlockRule)
         @param url URL that matched the rule (QUrl)
         """
+        from .AdBlock.AdBlockPage import AdBlockedPageEntry
         entry = AdBlockedPageEntry(rule, url)
         if entry not in self.__adBlockedEntries:
             self.__adBlockedEntries.append(entry)
@@ -427,6 +417,7 @@
         @param url URL to determine user agent for (QUrl)
         @return user agent string (string)
         """
+        import Helpviewer.HelpWindow
         agent = Helpviewer.HelpWindow.HelpWindow.userAgentsManager().userAgentForUrl(url)
         if agent == "":
             # no agent string specified for the given host -> use global one
@@ -469,7 +460,9 @@
            reply.url() == self.mainFrame().url():
             modified = reply.header(QNetworkRequest.LastModifiedHeader)
             if modified and modified.isValid():
+                import Helpviewer.HelpWindow
                 manager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
+                from .Bookmarks.BookmarkNode import BookmarkNode
                 for bookmark in manager.bookmarksForUrl(reply.url()):
                     manager.setTimestamp(bookmark, BookmarkNode.TsModified, modified)
     
@@ -538,6 +531,7 @@
         @return reference to the web plug-in factory instance (WebPluginFactory
         """
         if cls._webPluginFactory is None:
+            from .WebPlugins.WebPluginFactory import WebPluginFactory
             cls._webPluginFactory = WebPluginFactory()
         
         return cls._webPluginFactory
@@ -605,6 +599,7 @@
                 """<p>This window displays the selected help information.</p>"""
         ))
         
+        import Helpviewer.HelpWindow
         self.__speedDial = Helpviewer.HelpWindow.HelpWindow.speedDial()
         
         self.__page = HelpWebPage(self)
@@ -1176,6 +1171,7 @@
         if self.selectedText():
             self.__searchMenu = menu.addMenu(self.trUtf8("Search with..."))
             
+            from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
             engineNames = self.mw.openSearchManager().allEnginesNames()
             for engineName in engineNames:
                 engine = self.mw.openSearchManager().engine(engineName)
@@ -1186,6 +1182,7 @@
             
             menu.addSeparator()
             
+            from .HelpLanguagesDialog import HelpLanguagesDialog
             languages = Preferences.toList(
                 Preferences.Prefs.settings.value("Help/AcceptLanguages",
                     HelpLanguagesDialog.defaultAcceptLanguages()))
@@ -1259,6 +1256,7 @@
         if url.isEmpty():
             return
         
+        from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
         dlg = AddBookmarkDialog()
         dlg.setUrl(bytes(url.toEncoded()).decode())
         dlg.exec_()
@@ -1312,6 +1310,7 @@
         """
         Private slot to add a block rule for an image URL.
         """
+        import Helpviewer.HelpWindow
         act = self.sender()
         url = act.data()
         dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager().showDialog()
@@ -1459,6 +1458,7 @@
         if not ok:
             return
         
+        from .OpenSearch.OpenSearchEngine import OpenSearchEngine
         engine = OpenSearchEngine()
         engine.setName(engineName)
         engine.setDescription(engineName)
@@ -1477,6 +1477,7 @@
         """
         Public slot to bookmark the current page.
         """
+        from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
         dlg = AddBookmarkDialog()
         dlg.setUrl(bytes(self.url().toEncoded()).decode())
         dlg.setTitle(self.title())
--- a/Helpviewer/HelpIndexWidget.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/HelpIndexWidget.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import pyqtSignal, Qt, QUrl, QEvent
 from PyQt4.QtGui import QWidget, QVBoxLayout, QLabel, QLineEdit, QMenu, QDialog
 
-from .HelpTopicDialog import HelpTopicDialog
-
 
 class HelpIndexWidget(QWidget):
     """
@@ -154,6 +152,7 @@
                         if len(links) == 1:
                             self.__mw.newTab(list(links.values())[0])
                         elif len(links) > 1:
+                            from .HelpTopicDialog import HelpTopicDialog
                             dlg = HelpTopicDialog(self, keyword, links)
                             if dlg.exec_() == QDialog.Accepted:
                                 self.__mw.newTab(dlg.link())
@@ -168,6 +167,7 @@
                     if len(links) == 1:
                         self.__mw.newTab(list(links.values())[0])
                     elif len(links) > 1:
+                        from .HelpTopicDialog import HelpTopicDialog
                         dlg = HelpTopicDialog(self, keyword, links)
                         if dlg.exec_() == QDialog.Accepted:
                             self.__mw.newTab(dlg.link())
--- a/Helpviewer/HelpTabBar.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/HelpTabBar.py	Sun Feb 10 18:31:31 2013 +0100
@@ -13,8 +13,6 @@
 from E5Gui.E5TabWidget import E5WheelTabBar
 from E5Gui.E5PassivePopup import E5PassivePopup
 
-from .HelpSnap import renderTabPreview
-
 import Preferences
 
 
@@ -59,6 +57,7 @@
         self.__previewPopup.setFrameShadow(QFrame.Plain)
         self.__previewPopup.setFixedSize(w, h)
         
+        from .HelpSnap import renderTabPreview
         l = QLabel()
         l.setPixmap(renderTabPreview(indexedBrowser.page(), w, h))
         
--- a/Helpviewer/HelpTabWidget.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/HelpTabWidget.py	Sun Feb 10 18:31:31 2013 +0100
@@ -18,15 +18,7 @@
 from E5Gui import E5MessageBox
 from E5Gui.E5Application import e5App
 
-from .HelpTabBar import HelpTabBar
 from .HelpBrowserWV import HelpBrowser
-import Helpviewer
-from .ClosedTabsManager import ClosedTabsManager
-
-from .History.HistoryCompleter import HistoryCompletionModel, HistoryCompleter
-
-from .UrlBar.StackedUrlBar import StackedUrlBar
-from .UrlBar.UrlBar import UrlBar
 
 import UI.PixmapCache
 
@@ -62,6 +54,8 @@
         @param parent reference to the parent widget (QWidget)
         """
         E5TabWidget.__init__(self, parent, dnd=True)
+        
+        from .HelpTabBar import HelpTabBar
         self.__tabBar = HelpTabBar(self)
         self.setCustomTabBar(True, self.__tabBar)
         
@@ -71,9 +65,11 @@
         self.setDocumentMode(True)
         self.setElideMode(Qt.ElideNone)
         
+        from .ClosedTabsManager import ClosedTabsManager
         self.__closedTabsManager = ClosedTabsManager(self)
         self.__closedTabsManager.closedTabAvailable.connect(self.__closedTabAvailable)
         
+        from .UrlBar.StackedUrlBar import StackedUrlBar
         self.__stackedUrlBar = StackedUrlBar(self)
         self.__tabBar.tabMoved.connect(self.__stackedUrlBar.moveBar)
         
@@ -291,8 +287,11 @@
         else:
             linkName = link
         
+        from .UrlBar.UrlBar import UrlBar
         urlbar = UrlBar(self.__mainWindow, self)
         if self.__historyCompleter is None:
+            import Helpviewer.HelpWindow
+            from .History.HistoryCompleter import HistoryCompletionModel, HistoryCompleter
             self.__historyCompletionModel = HistoryCompletionModel(self)
             self.__historyCompletionModel.setSourceModel(
                 Helpviewer.HelpWindow.HelpWindow.historyManager().historyFilterModel())
@@ -703,6 +702,7 @@
             return
         
         if browser is not None:
+            import Helpviewer.HelpWindow
             index = self.indexOf(browser)
             self.resetAnimation(index)
             self.setTabIcon(index, Helpviewer.HelpWindow.HelpWindow.icon(browser.url()))
@@ -720,6 +720,7 @@
         browser = self.sender()
         
         if browser is not None:
+            import Helpviewer.HelpWindow
             self.setTabIcon(self.indexOf(browser),
                 Helpviewer.HelpWindow.HelpWindow.icon(browser.url()))
             Helpviewer.HelpWindow.HelpWindow.bookmarksManager().iconChanged(browser.url())
--- a/Helpviewer/HelpWebSearchWidget.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/HelpWebSearchWidget.py	Sun Feb 10 18:31:31 2013 +0100
@@ -16,11 +16,7 @@
 
 import Preferences
 
-from E5Gui.E5LineEdit import E5LineEdit, E5ClearableLineEdit
-from E5Gui.E5LineEditButton import E5LineEditButton
-
-from .OpenSearch.OpenSearchManager import OpenSearchManager
-from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
+from E5Gui.E5LineEdit import E5ClearableLineEdit
 
 
 class HelpWebSearchWidget(E5ClearableLineEdit):
@@ -39,6 +35,10 @@
         """
         super().__init__(parent)
         
+        from E5Gui.E5LineEdit import E5LineEdit
+        from E5Gui.E5LineEditButton import E5LineEditButton
+        from .OpenSearch.OpenSearchManager import OpenSearchManager
+
         self.__mw = parent
         
         self.__openSearchManager = OpenSearchManager(self)
@@ -219,6 +219,7 @@
         """
         self.__enginesMenu.clear()
         
+        from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
         engineNames = self.__openSearchManager.allEnginesNames()
         for engineName in engineNames:
             engine = self.__openSearchManager.engine(engineName)
--- a/Helpviewer/History/HistoryDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/History/HistoryDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,7 +12,6 @@
 
 from E5Gui.E5TreeSortFilterProxyModel import E5TreeSortFilterProxyModel
 
-import Helpviewer.HelpWindow
 from .HistoryModel import HistoryModel
 
 from .Ui_HistoryDialog import Ui_HistoryDialog
@@ -40,6 +39,7 @@
         
         self.__historyManager = manager
         if self.__historyManager is None:
+            import Helpviewer.HelpWindow
             self.__historyManager = Helpviewer.HelpWindow.HelpWindow.historyManager()
         
         self.__model = self.__historyManager.historyTreeModel()
--- a/Helpviewer/History/HistoryManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/History/HistoryManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -15,10 +15,6 @@
 
 from E5Gui import E5MessageBox
 
-from .HistoryModel import HistoryModel
-from .HistoryFilterModel import HistoryFilterModel
-from .HistoryTreeModel import HistoryTreeModel
-
 from Utilities.AutoSaver import AutoSaver
 import Utilities
 import Preferences
@@ -122,6 +118,10 @@
         
         self.__load()
         
+        from .HistoryModel import HistoryModel
+        from .HistoryFilterModel import HistoryFilterModel
+        from .HistoryTreeModel import HistoryTreeModel
+        
         self.__historyModel = HistoryModel(self, self)
         self.__historyFilterModel = HistoryFilterModel(self.__historyModel, self)
         self.__historyTreeModel = HistoryTreeModel(self.__historyFilterModel, self)
--- a/Helpviewer/History/HistoryMenu.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/History/HistoryMenu.py	Sun Feb 10 18:31:31 2013 +0100
@@ -15,11 +15,7 @@
 from E5Gui.E5ModelMenu import E5ModelMenu
 from E5Gui import E5MessageBox
 
-import Helpviewer.HelpWindow
-
 from .HistoryModel import HistoryModel
-from .HistoryDialog import HistoryDialog
-from .HistoryFilterModel import HistoryFilterModel
 
 import UI.PixmapCache
 
@@ -226,6 +222,7 @@
         @param right index of right item (QModelIndex)
         @return true, if left is less than right (boolean)
         """
+        from .HistoryFilterModel import HistoryFilterModel
         frequency_L = \
             self.sourceModel().data(left, HistoryFilterModel.FrequencyRole)
         dateTime_L = \
@@ -302,6 +299,7 @@
         @return flag indicating if any actions were added (boolean)
         """
         if self.__historyManager is None:
+            import Helpviewer.HelpWindow
             self.__historyManager = Helpviewer.HelpWindow.HelpWindow.historyManager()
             self.__historyMenuModel = \
                 HistoryMenuModel(self.__historyManager.historyTreeModel(), self)
@@ -355,6 +353,7 @@
         """
         Private slot to show the history dialog.
         """
+        from .HistoryDialog import HistoryDialog
         dlg = HistoryDialog(self)
         dlg.setAttribute(Qt.WA_DeleteOnClose)
         dlg.newUrl.connect(self.newUrl)
@@ -378,6 +377,7 @@
         fm = self.__closedTabsMenu.fontMetrics()
         maxWidth = fm.width('m') * 40
         
+        import Helpviewer.HelpWindow
         self.__closedTabsMenu.clear()
         index = 0
         for tab in self.__tabWidget.closedTabsManager().allClosedTabs():
@@ -449,6 +449,7 @@
         @return flag indicating if any actions were added (boolean)
         """
         if self.__historyMenuModel is None:
+            import Helpviewer.HelpWindow
             historyManager = Helpviewer.HelpWindow.HelpWindow.historyManager()
             self.__historyMenuModel = \
                 HistoryMostVisitedMenuModel(historyManager.historyFilterModel(), self)
--- a/Helpviewer/Network/AboutAccessHandler.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Network/AboutAccessHandler.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,8 +9,6 @@
 
 from .SchemeAccessHandler import SchemeAccessHandler
 
-from .NetworkProtocolUnknownErrorReply import NetworkProtocolUnknownErrorReply
-
 
 class AboutAccessHandler(SchemeAccessHandler):
     """
@@ -26,4 +24,5 @@
             (QIODevice)
         @return reference to the created reply object (QNetworkReply)
         """
+        from .NetworkProtocolUnknownErrorReply import NetworkProtocolUnknownErrorReply
         return NetworkProtocolUnknownErrorReply("about", self.parent())
--- a/Helpviewer/Network/EricAccessHandler.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Network/EricAccessHandler.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,11 +11,6 @@
 
 from .SchemeAccessHandler import SchemeAccessHandler
 
-from .NetworkReply import NetworkReply
-from .NetworkProtocolUnknownErrorReply import NetworkProtocolUnknownErrorReply
-
-import Helpviewer.HelpWindow
-
 
 class EricAccessHandler(SchemeAccessHandler):
     """
@@ -34,6 +29,9 @@
             (QIODevice)
         @return reference to the created reply object (QNetworkReply)
         """
+        from .NetworkReply import NetworkReply
+        from .NetworkProtocolUnknownErrorReply import NetworkProtocolUnknownErrorReply
+
         if request.url().toString() == "eric:home":
             return NetworkReply(request, self.__createHomePage(),
                                 "text/html", self.parent())
@@ -100,6 +98,7 @@
             
             self._speedDialPage = html
         
+        import Helpviewer.HelpWindow
         html = QByteArray(self._speedDialPage)
         dial = Helpviewer.HelpWindow.HelpWindow.speedDial()
         
--- a/Helpviewer/Network/FileAccessHandler.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Network/FileAccessHandler.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,7 +11,6 @@
 from PyQt4.QtNetwork import QNetworkAccessManager
 
 from .SchemeAccessHandler import SchemeAccessHandler
-from .FileReply import FileReply
 
 
 class FileAccessHandler(SchemeAccessHandler):
@@ -42,6 +41,7 @@
                not fileInfo.isReadable() or \
                not fileInfo.exists():
                 return None
+            from .FileReply import FileReply
             return FileReply(request.url(), self.parent())
         else:
             return None
--- a/Helpviewer/Network/FtpAccessHandler.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Network/FtpAccessHandler.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,7 +10,6 @@
 from PyQt4.QtNetwork import QNetworkAccessManager
 
 from .SchemeAccessHandler import SchemeAccessHandler
-from .FtpReply import FtpReply
 
 
 class FtpAccessHandler(SchemeAccessHandler):
@@ -39,6 +38,7 @@
         @return reference to the created reply object (QNetworkReply)
         """
         if op == QNetworkAccessManager.GetOperation:
+            from .FtpReply import FtpReply
             return FtpReply(request.url(), self, self.parent())
         else:
             return None
--- a/Helpviewer/Network/FtpReply.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Network/FtpReply.py	Sun Feb 10 18:31:31 2013 +0100
@@ -20,7 +20,6 @@
 
 from E5Network.E5Ftp import E5Ftp, E5FtpProxyError, E5FtpProxyType
 
-from UI.AuthenticationDialog import AuthenticationDialog
 import UI.PixmapCache
 
 from Utilities.FtpUtilities import FtpDirLineParser, FtpDirLineParserError
@@ -270,6 +269,7 @@
                         self.error.emit(QNetworkReply.ProxyConnectionRefusedError)
                         return False, False
                     else:
+                        from UI.AuthenticationDialog import AuthenticationDialog
                         info = self.trUtf8("<b>Connect to proxy '{0}' using:</b>")\
                             .format(Utilities.html_encode(
                                 Preferences.getUI("ProxyHost/Ftp")))
--- a/Helpviewer/Network/NetworkAccessManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Network/NetworkAccessManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -22,22 +22,6 @@
 except ImportError:
     SSL_AVAILABLE = False
 
-from UI.AuthenticationDialog import AuthenticationDialog
-
-from Helpviewer.HelpLanguagesDialog import HelpLanguagesDialog
-import Helpviewer.HelpWindow
-
-from .NetworkProtocolUnknownErrorReply import NetworkProtocolUnknownErrorReply
-from .NetworkDiskCache import NetworkDiskCache
-
-from .QtHelpAccessHandler import QtHelpAccessHandler
-from .EricAccessHandler import EricAccessHandler
-from .AboutAccessHandler import AboutAccessHandler
-from .FtpAccessHandler import FtpAccessHandler
-from .FileAccessHandler import FileAccessHandler
-
-from Helpviewer.AdBlock.AdBlockAccessHandler import AdBlockAccessHandler
-
 import Preferences
 import Utilities
 
@@ -82,11 +66,22 @@
         self.__sendReferer = Preferences.getHelp("SendReferer")
         
         # register scheme handlers
+        from .QtHelpAccessHandler import QtHelpAccessHandler
         self.setSchemeHandler("qthelp", QtHelpAccessHandler(engine, self))
+        
+        from .EricAccessHandler import EricAccessHandler
         self.setSchemeHandler("eric", EricAccessHandler(self))
+        
+        from .AboutAccessHandler import AboutAccessHandler
         self.setSchemeHandler("about", AboutAccessHandler(self))
+        
+        from Helpviewer.AdBlock.AdBlockAccessHandler import AdBlockAccessHandler
         self.setSchemeHandler("abp", AdBlockAccessHandler(self))
+        
+        from .FtpAccessHandler import FtpAccessHandler
         self.setSchemeHandler("ftp", FtpAccessHandler(self))
+        
+        from .FileAccessHandler import FileAccessHandler
         self.setSchemeHandler("file", FileAccessHandler(self))
     
     def setSchemeHandler(self, scheme, handler):
@@ -110,8 +105,11 @@
         """
         scheme = request.url().scheme()
         if scheme == "https" and (not SSL_AVAILABLE or not QSslSocket.supportsSsl()):
+            from .NetworkProtocolUnknownErrorReply import NetworkProtocolUnknownErrorReply
             return NetworkProtocolUnknownErrorReply(scheme, self)
         
+        import Helpviewer.HelpWindow
+        
         if op == QNetworkAccessManager.PostOperation and outgoingData is not None:
             outgoingDataByteArray = outgoingData.peek(1024 * 1024)
             Helpviewer.HelpWindow.HelpWindow.passwordManager().post(
@@ -189,6 +187,9 @@
             info = self.trUtf8("<b>Enter username and password for '{0}'</b>")\
                 .format(urlRoot)
         
+        from UI.AuthenticationDialog import AuthenticationDialog
+        import Helpviewer.HelpWindow
+        
         dlg = AuthenticationDialog(info, auth.user(),
                                    Preferences.getUser("SavePasswords"),
                                    Preferences.getUser("SavePasswords"))
@@ -219,6 +220,7 @@
         """
         Public slot to (re-)load the list of accepted languages.
         """
+        from Helpviewer.HelpLanguagesDialog import HelpLanguagesDialog
         languages = Preferences.toList(
             Preferences.Prefs.settings.value("Help/AcceptLanguages",
                 HelpLanguagesDialog.defaultAcceptLanguages()))
@@ -228,13 +230,13 @@
         """
         Private method to set the disk cache.
         """
-        if NetworkDiskCache is not None:
-            if Preferences.getHelp("DiskCacheEnabled"):
-                diskCache = NetworkDiskCache(self)
-                location = os.path.join(Utilities.getConfigDir(), "browser", 'cache')
-                size = Preferences.getHelp("DiskCacheSize") * 1024 * 1024
-                diskCache.setCacheDirectory(location)
-                diskCache.setMaximumCacheSize(size)
-            else:
-                diskCache = None
-            self.setCache(diskCache)
+        if Preferences.getHelp("DiskCacheEnabled"):
+            from .NetworkDiskCache import NetworkDiskCache
+            diskCache = NetworkDiskCache(self)
+            location = os.path.join(Utilities.getConfigDir(), "browser", 'cache')
+            size = Preferences.getHelp("DiskCacheSize") * 1024 * 1024
+            diskCache.setCacheDirectory(location)
+            diskCache.setMaximumCacheSize(size)
+        else:
+            diskCache = None
+        self.setCache(diskCache)
--- a/Helpviewer/OfflineStorage/OfflineStorageConfigDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/OfflineStorage/OfflineStorageConfigDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -11,7 +11,6 @@
 from PyQt4.QtGui import QDialog
 from PyQt4.QtWebKit import QWebSettings
 
-from .WebDatabasesDialog import WebDatabasesDialog
 from .Ui_OfflineStorageConfigDialog import Ui_OfflineStorageConfigDialog
 
 import Preferences
@@ -91,5 +90,6 @@
         """
         Private slot to show a dialog with all databases.
         """
+        from .WebDatabasesDialog import WebDatabasesDialog
         dlg = WebDatabasesDialog(self)
         dlg.exec_()
--- a/Helpviewer/OpenSearch/OpenSearchDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/OpenSearch/OpenSearchDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -13,7 +13,6 @@
 from E5Gui import E5MessageBox, E5FileDialog
 
 from .OpenSearchEngineModel import OpenSearchEngineModel
-from .OpenSearchEditDialog import OpenSearchEditDialog
 
 from .Ui_OpenSearchDialog import Ui_OpenSearchDialog
 
@@ -89,6 +88,8 @@
         """
         Private slot to edit the data of the current search engine.
         """
+        from .OpenSearchEditDialog import OpenSearchEditDialog
+        
         rows = self.enginesTable.selectionModel().selectedRows()
         if len(rows) == 0:
             row = self.enginesTable.selectionModel().currentIndex().row()
--- a/Helpviewer/OpenSearch/OpenSearchEngineAction.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/OpenSearch/OpenSearchEngineAction.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import QUrl
 from PyQt4.QtGui import QPixmap, QIcon, QAction
 
-import Helpviewer.HelpWindow
-
 
 class OpenSearchEngineAction(QAction):
     """
@@ -28,6 +26,7 @@
         
         self.__engine = engine
         if self.__engine.networkAccessManager() is None:
+            import Helpviewer.HelpWindow
             self.__engine.setNetworkAccessManager(
                 Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
         
@@ -42,6 +41,7 @@
         """
         image = self.__engine.image()
         if image.isNull():
+            import Helpviewer.HelpWindow
             self.setIcon(
                 Helpviewer.HelpWindow.HelpWindow.icon(QUrl(self.__engine.imageUrl())))
         else:
--- a/Helpviewer/OpenSearch/OpenSearchManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/OpenSearch/OpenSearchManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -13,11 +13,6 @@
     QBuffer
 from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply
 
-from .OpenSearchDefaultEngines import OpenSearchDefaultEngines
-from .OpenSearchEngine import OpenSearchEngine
-from .OpenSearchReader import OpenSearchReader
-from .OpenSearchWriter import OpenSearchWriter
-
 from E5Gui.E5Application import e5App
 from E5Gui import E5MessageBox
 
@@ -155,6 +150,7 @@
             or reference to an engine object (OpenSearchEngine)
         @return flag indicating success (boolean)
         """
+        from .OpenSearchEngine import OpenSearchEngine
         if isinstance(engine, QUrl):
             return self.__addEngineByUrl(engine)
         elif isinstance(engine, OpenSearchEngine):
@@ -192,6 +188,7 @@
         if not file_.open(QIODevice.ReadOnly):
             return False
         
+        from .OpenSearchReader import OpenSearchReader
         reader = OpenSearchReader()
         engine = reader.read(file_)
         
@@ -281,6 +278,7 @@
             return
         dir.setPath(dirName)
         
+        from .OpenSearchWriter import OpenSearchWriter
         writer = OpenSearchWriter()
         
         for engine in list(self.__engines.values()):
@@ -354,6 +352,9 @@
         """
         Public method to restore the default search engines.
         """
+        from .OpenSearchDefaultEngines import OpenSearchDefaultEngines
+        from .OpenSearchReader import OpenSearchReader
+        
         reader = OpenSearchReader()
         for engine in OpenSearchDefaultEngines:
             engineDescription = QByteArray(OpenSearchDefaultEngines[engine])
@@ -408,6 +409,7 @@
                 self.__replies.remove(reply)
             return
         
+        from .OpenSearchReader import OpenSearchReader
         reader = OpenSearchReader()
         engine = reader.read(reply)
         
--- a/Helpviewer/OpenSearch/OpenSearchReader.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/OpenSearch/OpenSearchReader.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,8 +9,6 @@
 
 from PyQt4.QtCore import QXmlStreamReader, QIODevice, QCoreApplication
 
-from .OpenSearchEngine import OpenSearchEngine
-
 
 class OpenSearchReader(QXmlStreamReader):
     """
@@ -37,6 +35,7 @@
         
         @return search engine object (OpenSearchEngine)
         """
+        from .OpenSearchEngine import OpenSearchEngine
         engine = OpenSearchEngine()
         
         while not self.isStartElement() and not self.atEnd():
--- a/Helpviewer/Passwords/PasswordManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Passwords/PasswordManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -17,12 +17,6 @@
 
 from E5Gui import E5MessageBox
 
-from Helpviewer.JavaScriptResources import parseForms_js
-
-from .LoginForm import LoginForm
-from .PasswordWriter import PasswordWriter
-from .PasswordReader import PasswordReader
-
 from Utilities.AutoSaver import AutoSaver
 import Utilities
 import Utilities.crypto
@@ -137,6 +131,7 @@
         if not self.__loaded:
             return
         
+        from .PasswordWriter import PasswordWriter
         loginFile = self.getFileName()
         writer = PasswordWriter()
         if not writer.write(loginFile, self.__logins, self.__loginForms, self.__never):
@@ -155,6 +150,7 @@
         if not os.path.exists(loginFile):
             self.__loadNonXml(os.path.splitext(loginFile)[0])
         else:
+            from .PasswordReader import PasswordReader
             reader = PasswordReader()
             self.__logins, self.__loginForms, self.__never = reader.read(loginFile)
             if reader.error() != QXmlStreamReader.NoError:
@@ -220,6 +216,7 @@
                     if line != self.SEPARATOR:
                         data.append(line)
                     else:
+                        from .LoginForm import LoginForm
                         key = data[0]
                         form = LoginForm()
                         form.url = QUrl(data[1])
@@ -430,6 +427,7 @@
             None for urlencoded data
         @return parsed form (LoginForm)
         """
+        from .LoginForm import LoginForm
         form = LoginForm()
         if boundary is not None:
             args = self.__extractMultipartQueryItems(data, boundary)
@@ -444,6 +442,7 @@
                 args.add((key, value))
         
         # extract the forms
+        from Helpviewer.JavaScriptResources import parseForms_js
         lst = webPage.mainFrame().evaluateJavaScript(parseForms_js)
         for map in lst:
             formHasPasswords = False
--- a/Helpviewer/Passwords/PasswordReader.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Passwords/PasswordReader.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,8 +9,6 @@
 
 from PyQt4.QtCore import QXmlStreamReader, QIODevice, QFile, QCoreApplication, QUrl
 
-from .LoginForm import LoginForm
-
 
 class PasswordReader(QXmlStreamReader):
     """
@@ -115,6 +113,7 @@
             self.readNext()
             if self.isStartElement():
                 if self.name() == "Form":
+                    from .LoginForm import LoginForm
                     attributes = self.attributes()
                     key = attributes.value("key")
                     form = LoginForm()
--- a/Helpviewer/Passwords/PasswordsDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Passwords/PasswordsDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,10 +12,6 @@
 
 from E5Gui import E5MessageBox
 
-import Helpviewer.HelpWindow
-
-from .PasswordModel import PasswordModel
-
 from .Ui_PasswordsDialog import Ui_PasswordsDialog
 
 
@@ -39,6 +35,9 @@
         self.removeButton.clicked[()].connect(self.passwordsTable.removeSelected)
         self.removeAllButton.clicked[()].connect(self.passwordsTable.removeAll)
         
+        import Helpviewer.HelpWindow
+        from .PasswordModel import PasswordModel
+        
         self.passwordsTable.verticalHeader().hide()
         self.__passwordModel = \
             PasswordModel(Helpviewer.HelpWindow.HelpWindow.passwordManager(), self)
--- a/Helpviewer/PersonalInformationManager/PersonalInformationManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/PersonalInformationManager/PersonalInformationManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import Qt, QObject
 from PyQt4.QtGui import QDialog, QMenu
 
-from .PersonalDataDialog import PersonalDataDialog
-
 import Preferences
 import UI.PixmapCache
 
@@ -112,6 +110,7 @@
         """
         Public method to show the configuration dialog.
         """
+        from .PersonalDataDialog import PersonalDataDialog
         dlg = PersonalDataDialog()
         if dlg.exec_() == QDialog.Accepted:
             dlg.storeData()
--- a/Helpviewer/SiteInfo/SiteInfoDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/SiteInfo/SiteInfoDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -25,8 +25,6 @@
 
 from ..Download.DownloadUtilities import dataString
 
-import Helpviewer.HelpWindow
-
 import UI.PixmapCache
 
 
@@ -168,6 +166,7 @@
             imageUrl.setHost(QUrl(self.siteAddressLabel.text()).host())
             imageUrl.setScheme(QUrl(self.siteAddressLabel.text()).scheme())
         
+        import Helpviewer.HelpWindow
         cache = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().cache()
         if cache:
             cacheData = cache.data(imageUrl)
@@ -232,6 +231,7 @@
             imageUrl.setHost(QUrl(self.siteAddressLabel.text()).host())
             imageUrl.setScheme(QUrl(self.siteAddressLabel.text()).scheme())
         
+        import Helpviewer.HelpWindow
         cache = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().cache()
         if cache:
             cacheData = cache.data(imageUrl)
--- a/Helpviewer/SpeedDial/PageThumbnailer.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/SpeedDial/PageThumbnailer.py	Sun Feb 10 18:31:31 2013 +0100
@@ -13,8 +13,6 @@
 
 from ..Network.NetworkAccessManagerProxy import NetworkAccessManagerProxy
 
-import Helpviewer.HelpWindow
-
 
 class PageThumbnailer(QObject):
     """
@@ -39,6 +37,7 @@
         self.__url = QUrl()
         
         self.__proxy = NetworkAccessManagerProxy(self)
+        import Helpviewer.HelpWindow
         self.__proxy.setPrimaryNetworkAccessManager(
             Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
         self.__page.setNetworkAccessManager(self.__proxy)
--- a/Helpviewer/SpeedDial/SpeedDial.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/SpeedDial/SpeedDial.py	Sun Feb 10 18:31:31 2013 +0100
@@ -15,11 +15,6 @@
 
 from E5Gui import E5MessageBox
 
-from .Page import Page
-from .PageThumbnailer import PageThumbnailer
-from .SpeedDialReader import SpeedDialReader
-from .SpeedDialWriter import SpeedDialWriter
-
 from Utilities.AutoSaver import AutoSaver
 import Utilities
 
@@ -78,6 +73,7 @@
         if url.isEmpty():
             return
         
+        from .Page import Page
         page = Page(url.toString(), title)
         self.__webPages.append(page)
         
@@ -172,6 +168,7 @@
         
         speedDialFile = self.getFileName()
         if os.path.exists(speedDialFile):
+            from .SpeedDialReader import SpeedDialReader
             reader = SpeedDialReader()
             allPages, pagesPerRow, speedDialSize = reader.read(speedDialFile)
         
@@ -195,6 +192,7 @@
         """
         Public method to save the speed dial configuration.
         """
+        from .SpeedDialWriter import SpeedDialWriter
         speedDialFile = self.getFileName()
         writer = SpeedDialWriter()
         if not writer.write(speedDialFile,
@@ -224,6 +222,7 @@
             if page.url == urlString:
                 return page
         
+        from .Page import Page
         return Page()
     
     def urlForShortcut(self, key):
@@ -251,6 +250,7 @@
         entries = allPages.split('";')
         self.__webPages = []
         
+        from .Page import Page
         for entry in entries:
             if not entry:
                 continue
@@ -281,6 +281,7 @@
         if not url:
             return
         
+        from .PageThumbnailer import PageThumbnailer
         thumbnailer = PageThumbnailer(self)
         thumbnailer.setUrl(QUrl.fromEncoded(url.encode("utf-8")))
         thumbnailer.setLoadTitle(loadTitle)
@@ -352,6 +353,7 @@
         
         @param image thumbnail image (QPixmap)
         """
+        from .PageThumbnailer import PageThumbnailer
         thumbnailer = self.sender()
         if not isinstance(thumbnailer, PageThumbnailer) or \
            thumbnailer not in self.__thumbnailers:
--- a/Helpviewer/SpeedDial/SpeedDialReader.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/SpeedDial/SpeedDialReader.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 
 from PyQt4.QtCore import QXmlStreamReader, QIODevice, QFile, QCoreApplication
 
-from .Page import Page
-
 
 class SpeedDialReader(QXmlStreamReader):
     """
@@ -90,6 +88,7 @@
                     if url:
                         if not title:
                             title = url
+                        from .Page import Page
                         page = Page(url, title)
                         self.__pages.append(page)
                 else:
--- a/Helpviewer/Sync/SyncAssistantDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Sync/SyncAssistantDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,15 +9,6 @@
 
 from PyQt4.QtGui import QWizard
 
-from .SyncDataPage import SyncDataPage
-from .SyncEncryptionPage import SyncEncryptionPage
-from .SyncHostTypePage import SyncHostTypePage
-from .SyncFtpSettingsPage import SyncFtpSettingsPage
-from .SyncDirectorySettingsPage import SyncDirectorySettingsPage
-from .SyncCheckPage import SyncCheckPage
-
-from . import SyncGlobals
-
 import UI.PixmapCache
 import Globals
 
@@ -34,6 +25,15 @@
         """
         super().__init__(parent)
         
+        from . import SyncGlobals
+
+        from .SyncDataPage import SyncDataPage
+        from .SyncEncryptionPage import SyncEncryptionPage
+        from .SyncHostTypePage import SyncHostTypePage
+        from .SyncFtpSettingsPage import SyncFtpSettingsPage
+        from .SyncDirectorySettingsPage import SyncDirectorySettingsPage
+        from .SyncCheckPage import SyncCheckPage
+
         self.setPage(SyncGlobals.PageData, SyncDataPage(self))
         self.setPage(SyncGlobals.PageEncryption, SyncEncryptionPage(self))
         self.setPage(SyncGlobals.PageType, SyncHostTypePage(self))
--- a/Helpviewer/Sync/SyncCheckPage.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Sync/SyncCheckPage.py	Sun Feb 10 18:31:31 2013 +0100
@@ -19,8 +19,6 @@
 import Preferences
 import UI.PixmapCache
 
-import Helpviewer.HelpWindow
-
 from eric5config import getConfig
 
 
@@ -45,6 +43,7 @@
         
         forceUpload = self.field("ReencryptData")
         
+        import Helpviewer.HelpWindow
         syncMgr = Helpviewer.HelpWindow.HelpWindow.syncManager()
         syncMgr.syncError.connect(self.__syncError)
         syncMgr.syncStatus.connect(self.__updateMessages)
--- a/Helpviewer/Sync/SyncDataPage.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Sync/SyncDataPage.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,8 +9,6 @@
 
 from PyQt4.QtGui import QWizardPage
 
-from . import SyncGlobals
-
 from .Ui_SyncDataPage import Ui_SyncDataPage
 
 import Preferences
@@ -52,6 +50,7 @@
         Preferences.setHelp("SyncUserAgents", self.userAgentsCheckBox.isChecked())
         Preferences.setHelp("SyncSpeedDial", self.speedDialCheckBox.isChecked())
         
+        from . import SyncGlobals
         if self.activeCheckBox.isChecked():
             return SyncGlobals.PageEncryption
         else:
--- a/Helpviewer/Sync/SyncDirectorySettingsPage.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Sync/SyncDirectorySettingsPage.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,8 +12,6 @@
 
 from E5Gui import E5FileDialog
 
-from . import SyncGlobals
-
 from .Ui_SyncDirectorySettingsPage import Ui_SyncDirectorySettingsPage
 
 import Preferences
@@ -47,6 +45,7 @@
         Preferences.setHelp("SyncDirectoryPath",
             Utilities.toNativeSeparators(self.directoryEdit.text()))
         
+        from . import SyncGlobals
         return SyncGlobals.PageCheck
     
     def isComplete(self):
--- a/Helpviewer/Sync/SyncEncryptionPage.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Sync/SyncEncryptionPage.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import pyqtSlot
 from PyQt4.QtGui import QWizardPage
 
-from . import SyncGlobals
-
 from .Ui_SyncEncryptionPage import Ui_SyncEncryptionPage
 
 import Preferences
@@ -57,6 +55,7 @@
         Preferences.setHelp("SyncEncryptPasswordsOnly",
             self.loginsOnlyCheckBox.isChecked())
         
+        from . import SyncGlobals
         return SyncGlobals.PageType
     
     def isComplete(self):
--- a/Helpviewer/Sync/SyncFtpSettingsPage.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Sync/SyncFtpSettingsPage.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,8 +9,6 @@
 
 from PyQt4.QtGui import QWizardPage
 
-from . import SyncGlobals
-
 from .Ui_SyncFtpSettingsPage import Ui_SyncFtpSettingsPage
 
 import Preferences
@@ -55,6 +53,7 @@
         Preferences.setHelp("SyncFtpPort", self.portSpinBox.value())
         Preferences.setHelp("SyncFtpIdleTimeout", self.idleSpinBox.value())
         
+        from . import SyncGlobals
         return SyncGlobals.PageCheck
     
     def isComplete(self):
--- a/Helpviewer/Sync/SyncManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/Sync/SyncManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,11 +9,6 @@
 
 from PyQt4.QtCore import QObject, pyqtSignal
 
-from .FtpSyncHandler import FtpSyncHandler
-from .DirectorySyncHandler import DirectorySyncHandler
-from .SyncAssistantDialog import SyncAssistantDialog
-from . import SyncGlobals
-
 import Preferences
 
 import Helpviewer.HelpWindow
@@ -61,6 +56,7 @@
         """
         Public method to show the synchronization dialog.
         """
+        from .SyncAssistantDialog import SyncAssistantDialog
         dlg = SyncAssistantDialog()
         dlg.exec_()
     
@@ -78,9 +74,12 @@
             self.__handler.shutdown()
         
         if self.syncEnabled():
+            from . import SyncGlobals
             if Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeFtp:
+                from .FtpSyncHandler import FtpSyncHandler
                 self.__handler = FtpSyncHandler(self)
             elif Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeDirectory:
+                from .DirectorySyncHandler import DirectorySyncHandler
                 self.__handler = DirectorySyncHandler(self)
             self.__handler.syncError.connect(self.__syncError)
             self.__handler.syncFinished.connect(self.__syncFinished)
@@ -178,6 +177,7 @@
         
         @return flag indicating enabled synchronization
         """
+        from . import SyncGlobals
         return Preferences.getHelp("SyncEnabled") and \
                Preferences.getHelp("SyncType") != SyncGlobals.SyncTypeNone
     
--- a/Helpviewer/UrlBar/BookmarkActionSelectionDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/UrlBar/BookmarkActionSelectionDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,8 +12,6 @@
 
 from .Ui_BookmarkActionSelectionDialog import Ui_BookmarkActionSelectionDialog
 
-import Helpviewer.HelpWindow
-
 import UI.PixmapCache
 
 
@@ -41,6 +39,8 @@
         
         self.icon.setPixmap(UI.PixmapCache.getPixmap("bookmark32.png"))
         
+        import Helpviewer.HelpWindow
+        
         if Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
            .bookmarkForUrl(url) is None:
             self.__bmAction = self.AddBookmark
--- a/Helpviewer/UrlBar/BookmarkInfoDialog.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/UrlBar/BookmarkInfoDialog.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,8 +12,6 @@
 
 from .Ui_BookmarkInfoDialog import Ui_BookmarkInfoDialog
 
-import Helpviewer.HelpWindow
-
 import UI.PixmapCache
 
 
@@ -50,6 +48,7 @@
         """
         Private slot to remove the current bookmark.
         """
+        import Helpviewer.HelpWindow
         Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
             .removeBookmark(self.__bookmark)
         self.close()
@@ -60,6 +59,7 @@
         """
         if self.__bookmark is not None and \
            self.titleEdit.text() != self.__bookmark.title:
+            import Helpviewer.HelpWindow
             Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
                 .setTitle(self.__bookmark, self.titleEdit.text())
         self.close()
--- a/Helpviewer/UrlBar/FavIconLabel.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/UrlBar/FavIconLabel.py	Sun Feb 10 18:31:31 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import Qt, QPoint, QUrl, QMimeData
 from PyQt4.QtGui import QLabel, QApplication, QDrag, QPixmap
 
-import Helpviewer.HelpWindow
-
 
 class FavIconLabel(QLabel):
     """
@@ -39,6 +37,7 @@
         """
         Private slot to set the icon.
         """
+        import Helpviewer.HelpWindow
         try:
             url = QUrl()
             if self.__browser:
--- a/Helpviewer/UrlBar/UrlBar.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/UrlBar/UrlBar.py	Sun Feb 10 18:31:31 2013 +0100
@@ -22,11 +22,6 @@
 
 from .FavIconLabel import FavIconLabel
 from .SslLabel import SslLabel
-from .BookmarkInfoDialog import BookmarkInfoDialog
-from .BookmarkActionSelectionDialog import BookmarkActionSelectionDialog
-
-from Helpviewer.Feeds.FeedsDialog import FeedsDialog
-from Helpviewer.Bookmarks.BookmarkNode import BookmarkNode
 
 import UI.PixmapCache
 import Preferences
@@ -149,6 +144,7 @@
         if manager.bookmarkForUrl(self.__browser.url()) is not None:
             self.__bookmarkButton.setIcon(self.__bmActiveIcon)
             bookmarks = manager.bookmarksForUrl(self.__browser.url())
+            from Helpviewer.Bookmarks.BookmarkNode import BookmarkNode
             for bookmark in bookmarks:
                 manager.setTimestamp(bookmark, BookmarkNode.TsVisited,
                                      QDateTime.currentDateTime())
@@ -242,6 +238,7 @@
         """
         Private slot to show a dialog with some bookmark info.
         """
+        from .BookmarkActionSelectionDialog import BookmarkActionSelectionDialog
         url = self.__browser.url()
         dlg = BookmarkActionSelectionDialog(url)
         if dlg.exec_() == QDialog.Accepted:
@@ -251,6 +248,7 @@
             elif action == BookmarkActionSelectionDialog.EditBookmark:
                 bookmark = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
                    .bookmarkForUrl(url)
+                from .BookmarkInfoDialog import BookmarkInfoDialog
                 dlg = BookmarkInfoDialog(bookmark, self.__browser)
                 dlg.exec_()
             elif action == BookmarkActionSelectionDialog.AddSpeeddial:
@@ -427,6 +425,7 @@
         """
         Private slot to handle clicking the RSS icon.
         """
+        from Helpviewer.Feeds.FeedsDialog import FeedsDialog
         feeds = self.__browser.getRSS()
         dlg = FeedsDialog(feeds, self.__browser)
         dlg.exec_()
--- a/Helpviewer/UserAgent/UserAgentManager.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/UserAgent/UserAgentManager.py	Sun Feb 10 18:31:31 2013 +0100
@@ -13,9 +13,6 @@
 
 from E5Gui import E5MessageBox
 
-from .UserAgentWriter import UserAgentWriter
-from .UserAgentReader import UserAgentReader
-
 from Utilities.AutoSaver import AutoSaver
 import Utilities
 
@@ -59,6 +56,7 @@
         if not self.__loaded:
             return
         
+        from .UserAgentWriter import UserAgentWriter
         agentFile = self.getFileName()
         writer = UserAgentWriter()
         if not writer.write(agentFile, self.__agents):
@@ -77,6 +75,7 @@
         if not os.path.exists(agentFile):
             self.__loadNonXml(os.path.splitext(agentFile)[0])
         else:
+            from .UserAgentReader import UserAgentReader
             reader = UserAgentReader()
             self.__agents = reader.read(agentFile)
             if reader.error() != QXmlStreamReader.NoError:
--- a/Helpviewer/UserAgent/UserAgentMenu.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/UserAgent/UserAgentMenu.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,11 +12,6 @@
 
 from E5Gui import E5MessageBox
 
-from .UserAgentDefaults import UserAgentDefaults
-
-from Helpviewer.HelpBrowserWV import HelpWebPage
-import Helpviewer.HelpWindow
-
 
 class UserAgentMenu(QMenu):
     """
@@ -36,6 +31,7 @@
         self.__url = url
         if self.__url:
             if self.__url.isValid():
+                import Helpviewer.HelpWindow
                 self.__manager = Helpviewer.HelpWindow.HelpWindow.userAgentsManager()
             else:
                 self.__url = None
@@ -59,6 +55,7 @@
             self.__defaultUserAgent.setChecked(
                 self.__manager.userAgentForUrl(self.__url) == "")
         else:
+            from Helpviewer.HelpBrowserWV import HelpWebPage
             self.__defaultUserAgent.setChecked(HelpWebPage().userAgent() == "")
         self.addAction(self.__defaultUserAgent)
         self.__actionGroup.addAction(self.__defaultUserAgent)
@@ -84,12 +81,14 @@
         if self.__url:
             self.__manager.removeUserAgent(self.__url.host())
         else:
+            from Helpviewer.HelpBrowserWV import HelpWebPage
             HelpWebPage().setUserAgent("")
     
     def __switchToOtherUserAgent(self):
         """
         Private slot to set a custom user agent string.
         """
+        from Helpviewer.HelpBrowserWV import HelpWebPage
         userAgent, ok = QInputDialog.getText(
             self,
             self.trUtf8("Custom user agent"),
@@ -110,6 +109,7 @@
         if self.__url:
             self.__manager.setUserAgentForUrl(self.__url, act.data())
         else:
+            from Helpviewer.HelpBrowserWV import HelpWebPage
             HelpWebPage().setUserAgent(act.data())
     
     def __addDefaultActions(self):
@@ -118,6 +118,7 @@
         
         @return flag indicating that a user agent entry is checked (boolean)
         """
+        from .UserAgentDefaults import UserAgentDefaults
         menuStack = []
         isChecked = False
         defaultUserAgents = QByteArray(UserAgentDefaults)
@@ -125,6 +126,7 @@
         if self.__url:
             currentUserAgentString = self.__manager.userAgentForUrl(self.__url)
         else:
+            from Helpviewer.HelpBrowserWV import HelpWebPage
             currentUserAgentString = HelpWebPage().userAgent()
         xml = QXmlStreamReader(defaultUserAgents)
         while not xml.atEnd():
--- a/Helpviewer/VirusTotalApi.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/VirusTotalApi.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,8 +12,6 @@
 from PyQt4.QtCore import QObject, QUrl, QByteArray, pyqtSignal
 from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply, QNetworkAccessManager
 
-import Helpviewer.HelpWindow
-
 import Preferences
 
 
@@ -106,6 +104,7 @@
         params = QByteArray("key={0}&resource={1}".format(
             key, self.TestServiceKeyScanID))
         
+        import Helpviewer.HelpWindow
         nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
         reply = nam.post(request, params)
         reply.finished.connect(self.__checkServiceKeyValidityFinished)
@@ -143,6 +142,7 @@
             "key={0}&url=".format(Preferences.getHelp("VirusTotalServiceKey")))\
             .append(QUrl.toPercentEncoding(url.toString()))
         
+        import Helpviewer.HelpWindow
         nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
         reply = nam.post(request, params)
         reply.finished.connect(self.__submitUrlFinished)
@@ -178,6 +178,7 @@
         params = QByteArray("key={0}&resource={1}".format(
             Preferences.getHelp("VirusTotalServiceKey"), scanId))
         
+        import Helpviewer.HelpWindow
         nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
         reply = nam.post(request, params)
         reply.finished.connect(self.__getFileScanReportUrlFinished)
--- a/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.py	Sun Feb 10 18:31:31 2013 +0100
@@ -17,8 +17,6 @@
 
 import UI.PixmapCache
 
-import Helpviewer.HelpWindow
-
 
 class ClickToFlash(QWidget, Ui_ClickToFlash):
     """
@@ -42,6 +40,7 @@
         super().__init__(parent)
         
         # Check AdBlock first
+        import Helpviewer.HelpWindow
         manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         if manager.isEnabled():
             urlString = bytes(url.toEncoded()).decode()
--- a/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashPlugin.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashPlugin.py	Sun Feb 10 18:31:31 2013 +0100
@@ -12,9 +12,6 @@
 
 from ..WebPluginInterface import WebPluginInterface
 
-from .ClickToFlash import ClickToFlash
-from .ClickToFlashWhitelistDialog import ClickToFlashWhitelistDialog
-
 import Preferences
 
 
@@ -116,6 +113,8 @@
         if self.onWhitelist(url.host()):
             return None
         
+        from .ClickToFlash import ClickToFlash
+        
         if ClickToFlash.isAlreadyAccepted(url, argumentNames, argumentValues):
             return None
         
@@ -126,6 +125,7 @@
         """
         Public method to configure the plug-in.
         """
+        from .ClickToFlashWhitelistDialog import ClickToFlashWhitelistDialog
         self.__load()
         dlg = ClickToFlashWhitelistDialog(self.__whitelist)
         if dlg.exec_() == QDialog.Accepted:
--- a/Helpviewer/WebPlugins/WebPluginFactory.py	Sun Feb 10 15:26:21 2013 +0100
+++ b/Helpviewer/WebPlugins/WebPluginFactory.py	Sun Feb 10 18:31:31 2013 +0100
@@ -9,8 +9,6 @@
 
 from PyQt4.QtWebKit import QWebPluginFactory
 
-from .ClickToFlash.ClickToFlashPlugin import ClickToFlashPlugin
-
 
 class WebPluginFactory(QWebPluginFactory):
     """
@@ -77,6 +75,7 @@
         self.__plugins = {}
         self.__pluginsCache = {}
         
+        from .ClickToFlash.ClickToFlashPlugin import ClickToFlashPlugin
         self.__plugins["ClickToFlash"] = ClickToFlashPlugin()
         
         for plugin in self.__plugins.values():

eric ide

mercurial