Added a bookmarks importer for Firefox.

Sun, 18 Mar 2012 17:46:54 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 18 Mar 2012 17:46:54 +0100
changeset 1716
d634df56a664
parent 1715
558e44df025a
child 1717
ba85828cd357

Added a bookmarks importer for Firefox.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.Bookmarks.BookmarksImporters.html file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksImporters/__init__.py file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
i18n/eric5_cs.ts file | annotate | diff | comparison | revisions
i18n/eric5_de.qm file | annotate | diff | comparison | revisions
i18n/eric5_de.ts file | annotate | diff | comparison | revisions
i18n/eric5_en.ts file | annotate | diff | comparison | revisions
i18n/eric5_es.ts file | annotate | diff | comparison | revisions
i18n/eric5_fr.ts file | annotate | diff | comparison | revisions
i18n/eric5_it.ts file | annotate | diff | comparison | revisions
i18n/eric5_ru.ts file | annotate | diff | comparison | revisions
i18n/eric5_tr.ts file | annotate | diff | comparison | revisions
i18n/eric5_zh_CN.GB2312.ts file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sun Mar 18 16:15:50 2012 +0100
+++ b/APIs/Python3/eric5.api	Sun Mar 18 17:46:54 2012 +0100
@@ -1799,6 +1799,11 @@
 eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.ChromeImporter.setPath?4(path)
 eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.ChromeImporter?1(id="", parent=None)
 eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.getImporterInfo?4(id)
+eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.FirefoxImporter.importedBookmarks?4()
+eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.FirefoxImporter.open?4()
+eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.FirefoxImporter.setPath?4(path)
+eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.FirefoxImporter?1(id="", parent=None)
+eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.getImporterInfo?4(id)
 eric5.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.HtmlImporter.importedBookmarks?4()
 eric5.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.HtmlImporter.open?4()
 eric5.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.HtmlImporter.setPath?4(path)
--- a/APIs/Python3/eric5.bas	Sun Mar 18 16:15:50 2012 +0100
+++ b/APIs/Python3/eric5.bas	Sun Mar 18 17:46:54 2012 +0100
@@ -210,6 +210,7 @@
 FiletypeAssociationDialog QDialog Ui_FiletypeAssociationDialog
 FindFileDialog QDialog Ui_FindFileDialog
 FindFileNameDialog QWidget Ui_FindFileNameDialog
+FirefoxImporter BookmarksImporter
 FontDialogWizard QObject
 FontDialogWizardDialog QDialog Ui_FontDialogWizardDialog
 FtpAccessHandler SchemeAccessHandler
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sun Mar 18 16:15:50 2012 +0100
+++ b/Documentation/Help/source.qhp	Sun Mar 18 17:46:54 2012 +0100
@@ -203,6 +203,7 @@
               <section title="eric5.Helpviewer.Bookmarks.BookmarksImporters" ref="index-eric5.Helpviewer.Bookmarks.BookmarksImporters.html">
                 <section title="eric5.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html" />
                 <section title="eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html" />
+                <section title="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html" />
                 <section title="eric5.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html" />
                 <section title="eric5.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html" />
                 <section title="eric5.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html" />
@@ -4277,6 +4278,12 @@
       <keyword name="FindFileNameDialog.on_searchDirEdit_textChanged" id="FindFileNameDialog.on_searchDirEdit_textChanged" ref="eric5.UI.FindFileNameDialog.html#FindFileNameDialog.on_searchDirEdit_textChanged" />
       <keyword name="FindFileNameDialog.on_syspathCheckBox_toggled" id="FindFileNameDialog.on_syspathCheckBox_toggled" ref="eric5.UI.FindFileNameDialog.html#FindFileNameDialog.on_syspathCheckBox_toggled" />
       <keyword name="FindFileNameDialog.show" id="FindFileNameDialog.show" ref="eric5.UI.FindFileNameDialog.html#FindFileNameDialog.show" />
