Sat, 03 Mar 2012 17:42:42 +0100
Changed file format for saved login data to XML.
--- a/APIs/Python3/eric5.api Wed Feb 29 20:09:55 2012 +0100 +++ b/APIs/Python3/eric5.api Sat Mar 03 17:42:42 2012 +0100 @@ -2446,10 +2446,8 @@ eric5.Helpviewer.OpenSearch.OpenSearchWriter.OpenSearchWriter?1() eric5.Helpviewer.PageScreenDialog.PageScreenDialog.on_buttonBox_clicked?4(button) eric5.Helpviewer.PageScreenDialog.PageScreenDialog?1(view, parent=None) -eric5.Helpviewer.Passwords.PasswordManager.LoginForm.isValid?4() -eric5.Helpviewer.Passwords.PasswordManager.LoginForm.load?4(data) -eric5.Helpviewer.Passwords.PasswordManager.LoginForm.save?4(f) -eric5.Helpviewer.Passwords.PasswordManager.LoginForm?1() +eric5.Helpviewer.Passwords.LoginForm.LoginForm.isValid?4() +eric5.Helpviewer.Passwords.LoginForm.LoginForm?1() eric5.Helpviewer.Passwords.PasswordManager.PasswordManager.FORMS?7 eric5.Helpviewer.Passwords.PasswordManager.PasswordManager.NEVER?7 eric5.Helpviewer.Passwords.PasswordManager.PasswordManager.SEPARATOR?7 @@ -2478,6 +2476,10 @@ eric5.Helpviewer.Passwords.PasswordModel.PasswordModel.setShowPasswords?4(on) eric5.Helpviewer.Passwords.PasswordModel.PasswordModel.showPasswords?4() eric5.Helpviewer.Passwords.PasswordModel.PasswordModel?1(manager, parent=None) +eric5.Helpviewer.Passwords.PasswordReader.PasswordReader.read?4(fileNameOrDevice) +eric5.Helpviewer.Passwords.PasswordReader.PasswordReader?1() +eric5.Helpviewer.Passwords.PasswordWriter.PasswordWriter.write?4(fileNameOrDevice, logins, forms, nevers) +eric5.Helpviewer.Passwords.PasswordWriter.PasswordWriter?1() eric5.Helpviewer.Passwords.PasswordsDialog.PasswordsDialog.on_passwordsButton_clicked?4() eric5.Helpviewer.Passwords.PasswordsDialog.PasswordsDialog?1(parent=None) eric5.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog.getTabsToClose?4()
--- a/APIs/Python3/eric5.bas Wed Feb 29 20:09:55 2012 +0100 +++ b/APIs/Python3/eric5.bas Sat Mar 03 17:42:42 2012 +0100 @@ -55,7 +55,7 @@ BrowserSysPathItem BrowserItem ChangeBookmarkCommand QUndoCommand ChatWidget QWidget Ui_ChatWidget -Class ClbrBaseClasses.Class VisibilityMixin +Class ClbrBase ClassItem UMLItem ClassScope Scope ClbrBase _ClbrBase @@ -394,6 +394,8 @@ PageThumbnailer QObject PasswordManager QObject PasswordModel QAbstractTableModel +PasswordReader QXmlStreamReader +PasswordWriter QXmlStreamWriter PasswordsDialog QDialog Ui_PasswordsDialog Pep8Checker pep8.Checker Pep8CheckerPlugin QObject
--- a/Documentation/Help/source.qhp Wed Feb 29 20:09:55 2012 +0100 +++ b/Documentation/Help/source.qhp Sat Mar 03 17:42:42 2012 +0100 @@ -271,8 +271,11 @@ <section title="eric5.Helpviewer.OpenSearch.OpenSearchWriter" ref="eric5.Helpviewer.OpenSearch.OpenSearchWriter.html" /> </section> <section title="eric5.Helpviewer.Passwords" ref="index-eric5.Helpviewer.Passwords.html"> + <section title="eric5.Helpviewer.Passwords.LoginForm" ref="eric5.Helpviewer.Passwords.LoginForm.html" /> <section title="eric5.Helpviewer.Passwords.PasswordManager" ref="eric5.Helpviewer.Passwords.PasswordManager.html" /> <section title="eric5.Helpviewer.Passwords.PasswordModel" ref="eric5.Helpviewer.Passwords.PasswordModel.html" /> + <section title="eric5.Helpviewer.Passwords.PasswordReader" ref="eric5.Helpviewer.Passwords.PasswordReader.html" /> + <section title="eric5.Helpviewer.Passwords.PasswordWriter" ref="eric5.Helpviewer.Passwords.PasswordWriter.html" /> <section title="eric5.Helpviewer.Passwords.PasswordsDialog" ref="eric5.Helpviewer.Passwords.PasswordsDialog.html" /> </section> <section title="eric5.Helpviewer.SiteInfo" ref="index-eric5.Helpviewer.SiteInfo.html"> @@ -6181,11 +6184,10 @@ <keyword name="LogViewer.appendToStderr" id="LogViewer.appendToStderr" ref="eric5.UI.LogView.html#LogViewer.appendToStderr" /> <keyword name="LogViewer.appendToStdout" id="LogViewer.appendToStdout" ref="eric5.UI.LogView.html#LogViewer.appendToStdout" /> <keyword name="LogViewer.preferencesChanged" id="LogViewer.preferencesChanged" ref="eric5.UI.LogView.html#LogViewer.preferencesChanged" /> - <keyword name="LoginForm" id="LoginForm" ref="eric5.Helpviewer.Passwords.PasswordManager.html#LoginForm" /> - <keyword name="LoginForm (Constructor)" id="LoginForm (Constructor)" ref="eric5.Helpviewer.Passwords.PasswordManager.html#LoginForm.__init__" /> - <keyword name="LoginForm.isValid" id="LoginForm.isValid" ref="eric5.Helpviewer.Passwords.PasswordManager.html#LoginForm.isValid" /> - <keyword name="LoginForm.load" id="LoginForm.load" ref="eric5.Helpviewer.Passwords.PasswordManager.html#LoginForm.load" /> - <keyword name="LoginForm.save" id="LoginForm.save" ref="eric5.Helpviewer.Passwords.PasswordManager.html#LoginForm.save" /> + <keyword name="LoginForm" id="LoginForm" ref="eric5.Helpviewer.Passwords.LoginForm.html#LoginForm" /> + <keyword name="LoginForm (Constructor)" id="LoginForm (Constructor)" ref="eric5.Helpviewer.Passwords.LoginForm.html#LoginForm.__init__" /> + <keyword name="LoginForm (Module)" id="LoginForm (Module)" ref="eric5.Helpviewer.Passwords.LoginForm.html" /> + <keyword name="LoginForm.isValid" id="LoginForm.isValid" ref="eric5.Helpviewer.Passwords.LoginForm.html#LoginForm.isValid" /> <keyword name="MasterPasswordEntryDialog" id="MasterPasswordEntryDialog" ref="eric5.Preferences.ConfigurationPages.MasterPasswordEntryDialog.html#MasterPasswordEntryDialog" /> <keyword name="MasterPasswordEntryDialog (Constructor)" id="MasterPasswordEntryDialog (Constructor)" ref="eric5.Preferences.ConfigurationPages.MasterPasswordEntryDialog.html#MasterPasswordEntryDialog.__init__" /> <keyword name="MasterPasswordEntryDialog (Module)" id="MasterPasswordEntryDialog (Module)" ref="eric5.Preferences.ConfigurationPages.MasterPasswordEntryDialog.html" /> @@ -6735,6 +6737,7 @@ <keyword name="PasswordManager.__extractMultipartQueryItems" id="PasswordManager.__extractMultipartQueryItems" ref="eric5.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__extractMultipartQueryItems" /> <keyword name="PasswordManager.__findForm" id="PasswordManager.__findForm" ref="eric5.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__findForm" /> <keyword name="PasswordManager.__load" id="PasswordManager.__load" ref="eric5.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__load" /> + <keyword name="PasswordManager.__loadNonXml" id="PasswordManager.__loadNonXml" ref="eric5.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__loadNonXml" /> <keyword name="PasswordManager.__stripUrl" id="PasswordManager.__stripUrl" ref="eric5.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__stripUrl" /> <keyword name="PasswordManager.allSiteNames" id="PasswordManager.allSiteNames" ref="eric5.Helpviewer.Passwords.PasswordManager.html#PasswordManager.allSiteNames" /> <keyword name="PasswordManager.clear" id="PasswordManager.clear" ref="eric5.Helpviewer.Passwords.PasswordManager.html#PasswordManager.clear" /> @@ -6761,6 +6764,23 @@ <keyword name="PasswordModel.rowCount" id="PasswordModel.rowCount" ref="eric5.Helpviewer.Passwords.PasswordModel.html#PasswordModel.rowCount" /> <keyword name="PasswordModel.setShowPasswords" id="PasswordModel.setShowPasswords" ref="eric5.Helpviewer.Passwords.PasswordModel.html#PasswordModel.setShowPasswords" /> <keyword name="PasswordModel.showPasswords" id="PasswordModel.showPasswords" ref="eric5.Helpviewer.Passwords.PasswordModel.html#PasswordModel.showPasswords" /> + <keyword name="PasswordReader" id="PasswordReader" ref="eric5.Helpviewer.Passwords.PasswordReader.html#PasswordReader" /> + <keyword name="PasswordReader (Constructor)" id="PasswordReader (Constructor)" ref="eric5.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__init__" /> + <keyword name="PasswordReader (Module)" id="PasswordReader (Module)" ref="eric5.Helpviewer.Passwords.PasswordReader.html" /> + <keyword name="PasswordReader.__readForms" id="PasswordReader.__readForms" ref="eric5.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__readForms" /> + <keyword name="PasswordReader.__readLogins" id="PasswordReader.__readLogins" ref="eric5.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__readLogins" /> + <keyword name="PasswordReader.__readNevers" id="PasswordReader.__readNevers" ref="eric5.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__readNevers" /> + <keyword name="PasswordReader.__readPasswords" id="PasswordReader.__readPasswords" ref="eric5.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__readPasswords" /> + <keyword name="PasswordReader.__skipUnknownElement" id="PasswordReader.__skipUnknownElement" ref="eric5.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__skipUnknownElement" /> + <keyword name="PasswordReader.read" id="PasswordReader.read" ref="eric5.Helpviewer.Passwords.PasswordReader.html#PasswordReader.read" /> + <keyword name="PasswordWriter" id="PasswordWriter" ref="eric5.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter" /> + <keyword name="PasswordWriter (Constructor)" id="PasswordWriter (Constructor)" ref="eric5.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__init__" /> + <keyword name="PasswordWriter (Module)" id="PasswordWriter (Module)" ref="eric5.Helpviewer.Passwords.PasswordWriter.html" /> + <keyword name="PasswordWriter.__write" id="PasswordWriter.__write" ref="eric5.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__write" /> + <keyword name="PasswordWriter.__writeForms" id="PasswordWriter.__writeForms" ref="eric5.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__writeForms" /> + <keyword name="PasswordWriter.__writeLogins" id="PasswordWriter.__writeLogins" ref="eric5.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__writeLogins" /> + <keyword name="PasswordWriter.__writeNevers" id="PasswordWriter.__writeNevers" ref="eric5.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__writeNevers" /> + <keyword name="PasswordWriter.write" id="PasswordWriter.write" ref="eric5.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.write" /> <keyword name="Passwords (Package)" id="Passwords (Package)" ref="index-eric5.Helpviewer.Passwords.html" /> <keyword name="PasswordsDialog" id="PasswordsDialog" ref="eric5.Helpviewer.Passwords.PasswordsDialog.html#PasswordsDialog" /> <keyword name="PasswordsDialog (Constructor)" id="PasswordsDialog (Constructor)" ref="eric5.Helpviewer.Passwords.PasswordsDialog.html#PasswordsDialog.__init__" /> @@ -11770,8 +11790,11 @@ <file>eric5.Helpviewer.OpenSearch.OpenSearchReader.html</file> <file>eric5.Helpviewer.OpenSearch.OpenSearchWriter.html</file> <file>eric5.Helpviewer.PageScreenDialog.html</file> + <file>eric5.Helpviewer.Passwords.LoginForm.html</file> <file>eric5.Helpviewer.Passwords.PasswordManager.html</file> <file>eric5.Helpviewer.Passwords.PasswordModel.html</file> + <file>eric5.Helpviewer.Passwords.PasswordReader.html</file> + <file>eric5.Helpviewer.Passwords.PasswordWriter.html</file> <file>eric5.Helpviewer.Passwords.PasswordsDialog.html</file> <file>eric5.Helpviewer.QtHelpDocumentationDialog.html</file> <file>eric5.Helpviewer.QtHelpFiltersDialog.html</file>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Helpviewer.Passwords.LoginForm.html Sat Mar 03 17:42:42 2012 +0100 @@ -0,0 +1,90 @@ +<?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.Passwords.LoginForm</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.Passwords.LoginForm</h1> +<p> +Module implementing a data structure for login forms. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#LoginForm">LoginForm</a></td> +<td>Class implementing a data structure for login forms.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="LoginForm" ID="LoginForm"></a> +<h2>LoginForm</h2> +<p> + Class implementing a data structure for login forms. +</p> +<h3>Derived from</h3> +object +<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="#LoginForm.__init__">LoginForm</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#LoginForm.isValid">isValid</a></td> +<td>Public method to test for validity.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="LoginForm.__init__" ID="LoginForm.__init__"></a> +<h4>LoginForm (Constructor)</h4> +<b>LoginForm</b>(<i></i>) +<p> + Constructor +</p><a NAME="LoginForm.isValid" ID="LoginForm.isValid"></a> +<h4>LoginForm.isValid</h4> +<b>isValid</b>(<i></i>) +<p> + Public method to test for validity. +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating a valid form (boolean) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Helpviewer.Passwords.PasswordManager.html Wed Feb 29 20:09:55 2012 +0100 +++ b/Documentation/Source/eric5.Helpviewer.Passwords.PasswordManager.html Sat Mar 03 17:42:42 2012 +0100 @@ -31,9 +31,6 @@ <h3>Classes</h3> <table> <tr> -<td><a href="#LoginForm">LoginForm</a></td> -<td>Class implementing a data structure for login forms.</td> -</tr><tr> <td><a href="#PasswordManager">PasswordManager</a></td> <td>Class implementing the password manager.</td> </tr> @@ -43,89 +40,6 @@ <tr><td>None</td></tr> </table> <hr /><hr /> -<a NAME="LoginForm" ID="LoginForm"></a> -<h2>LoginForm</h2> -<p> - Class implementing a data structure for login forms. -</p> -<h3>Derived from</h3> -object -<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="#LoginForm.__init__">LoginForm</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#LoginForm.isValid">isValid</a></td> -<td>Public method to test for validity.</td> -</tr><tr> -<td><a href="#LoginForm.load">load</a></td> -<td>Public method to load the form data from a file.</td> -</tr><tr> -<td><a href="#LoginForm.save">save</a></td> -<td>Public method to save the form data to a file.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="LoginForm.__init__" ID="LoginForm.__init__"></a> -<h4>LoginForm (Constructor)</h4> -<b>LoginForm</b>(<i></i>) -<p> - Constructor -</p><a NAME="LoginForm.isValid" ID="LoginForm.isValid"></a> -<h4>LoginForm.isValid</h4> -<b>isValid</b>(<i></i>) -<p> - Public method to test for validity. -</p><dl> -<dt>Returns:</dt> -<dd> -flag indicating a valid form (boolean) -</dd> -</dl><a NAME="LoginForm.load" ID="LoginForm.load"></a> -<h4>LoginForm.load</h4> -<b>load</b>(<i>data</i>) -<p> - Public method to load the form data from a file. -</p><dl> -<dt><i>data</i></dt> -<dd> -list of strings to load data from (list of strings) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -flag indicating success (boolean) -</dd> -</dl><a NAME="LoginForm.save" ID="LoginForm.save"></a> -<h4>LoginForm.save</h4> -<b>save</b>(<i>f</i>) -<p> - Public method to save the form data to a file. -</p><dl> -<dt><i>f</i></dt> -<dd> -file or file like object open for writing -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -flag indicating success (booelan) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> <a NAME="PasswordManager" ID="PasswordManager"></a> <h2>PasswordManager</h2> <p> @@ -168,6 +82,9 @@ <td><a href="#PasswordManager.__load">__load</a></td> <td>Private method to load the saved login credentials.</td> </tr><tr> +<td><a href="#PasswordManager.__loadNonXml">__loadNonXml</a></td> +<td>Private method to load non-XML password files.</td> +</tr><tr> <td><a href="#PasswordManager.__stripUrl">__stripUrl</a></td> <td>Private method to strip off all unneeded parts of a URL.</td> </tr><tr> @@ -291,7 +208,20 @@ <b>__load</b>(<i></i>) <p> Private method to load the saved login credentials. -</p><a NAME="PasswordManager.__stripUrl" ID="PasswordManager.__stripUrl"></a> +</p><a NAME="PasswordManager.__loadNonXml" ID="PasswordManager.__loadNonXml"></a> +<h4>PasswordManager.__loadNonXml</h4> +<b>__loadNonXml</b>(<i>loginFile</i>) +<p> + Private method to load non-XML password files. +</p><p> + This method is to convert from the old, non-XML format to the new + XML based format. +</p><dl> +<dt><i>loginFile</i></dt> +<dd> +name of the non-XML password file (string) +</dd> +</dl><a NAME="PasswordManager.__stripUrl" ID="PasswordManager.__stripUrl"></a> <h4>PasswordManager.__stripUrl</h4> <b>__stripUrl</b>(<i>url</i>) <p>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Helpviewer.Passwords.PasswordReader.html Sat Mar 03 17:42:42 2012 +0100 @@ -0,0 +1,136 @@ +<?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.Passwords.PasswordReader</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.Passwords.PasswordReader</h1> +<p> +Module implementing a class to read login data files. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#PasswordReader">PasswordReader</a></td> +<td>Class implementing a reader object for login data files.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="PasswordReader" ID="PasswordReader"></a> +<h2>PasswordReader</h2> +<p> + Class implementing a reader object for login 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="#PasswordReader.__init__">PasswordReader</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#PasswordReader.__readForms">__readForms</a></td> +<td>Private method to read the forms information.</td> +</tr><tr> +<td><a href="#PasswordReader.__readLogins">__readLogins</a></td> +<td>Private method to read the login information.</td> +</tr><tr> +<td><a href="#PasswordReader.__readNevers">__readNevers</a></td> +<td>Private method to read the never URLs.</td> +</tr><tr> +<td><a href="#PasswordReader.__readPasswords">__readPasswords</a></td> +<td>Private method to read and parse the login data file.</td> +</tr><tr> +<td><a href="#PasswordReader.__skipUnknownElement">__skipUnknownElement</a></td> +<td>Private method to skip over all unknown elements.</td> +</tr><tr> +<td><a href="#PasswordReader.read">read</a></td> +<td>Public method to read an XBEL bookmark file.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="PasswordReader.__init__" ID="PasswordReader.__init__"></a> +<h4>PasswordReader (Constructor)</h4> +<b>PasswordReader</b>(<i></i>) +<p> + Constructor +</p><a NAME="PasswordReader.__readForms" ID="PasswordReader.__readForms"></a> +<h4>PasswordReader.__readForms</h4> +<b>__readForms</b>(<i></i>) +<p> + Private method to read the forms information. +</p><a NAME="PasswordReader.__readLogins" ID="PasswordReader.__readLogins"></a> +<h4>PasswordReader.__readLogins</h4> +<b>__readLogins</b>(<i></i>) +<p> + Private method to read the login information. +</p><a NAME="PasswordReader.__readNevers" ID="PasswordReader.__readNevers"></a> +<h4>PasswordReader.__readNevers</h4> +<b>__readNevers</b>(<i></i>) +<p> + Private method to read the never URLs. +</p><a NAME="PasswordReader.__readPasswords" ID="PasswordReader.__readPasswords"></a> +<h4>PasswordReader.__readPasswords</h4> +<b>__readPasswords</b>(<i></i>) +<p> + Private method to read and parse the login data file. +</p><a NAME="PasswordReader.__skipUnknownElement" ID="PasswordReader.__skipUnknownElement"></a> +<h4>PasswordReader.__skipUnknownElement</h4> +<b>__skipUnknownElement</b>(<i></i>) +<p> + Private method to skip over all unknown elements. +</p><a NAME="PasswordReader.read" ID="PasswordReader.read"></a> +<h4>PasswordReader.read</h4> +<b>read</b>(<i>fileNameOrDevice</i>) +<p> + Public method to read an XBEL bookmark 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> +tuple containing the logins, forms and never URLs +</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.Passwords.PasswordWriter.html Sat Mar 03 17:42:42 2012 +0100 @@ -0,0 +1,158 @@ +<?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.Passwords.PasswordWriter</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.Passwords.PasswordWriter</h1> +<p> +Module implementing a class to write login data files. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#PasswordWriter">PasswordWriter</a></td> +<td>Class implementing a writer object to generate login data files.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="PasswordWriter" ID="PasswordWriter"></a> +<h2>PasswordWriter</h2> +<p> + Class implementing a writer object to generate login 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="#PasswordWriter.__init__">PasswordWriter</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#PasswordWriter.__write">__write</a></td> +<td>Private method to write an login data file.</td> +</tr><tr> +<td><a href="#PasswordWriter.__writeForms">__writeForms</a></td> +<td>Private method to write forms data.</td> +</tr><tr> +<td><a href="#PasswordWriter.__writeLogins">__writeLogins</a></td> +<td>Private method to write the login data.</td> +</tr><tr> +<td><a href="#PasswordWriter.__writeNevers">__writeNevers</a></td> +<td>Private method to write the URLs never to store login data for.</td> +</tr><tr> +<td><a href="#PasswordWriter.write">write</a></td> +<td>Public method to write an login data file.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="PasswordWriter.__init__" ID="PasswordWriter.__init__"></a> +<h4>PasswordWriter (Constructor)</h4> +<b>PasswordWriter</b>(<i></i>) +<p> + Constructor +</p><a NAME="PasswordWriter.__write" ID="PasswordWriter.__write"></a> +<h4>PasswordWriter.__write</h4> +<b>__write</b>(<i>logins, forms, nevers</i>) +<p> + Private method to write an login data file. +</p><dl> +<dt><i>logins</i></dt> +<dd> +dictionary with login data (user name, password) +</dd><dt><i>forms</i></dt> +<dd> +list of forms data (list of LoginForm) +</dd><dt><i>nevers</i></dt> +<dd> +list of URLs to never store data for (list of strings) +</dd> +</dl><a NAME="PasswordWriter.__writeForms" ID="PasswordWriter.__writeForms"></a> +<h4>PasswordWriter.__writeForms</h4> +<b>__writeForms</b>(<i>forms</i>) +<p> + Private method to write forms data. +</p><dl> +<dt><i>forms</i></dt> +<dd> +list of forms data (list of LoginForm) +</dd> +</dl><a NAME="PasswordWriter.__writeLogins" ID="PasswordWriter.__writeLogins"></a> +<h4>PasswordWriter.__writeLogins</h4> +<b>__writeLogins</b>(<i>logins</i>) +<p> + Private method to write the login data. +</p><dl> +<dt><i>logins</i></dt> +<dd> +dictionary with login data (user name, password) +</dd> +</dl><a NAME="PasswordWriter.__writeNevers" ID="PasswordWriter.__writeNevers"></a> +<h4>PasswordWriter.__writeNevers</h4> +<b>__writeNevers</b>(<i>nevers</i>) +<p> + Private method to write the URLs never to store login data for. +</p><dl> +<dt><i>nevers</i></dt> +<dd> +list of URLs to never store data for (list of strings) +</dd> +</dl><a NAME="PasswordWriter.write" ID="PasswordWriter.write"></a> +<h4>PasswordWriter.write</h4> +<b>write</b>(<i>fileNameOrDevice, logins, forms, nevers</i>) +<p> + Public method to write an login 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>logins</i></dt> +<dd> +dictionary with login data (user name, password) +</dd><dt><i>forms</i></dt> +<dd> +list of forms data (list of LoginForm) +</dd><dt><i>nevers</i></dt> +<dd> +list of URLs to never store data for (list of strings) +</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.Passwords.html Wed Feb 29 20:09:55 2012 +0100 +++ b/Documentation/Source/index-eric5.Helpviewer.Passwords.html Sat Mar 03 17:42:42 2012 +0100 @@ -29,12 +29,21 @@ <h3>Modules</h3> <table> <tr> +<td><a href="eric5.Helpviewer.Passwords.LoginForm.html">LoginForm</a></td> +<td>Module implementing a data structure for login forms.</td> +</tr><tr> <td><a href="eric5.Helpviewer.Passwords.PasswordManager.html">PasswordManager</a></td> <td>Module implementing the password manager.</td> </tr><tr> <td><a href="eric5.Helpviewer.Passwords.PasswordModel.html">PasswordModel</a></td> <td>Module implementing a model for password management.</td> </tr><tr> +<td><a href="eric5.Helpviewer.Passwords.PasswordReader.html">PasswordReader</a></td> +<td>Module implementing a class to read login data files.</td> +</tr><tr> +<td><a href="eric5.Helpviewer.Passwords.PasswordWriter.html">PasswordWriter</a></td> +<td>Module implementing a class to write login data files.</td> +</tr><tr> <td><a href="eric5.Helpviewer.Passwords.PasswordsDialog.html">PasswordsDialog</a></td> <td>Module implementing a dialog to show all saved logins.</td> </tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Helpviewer/Passwords/LoginForm.py Sat Mar 03 17:42:42 2012 +0100 @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a data structure for login forms. +""" + +from PyQt4.QtCore import QUrl + + +class LoginForm(object): + """ + Class implementing a data structure for login forms. + """ + def __init__(self): + """ + Constructor + """ + self.url = QUrl() + self.name = "" + self.hasAPassword = False + self.elements = [] # list of tuples of element name and value + # (string, string) + self.elementTypes = {} # dict of element name as key and type as value + + def isValid(self): + """ + Public method to test for validity. + + @return flag indicating a valid form (boolean) + """ + return len(self.elements) > 0
--- a/Helpviewer/Passwords/PasswordManager.py Wed Feb 29 20:09:55 2012 +0100 +++ b/Helpviewer/Passwords/PasswordManager.py Sat Mar 03 17:42:42 2012 +0100 @@ -9,7 +9,8 @@ import os -from PyQt4.QtCore import pyqtSignal, QObject, QByteArray, QUrl, QCoreApplication +from PyQt4.QtCore import pyqtSignal, QObject, QByteArray, QUrl, QCoreApplication, \ + QXmlStreamReader from PyQt4.QtGui import QProgressDialog, QApplication from PyQt4.QtNetwork import QNetworkRequest from PyQt4.QtWebKit import QWebSettings, QWebPage @@ -18,63 +19,16 @@ from Helpviewer.JavaScriptResources import parseForms_js +from .LoginForm import LoginForm +from .PasswordWriter import PasswordWriter +from .PasswordReader import PasswordReader + from Utilities.AutoSaver import AutoSaver import Utilities import Utilities.crypto import Preferences -class LoginForm(object): - """ - Class implementing a data structure for login forms. - """ - def __init__(self): - """ - Constructor - """ - self.url = QUrl() - self.name = "" - self.hasAPassword = False - self.elements = [] # list of tuples of element name and value - # (string, string) - self.elementTypes = {} # dict of element name as key and type as value - - def isValid(self): - """ - Public method to test for validity. - - @return flag indicating a valid form (boolean) - """ - return len(self.elements) > 0 - - def load(self, data): - """ - Public method to load the form data from a file. - - @param data list of strings to load data from (list of strings) - @return flag indicating success (boolean) - """ - self.url = QUrl(data[0]) - self.name = data[1] - self.hasAPassword = data[2] == "True" - for element in data[3:]: - name, value = element.split(" = ", 1) - self.elements.append((name, value)) - - def save(self, f): - """ - Public method to save the form data to a file. - - @param f file or file like object open for writing - @return flag indicating success (booelan) - """ - f.write("{0}\n".format(self.url.toString())) - f.write("{0}\n".format(self.name)) - f.write("{0}\n".format(self.hasAPassword)) - for element in self.elements: - f.write("{0} = {1}\n".format(element[0], element[1])) - - class PasswordManager(QObject): """ Class implementing the password manager. @@ -174,7 +128,7 @@ @return name of the passwords file (string) """ - return os.path.join(Utilities.getConfigDir(), "browser", "logins") + return os.path.join(Utilities.getConfigDir(), "browser", "logins.xml") def save(self): """ @@ -184,37 +138,46 @@ return loginFile = self.getFileName() - try: - f = open(loginFile, "w", encoding="utf-8") - for key, login in list(self.__logins.items()): - f.write("{0}\n".format(key)) - f.write("{0}\n".format(login[0])) - f.write("{0}\n".format(login[1])) - f.write("{0}\n".format(self.SEPARATOR)) - if self.__loginForms: - f.write("{0}\n".format(self.FORMS)) - for key, form in list(self.__loginForms.items()): - f.write("{0}\n".format(key)) - form.save(f) - f.write("{0}\n".format(self.SEPARATOR)) - if self.__never: - f.write("{0}\n".format(self.NEVER)) - for key in self.__never: - f.write("{0}\n".format(key)) - f.close() - self.passwordsSaved.emit() - except IOError as err: + writer = PasswordWriter() + if not writer.write(loginFile, self.__logins, self.__loginForms, self.__never): E5MessageBox.critical(None, self.trUtf8("Saving login data"), self.trUtf8("""<p>Login data could not be saved to <b>{0}</b></p>""" - """<p>Reason: {1}</p>""").format(loginFile, str(err))) - return + ).format(loginFile)) + else: + self.passwordsSaved.emit() def __load(self): """ Private method to load the saved login credentials. """ loginFile = self.getFileName() + if not os.path.exists(loginFile): + self.__loadNonXml(os.path.splitext(loginFile)[0]) + else: + reader = PasswordReader() + self.__logins, self.__loginForms, self.__never = reader.read(loginFile) + if reader.error() != QXmlStreamReader.NoError: + E5MessageBox.warning(None, + self.trUtf8("Loading login data"), + self.trUtf8("""Error when loading login data on""" + """ line {0}, column {1}:\n{2}""")\ + .format(reader.lineNumber(), + reader.columnNumber(), + reader.errorString())) + pass + + self.__loaded = True + + def __loadNonXml(self, loginFile): + """ + Private method to load non-XML password files. + + This method is to convert from the old, non-XML format to the new + XML based format. + + @param loginFile name of the non-XML password file (string) + """ if os.path.exists(loginFile): try: f = open(loginFile, "r", encoding="utf-8") @@ -260,14 +223,24 @@ else: key = data[0] form = LoginForm() - form.load(data[1:]) + form.url = QUrl(data[1]) + form.name = data[2] + form.hasAPassword = data[3] == "True" + for element in data[4:]: + name, value = element.split(" = ", 1) + form.elements.append((name, value)) self.__loginForms[key] = form data = [] elif section == 2: self.__never.append(line) + + os.remove(loginFile) self.__loaded = True + + # this does the conversion + self.save() def reload(self): """
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Helpviewer/Passwords/PasswordReader.py Sat Mar 03 17:42:42 2012 +0100 @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a class to read login data files. +""" + +from PyQt4.QtCore import QXmlStreamReader, QIODevice, QFile, QCoreApplication, QUrl + +from .LoginForm import LoginForm + + +class PasswordReader(QXmlStreamReader): + """ + Class implementing a reader object for login data files. + """ + def __init__(self): + """ + Constructor + """ + super().__init__() + + def read(self, fileNameOrDevice): + """ + Public method to read an XBEL bookmark file. + + @param fileNameOrDevice name of the file to read (string) + or reference to the device to read (QIODevice) + @return tuple containing the logins, forms and never URLs + """ + self.__logins = {} + self.__loginForms = {} + self.__never = [] + + if isinstance(fileNameOrDevice, QIODevice): + self.setDevice(fileNameOrDevice) + else: + f = QFile(fileNameOrDevice) + if not f.exists(): + return self.__logins, self.__loginForms, self.__never + f.open(QFile.ReadOnly) + self.setDevice(f) + + while not self.atEnd(): + self.readNext() + if self.isStartElement(): + version = self.attributes().value("version") + if self.name() == "Password" and \ + (not version or version == "1.0"): + self.__readPasswords() + else: + self.raiseError(QCoreApplication.translate( + "PasswordReader", + "The file is not a Passwords version 1.0 file.")) + + return self.__logins, self.__loginForms, self.__never + + def __readPasswords(self): + """ + Private method to read and parse the login data file. + """ + if not self.isStartElement() and self.name() != "xbel": + return + + while not self.atEnd(): + self.readNext() + if self.isEndElement(): + break + + if self.isStartElement(): + if self.name() == "Logins": + self.__readLogins() + elif self.name() == "Forms": + self.__readForms() + elif self.name() == "Nevers": + self.__readNevers() + else: + self.__skipUnknownElement() + + def __readLogins(self): + """ + Private method to read the login information. + """ + if not self.isStartElement() and self.name() != "Logins": + return + + while not self.atEnd(): + self.readNext() + if self.isEndElement(): + if self.name() == "Login": + continue + else: + break + + if self.isStartElement(): + if self.name() == "Login": + attributes = self.attributes() + key = attributes.value("key") + user = attributes.value("user") + password = attributes.value("password") + self.__logins[key] = (user, password) + else: + self.__skipUnknownElement() + + def __readForms(self): + """ + Private method to read the forms information. + """ + if not self.isStartElement() and self.name() != "Forms": + return + + while not self.atEnd(): + self.readNext() + if self.isStartElement(): + if self.name() == "Form": + attributes = self.attributes() + key = attributes.value("key") + form = LoginForm() + form.url = QUrl(attributes.value("url")) + form.name = attributes.value("name") + form.hasAPassword = attributes.value("password") == "yes" + elif self.name() == "Elements": + continue + elif self.name() == "Element": + attributes = self.attributes() + name = attributes.value("name") + value = attributes.value("value") + form.elements.append((name, value)) + else: + self.__skipUnknownElement() + + if self.isEndElement(): + if self.name() == "Form": + self.__loginForms[key] = form + continue + elif self.name() in ["Elements", "Element"]: + continue + else: + break + + def __readNevers(self): + """ + Private method to read the never URLs. + """ + if not self.isStartElement() and self.name() != "Nevers": + return + + while not self.atEnd(): + self.readNext() + if self.isEndElement(): + if self.name() == "Never": + continue + else: + break + + if self.isStartElement(): + if self.name() == "Never": + self.__never.append(self.attributes().value("url")) + 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/Passwords/PasswordWriter.py Sat Mar 03 17:42:42 2012 +0100 @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a class to write login data files. +""" + +from PyQt4.QtCore import QXmlStreamWriter, QIODevice, QFile + + +class PasswordWriter(QXmlStreamWriter): + """ + Class implementing a writer object to generate login data files. + """ + def __init__(self): + """ + Constructor + """ + super().__init__() + + self.setAutoFormatting(True) + + def write(self, fileNameOrDevice, logins, forms, nevers): + """ + Public method to write an login data file. + + @param fileNameOrDevice name of the file to write (string) + or device to write to (QIODevice) + @param logins dictionary with login data (user name, password) + @param forms list of forms data (list of LoginForm) + @param nevers list of URLs to never store data for (list of strings) + """ + if isinstance(fileNameOrDevice, QIODevice): + f = fileNameOrDevice + else: + f = QFile(fileNameOrDevice) + if (not logins and not forms and not nevers) or not f.open(QFile.WriteOnly): + return False + + self.setDevice(f) + return self.__write(logins, forms, nevers) + + def __write(self, logins, forms, nevers): + """ + Private method to write an login data file. + + @param logins dictionary with login data (user name, password) + @param forms list of forms data (list of LoginForm) + @param nevers list of URLs to never store data for (list of strings) + """ + self.writeStartDocument() + self.writeDTD("<!DOCTYPE passwords>") + self.writeStartElement("Password") + self.writeAttribute("version", "1.0") + + if logins: + self.__writeLogins(logins) + if forms: + self.__writeForms(forms) + if nevers: + self.__writeNevers(nevers) + + self.writeEndDocument() + return True + + def __writeLogins(self, logins): + """ + Private method to write the login data. + + @param logins dictionary with login data (user name, password) + """ + self.writeStartElement("Logins") + for key, login in logins.items(): + self.writeEmptyElement("Login") + self.writeAttribute("key", key) + self.writeAttribute("user", login[0]) + self.writeAttribute("password", login[1]) + self.writeEndElement() + + def __writeForms(self, forms): + """ + Private method to write forms data. + + @param forms list of forms data (list of LoginForm) + """ + self.writeStartElement("Forms") + for key, form in forms.items(): + self.writeStartElement("Form") + self.writeAttribute("key", key) + self.writeAttribute("url", form.url.toString()) + self.writeAttribute("name", form.name) + self.writeAttribute("password", "yes" if form.hasAPassword else "no") + if form.elements: + self.writeStartElement("Elements") + for element in form.elements: + self.writeEmptyElement("Element") + self.writeAttribute("name", element[0]) + self.writeAttribute("value", element[1]) + self.writeEndElement() + self.writeEndElement() + self.writeEndElement() + + def __writeNevers(self, nevers): + """ + Private method to write the URLs never to store login data for. + + @param nevers list of URLs to never store data for (list of strings) + """ + self.writeStartElement("Nevers") + for never in nevers: + self.writeEmptyElement("Never") + self.writeAttribute("url", never) + self.writeEndElement()
--- a/eric5.e4p Wed Feb 29 20:09:55 2012 +0100 +++ b/eric5.e4p Sat Mar 03 17:42:42 2012 +0100 @@ -969,6 +969,9 @@ <Source>Helpviewer/UrlBar/BookmarkActionSelectionDialog.py</Source> <Source>Helpviewer/Network/EricAccessHandler.py</Source> <Source>Helpviewer/Sync/SyncEncryptionPage.py</Source> + <Source>Helpviewer/Passwords/PasswordWriter.py</Source> + <Source>Helpviewer/Passwords/PasswordReader.py</Source> + <Source>Helpviewer/Passwords/LoginForm.py</Source> </Sources> <Forms> <Form>PyUnit/UnittestDialog.ui</Form>
--- a/i18n/eric5_cs.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_cs.ts Sat Mar 03 17:42:42 2012 +0100 @@ -27736,55 +27736,66 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation>Uložit login data</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <source>Loading login data</source> <translation>Nahrávání login dat</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation>Nikdy pro tento web</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation>Teď ne</translation> </message> <message> <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> <source><p>Login data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation><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="224"/> + <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"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PasswordModel</name> @@ -27805,6 +27816,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>
--- a/i18n/eric5_de.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_de.ts Sat Mar 03 17:42:42 2012 +0100 @@ -26911,55 +26911,67 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation>Anmeldedaten speichern</translation> </message> <message> <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> <source><p>Login data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation><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="247"/> + <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"/> <source>Loading login data</source> <translation>Anmeldedaten laden</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="224"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation>Niemals für diese Site</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation>Jetzt nicht</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation>Kennwort speichern</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation>Kodieren gespeicherte Kennworte neu...</translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation><p>Die Anmeldedaten konnten nicht in die Datei <b>{0}</b> gespeichert werden.</p></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation>Fehler beim Laden der Anmeldedaten in Zeile {0}, Spalte {1}: +{2}</translation> + </message> </context> <context> <name>PasswordModel</name> @@ -26980,6 +26992,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation>Die Datei ist keine Kennwortdatei der Version 1.0.</translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>
--- a/i18n/eric5_en.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_en.ts Sat Mar 03 17:42:42 2012 +0100 @@ -26766,55 +26766,61 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> - <source><p>Login data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <source>Loading login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="224"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PasswordModel</name> @@ -26835,6 +26841,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>
--- a/i18n/eric5_es.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_es.ts Sat Mar 03 17:42:42 2012 +0100 @@ -27443,55 +27443,66 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation>Guardar datos de login</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <source>Loading login data</source> <translation>Cargando datos de login</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation>Nunca para este sitio</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation>Ahora no</translation> </message> <message> <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> <source><p>Login data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation><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="224"/> + <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"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation>Almacenar contraseña</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation>Recodificando contraseñas almacenadas...</translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PasswordModel</name> @@ -27512,6 +27523,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>
--- a/i18n/eric5_fr.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_fr.ts Sat Mar 03 17:42:42 2012 +0100 @@ -29166,55 +29166,61 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <source>Loading login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> - <source><p>Login data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="224"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PasswordModel</name> @@ -29235,6 +29241,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>
--- a/i18n/eric5_it.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_it.ts Sat Mar 03 17:42:42 2012 +0100 @@ -27337,55 +27337,66 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation>Salvataggio dati di login</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <source>Loading login data</source> <translation>Caricamento dati di login</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation>Mai per questo sito</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation>Non adesso</translation> </message> <message> <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> <source><p>Login data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation><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="224"/> + <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"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation>Salva password</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PasswordModel</name> @@ -27406,6 +27417,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>
--- a/i18n/eric5_ru.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_ru.ts Sat Mar 03 17:42:42 2012 +0100 @@ -27464,55 +27464,66 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation>Сохранение данных учётной записи</translation> </message> <message> <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> <source><p>Login data could not be saved to <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="247"/> + <translation type="obsolete"><p>Невозможно сохранить учётные данные <b>{0}</b></p><p>Причина: {1}</p></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <source>Loading login data</source> <translation>Загрузка данных учётной записи</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="224"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation>Никогда для этого сайта</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation>Не сейчас</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation>Сохранить пароль</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PasswordModel</name> @@ -27533,6 +27544,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>
--- a/i18n/eric5_tr.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_tr.ts Sat Mar 03 17:42:42 2012 +0100 @@ -27642,55 +27642,66 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation>Günlük verilerini sakla</translation> </message> <message> <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> <source><p>Login data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation><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="247"/> + <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"/> <source>Loading login data</source> <translation>Günlük verileri yükleniyor</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="224"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation>Bu site için hiçbir zaman</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation>Şimdi değil</translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PasswordModel</name> @@ -27711,6 +27722,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>
--- a/i18n/eric5_zh_CN.GB2312.ts Wed Feb 29 20:09:55 2012 +0100 +++ b/i18n/eric5_zh_CN.GB2312.ts Sat Mar 03 17:42:42 2012 +0100 @@ -29133,55 +29133,61 @@ <context> <name>PasswordManager</name> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> <source>Saving login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <source>Loading login data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <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="409"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="382"/> <source>Never for this site</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="411"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="384"/> <source>Not now</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/> - <source><p>Login data could not be saved to <b>{0}</b></p><p>Reason: {1}</p></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="224"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="187"/> <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="247"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="210"/> <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="402"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="375"/> <source>Save password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Helpviewer/Passwords/PasswordManager.py" line="609"/> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="582"/> <source>Re-encoding saved passwords...</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="143"/> + <source><p>Login data could not be saved to <b>{0}</b></p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Helpviewer/Passwords/PasswordManager.py" line="161"/> + <source>Error when loading login data on line {0}, column {1}: +{2}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PasswordModel</name> @@ -29202,6 +29208,14 @@ </message> </context> <context> + <name>PasswordReader</name> + <message> + <location filename="Helpviewer/Passwords/PasswordReader.py" line="54"/> + <source>The file is not a Passwords version 1.0 file.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PasswordsDialog</name> <message> <location filename="Helpviewer/Passwords/PasswordsDialog.py" line="88"/>