Sat, 03 Mar 2012 18:40:25 +0100
Changed file format for saved user agent data to XML.
--- a/APIs/Python3/eric5.api Sat Mar 03 18:37:19 2012 +0100 +++ b/APIs/Python3/eric5.api Sat Mar 03 18:40:25 2012 +0100 @@ -2666,6 +2666,10 @@ eric5.Helpviewer.UserAgent.UserAgentModel.UserAgentModel.removeRows?4(row, count, parent=QModelIndex()) eric5.Helpviewer.UserAgent.UserAgentModel.UserAgentModel.rowCount?4(parent=QModelIndex()) eric5.Helpviewer.UserAgent.UserAgentModel.UserAgentModel?1(manager, parent=None) +eric5.Helpviewer.UserAgent.UserAgentReader.UserAgentReader.read?4(fileNameOrDevice) +eric5.Helpviewer.UserAgent.UserAgentReader.UserAgentReader?1() +eric5.Helpviewer.UserAgent.UserAgentWriter.UserAgentWriter.write?4(fileNameOrDevice, agents) +eric5.Helpviewer.UserAgent.UserAgentWriter.UserAgentWriter?1() eric5.Helpviewer.UserAgent.UserAgentsDialog.UserAgentsDialog?1(parent=None) eric5.Helpviewer.VirusTotalApi.VirusTotalAPI.GetFileReportPattern?7 eric5.Helpviewer.VirusTotalApi.VirusTotalAPI.GetUrlReportPattern?7
--- a/APIs/Python3/eric5.bas Sat Mar 03 18:37:19 2012 +0100 +++ b/APIs/Python3/eric5.bas Sat Mar 03 18:40:25 2012 +0100 @@ -620,6 +620,8 @@ UserAgentManager QObject UserAgentMenu QMenu UserAgentModel QAbstractTableModel +UserAgentReader QXmlStreamReader +UserAgentWriter QXmlStreamWriter UserAgentsDialog QDialog Ui_UserAgentsDialog UserInterface QMainWindow UserProjectReader XMLStreamReaderBase
--- a/Documentation/Help/source.qhp Sat Mar 03 18:37:19 2012 +0100 +++ b/Documentation/Help/source.qhp Sat Mar 03 18:40:25 2012 +0100 @@ -310,6 +310,8 @@ <section title="eric5.Helpviewer.UserAgent.UserAgentManager" ref="eric5.Helpviewer.UserAgent.UserAgentManager.html" /> <section title="eric5.Helpviewer.UserAgent.UserAgentMenu" ref="eric5.Helpviewer.UserAgent.UserAgentMenu.html" /> <section title="eric5.Helpviewer.UserAgent.UserAgentModel" ref="eric5.Helpviewer.UserAgent.UserAgentModel.html" /> + <section title="eric5.Helpviewer.UserAgent.UserAgentReader" ref="eric5.Helpviewer.UserAgent.UserAgentReader.html" /> + <section title="eric5.Helpviewer.UserAgent.UserAgentWriter" ref="eric5.Helpviewer.UserAgent.UserAgentWriter.html" /> <section title="eric5.Helpviewer.UserAgent.UserAgentsDialog" ref="eric5.Helpviewer.UserAgent.UserAgentsDialog.html" /> </section> <section title="eric5.Helpviewer.WebPlugins" ref="index-eric5.Helpviewer.WebPlugins.html"> @@ -10043,6 +10045,7 @@ <keyword name="UserAgentManager (Constructor)" id="UserAgentManager (Constructor)" ref="eric5.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.__init__" /> <keyword name="UserAgentManager (Module)" id="UserAgentManager (Module)" ref="eric5.Helpviewer.UserAgent.UserAgentManager.html" /> <keyword name="UserAgentManager.__load" id="UserAgentManager.__load" ref="eric5.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.__load" /> + <keyword name="UserAgentManager.__loadNonXml" id="UserAgentManager.__loadNonXml" ref="eric5.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.__loadNonXml" /> <keyword name="UserAgentManager.allHostNames" id="UserAgentManager.allHostNames" ref="eric5.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.allHostNames" /> <keyword name="UserAgentManager.close" id="UserAgentManager.close" ref="eric5.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.close" /> <keyword name="UserAgentManager.getFileName" id="UserAgentManager.getFileName" ref="eric5.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.getFileName" /> @@ -10071,6 +10074,17 @@ <keyword name="UserAgentModel.headerData" id="UserAgentModel.headerData" ref="eric5.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.headerData" /> <keyword name="UserAgentModel.removeRows" id="UserAgentModel.removeRows" ref="eric5.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.removeRows" /> <keyword name="UserAgentModel.rowCount" id="UserAgentModel.rowCount" ref="eric5.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.rowCount" /> + <keyword name="UserAgentReader" id="UserAgentReader" ref="eric5.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader" /> + <keyword name="UserAgentReader (Constructor)" id="UserAgentReader (Constructor)" ref="eric5.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader.__init__" /> + <keyword name="UserAgentReader (Module)" id="UserAgentReader (Module)" ref="eric5.Helpviewer.UserAgent.UserAgentReader.html" /> + <keyword name="UserAgentReader.__readUserAgents" id="UserAgentReader.__readUserAgents" ref="eric5.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader.__readUserAgents" /> + <keyword name="UserAgentReader.__skipUnknownElement" id="UserAgentReader.__skipUnknownElement" ref="eric5.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader.__skipUnknownElement" /> + <keyword name="UserAgentReader.read" id="UserAgentReader.read" ref="eric5.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader.read" /> + <keyword name="UserAgentWriter" id="UserAgentWriter" ref="eric5.Helpviewer.UserAgent.UserAgentWriter.html#UserAgentWriter" /> + <keyword name="UserAgentWriter (Constructor)" id="UserAgentWriter (Constructor)" ref="eric5.Helpviewer.UserAgent.UserAgentWriter.html#UserAgentWriter.__init__" /> + <keyword name="UserAgentWriter (Module)" id="UserAgentWriter (Module)" ref="eric5.Helpviewer.UserAgent.UserAgentWriter.html" /> + <keyword name="UserAgentWriter.__write" id="UserAgentWriter.__write" ref="eric5.Helpviewer.UserAgent.UserAgentWriter.html#UserAgentWriter.__write" /> + <keyword name="UserAgentWriter.write" id="UserAgentWriter.write" ref="eric5.Helpviewer.UserAgent.UserAgentWriter.html#UserAgentWriter.write" /> <keyword name="UserAgentsDialog" id="UserAgentsDialog" ref="eric5.Helpviewer.UserAgent.UserAgentsDialog.html#UserAgentsDialog" /> <keyword name="UserAgentsDialog (Constructor)" id="UserAgentsDialog (Constructor)" ref="eric5.Helpviewer.UserAgent.UserAgentsDialog.html#UserAgentsDialog.__init__" /> <keyword name="UserAgentsDialog (Module)" id="UserAgentsDialog (Module)" ref="eric5.Helpviewer.UserAgent.UserAgentsDialog.html" /> @@ -11825,6 +11839,8 @@ <file>eric5.Helpviewer.UserAgent.UserAgentManager.html</file> <file>eric5.Helpviewer.UserAgent.UserAgentMenu.html</file> <file>eric5.Helpviewer.UserAgent.UserAgentModel.html</file> + <file>eric5.Helpviewer.UserAgent.UserAgentReader.html</file> + <file>eric5.Helpviewer.UserAgent.UserAgentWriter.html</file> <file>eric5.Helpviewer.UserAgent.UserAgentsDialog.html</file> <file>eric5.Helpviewer.VirusTotalApi.html</file> <file>eric5.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html</file>
--- a/Documentation/Source/eric5.Helpviewer.UserAgent.UserAgentManager.html Sat Mar 03 18:37:19 2012 +0100 +++ b/Documentation/Source/eric5.Helpviewer.UserAgent.UserAgentManager.html Sat Mar 03 18:40:25 2012 +0100 @@ -73,6 +73,9 @@ <td><a href="#UserAgentManager.__load">__load</a></td> <td>Private method to load the saved user agent settings.</td> </tr><tr> +<td><a href="#UserAgentManager.__loadNonXml">__loadNonXml</a></td> +<td>Private method to load non-XML user agent files.</td> +</tr><tr> <td><a href="#UserAgentManager.allHostNames">allHostNames</a></td> <td>Public method to get a list of all host names we a user agent setting for.</td> </tr><tr> @@ -126,7 +129,20 @@ <b>__load</b>(<i></i>) <p> Private method to load the saved user agent settings. -</p><a NAME="UserAgentManager.allHostNames" ID="UserAgentManager.allHostNames"></a> +</p><a NAME="UserAgentManager.__loadNonXml" ID="UserAgentManager.__loadNonXml"></a> +<h4>UserAgentManager.__loadNonXml</h4> +<b>__loadNonXml</b>(<i>agentFile</i>) +<p> + Private method to load non-XML user agent files. +</p><p> + This method is to convert from the old, non-XML format to the new + XML based format. +</p><dl> +<dt><i>agentFile</i></dt> +<dd> +name of the non-XML user agent file (string) +</dd> +</dl><a NAME="UserAgentManager.allHostNames" ID="UserAgentManager.allHostNames"></a> <h4>UserAgentManager.allHostNames</h4> <b>allHostNames</b>(<i></i>) <p>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Helpviewer.UserAgent.UserAgentReader.html Sat Mar 03 18:40:25 2012 +0100 @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Helpviewer.UserAgent.UserAgentReader</title> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Helpviewer.UserAgent.UserAgentReader</h1> +<p> +Module implementing a class to read user agent data files. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#UserAgentReader">UserAgentReader</a></td> +<td>Class implementing a reader object for user agent data files.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="UserAgentReader" ID="UserAgentReader"></a> +<h2>UserAgentReader</h2> +<p> + Class implementing a reader object for user agent data files. +</p> +<h3>Derived from</h3> +QXmlStreamReader +<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="#UserAgentReader.__init__">UserAgentReader</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#UserAgentReader.__readUserAgents">__readUserAgents</a></td> +<td>Private method to read the user agents data.</td> +</tr><tr> +<td><a href="#UserAgentReader.__skipUnknownElement">__skipUnknownElement</a></td> +<td>Private method to skip over all unknown elements.</td> +</tr><tr> +<td><a href="#UserAgentReader.read">read</a></td> +<td>Public method to read a user agent file.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="UserAgentReader.__init__" ID="UserAgentReader.__init__"></a> +<h4>UserAgentReader (Constructor)</h4> +<b>UserAgentReader</b>(<i></i>) +<p> + Constructor +</p><a NAME="UserAgentReader.__readUserAgents" ID="UserAgentReader.__readUserAgents"></a> +<h4>UserAgentReader.__readUserAgents</h4> +<b>__readUserAgents</b>(<i></i>) +<p> + Private method to read the user agents data. +</p><a NAME="UserAgentReader.__skipUnknownElement" ID="UserAgentReader.__skipUnknownElement"></a> +<h4>UserAgentReader.__skipUnknownElement</h4> +<b>__skipUnknownElement</b>(<i></i>) +<p> + Private method to skip over all unknown elements. +</p><a NAME="UserAgentReader.read" ID="UserAgentReader.read"></a> +<h4>UserAgentReader.read</h4> +<b>read</b>(<i>fileNameOrDevice</i>) +<p> + Public method to read a user agent file. +</p><dl> +<dt><i>fileNameOrDevice</i></dt> +<dd> +name of the file to read (string) + or reference to the device to read (QIODevice) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +dictionary with user agent data (host as key, agent string as value) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Helpviewer.UserAgent.UserAgentWriter.html Sat Mar 03 18:40:25 2012 +0100 @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Helpviewer.UserAgent.UserAgentWriter</title> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Helpviewer.UserAgent.UserAgentWriter</h1> +<p> +Module implementing a class to write user agent data files. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#UserAgentWriter">UserAgentWriter</a></td> +<td>Class implementing a writer object to generate user agent data files.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="UserAgentWriter" ID="UserAgentWriter"></a> +<h2>UserAgentWriter</h2> +<p> + Class implementing a writer object to generate user agent data files. +</p> +<h3>Derived from</h3> +QXmlStreamWriter +<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="#UserAgentWriter.__init__">UserAgentWriter</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#UserAgentWriter.__write">__write</a></td> +<td>Private method to write a user agent file.</td> +</tr><tr> +<td><a href="#UserAgentWriter.write">write</a></td> +<td>Public method to write a user agent data file.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="UserAgentWriter.__init__" ID="UserAgentWriter.__init__"></a> +<h4>UserAgentWriter (Constructor)</h4> +<b>UserAgentWriter</b>(<i></i>) +<p> + Constructor +</p><a NAME="UserAgentWriter.__write" ID="UserAgentWriter.__write"></a> +<h4>UserAgentWriter.__write</h4> +<b>__write</b>(<i>agents</i>) +<p> + Private method to write a user agent file. +</p><dl> +<dt><i>agents</i></dt> +<dd> +dictionary with user agent data (host as key, agent string as value) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating success (boolean) +</dd> +</dl><a NAME="UserAgentWriter.write" ID="UserAgentWriter.write"></a> +<h4>UserAgentWriter.write</h4> +<b>write</b>(<i>fileNameOrDevice, agents</i>) +<p> + Public method to write a user agent data file. +</p><dl> +<dt><i>fileNameOrDevice</i></dt> +<dd> +name of the file to write (string) + or device to write to (QIODevice) +</dd><dt><i>agents</i></dt> +<dd> +dictionary with user agent data (host as key, agent string as value) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.Helpviewer.UserAgent.html Sat Mar 03 18:37:19 2012 +0100 +++ b/Documentation/Source/index-eric5.Helpviewer.UserAgent.html Sat Mar 03 18:40:25 2012 +0100 @@ -41,6 +41,12 @@ <td><a href="eric5.Helpviewer.UserAgent.UserAgentModel.html">UserAgentModel</a></td> <td>Module implementing a model for user agent management.</td> </tr><tr> +<td><a href="eric5.Helpviewer.UserAgent.UserAgentReader.html">UserAgentReader</a></td> +<td>Module implementing a class to read user agent data files.</td> +</tr><tr> +<td><a href="eric5.Helpviewer.UserAgent.UserAgentWriter.html">UserAgentWriter</a></td> +<td>Module implementing a class to write user agent data files.</td> +</tr><tr> <td><a href="eric5.Helpviewer.UserAgent.UserAgentsDialog.html">UserAgentsDialog</a></td> <td>Module implementing a dialog to show all saved user agent settings.</td> </tr>
--- a/Helpviewer/UserAgent/UserAgentManager.py Sat Mar 03 18:37:19 2012 +0100 +++ b/Helpviewer/UserAgent/UserAgentManager.py Sat Mar 03 18:40:25 2012 +0100 @@ -9,10 +9,13 @@ import os -from PyQt4.QtCore import pyqtSignal, QObject +from PyQt4.QtCore import pyqtSignal, QObject, QXmlStreamReader from E5Gui import E5MessageBox +from .UserAgentWriter import UserAgentWriter +from .UserAgentReader import UserAgentReader + from Utilities.AutoSaver import AutoSaver import Utilities @@ -47,7 +50,7 @@ @return name of the user agents file (string) """ - return os.path.join(Utilities.getConfigDir(), "browser", "userAgentSettings") + return os.path.join(Utilities.getConfigDir(), "browser", "userAgentSettings.xml") def save(self): """ @@ -57,24 +60,45 @@ return agentFile = self.getFileName() - try: - f = open(agentFile, "w", encoding="utf-8") - for host, agent in self.__agents.items(): - f.write("{0}@@{1}\n".format(host, agent)) - f.close() - self.userAgentSettingsSaved.emit() - except IOError as err: + writer = UserAgentWriter() + if not writer.write(agentFile, self.__agents): E5MessageBox.critical(None, self.trUtf8("Saving user agent data"), self.trUtf8("""<p>User agent data could not be saved to <b>{0}</b></p>""" - """<p>Reason: {1}</p>""").format(agentFile, str(err))) - return + ).format(agentFile)) + else: + self.userAgentSettingsSaved.emit() def __load(self): """ Private method to load the saved user agent settings. """ agentFile = self.getFileName() + if not os.path.exists(agentFile): + self.__loadNonXml(os.path.splitext(agentFile)[0]) + else: + reader = UserAgentReader() + self.__agents = reader.read(agentFile) + if reader.error() != QXmlStreamReader.NoError: + E5MessageBox.warning(None, + self.trUtf8("Loading user agent data"), + self.trUtf8("""Error when loading user agent data on""" + """ line {0}, column {1}:\n{2}""")\ + .format(reader.lineNumber(), + reader.columnNumber(), + reader.errorString())) + + self.__loaded = True + + def __loadNonXml(self, agentFile): + """ + Private method to load non-XML user agent files. + + This method is to convert from the old, non-XML format to the new + XML based format. + + @param agentFile name of the non-XML user agent file (string) + """ if os.path.exists(agentFile): try: f = open(agentFile, "r", encoding="utf-8") @@ -97,8 +121,13 @@ host, agent = line.split("@@", 1) self.__agents[host] = agent + + os.remove(agentFile) self.__loaded = True + + # this does the conversion + self.save() def reload(self): """
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Helpviewer/UserAgent/UserAgentReader.py Sat Mar 03 18:40:25 2012 +0100 @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de> +# + + +""" +Module implementing a class to read user agent data files. +""" + +from PyQt4.QtCore import QXmlStreamReader, QIODevice, QFile, QCoreApplication + + +class UserAgentReader(QXmlStreamReader): + """ + Class implementing a reader object for user agent data files. + """ + def __init__(self): + """ + Constructor + """ + super().__init__() + + def read(self, fileNameOrDevice): + """ + Public method to read a user agent file. + + @param fileNameOrDevice name of the file to read (string) + or reference to the device to read (QIODevice) + @return dictionary with user agent data (host as key, agent string as value) + """ + self.__agents = {} + + if isinstance(fileNameOrDevice, QIODevice): + self.setDevice(fileNameOrDevice) + else: + f = QFile(fileNameOrDevice) + if not f.exists(): + return self.__agents + f.open(QFile.ReadOnly) + self.setDevice(f) + + while not self.atEnd(): + self.readNext() + if self.isStartElement(): + version = self.attributes().value("version") + if self.name() == "UserAgents" and \ + (not version or version == "1.0"): + self.__readUserAgents() + else: + self.raiseError(QCoreApplication.translate( + "UserAgentReader", + "The file is not a UserAgents version 1.0 file.")) + + return self.__agents + + def __readUserAgents(self): + """ + Private method to read the user agents data. + """ + if not self.isStartElement() and self.name() != "UserAgents": + return + + while not self.atEnd(): + self.readNext() + if self.isEndElement(): + if self.name() == "UserAgent": + continue + else: + break + + if self.isStartElement(): + if self.name() == "UserAgent": + attributes = self.attributes() + host = attributes.value("host") + agent = attributes.value("agent") + self.__agents[host] = agent + else: + self.__skipUnknownElement() + + def __skipUnknownElement(self): + """ + Private method to skip over all unknown elements. + """ + if not self.isStartElement(): + return + + while not self.atEnd(): + self.readNext() + if self.isEndElement(): + break + + if self.isStartElement(): + self.__skipUnknownElement()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Helpviewer/UserAgent/UserAgentWriter.py Sat Mar 03 18:40:25 2012 +0100 @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a class to write user agent data files. +""" + +from PyQt4.QtCore import QXmlStreamWriter, QIODevice, QFile + + +class UserAgentWriter(QXmlStreamWriter): + """ + Class implementing a writer object to generate user agent data files. + """ + def __init__(self): + """ + Constructor + """ + super().__init__() + + self.setAutoFormatting(True) + + def write(self, fileNameOrDevice, agents): + """ + Public method to write a user agent data file. + + @param fileNameOrDevice name of the file to write (string) + or device to write to (QIODevice) + @param agents dictionary with user agent data (host as key, agent string as value) + """ + if isinstance(fileNameOrDevice, QIODevice): + f = fileNameOrDevice + else: + f = QFile(fileNameOrDevice) + if not agents or not f.open(QFile.WriteOnly): + return False + + self.setDevice(f) + return self.__write(agents) + + def __write(self, agents): + """ + Private method to write a user agent file. + + @param agents dictionary with user agent data (host as key, agent string as value) + @return flag indicating success (boolean) + """ + self.writeStartDocument() + self.writeDTD("<!DOCTYPE passwords>") + self.writeStartElement("UserAgents") + self.writeAttribute("version", "1.0") + + for host, agent in agents.items(): + self.writeEmptyElement("UserAgent") + self.writeAttribute("host", host) + self.writeAttribute("agent", agent) + + self.writeEndDocument() + return True
--- a/eric5.e4p Sat Mar 03 18:37:19 2012 +0100 +++ b/eric5.e4p Sat Mar 03 18:40:25 2012 +0100 @@ -972,6 +972,8 @@ <Source>Helpviewer/Passwords/PasswordWriter.py</Source> <Source>Helpviewer/Passwords/PasswordReader.py</Source> <Source>Helpviewer/Passwords/LoginForm.py</Source> + <Source>Helpviewer/UserAgent/UserAgentWriter.py</Source> + <Source>Helpviewer/UserAgent/UserAgentReader.py</Source> </Sources> <Forms> <Form>PyUnit/UnittestDialog.ui</Form>
--- a/i18n/eric5_cs.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_cs.ts Sat Mar 03 18:40:25 2012 +0100 @@ -27741,22 +27741,22 @@ <translation>Uložit login data</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation>Nahrávání login dat</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation><b>Chcete uložit toto heslo?</b><br/>Pro kontrolu uložených a odebraných hesel použijte dialog správce hesel v menu nastavení.</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation>Nikdy pro tento web</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation>Teď ne</translation> </message> @@ -27766,22 +27766,22 @@ <translation type="obsolete"><p>Login data nelze uložit do <b>{0}</b></p><p>Důvod: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation><p>Login data nelze z <b>{0}</b> nahrát</p><p>Důvod: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation><p>Login data nelze z <b>{0}</b> nahrát</p><p>Důvod: Chybný vstupní formát</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> @@ -45778,25 +45778,31 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> - <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -45850,6 +45856,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>
--- a/i18n/eric5_de.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_de.ts Sat Mar 03 18:40:25 2012 +0100 @@ -26921,42 +26921,42 @@ <translation type="obsolete"><p>Die Anmeldedaten konnten nicht in die Datei <b>{0}</b> gespeichert werden.</p><p>Ursache: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation>Anmeldedaten laden</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation><p>Die Anmeldedaten konnten nicht aus der Datei <b>{0}</b> geladen werden.</p><p>Ursache: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation><p>Die Anmeldedaten konnten nicht aus der Datei <b>{0}</b> geladen werden.</p><p>Ursache: Falsches Format</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation><b>Wollen sie das Kennwort speichern?</b><br/>Um die gespeicherten Kennworte anzusehen und zu löschen, verwenden sie den Kennwortmanagement Dialog aus dem Einstellungen Menü.</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation>Niemals für diese Site</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation>Jetzt nicht</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation>Kennwort speichern</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation>Kodieren gespeicherte Kennworte neu...</translation> </message> @@ -44893,25 +44893,37 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation>User Agent Daten speichern</translation> </message> <message> <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation><p>Die User Agent Daten konnten nicht in die Datei <b>{0}</b> gespeichert werden.</p><p>Ursache: {1}</p></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <translation type="obsolete"><p>Die User Agent Daten konnten nicht in die Datei <b>{0}</b> gespeichert werden.</p><p>Ursache: {1}</p></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation>User Agent Daten laden</translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation><p>Die User Agent Daten konnten nicht aus der Datei <b>{0}</b> geladen werden.</p><p>Ursache: {1}</p></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation><p>Die User Agent Daten konnten nicht in die Datei <b>{0}</b> gespeichert werden.</p></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation>Fehler beim Laden der User Agent Daten in Zeile {0}, Spalte {1}: +{2}</translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -44965,6 +44977,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation>Die Datei ist keine User Agents Datei der Version 1.0.</translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>
--- a/i18n/eric5_en.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_en.ts Sat Mar 03 18:40:25 2012 +0100 @@ -26771,42 +26771,42 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> @@ -44444,25 +44444,31 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> - <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -44516,6 +44522,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>
--- a/i18n/eric5_es.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_es.ts Sat Mar 03 18:40:25 2012 +0100 @@ -27448,22 +27448,22 @@ <translation>Guardar datos de login</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation>Cargando datos de login</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation><b>¿Le gustaría almacenar esta contraseña?</b><br/>Para revisar las contraselas que tiene almacenadas y eliminarlas, utilice el diálogo de gestión de contraseñas del menú de Configuración.</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation>Nunca para este sitio</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation>Ahora no</translation> </message> @@ -27473,22 +27473,22 @@ <translation type="obsolete"><p>Los datos de login no se han podido guardar en <b>{0}</b></p><p>Razón: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation><p>Los datos de login no se han podido cargar desde <b>{0}</b></p><p>Razón: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation><p>Los datos de login no se han podido cargar desde <b>{0}</b></p><p>Razón: Formato erróneo de input</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation>Almacenar contraseña</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation>Recodificando contraseñas almacenadas...</translation> </message> @@ -45553,25 +45553,36 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation>Guardando datos de agente de usuario</translation> </message> <message> <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation><p>Los datos de Agente de usuario no se han podido guardar en <b>{0}</b></p><p>Razón: {1}</p></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <translation type="obsolete"><p>Los datos de Agente de usuario no se han podido guardar en <b>{0}</b></p><p>Razón: {1}</p></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation>Cargando datos de agente de usuario</translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation><p>Los datos de Agente de usuario no se han podido cargar de <b>{0}</b></p><p>Razón: {1}</p></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -45625,6 +45636,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>
--- a/i18n/eric5_fr.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_fr.ts Sat Mar 03 18:40:25 2012 +0100 @@ -29171,42 +29171,42 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> @@ -49112,25 +49112,31 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> - <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -49184,6 +49190,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>
--- a/i18n/eric5_it.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_it.ts Sat Mar 03 18:40:25 2012 +0100 @@ -27342,22 +27342,22 @@ <translation>Salvataggio dati di login</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation>Caricamento dati di login</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation><b>Vuoi salvare questa password ?</b><br/>Per rivedere le password che hai salvato e rimuoverle, usa il dialogo di gestione delle password del menù Impostazioni.</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation>Mai per questo sito</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation>Non adesso</translation> </message> @@ -27367,22 +27367,22 @@ <translation type="obsolete"><p>I dati di login non possono essere salvati su <b>{0}</b></p><p>Motivo: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation><p>I dati di login non possono essere caricati da <b>{0}</b></p><p>Motivo: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation><p>I dati di login non possono essere caricati da <b>{0}</b></p><p>Motivo: formato in ingresso errato</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation>Salva password</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> @@ -45388,25 +45388,31 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> - <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -45460,6 +45466,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>
--- a/i18n/eric5_ru.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_ru.ts Sat Mar 03 18:40:25 2012 +0100 @@ -27474,42 +27474,42 @@ <translation type="obsolete"><p>Невозможно сохранить учётные данные <b>{0}</b></p><p>Причина: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation>Загрузка данных учётной записи</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation><p>Невозможно загрузить учётные данные из <b>{0}</b></p><p>Причина: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation><p>Невозможно загрузить учётные данные из <b>{0}</b></p><p>Причина: Неправильный формат</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation><b>Сохранить этот пароль?</b><br/>Для изменения сохранённых паролей используйте диалог управления паролями из меню настроек.</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation>Никогда для этого сайта</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation>Не сейчас</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation>Сохранить пароль</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> @@ -45558,25 +45558,31 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> - <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -45630,6 +45636,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>
--- a/i18n/eric5_tr.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_tr.ts Sat Mar 03 18:40:25 2012 +0100 @@ -27652,42 +27652,42 @@ <translation type="obsolete"><p>Günlük verisi <b>{0}</b>ne kaydedilemedi</p><p>Sebep: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation>Günlük verileri yükleniyor</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation><p>Giriş verisi <b>{0}</b> den okunamıyor</p><p>Sebep: {1}</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation><p>Giriş verisi <b>{0}</b> den okunamıyor</p><p>Sebep: Hatalı giriş formatı</p></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation><b>Parolayı kaydetmeyi tercih eder misiniz?</b><br/>Kaydettiğiniz yada kaldırdığınız parolaları tekrar gözden geçirmek için, ayarlar meüsünden parola yönetimi diyaloğunu kullanabilirsiniz.</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation>Bu site için hiçbir zaman</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation>Şimdi değil</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> @@ -45556,25 +45556,31 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> - <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -45628,6 +45634,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>
--- a/i18n/eric5_zh_CN.GB2312.ts Sat Mar 03 18:37:19 2012 +0100 +++ b/i18n/eric5_zh_CN.GB2312.ts Sat Mar 03 18:40:25 2012 +0100 @@ -29138,42 +29138,42 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source>Loading login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source><b>Would you like to save this password?</b><br/>To review passwords you have saved and remove them, use the password management dialog of the Settings menu.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="381"/> <source>Never for this site</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="383"/> <source>Not now</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="186"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/> <source><p>Login data could not be loaded from <b>{0}</b></p><p>Reason: Wrong input format</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="374"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="581"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> @@ -49082,25 +49082,31 @@ <context> <name>UserAgentManager</name> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> <source>Saving user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/> - <source><p>User agent data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source>Loading user agent data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="84"/> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="132"/> <source><p>User agent data could not be loaded from <b>{0}</b></p><p>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="65"/> + <source><p>User agent data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="107"/> + <source>Error when loading user agent data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UserAgentMenu</name> @@ -49154,6 +49160,14 @@ </message> </context> <context> + <name>UserAgentReader</name> + <message> + <location filename="Helpviewer/UserAgent/UserAgentReader.py" line="51"/> + <source>The file is not a UserAgents version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>UserAgentsDialog</name> <message> <location filename="Helpviewer/UserAgent/UserAgentsDialog.ui" line="43"/>