Sat, 30 Dec 2017 18:10:04 +0100
Fixed an issue with the VirusTotal configuration page calling a wrong VirusTotal API for the web browser NG case.
--- a/APIs/Python3/eric6.api Sun Dec 24 15:19:00 2017 +0100 +++ b/APIs/Python3/eric6.api Sat Dec 30 18:10:04 2017 +0100 @@ -7463,6 +7463,11 @@ eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.WebBrowserSpellCheckingPage.save?4() eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.WebBrowserSpellCheckingPage?1() eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.create?4(dlg) +eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage.on_testButton_clicked?4() +eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged?4(txt) +eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage.save?4() +eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage?1(parent=None) +eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.create?4(dlg) eric6.Preferences.MouseClickDialog.MouseClickDialog.eventFilter?4(watched, event) eric6.Preferences.MouseClickDialog.MouseClickDialog.getClick?4() eric6.Preferences.MouseClickDialog.MouseClickDialog.on_clearButton_clicked?4()
--- a/APIs/Python3/eric6.bas Sun Dec 24 15:19:00 2017 +0100 +++ b/APIs/Python3/eric6.bas Sat Dec 30 18:10:04 2017 +0100 @@ -984,6 +984,7 @@ WebBrowserTabBar E5WheelTabBar WebBrowserTabWidget E5TabWidget WebBrowserView QWebEngineView +WebBrowserVirusTotalPage ConfigurationPageBase Ui_HelpVirusTotalPage WebBrowserWebSearchWidget E5ClearableLineEdit WebBrowserWindow E5MainWindow WebDatabasesDialog QDialog Ui_WebDatabasesDialog
--- a/Documentation/Help/source.qhp Sun Dec 24 15:19:00 2017 +0100 +++ b/Documentation/Help/source.qhp Sat Dec 30 18:10:04 2017 +0100 @@ -951,6 +951,7 @@ <section title="eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage" ref="eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.html" /> <section title="eric6.Preferences.ConfigurationPages.WebBrowserPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserPage.html" /> <section title="eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.html" /> + <section title="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html" /> </section> <section title="eric6.Preferences.ConfigurationDialog" ref="eric6.Preferences.ConfigurationDialog.html" /> <section title="eric6.Preferences.MouseClickDialog" ref="eric6.Preferences.MouseClickDialog.html" /> @@ -17712,6 +17713,13 @@ <keyword name="WebBrowserView.zoomOut" id="WebBrowserView.zoomOut" ref="eric6.WebBrowser.WebBrowserView.html#WebBrowserView.zoomOut" /> <keyword name="WebBrowserView.zoomReset" id="WebBrowserView.zoomReset" ref="eric6.WebBrowser.WebBrowserView.html#WebBrowserView.zoomReset" /> <keyword name="WebBrowserView.zoomValue" id="WebBrowserView.zoomValue" ref="eric6.WebBrowser.WebBrowserView.html#WebBrowserView.zoomValue" /> + <keyword name="WebBrowserVirusTotalPage" id="WebBrowserVirusTotalPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html#WebBrowserVirusTotalPage" /> + <keyword name="WebBrowserVirusTotalPage (Constructor)" id="WebBrowserVirusTotalPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html#WebBrowserVirusTotalPage.__init__" /> + <keyword name="WebBrowserVirusTotalPage (Module)" id="WebBrowserVirusTotalPage (Module)" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html" /> + <keyword name="WebBrowserVirusTotalPage.__checkServiceKeyFinished" id="WebBrowserVirusTotalPage.__checkServiceKeyFinished" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html#WebBrowserVirusTotalPage.__checkServiceKeyFinished" /> + <keyword name="WebBrowserVirusTotalPage.on_testButton_clicked" id="WebBrowserVirusTotalPage.on_testButton_clicked" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html#WebBrowserVirusTotalPage.on_testButton_clicked" /> + <keyword name="WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged" id="WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html#WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged" /> + <keyword name="WebBrowserVirusTotalPage.save" id="WebBrowserVirusTotalPage.save" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html#WebBrowserVirusTotalPage.save" /> <keyword name="WebBrowserWebSearchWidget" id="WebBrowserWebSearchWidget" ref="eric6.WebBrowser.WebBrowserWebSearchWidget.html#WebBrowserWebSearchWidget" /> <keyword name="WebBrowserWebSearchWidget (Constructor)" id="WebBrowserWebSearchWidget (Constructor)" ref="eric6.WebBrowser.WebBrowserWebSearchWidget.html#WebBrowserWebSearchWidget.__init__" /> <keyword name="WebBrowserWebSearchWidget (Module)" id="WebBrowserWebSearchWidget (Module)" ref="eric6.WebBrowser.WebBrowserWebSearchWidget.html" /> @@ -18361,6 +18369,7 @@ <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.html#create" /> <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserPage.html#create" /> <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.html#create" /> + <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html#create" /> <keyword name="createActionGroup" id="createActionGroup" ref="eric6.E5Gui.E5Action.html#createActionGroup" /> <keyword name="createConfig" id="createConfig" ref="eric6.install.html#createConfig" /> <keyword name="createConfigurationPage" id="createConfigurationPage" ref="eric6.Plugins.PluginVcsGit.html#createConfigurationPage" /> @@ -19792,6 +19801,7 @@ <file>eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.html</file> <file>eric6.Preferences.ConfigurationPages.WebBrowserPage.html</file> <file>eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.html</file> + <file>eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html</file> <file>eric6.Preferences.MouseClickDialog.html</file> <file>eric6.Preferences.PreferencesLexer.html</file> <file>eric6.Preferences.ProgramsDialog.html</file>
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html Sun Dec 24 15:19:00 2017 +0100 +++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html Sat Dec 30 18:10:04 2017 +0100 @@ -21,7 +21,7 @@ <body><a NAME="top" ID="top"></a> <h1>eric6.Preferences.ConfigurationPages.HelpVirusTotalPage</h1> <p> -Module implementing HelpVirusTotalPage. +Module implementing VirusTotal configuration page (help viewer variant). </p> <h3>Global Attributes</h3> <table> @@ -31,7 +31,7 @@ <table> <tr> <td><a href="#HelpVirusTotalPage">HelpVirusTotalPage</a></td> -<td>Class documentation goes here.</td> +<td>Class implementing VirusTotal configuration page (help viewer variant).</td> </tr> </table> <h3>Functions</h3> @@ -45,7 +45,7 @@ <a NAME="HelpVirusTotalPage" ID="HelpVirusTotalPage"></a> <h2>HelpVirusTotalPage</h2> <p> - Class documentation goes here. + Class implementing VirusTotal configuration page (help viewer variant). </p> <h3>Derived from</h3> ConfigurationPageBase, Ui_HelpVirusTotalPage
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html Sat Dec 30 18:10:04 2017 +0100 @@ -0,0 +1,147 @@ +<!DOCTYPE html> +<html><head> +<title>eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage</title> +<meta charset="UTF-8"> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage</h1> +<p> +Module implementing VirusTotal configuration page (web browser variant). +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#WebBrowserVirusTotalPage">WebBrowserVirusTotalPage</a></td> +<td>Class implementing VirusTotal configuration page (web browser variant).</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr> +<td><a href="#create">create</a></td> +<td>Module function to create the configuration page.</td> +</tr> +</table> +<hr /><hr /> +<a NAME="WebBrowserVirusTotalPage" ID="WebBrowserVirusTotalPage"></a> +<h2>WebBrowserVirusTotalPage</h2> +<p> + Class implementing VirusTotal configuration page (web browser variant). +</p> +<h3>Derived from</h3> +ConfigurationPageBase, Ui_HelpVirusTotalPage +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#WebBrowserVirusTotalPage.__init__">WebBrowserVirusTotalPage</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#WebBrowserVirusTotalPage.__checkServiceKeyFinished">__checkServiceKeyFinished</a></td> +<td>Private slot to receive the result of the service key check.</td> +</tr><tr> +<td><a href="#WebBrowserVirusTotalPage.on_testButton_clicked">on_testButton_clicked</a></td> +<td>Private slot to test the entered service key.</td> +</tr><tr> +<td><a href="#WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged">on_vtServiceKeyEdit_textChanged</a></td> +<td>Private slot to handle changes of the service key.</td> +</tr><tr> +<td><a href="#WebBrowserVirusTotalPage.save">save</a></td> +<td>Public slot to save the VirusTotal configuration.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="WebBrowserVirusTotalPage.__init__" ID="WebBrowserVirusTotalPage.__init__"></a> +<h4>WebBrowserVirusTotalPage (Constructor)</h4> +<b>WebBrowserVirusTotalPage</b>(<i>parent=None</i>) +<p> + Constructor +</p><dl> +<dt><i>parent</i></dt> +<dd> +reference to the parent widget (QWidget) +</dd> +</dl><a NAME="WebBrowserVirusTotalPage.__checkServiceKeyFinished" ID="WebBrowserVirusTotalPage.__checkServiceKeyFinished"></a> +<h4>WebBrowserVirusTotalPage.__checkServiceKeyFinished</h4> +<b>__checkServiceKeyFinished</b>(<i>result, msg</i>) +<p> + Private slot to receive the result of the service key check. +</p><dl> +<dt><i>result</i></dt> +<dd> +flag indicating a successful check (boolean) +</dd><dt><i>msg</i></dt> +<dd> +network error message (str) +</dd> +</dl><a NAME="WebBrowserVirusTotalPage.on_testButton_clicked" ID="WebBrowserVirusTotalPage.on_testButton_clicked"></a> +<h4>WebBrowserVirusTotalPage.on_testButton_clicked</h4> +<b>on_testButton_clicked</b>(<i></i>) +<p> + Private slot to test the entered service key. +</p><a NAME="WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged" ID="WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged"></a> +<h4>WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged</h4> +<b>on_vtServiceKeyEdit_textChanged</b>(<i>txt</i>) +<p> + Private slot to handle changes of the service key. +</p><dl> +<dt><i>txt</i></dt> +<dd> +entered service key (string) +</dd> +</dl><a NAME="WebBrowserVirusTotalPage.save" ID="WebBrowserVirusTotalPage.save"></a> +<h4>WebBrowserVirusTotalPage.save</h4> +<b>save</b>(<i></i>) +<p> + Public slot to save the VirusTotal configuration. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="create" ID="create"></a> +<h2>create</h2> +<b>create</b>(<i>dlg</i>) +<p> + Module function to create the configuration page. +</p><dl> +<dt><i>dlg</i></dt> +<dd> +reference to the configuration dialog +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +reference to the instantiated page (ConfigurationPageBase) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html Sun Dec 24 15:19:00 2017 +0100 +++ b/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html Sat Dec 30 18:10:04 2017 +0100 @@ -131,7 +131,7 @@ <td>Module implementing the Help Viewers configuration page.</td> </tr><tr> <td><a href="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html">HelpVirusTotalPage</a></td> -<td>Module implementing HelpVirusTotalPage.</td> +<td>Module implementing VirusTotal configuration page (help viewer variant).</td> </tr><tr> <td><a href="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html">HelpWebBrowserPage</a></td> <td>Module implementing the Help web browser configuration page.</td> @@ -219,6 +219,9 @@ </tr><tr> <td><a href="eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.html">WebBrowserSpellCheckingPage</a></td> <td>Module implementing the Web Browser Spell Checking configuration page.</td> +</tr><tr> +<td><a href="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html">WebBrowserVirusTotalPage</a></td> +<td>Module implementing VirusTotal configuration page (web browser variant).</td> </tr> </table> </body></html> \ No newline at end of file
--- a/Preferences/ConfigurationDialog.py Sun Dec 24 15:19:00 2017 +0100 +++ b/Preferences/ConfigurationDialog.py Sat Dec 30 18:10:04 2017 +0100 @@ -346,9 +346,9 @@ [self.tr("Flash Cookie Manager"), "flashCookie16.png", "HelpFlashCookieManagerPage", "0webBrowserPage", None], - "helpVirusTotalPage": + "webBrowserVirusTotalPage": [self.tr("VirusTotal Interface"), "virustotal.png", - "HelpVirusTotalPage", "0webBrowserPage", None], + "WebBrowserVirusTotalPage", "0webBrowserPage", None], }) if qVersionTuple() >= (5, 8, 0) and PYQT_VERSION >= 0x50800: self.configItems.update({ @@ -469,9 +469,9 @@ [self.tr("Flash Cookie Manager"), "flashCookie16.png", "HelpFlashCookieManagerPage", None, None], - "helpVirusTotalPage": + "webBrowserVirusTotalPage": [self.tr("VirusTotal Interface"), "virustotal.png", - "HelpVirusTotalPage", None, None], + "WebBrowserVirusTotalPage", None, None], } if qVersionTuple() >= (5, 8, 0) and PYQT_VERSION >= 0x50800:
--- a/Preferences/ConfigurationPages/HelpVirusTotalPage.py Sun Dec 24 15:19:00 2017 +0100 +++ b/Preferences/ConfigurationPages/HelpVirusTotalPage.py Sat Dec 30 18:10:04 2017 +0100 @@ -4,7 +4,7 @@ # """ -Module implementing HelpVirusTotalPage. +Module implementing VirusTotal configuration page (help viewer variant). """ from __future__ import unicode_literals @@ -19,7 +19,7 @@ class HelpVirusTotalPage(ConfigurationPageBase, Ui_HelpVirusTotalPage): """ - Class documentation goes here. + Class implementing VirusTotal configuration page (help viewer variant). """ def __init__(self, parent=None): """
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Preferences/ConfigurationPages/WebBrowserVirusTotalPage.py Sat Dec 30 18:10:04 2017 +0100 @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 - 2017 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing VirusTotal configuration page (web browser variant). +""" + +from __future__ import unicode_literals + +from PyQt5.QtCore import pyqtSlot + +from .ConfigurationPageBase import ConfigurationPageBase +from .Ui_HelpVirusTotalPage import Ui_HelpVirusTotalPage + +import Preferences + + +class WebBrowserVirusTotalPage(ConfigurationPageBase, Ui_HelpVirusTotalPage): + """ + Class implementing VirusTotal configuration page (web browser variant). + """ + def __init__(self, parent=None): + """ + Constructor + + @param parent reference to the parent widget (QWidget) + """ + super(WebBrowserVirusTotalPage, self).__init__() + self.setupUi(self) + self.setObjectName("HelpVirusTotalPage") + + self.testResultLabel.setHidden(True) + + from WebBrowser.VirusTotal.VirusTotalApi import VirusTotalAPI + self.__vt = VirusTotalAPI(self) + self.__vt.checkServiceKeyFinished.connect( + self.__checkServiceKeyFinished) + + # set initial values + self.vtEnabledCheckBox.setChecked( + Preferences.getHelp("VirusTotalEnabled")) + self.vtSecureCheckBox.setChecked( + Preferences.getHelp("VirusTotalSecure")) + self.vtServiceKeyEdit.setText( + Preferences.getHelp("VirusTotalServiceKey")) + + def save(self): + """ + Public slot to save the VirusTotal configuration. + """ + Preferences.setHelp( + "VirusTotalEnabled", + self.vtEnabledCheckBox.isChecked()) + Preferences.setHelp( + "VirusTotalSecure", + self.vtSecureCheckBox.isChecked()) + Preferences.setHelp( + "VirusTotalServiceKey", + self.vtServiceKeyEdit.text()) + + @pyqtSlot(str) + def on_vtServiceKeyEdit_textChanged(self, txt): + """ + Private slot to handle changes of the service key. + + @param txt entered service key (string) + """ + self.testButton.setEnabled(txt != "") + + @pyqtSlot() + def on_testButton_clicked(self): + """ + Private slot to test the entered service key. + """ + self.testResultLabel.setHidden(False) + self.testResultLabel.setText( + self.tr("Checking validity of the service key...")) + if self.vtSecureCheckBox.isChecked(): + protocol = "https" + else: + protocol = "http" + self.__vt.checkServiceKeyValidity( + self.vtServiceKeyEdit.text(), protocol) + + @pyqtSlot(bool, str) + def __checkServiceKeyFinished(self, result, msg): + """ + Private slot to receive the result of the service key check. + + @param result flag indicating a successful check (boolean) + @param msg network error message (str) + """ + if result: + self.testResultLabel.setText( + self.tr("The service key is valid.")) + else: + if msg == "": + self.testResultLabel.setText(self.tr( + '<font color="#FF0000">The service key is' + ' not valid.</font>')) + else: + self.testResultLabel.setText(self.tr( + '<font color="#FF0000"><b>Error:</b> {0}</font>') + .format(msg)) + + +def create(dlg): + """ + Module function to create the configuration page. + + @param dlg reference to the configuration dialog + @return reference to the instantiated page (ConfigurationPageBase) + """ + page = WebBrowserVirusTotalPage(dlg) + return page
--- a/eric6.e4p Sun Dec 24 15:19:00 2017 +0100 +++ b/eric6.e4p Sat Dec 30 18:10:04 2017 +0100 @@ -898,6 +898,7 @@ <Source>Preferences/ConfigurationPages/WebBrowserAppearancePage.py</Source> <Source>Preferences/ConfigurationPages/WebBrowserPage.py</Source> <Source>Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.py</Source> + <Source>Preferences/ConfigurationPages/WebBrowserVirusTotalPage.py</Source> <Source>Preferences/ConfigurationPages/__init__.py</Source> <Source>Preferences/MouseClickDialog.py</Source> <Source>Preferences/PreferencesLexer.py</Source>