+      <keyword name="FirefoxImporter" id="FirefoxImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter" />
+      <keyword name="FirefoxImporter (Constructor)" id="FirefoxImporter (Constructor)" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.__init__" />
+      <keyword name="FirefoxImporter (Module)" id="FirefoxImporter (Module)" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html" />
+      <keyword name="FirefoxImporter.importedBookmarks" id="FirefoxImporter.importedBookmarks" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.importedBookmarks" />
+      <keyword name="FirefoxImporter.open" id="FirefoxImporter.open" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.open" />
+      <keyword name="FirefoxImporter.setPath" id="FirefoxImporter.setPath" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.setPath" />
       <keyword name="FlexCompleter (Module)" id="FlexCompleter (Module)" ref="eric5.DebugClients.Python.FlexCompleter.html" />
       <keyword name="FlexCompleter (Module)" id="FlexCompleter (Module)" ref="eric5.DebugClients.Python3.FlexCompleter.html" />
       <keyword name="FontDialogWizard" id="FontDialogWizard" ref="eric5.Plugins.PluginWizardQFontDialog.html#FontDialogWizard" />
@@ -11321,6 +11328,7 @@
       <keyword name="getIcons" id="getIcons" ref="eric5.Preferences.__init__.html#getIcons" />
       <keyword name="getImporter" id="getImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.__init__.html#getImporter" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#getImporterInfo" />
+      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#getImporterInfo" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html#getImporterInfo" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html#getImporterInfo" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html#getImporterInfo" />
@@ -11876,6 +11884,7 @@
       <file>eric5.Helpviewer.Bookmarks.BookmarksImportDialog.html</file>
       <file>eric5.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html</file>
       <file>eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html</file>
+      <file>eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html</file>
       <file>eric5.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html</file>
       <file>eric5.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html</file>
       <file>eric5.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html	Sun Mar 18 17:46:54 2012 +0100
