예제 #1
0
 def __init__(self, engine, parent=None):
     """
     Constructor
     
     @param engine reference to the help engine (QHelpEngine)
     @param parent reference to the parent object (QObject)
     """
     super(NetworkManager, self).__init__(parent)
     
     from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory
     
     self.__proxyFactory = E5NetworkProxyFactory()
     if Preferences.getUI("UseSystemProxy"):
         QNetworkProxyFactory.setUseSystemConfiguration(True)
     else:
         QNetworkProxyFactory.setApplicationProxyFactory(
             self.__proxyFactory)
         QNetworkProxyFactory.setUseSystemConfiguration(False)
     
     self.languagesChanged()
     
     if SSL_AVAILABLE:
         self.__sslErrorHandler = E5SslErrorHandler(self)
         self.sslErrors.connect(self.__sslErrorHandler.sslErrorsReplySlot)
     
     self.__temporarilyIgnoredSslErrors = {}
     self.__permanentlyIgnoredSslErrors = {}
     # dictionaries of permanently and temporarily ignored SSL errors
     
     self.__loaded = False
     self.__saveTimer = AutoSaver(self, self.__save)
     
     self.changed.connect(self.__saveTimer.changeOccurred)
     self.proxyAuthenticationRequired.connect(proxyAuthenticationRequired)
     self.authenticationRequired.connect(
         lambda reply, auth: self.authentication(reply.url(), auth))
     
     from .EricSchemeHandler import EricSchemeHandler
     self.__ericSchemeHandler = EricSchemeHandler()
     WebBrowserWindow.webProfile().installUrlSchemeHandler(
         QByteArray(b"eric"), self.__ericSchemeHandler)
     
     if engine:
         from .QtHelpSchemeHandler import QtHelpSchemeHandler
         self.__qtHelpSchemeHandler = QtHelpSchemeHandler(engine)
         WebBrowserWindow.webProfile().installUrlSchemeHandler(
             QByteArray(b"qthelp"), self.__qtHelpSchemeHandler)
     
     self.__interceptor = NetworkUrlInterceptor(self)
     try:
         WebBrowserWindow.webProfile().setUrlRequestInterceptor(
             self.__interceptor)
     except AttributeError:
         #  Qt < 5.13
         WebBrowserWindow.webProfile().setRequestInterceptor(
             self.__interceptor)
     
     WebBrowserWindow.cookieJar()
예제 #2
0
    def __init__(self, engine, parent=None):
        """
        Constructor
        
        @param engine reference to the help engine (QHelpEngine)
        @param parent reference to the parent object (QObject)
        """
        super(NetworkAccessManager, self).__init__(parent)

        self.__adblockNetwork = None

        self.__schemeHandlers = {}  # dictionary of scheme handlers

        self.__proxyFactory = E5NetworkProxyFactory()
        self.setProxyFactory(self.__proxyFactory)

        self.__setDiskCache()
        self.languagesChanged()

        if SSL_AVAILABLE:
            self.__sslErrorHandler = E5SslErrorHandler(self)
            self.sslErrors.connect(self.__sslErrorHandler.sslErrorsReplySlot)

        self.proxyAuthenticationRequired.connect(proxyAuthenticationRequired)
        self.authenticationRequired.connect(self.__authenticationRequired)

        self.__doNotTrack = Preferences.getHelp("DoNotTrack")
        self.__sendReferer = Preferences.getHelp("SendReferer")

        # register scheme handlers
        if engine:
            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))
예제 #3
0
    def __init__(self, parent=None):
        """
        Constructor
        
        @param parent parent
        @type QObject
        """
        super(Pip, self).__init__(parent)

        # attributes for the network objects
        self.__networkManager = QNetworkAccessManager(self)
        self.__networkManager.proxyAuthenticationRequired.connect(
            proxyAuthenticationRequired)
        if SSL_AVAILABLE:
            self.__sslErrorHandler = E5SslErrorHandler(self)
            self.__networkManager.sslErrors.connect(
                self.__sslErrorHandler.sslErrorsReply)
        self.__replies = []
예제 #4
0
 def __init__(self, url, parent=None):
     """
     Constructor
     
     @param url xmlrpc handler URL (string or QUrl)
     @param parent parent object (QObject)
     """
     super(E5XmlRpcClient, self).__init__(parent)
     
     # attributes for the network objects
     self.__networkManager = QNetworkAccessManager(self)
     self.__networkManager.proxyAuthenticationRequired.connect(
         proxyAuthenticationRequired)
     self.__networkManager.finished.connect(self.__replyFinished)
     if SSL_AVAILABLE:
         self.__sslErrorHandler = E5SslErrorHandler(self)
         self.__networkManager.sslErrors.connect(self.__sslErrors)
     
     self.__callmap = {}
     
     self.__request = QNetworkRequest(QUrl(url))
     self.__request.setRawHeader(b"User-Agent", b"E5XmlRpcClient/1.0")
     self.__request.setHeader(QNetworkRequest.ContentTypeHeader, "text/xml")