@@ -0,0 +1,142 @@
+<?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.Bookmarks.BookmarksImporters.FirefoxImporter</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.Bookmarks.BookmarksImporters.FirefoxImporter</h1>
+<p>
+Module implementing an importer for Firefox bookmarks.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#FirefoxImporter">FirefoxImporter</a></td>
+<td>Class implementing the Chrome bookmarks importer.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#getImporterInfo">getImporterInfo</a></td>
+<td>Module function to get information for the given source id.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="FirefoxImporter" ID="FirefoxImporter"></a>
+<h2>FirefoxImporter</h2>
+<p>
+    Class implementing the Chrome bookmarks importer.
+</p>
+<h3>Derived from</h3>
+BookmarksImporter
+<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="#FirefoxImporter.__init__">FirefoxImporter</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#FirefoxImporter.importedBookmarks">importedBookmarks</a></td>
+<td>Public method to get the imported bookmarks.</td>
+</tr><tr>
+<td><a href="#FirefoxImporter.open">open</a></td>
+<td>Public method to open the bookmarks file.</td>
+</tr><tr>
+<td><a href="#FirefoxImporter.setPath">setPath</a></td>
+<td>Public method to set the path of the bookmarks file or directory.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="FirefoxImporter.__init__" ID="FirefoxImporter.__init__"></a>
+<h4>FirefoxImporter (Constructor)</h4>
+<b>FirefoxImporter</b>(<i>id="", parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>id</i></dt>
+<dd>
+source ID (string)
+</dd><dt><i>parent</i></dt>
+<dd>
+reference to the parent object (QObject)
+</dd>
+</dl><a NAME="FirefoxImporter.importedBookmarks" ID="FirefoxImporter.importedBookmarks"></a>
+<h4>FirefoxImporter.importedBookmarks</h4>
+<b>importedBookmarks</b>(<i></i>)
+<p>
+        Public method to get the imported bookmarks.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+imported bookmarks (BookmarkNode)
+</dd>
+</dl><a NAME="FirefoxImporter.open" ID="FirefoxImporter.open"></a>
+<h4>FirefoxImporter.open</h4>
+<b>open</b>(<i></i>)
+<p>
+        Public method to open the bookmarks file.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success (boolean)
+</dd>
+</dl><a NAME="FirefoxImporter.setPath" ID="FirefoxImporter.setPath"></a>
+<h4>FirefoxImporter.setPath</h4>
+<b>setPath</b>(<i>path</i>)
+<p>
+        Public method to set the path of the bookmarks file or directory.
+</p><dl>
+<dt><i>path</i></dt>
+<dd>
+bookmarks file or directory (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="getImporterInfo" ID="getImporterInfo"></a>
+<h2>getImporterInfo</h2>
+<b>getImporterInfo</b>(<i>id</i>)
+<p>
+    Module function to get information for the given source id.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+tuple with an icon (QPixmap), readable name (string), name of
+        the default bookmarks file (string), an info text (string),
+        a prompt (string) and the default directory of the bookmarks file (string)
+</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.Bookmarks.BookmarksImporters.html	Sun Mar 18 16:15:50 2012 +0100
+++ b/Documentation/Source/index-eric5.Helpviewer.Bookmarks.BookmarksImporters.html	Sun Mar 18 17:46:54 2012 +0100
@@ -35,6 +35,9 @@
 <td><a href="eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html">ChromeImporter</a></td>
 <td>Module implementing an importer for Chrome bookmarks.</td>
 </tr><tr>
+<td><a href="eric5.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html">FirefoxImporter</a></td>
+<td>Module implementing an importer for Firefox bookmarks.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html">HtmlImporter</a></td>
 <td>Module implementing an importer for HTML bookmark files.</td>
 </tr><tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py	Sun Mar 18 17:46:54 2012 +0100
@@ -0,0 +1,158 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing an importer for Firefox bookmarks.
+"""
+
+import os
+
+from PyQt4.QtCore import QCoreApplication, QDate, Qt, QUrl
+from PyQt4.QtSql import QSqlDatabase, QSqlQuery
+
+from ..BookmarkNode import BookmarkNode
+
+from .BookmarksImporter import BookmarksImporter
+
+import UI.PixmapCache
+import Globals
+
+
+def getImporterInfo(id):
+    """
+    Module function to get information for the given source id.
+    
+    @return tuple with an icon (QPixmap), readable name (string), name of
+        the default bookmarks file (string), an info text (string),
+        a prompt (string) and the default directory of the bookmarks file (string)
+    """
+    if id == "firefox":
+        if Globals.isWindowsPlatform():
+            standardDir = os.path.expandvars(
+                "%APPDATA%\\Mozilla\\Firefox\\Profiles")
+        else:
+            standardDir = os.path.expanduser("~/.mozilla/firefox")
+        return (
+            UI.PixmapCache.getPixmap("chrome.png"),
+            "Mozilla Firefox",
+            "places.sqlite",
+            QCoreApplication.translate("FirefoxImporter",
+                """Mozilla Firefox stores its bookmarks in the <b>places.sqlite</b> """
+                """SQLite database. This file is usually located in"""),
+            QCoreApplication.translate("FirefoxImporter",
+                """Please choose the file to begin importing bookmarks."""),
+            standardDir,
+        )
+    else:
+        raise ValueError("Unsupported browser ID given ({0}).".format(id))
+
+
+class FirefoxImporter(BookmarksImporter):
+    """
+    Class implementing the Chrome bookmarks importer.
+    """
+    def __init__(self, id="", parent=None):
+        """
+        Constructor
+        
+        @param id source ID (string)
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(id, parent)
+        
+        self.__fileName = ""
+        self.__db = None
+    
+    def setPath(self, path):
+        """
+        Public method to set the path of the bookmarks file or directory.
+        
+        @param path bookmarks file or directory (string)
+        """
+        self.__fileName = path
+    
+    def open(self):
+        """
+        Public method to open the bookmarks file.
+        
+        @return flag indicating success (boolean)
+        """
+        if not os.path.exists(self.__fileName):
+            self._error = True
+            self._errorString = self.trUtf8("File '{0}' does not exist.")\
+                .format(self.__fileName)
+            return False
+        
+        self.__db = QSqlDatabase.addDatabase("QSQLITE")
+        self.__db.setDatabaseName(self.__fileName)
+        opened = self.__db.open()
+        
+        if not opened:
+            self._error = True
+            self._errorString = self.trUtf8("Unable to open database.\nReason: {0}")\
+                .format(self.__db.lastError().text())
+            return False
+        
+        return True
+    
+    def importedBookmarks(self):
+        """
+        Public method to get the imported bookmarks.
+        
+        @return imported bookmarks (BookmarkNode)
+        """
+        importRootNode = BookmarkNode(BookmarkNode.Folder)
+        
+        # step 1: build the hierarchy of bookmark folders
+        folders = {}
+        query = QSqlQuery(self.__db)
+        query.exec_(
+            "SELECT id, parent, title FROM moz_bookmarks WHERE type = 2 and title !=''")
+        while query.next():
+            id_ = int(query.value(0))
+            parent = int(query.value(1))
+            title = query.value(2)
+            if parent in folders:
+                folder = BookmarkNode(BookmarkNode.Folder, folders[parent])
+            else:
+                folder = BookmarkNode(BookmarkNode.Folder, importRootNode)
+            folder.title = title
+            folders[id_] = folder
+        
+        query = QSqlQuery(self.__db)
+        query.exec_(
+            "SELECT parent, title, fk, position FROM moz_bookmarks"
+            " WHERE type = 1 and title != '' ORDER BY position")
+        while query.next():
+            parent = int(query.value(0))
+            title = query.value(1).replace("&", "&&")
+            placesId = int(query.value(2))
+            
+            query2 = QSqlQuery(self.__db)
+            query2.exec_("SELECT url FROM moz_places WHERE id = {0}".format(placesId))
+            if not query2.next():
+                continue
+            
+            url = QUrl(query2.value(0))
+            if not title or url.isEmpty() or url.scheme() in ["place", "about"]:
+                continue
+            
+            if parent in folders:
+                bookmark = BookmarkNode(BookmarkNode.Bookmark, folders[parent])
+            else:
+                bookmark = BookmarkNode(BookmarkNode.Bookmark, importRootNode)
+            bookmark.url = url.toString()
+            bookmark.title = title
+        
+        if query.lastError().isValid():
+            self._error = True
+            self._errorString = query.lastError().text()
+        
+        if self._id == "firefox":
+            importRootNode.title = self.trUtf8("Mozilla Firefox Import")
+        else:
+            importRootNode.title = self.trUtf8("Imported {0}")\
+                .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate))
+        return importRootNode
--- a/Helpviewer/Bookmarks/BookmarksImporters/__init__.py	Sun Mar 18 16:15:50 2012 +0100
+++ b/Helpviewer/Bookmarks/BookmarksImporters/__init__.py	Sun Mar 18 17:46:54 2012 +0100
@@ -24,8 +24,10 @@
     importers.append(
         (UI.PixmapCache.getIcon("ericWeb48.png"), "eric5 Web Browser", "e5browser"))
     importers.append(
+        (UI.PixmapCache.getIcon("firefox.png"), "Mozilla Firefox", "firefox"))
+    importers.append(
         (UI.PixmapCache.getIcon("chrome.png"), "Google Chrome", "chrome"))