예제 #5
0
 def __init__(self, parent=None):
     """
     Constructor
     
     @param parent reference to the parent widget (QWidget)
     """
     super(IrcWidget, self).__init__(parent)
     self.setupUi(self)
     
     from .IrcNetworkManager import IrcNetworkManager
     self.__ircNetworkManager = IrcNetworkManager(self)
     
     self.__leaveButton = QToolButton(self)
     self.__leaveButton.setIcon(
         UI.PixmapCache.getIcon("ircCloseChannel.png"))
     self.__leaveButton.setToolTip(
         self.tr("Press to leave the current channel"))
     self.__leaveButton.clicked.connect(self.__leaveChannel)
     self.__leaveButton.setEnabled(False)
     self.channelsWidget.setCornerWidget(
         self.__leaveButton, Qt.BottomRightCorner)
     self.channelsWidget.setTabsClosable(False)
     if not isMacPlatform():
         self.channelsWidget.setTabPosition(QTabWidget.South)
     
     height = self.height()
     self.splitter.setSizes([height * 0.6, height * 0.4])
     
     self.__channelList = []
     self.__channelTypePrefixes = ""
     self.__userName = ""
     self.__identityName = ""
     self.__quitMessage = ""
     self.__nickIndex = -1
     self.__nickName = ""
     self.__server = None
     self.__registering = False
     
     self.__connectionState = IrcWidget.ServerDisconnected
     self.__sslErrorLock = False
     
     self.__buffer = ""
     self.__userPrefix = {}
     
     self.__socket = None
     if SSL_AVAILABLE:
         self.__sslErrorHandler = E5SslErrorHandler(self)
     else:
         self.__sslErrorHandler = None
     
     self.__patterns = [
         # :[email protected] PRIVMSG bar_ :some long message
         (re.compile(r":([^!]+)!([^ ]+)\sPRIVMSG\s([^ ]+)\s:(.*)"),
          self.__query),
         # :foo.bar.net COMMAND some message
         (re.compile(r""":([^ ]+)\s+([A-Z]+)\s+(.+)"""),
          self.__handleNamedMessage),
         # :foo.bar.net 123 * :info
         (re.compile(r""":([^ ]+)\s+(\d{3})\s+(.+)"""),
          self.__handleNumericMessage),
         # PING :ping message
         (re.compile(r"""PING\s+:(.*)"""), self.__ping),
     ]
     self.__prefixRe = re.compile(r""".*\sPREFIX=\((.*)\)([^ ]+).*""")
     self.__chanTypesRe = re.compile(r""".*\sCHANTYPES=([^ ]+).*""")
     
     ircPic = UI.PixmapCache.getPixmap("irc128.png")
     self.__emptyLabel = QLabel()
     self.__emptyLabel.setPixmap(ircPic)
     self.__emptyLabel.setAlignment(Qt.AlignVCenter | Qt.AlignHCenter)
     self.channelsWidget.addTab(self.__emptyLabel, "")
     
     # all initialized, do connections now
     self.__ircNetworkManager.dataChanged.connect(self.__networkDataChanged)
     self.networkWidget.initialize(self.__ircNetworkManager)
     self.networkWidget.connectNetwork.connect(self.__connectNetwork)
     self.networkWidget.editNetwork.connect(self.__editNetwork)
     self.networkWidget.joinChannel.connect(self.joinChannel)
     self.networkWidget.nickChanged.connect(self.__changeNick)
     self.networkWidget.sendData.connect(self.__send)
     self.networkWidget.away.connect(self.__away)
     self.networkWidget.autoConnected.connect(self.autoConnected)
 def __init__(self, parent=None, external=False):
     """
     Constructor
     
     @param parent parent of this dialog (QWidget)
     @param external flag indicating an instatiation as a main
         window (boolean)
     """
     super(PluginRepositoryWidget, self).__init__(parent)
     self.setupUi(self)
     
     self.__updateButton = self.buttonBox.addButton(
         self.tr("Update"), QDialogButtonBox.ActionRole)
     self.__downloadButton = self.buttonBox.addButton(
         self.tr("Download"), QDialogButtonBox.ActionRole)
     self.__downloadButton.setEnabled(False)
     self.__downloadInstallButton = self.buttonBox.addButton(
         self.tr("Download && Install"),
         QDialogButtonBox.ActionRole)
     self.__downloadInstallButton.setEnabled(False)
     self.__downloadCancelButton = self.buttonBox.addButton(
         self.tr("Cancel"), QDialogButtonBox.ActionRole)
     self.__installButton = \
         self.buttonBox.addButton(self.tr("Close && Install"),
                                  QDialogButtonBox.ActionRole)
     self.__downloadCancelButton.setEnabled(False)
     self.__installButton.setEnabled(False)
     
     self.repositoryUrlEdit.setText(
         Preferences.getUI("PluginRepositoryUrl6"))
     
     self.repositoryList.headerItem().setText(
         self.repositoryList.columnCount(), "")
     self.repositoryList.header().setSortIndicator(0, Qt.AscendingOrder)
     
     self.__pluginContextMenu = QMenu(self)
     self.__hideAct = self.__pluginContextMenu.addAction(
         self.tr("Hide"), self.__hidePlugin)
     self.__hideSelectedAct = self.__pluginContextMenu.addAction(
         self.tr("Hide Selected"), self.__hideSelectedPlugins)
     self.__pluginContextMenu.addSeparator()
     self.__showAllAct = self.__pluginContextMenu.addAction(
         self.tr("Show All"), self.__showAllPlugins)
     self.__pluginContextMenu.addSeparator()
     self.__pluginContextMenu.addAction(
         self.tr("Cleanup Downloads"), self.__cleanupDownloads)
     
     self.pluginRepositoryFile = \
         os.path.join(Utilities.getConfigDir(), "PluginRepository")
     
     self.__external = external
     
     # attributes for the network objects
     self.__networkManager = QNetworkAccessManager(self)
     self.__networkManager.proxyAuthenticationRequired.connect(
         proxyAuthenticationRequired)
     if SSL_AVAILABLE:
         self.__sslErrorHandler = E5SslErrorHandler(self)
         self.__networkManager.sslErrors.connect(self.__sslErrors)
     self.__replies = []
     
     self.__doneMethod = None
     self.__inDownload = False
     self.__pluginsToDownload = []
     self.__pluginsDownloaded = []
     self.__isDownloadInstall = False
     self.__allDownloadedOk = False
     
     self.__hiddenPlugins = Preferences.getPluginManager("HiddenPlugins")
     
     self.__populateList()
예제 #7
0
 def __init__(self, parent=None, doLoadPlugins=True, develPlugin=None):
     """
     Constructor
     
     The Plugin Manager deals with three different plugin directories.
     The first is the one, that is part of eric6 (eric6/Plugins). The
     second one is the global plugin directory called 'eric6plugins',
     which is located inside the site-packages directory. The last one
     is the user plugin directory located inside the .eric6 directory
     of the users home directory.
     
     @param parent reference to the parent object (QObject)
     @keyparam doLoadPlugins flag indicating, that plugins should
         be loaded (boolean)
     @keyparam develPlugin filename of a plugin to be loaded for
         development (string)
     @exception PluginPathError raised to indicate an invalid plug-in path
     """
     super(PluginManager, self).__init__(parent)
     
     self.__ui = parent
     self.__develPluginFile = develPlugin
     self.__develPluginName = None
     
     self.__inactivePluginsKey = "PluginManager/InactivePlugins"
     
     self.pluginDirs = {
         "eric6": os.path.join(getConfig('ericDir'), "Plugins"),
         "global": os.path.join(Utilities.getPythonModulesDirectory(),
                                "eric6plugins"),
         "user": os.path.join(Utilities.getConfigDir(), "eric6plugins"),
     }
     self.__priorityOrder = ["eric6", "global", "user"]
     
     self.__defaultDownloadDir = os.path.join(
         Utilities.getConfigDir(), "Downloads")
     
     self.__activePlugins = {}
     self.__inactivePlugins = {}
     self.__onDemandActivePlugins = {}
     self.__onDemandInactivePlugins = {}
     self.__activeModules = {}
     self.__inactiveModules = {}
     self.__onDemandActiveModules = {}
     self.__onDemandInactiveModules = {}
     self.__failedModules = {}
     
     self.__foundCoreModules = []
     self.__foundGlobalModules = []
     self.__foundUserModules = []
     
     self.__modulesCount = 0
     
     pdirsExist, msg = self.__pluginDirectoriesExist()
     if not pdirsExist:
         raise PluginPathError(msg)
     
     if doLoadPlugins:
         if not self.__pluginModulesExist():
             raise PluginModulesError
         
         self.__insertPluginsPaths()
         
         self.__loadPlugins()
     
     self.__checkPluginsDownloadDirectory()
     
     self.pluginRepositoryFile = \
         os.path.join(Utilities.getConfigDir(), "PluginRepository")
     
     # attributes for the network objects
     self.__networkManager = QNetworkAccessManager(self)
     self.__networkManager.proxyAuthenticationRequired.connect(
         proxyAuthenticationRequired)
     if SSL_AVAILABLE:
         self.__sslErrorHandler = E5SslErrorHandler(self)
         self.__networkManager.sslErrors.connect(self.__sslErrors)
     self.__replies = []
 def __init__(self, pluginManager, parent=None):
     """
     Constructor
     
     @param pluginManager reference to the plugin manager object
     @type PluginManager
     @param parent parent of this dialog
     @type QWidget
     """
     super(PluginRepositoryWidget, self).__init__(parent)
     self.setupUi(self)
     
     if pluginManager is None:
         # started as external plug-in repository dialog
         from .PluginManager import PluginManager
         self.__pluginManager = PluginManager()
         self.__external = True
     else:
         self.__pluginManager = pluginManager
         self.__external = False
     
     self.__updateButton = self.buttonBox.addButton(
         self.tr("Update"), QDialogButtonBox.ActionRole)
     self.__downloadButton = self.buttonBox.addButton(
         self.tr("Download"), QDialogButtonBox.ActionRole)
     self.__downloadButton.setEnabled(False)
     self.__downloadInstallButton = self.buttonBox.addButton(
         self.tr("Download && Install"),
         QDialogButtonBox.ActionRole)
     self.__downloadInstallButton.setEnabled(False)
     self.__downloadCancelButton = self.buttonBox.addButton(
         self.tr("Cancel"), QDialogButtonBox.ActionRole)
     self.__downloadCancelButton.setEnabled(False)
     self.__installButton = self.buttonBox.addButton(
         self.tr("Close && Install"), QDialogButtonBox.ActionRole)
     self.__installButton.setEnabled(False)
     self.__closeButton = self.buttonBox.button(QDialogButtonBox.Close)
     self.__closeButton.setEnabled(True)
     
     self.repositoryUrlEdit.setText(
         Preferences.getUI("PluginRepositoryUrl6"))
     
     self.repositoryList.headerItem().setText(
         self.repositoryList.columnCount(), "")
     self.repositoryList.header().setSortIndicator(0, Qt.AscendingOrder)
     
     self.__pluginContextMenu = QMenu(self)
     self.__hideAct = self.__pluginContextMenu.addAction(
         self.tr("Hide"), self.__hidePlugin)
     self.__hideSelectedAct = self.__pluginContextMenu.addAction(
         self.tr("Hide Selected"), self.__hideSelectedPlugins)
     self.__pluginContextMenu.addSeparator()
     self.__showAllAct = self.__pluginContextMenu.addAction(
         self.tr("Show All"), self.__showAllPlugins)
     self.__pluginContextMenu.addSeparator()
     self.__pluginContextMenu.addAction(
         self.tr("Cleanup Downloads"), self.__cleanupDownloads)
     
     self.pluginRepositoryFile = os.path.join(Utilities.getConfigDir(),
                                              "PluginRepository")
     
     # attributes for the network objects
     self.__networkManager = QNetworkAccessManager(self)
     self.__networkManager.proxyAuthenticationRequired.connect(
         proxyAuthenticationRequired)
     if SSL_AVAILABLE:
         self.__sslErrorHandler = E5SslErrorHandler(self)
         self.__networkManager.sslErrors.connect(self.__sslErrors)
     self.__replies = []
     
     if Preferences.getUI("DynamicOnlineCheck"):
         self.__networkConfigurationManager = (
             QNetworkConfigurationManager(self)
         )
         self.__onlineStateChanged(
             self.__networkConfigurationManager.isOnline())
         self.__networkConfigurationManager.onlineStateChanged.connect(
             self.__onlineStateChanged)
     else:
         self.__networkConfigurationManager = None
         self.__onlineStateChanged(True)
     
     self.__pluginsToDownload = []
     self.__pluginsDownloaded = []
     self.__isDownloadInstall = False
     self.__allDownloadedOk = False
     
     self.__hiddenPlugins = Preferences.getPluginManager("HiddenPlugins")
     
     self.__populateList()