-    if not Globals.isWindowsPlatform() and not Globals.isMacPlatform():
+    if Globals.isLinuxPlatform():
         importers.append(
             (UI.PixmapCache.getIcon("chromium.png"), "Chromium", "chromium"))
     importers.append(
@@ -39,7 +41,7 @@
          QCoreApplication.translate("BookmarksImporters", "HTML File"),
          "html"))
     return importers
-    # TODO: importers for Safari, Firefox, IE
+    # TODO: importers for Safari, IE
 
 
 def getImporterInfo(id):
@@ -63,6 +65,9 @@
     elif id == "opera":
         from . import OperaImporter
         return OperaImporter.getImporterInfo(id)
+    elif id == "firefox":
+        from . import FirefoxImporter
+        return FirefoxImporter.getImporterInfo(id)
     else:
         raise ValueError("Invalid importer ID given ({0}).".format(id))
 
@@ -86,5 +91,8 @@
     elif id == "opera":
         from . import OperaImporter
         return OperaImporter.OperaImporter(id, parent)
+    elif id == "firefox":
+        from . import FirefoxImporter
+        return FirefoxImporter.FirefoxImporter(id, parent)
     else:
         raise ValueError("No importer for ID {0}.".format(id))
--- a/eric5.e4p	Sun Mar 18 16:15:50 2012 +0100
+++ b/eric5.e4p	Sun Mar 18 17:46:54 2012 +0100
@@ -992,6 +992,8 @@
     <Source>Helpviewer/Bookmarks/BookmarksImporters/HtmlImporter.py</Source>
     <Source>Helpviewer/Bookmarks/BookmarksImporters/BookmarksImporter.py</Source>
     <Source>Helpviewer/Bookmarks/BookmarksImporters/ChromeImporter.py</Source>
+    <Source>Helpviewer/Bookmarks/BookmarksImporters/OperaImporter.py</Source>
+    <Source>Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
--- a/i18n/eric5_cs.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_cs.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1597,12 +1597,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -13141,6 +13141,40 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation type="unfinished">Importováno {0}</translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="121"/>
Binary file i18n/eric5_de.qm has changed
--- a/i18n/eric5_de.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_de.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1586,12 +1586,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation>XBEL Datei</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation>HTML Datei</translation>
     </message>
@@ -12869,6 +12869,41 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation>Mozilla Firefox speichert die Lesezeichen in der SQLite Datenbank &lt;b&gt;places.sqlite&lt;/b&gt;. Diese Datei befindet sich gewöhnlich in</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation>Bitte wähle die Datei, um den Import von Lesezeichen zu starten.</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation>Datei &apos;{0}&apos; existiert nicht.</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation>Die Datenbank kann nicht geöffnet werden.
+Ursache: {0}</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation>Mozilla Firefox Import</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation>Importiert {0}</translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="121"/>
--- a/i18n/eric5_en.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_en.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1559,12 +1559,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -12784,6 +12784,40 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="76"/>
--- a/i18n/eric5_es.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_es.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1595,12 +1595,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -13036,6 +13036,40 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation type="unfinished">Importado {0}</translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="76"/>
--- a/i18n/eric5_fr.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_fr.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1778,12 +1778,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -14007,6 +14007,40 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="121"/>
--- a/i18n/eric5_it.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_it.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1597,12 +1597,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -12975,6 +12975,40 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation type="unfinished">Importato {0}</translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="121"/>
--- a/i18n/eric5_ru.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_ru.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1594,12 +1594,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -13072,6 +13072,40 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation type="unfinished">Импортировано {0}</translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="121"/>
--- a/i18n/eric5_tr.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_tr.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1595,12 +1595,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -13153,6 +13153,40 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation type="unfinished">İçe Aktarılmış {0}</translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="76"/>
--- a/i18n/eric5_zh_CN.GB2312.ts	Sun Mar 18 16:15:50 2012 +0100
+++ b/i18n/eric5_zh_CN.GB2312.ts	Sun Mar 18 17:46:54 2012 +0100
@@ -1771,12 +1771,12 @@
 <context>
     <name>BookmarksImporters</name>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="33"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="35"/>
         <source>XBEL File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="37"/>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/__init__.py" line="39"/>
         <source>HTML File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -13954,6 +13954,40 @@
     </message>
 </context>
 <context>
+    <name>FirefoxImporter</name>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Mozilla Firefox stores its bookmarks in the &lt;b&gt;places.sqlite&lt;/b&gt; SQLite database. This file is usually located in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="37"/>
+        <source>Please choose the file to begin importing bookmarks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="84"/>
+        <source>File &apos;{0}&apos; does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="94"/>
+        <source>Unable to open database.
+Reason: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="154"/>
+        <source>Mozilla Firefox Import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py" line="156"/>
+        <source>Imported {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FontDialogWizard</name>
     <message>
         <location filename="Plugins/PluginWizardQFontDialog.py" line="76"/>

eric ide

mercurial