Continued porting the web browser. QtWebEngine

Sat, 05 Mar 2016 16:44:41 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 05 Mar 2016 16:44:41 +0100
branch
QtWebEngine
changeset 4806
5c0745cb26ea
parent 4805
8ef007140046
child 4807
5c87ef12aa6d

Continued porting the web browser.

- adjusted the default mode of the configuration dialog to handle the QtWebEngine based browser
- adjusted the install and uninstall scripts

Preferences/ConfigurationDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/SecurityPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/WebBrowserPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/WebBrowserPage.ui file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
WebBrowser/Bookmarks/BookmarksToolBar.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
eric6_browser.desktop file | annotate | diff | comparison | revisions
eric6_configure.py file | annotate | diff | comparison | revisions
install.py file | annotate | diff | comparison | revisions
uninstall.py file | annotate | diff | comparison | revisions
--- a/Preferences/ConfigurationDialog.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/Preferences/ConfigurationDialog.py	Sat Mar 05 16:44:41 2016 +0100
@@ -82,7 +82,7 @@
     WebBrowserMode = 4
     
     def __init__(self, parent=None, fromEric=True, displayMode=DefaultMode,
-                 expandedEntries=[]):
+                 expandedEntries=[], webEngine=False):
         """
         Constructor
         
@@ -95,6 +95,7 @@
         @exception RuntimeError raised to indicate an invalid dialog mode
         @keyparam expandedEntries list of entries to be shown expanded
             (list of strings)
+        @keyparam webEngine flag indicating QtWebEngine is used (bool)
         """
         assert displayMode in (
             ConfigurationWidget.DefaultMode,
@@ -107,6 +108,7 @@
         super(ConfigurationWidget, self).__init__(parent)
         self.fromEric = fromEric
         self.displayMode = displayMode
+        self.__webEngine = webEngine
         
         self.__setupUi()
         
@@ -319,25 +321,49 @@
                 [self.tr("Viewmanager"), "preferences-viewmanager.png",
                  "ViewmanagerPage", "0interfacePage", None],
             }
-            try:
-                from PyQt5 import QtWebKit      # __IGNORE_WARNING__
+            if webEngine:
                 self.configItems.update({
-                    "helpAppearancePage":
+                    "0webBrowserPage":
+                    [self.tr("Web Browser"), "ericWeb.png",
+                     None, None, None],
+                    "webBrowserAppearancePage":
                     [self.tr("Appearance"), "preferences-styles.png",
-                     "HelpAppearancePage", "0helpPage", None],
+                     "WebBrowserAppearancePage", "0webBrowserPage", None],
+                    "webBrowserPage":
+                    [self.tr("eric6 Web Browser"), "ericWeb.png",
+                     "WebBrowserPage", "0webBrowserPage", None],
                     "helpFlashCookieManagerPage":
                     [self.tr("Flash Cookie Manager"),
                      "flashCookie16.png",
-                     "HelpFlashCookieManagerPage", "0helpPage", None],
+                     "HelpFlashCookieManagerPage", "0webBrowserPage", None],
                     "helpVirusTotalPage":
                     [self.tr("VirusTotal Interface"), "virustotal.png",
-                     "HelpVirusTotalPage", "0helpPage", None],
-                    "helpWebBrowserPage":
-                    [self.tr("eric6 Web Browser"), "ericWeb.png",
-                     "HelpWebBrowserPage", "0helpPage", None],
+                     "HelpVirusTotalPage", "0webBrowserPage", None],
                 })
-            except ImportError:
-                pass
+            else:
+                try:
+                    from PyQt5 import QtWebKit      # __IGNORE_WARNING__
+                    self.configItems.update({
+                        "0helpBrowserPage":
+                        [self.tr("Web Browser"), "ericWeb.png",
+                         None, None, None],
+                        "helpAppearancePage":
+                        [self.tr("Appearance"), "preferences-styles.png",
+                         "HelpAppearancePage", "0helpBrowserPage", None],
+                        "helpWebBrowserPage":
+                        [self.tr("eric6 Web Browser"), "ericWeb.png",
+                         "HelpWebBrowserPage", "0helpBrowserPage", None],
+                        "helpFlashCookieManagerPage":
+                        [self.tr("Flash Cookie Manager"),
+                         "flashCookie16.png",
+                         "HelpFlashCookieManagerPage", "0helpBrowserPage",
+                         None],
+                        "helpVirusTotalPage":
+                        [self.tr("VirusTotal Interface"), "virustotal.png",
+                         "HelpVirusTotalPage", "0helpBrowserPage", None],
+                    })
+                except ImportError:
+                    pass
             
             self.configItems.update(
                 e5App().getObject("PluginManager").getPluginConfigData())
@@ -363,30 +389,27 @@
                 [self.tr("Security"), "preferences-security.png",
                  "SecurityPage", None, None],
                 
-                "0helpPage":
-                [self.tr("Help"), "preferences-help.png",
-                 None, None, None],
                 "helpDocumentationPage":
                 [self.tr("Help Documentation"),
                  "preferences-helpdocumentation.png",
-                 "HelpDocumentationPage", "0helpPage", None],
+                 "HelpDocumentationPage", None, None],
             }
             try:
                 from PyQt5 import QtWebKit      # __IGNORE_WARNING__
                 self.configItems.update({
                     "helpAppearancePage":
                     [self.tr("Appearance"), "preferences-styles.png",
-                     "HelpAppearancePage", "0helpPage", None],
+                     "HelpAppearancePage", None, None],
                     "helpFlashCookieManagerPage":
                     [self.tr("Flash Cookie Manager"),
                      "flashCookie16.png",
-                     "HelpFlashCookieManagerPage", "0helpPage", None],
+                     "HelpFlashCookieManagerPage", None, None],
                     "helpVirusTotalPage":
                     [self.tr("VirusTotal Interface"), "virustotal.png",
-                     "HelpVirusTotalPage", "0helpPage", None],
+                     "HelpVirusTotalPage", None, None],
                     "helpWebBrowserPage":
                     [self.tr("eric6 Web Browser"), "ericWeb.png",
-                     "HelpWebBrowserPage", "0helpPage", None],
+                     "HelpWebBrowserPage", None, None],
                 })
             except ImportError:
                 pass
@@ -885,6 +908,13 @@
         pageName = item.data(0, Qt.UserRole)
         if pageName not in self.__expandedEntries:
             self.__expandedEntries.append(pageName)
+    
+    def isUsingWebEngine(self):
+        """
+        Public method to get an indication, if QtWebEngine is being used.
+        """
+        return self.__webEngine or \
+            self.displayMode == ConfigurationWidget.WebBrowserMode
 
 
 class ConfigurationDialog(QDialog):
@@ -906,7 +936,7 @@
     
     def __init__(self, parent=None, name=None, modal=False,
                  fromEric=True, displayMode=ConfigurationWidget.DefaultMode,
-                 expandedEntries=[]):
+                 expandedEntries=[], webEngine=False):
         """
         Constructor
         
@@ -920,6 +950,7 @@
              WebBrowserMode)
         @keyparam expandedEntries list of entries to be shown expanded
             (list of strings)
+        @keyparam webEngine flag indicating QtWebEngine is used (bool)
         """
         super(ConfigurationDialog, self).__init__(parent)
         if name:
@@ -933,7 +964,8 @@
         
         self.cw = ConfigurationWidget(self, fromEric=fromEric,
                                       displayMode=displayMode,
-                                      expandedEntries=expandedEntries)
+                                      expandedEntries=expandedEntries,
+                                      webEngine=webEngine)
         size = self.cw.size()
         self.layout.addWidget(self.cw)
         self.resize(size)
@@ -1001,15 +1033,17 @@
     """
     Main window class for the standalone dialog.
     """
-    def __init__(self, parent=None):
+    def __init__(self, parent=None, webEngine=False):
         """
         Constructor
         
         @param parent reference to the parent widget (QWidget)
+        @keyparam webEngine flag indicating QtWebEngine is used (bool)
         """
         super(ConfigurationWindow, self).__init__(parent)
         
-        self.cw = ConfigurationWidget(self, fromEric=False)
+        self.cw = ConfigurationWidget(self, fromEric=False,
+                                      webEngine=webEngine)
         size = self.cw.size()
         self.setCentralWidget(self.cw)
         self.resize(size)
--- a/Preferences/ConfigurationPages/SecurityPage.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/Preferences/ConfigurationPages/SecurityPage.py	Sat Mar 05 16:44:41 2016 +0100
@@ -75,8 +75,9 @@
                 self.dnsPrefetchCheckBox.setEnabled(False)
         # TODO: add config for default Mode
         else:
-            self.dnsPrefetchCheckBox.setEnabled(False)
-            self.dnsGroup.hide()
+            if self.__configDlg.isUsingWebEngine():
+                self.dnsPrefetchCheckBox.setEnabled(False)
+                self.dnsGroup.hide()
     
     def save(self):
         """
--- a/Preferences/ConfigurationPages/WebBrowserPage.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/Preferences/ConfigurationPages/WebBrowserPage.py	Sat Mar 05 16:44:41 2016 +0100
@@ -84,11 +84,10 @@
 ##        self.sendRefererCheckBox.setChecked(
 ##            Preferences.getWebBrowser("SendReferer"))
         
-        # TODO: Cache
-##        self.diskCacheCheckBox.setChecked(
-##            Preferences.getWebBrowser("DiskCacheEnabled"))
-##        self.cacheSizeSpinBox.setValue(
-##            Preferences.getWebBrowser("DiskCacheSize"))
+        self.diskCacheCheckBox.setChecked(
+            Preferences.getWebBrowser("DiskCacheEnabled"))
+        self.cacheSizeSpinBox.setValue(
+            Preferences.getWebBrowser("DiskCacheSize"))
         
         self.startupCombo.setCurrentIndex(
             Preferences.getWebBrowser("StartupBehavior"))
@@ -153,7 +152,6 @@
         self.doNotTrackCheckBox.hide()
         self.sendRefererCheckBox.hide()
         self.refererWhitelistButton.hide()
-        self.noCacheHostsButton.hide()
     
     def save(self):
         """
@@ -207,13 +205,12 @@
 ##            "SendReferer",
 ##            self.sendRefererCheckBox.isChecked())
         
-        # TODO: Cache
-##        Preferences.setWebBrowser(
-##            "DiskCacheEnabled",
-##            self.diskCacheCheckBox.isChecked())
-##        Preferences.setWebBrowser(
-##            "DiskCacheSize",
-##            self.cacheSizeSpinBox.value())
+        Preferences.setWebBrowser(
+            "DiskCacheEnabled",
+            self.diskCacheCheckBox.isChecked())
+        Preferences.setWebBrowser(
+            "DiskCacheSize",
+            self.cacheSizeSpinBox.value())
         
         Preferences.setWebBrowser(
             "StartupBehavior",
@@ -306,16 +303,6 @@
 ##        from Helpviewer.Network.SendRefererWhitelistDialog import \
 ##            SendRefererWhitelistDialog
 ##        SendRefererWhitelistDialog(self).exec_()
-    
-    # TODO: Cache
-##    @pyqtSlot()
-##    def on_noCacheHostsButton_clicked(self):
-##        """
-##        Private slot to edit the list of hosts exempted from caching.
-##        """
-##        from Helpviewer.Network.NoCacheHostsDialog import \
-##            NoCacheHostsDialog
-##        NoCacheHostsDialog(self).exec_()
 
 
 def create(dlg):
--- a/Preferences/ConfigurationPages/WebBrowserPage.ui	Sat Mar 05 14:34:49 2016 +0100
+++ b/Preferences/ConfigurationPages/WebBrowserPage.ui	Sat Mar 05 16:44:41 2016 +0100
@@ -462,38 +462,11 @@
      </property>
      <layout class="QGridLayout" name="gridLayout_2">
       <item row="0" column="0" colspan="3">
-       <layout class="QHBoxLayout" name="horizontalLayout_5">
-        <item>
-         <widget class="QCheckBox" name="diskCacheCheckBox">
-          <property name="text">
-           <string>Enable disk cache</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_7">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="noCacheHostsButton">
-          <property name="toolTip">
-           <string>Press to edit the list of hosts exempted from caching</string>
-          </property>
-          <property name="text">
-           <string>Edit Exempted Hosts ...</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
+       <widget class="QCheckBox" name="diskCacheCheckBox">
+        <property name="text">
+         <string>Enable disk cache</string>
+        </property>
+       </widget>
       </item>
       <item row="1" column="0">
        <widget class="QLabel" name="label_7">
@@ -723,7 +696,6 @@
   <tabstop>xssAuditingCheckBox</tabstop>
   <tabstop>expireHistory</tabstop>
   <tabstop>diskCacheCheckBox</tabstop>
-  <tabstop>noCacheHostsButton</tabstop>
   <tabstop>cacheSizeSpinBox</tabstop>
   <tabstop>languageCombo</tabstop>
   <tabstop>spatialCheckBox</tabstop>
--- a/Preferences/__init__.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/Preferences/__init__.py	Sat Mar 05 16:44:41 2016 +0100
@@ -1030,6 +1030,8 @@
         "ShowPreview": True,
         "WebInspectorPort": 42024,
         "WebInspectorEnabled": False,
+        "DiskCacheEnabled": True,
+        "DiskCacheSize": 50,        # 50 MB
         # Grease Monkey
         "GreaseMonkeyDisabledScripts": [],
         # Downloads
@@ -2775,7 +2777,7 @@
 ##        if QWebSettings is None:
 ##            value = prefClass.helpDefaults[key]
 ##        return value
-##    elif key in ["DiskCacheSize", "AcceptCookies",
+##    elif key in ["AcceptCookies",
 ##                 "KeepCookiesUntil", "StartupBehavior",
 ##                 "OfflineStorageDatabaseQuota",
 ##                 "OfflineWebApplicationCacheQuota", "CachePolicy",
@@ -2787,7 +2789,7 @@
                  "SearchLanguage", "WebInspectorPort",
                  "DefaultFontSize", "DefaultFixedFontSize",
                  "MinimumFontSize", "MinimumLogicalFontSize",
-                 ]:
+                 "DiskCacheSize", ]:
         return int(prefClass.settings.value(
             "WebBrowser/" + key, prefClass.webBrowserDefaults[key]))
 ##    elif key in ["DiskCacheEnabled", "FilterTrackingCookies",
@@ -2813,7 +2815,7 @@
                  "SyncEnabled", "SyncBookmarks", "SyncHistory",
                  "SyncPasswords", "SyncUserAgents", "SyncSpeedDial",
                  "SyncEncryptData", "SyncEncryptPasswordsOnly",
-                 "ShowPreview", "WebInspectorEnabled",
+                 "ShowPreview", "WebInspectorEnabled", "DiskCacheEnabled",
                  ]:
         return toBool(prefClass.settings.value(
             "WebBrowser/" + key, prefClass.webBrowserDefaults[key]))
--- a/UI/UserInterface.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/UI/UserInterface.py	Sat Mar 05 16:44:41 2016 +0100
@@ -5229,8 +5229,13 @@
                 home = QUrl.fromLocalFile(home).toString()
         
         if WEBENGINE_AVAILABLE or WEBKIT_AVAILABLE:
-            if not (useSingle or Preferences.getHelp("SingleHelpWindow")) or \
-               self.helpWindow is None:
+            single = useSingle
+            if WEBENGINE_AVAILABLE:
+                single = single or \
+                    Preferences.getWebBrowser("SingleWebBrowserWindow")
+            elif WEBKIT_AVAILABLE:
+                single = single or Preferences.getHelp("SingleHelpWindow")
+            if not single or self.helpWindow is None:
                 if WEBENGINE_AVAILABLE:
                     from WebBrowser.WebBrowserWindow import WebBrowserWindow
                     help = WebBrowserWindow(home, '.', None, 'web_browser',
@@ -5246,10 +5251,11 @@
                 else:
                     help.showMaximized()
                 
-                if useSingle or Preferences.getHelp("SingleHelpWindow"):
+                if single:
                     self.helpWindow = help
                     try:
-                        self.helpWindow.webBrowserClosed.connect(self.__helpClosed)
+                        self.helpWindow.webBrowserClosed.connect(
+                            self.__helpClosed)
                     except AttributeError:
                         self.helpWindow.helpClosed.connect(self.__helpClosed)
                     self.preferencesChanged.connect(
@@ -5269,7 +5275,11 @@
         """
         Private slot to handle the helpClosed signal of the help window.
         """
-        if Preferences.getHelp("SingleHelpWindow"):
+        if WEBENGINE_AVAILABLE:
+            single = Preferences.getWebBrowser("SingleWebBrowserWindow")
+        elif WEBKIT_AVAILABLE:
+            single = Preferences.getHelp("SingleHelpWindow")
+        if single:
             self.preferencesChanged.disconnect(
                 self.helpWindow.preferencesChanged)
             self.masterPasswordChanged.disconnect(
@@ -5327,6 +5337,7 @@
         dlg = ConfigurationDialog(
             self, 'Configuration',
             expandedEntries=self.__expandedConfigurationEntries,
+            webEngine=WEBENGINE_AVAILABLE,
         )
         dlg.preferencesChanged.connect(self.__preferencesChanged)
         dlg.masterPasswordChanged.connect(self.__masterPasswordChanged)
--- a/WebBrowser/Bookmarks/BookmarksToolBar.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/WebBrowser/Bookmarks/BookmarksToolBar.py	Sat Mar 05 16:44:41 2016 +0100
@@ -90,6 +90,8 @@
                     self.tr("Open in New &Tab\tCtrl+LMB"),
                     self.__openBookmarkInNewTab)
                 menuAction.setData(v)
+                # TODO: Bookmarks: add open in new window
+                # TODO: Bookmarks: add open in private window
                 menu.addSeparator()
             
             menuAction = menu.addAction(
--- a/WebBrowser/WebBrowserWindow.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/WebBrowser/WebBrowserWindow.py	Sat Mar 05 16:44:41 2016 +0100
@@ -2755,8 +2755,14 @@
         self.searchEdit.preferencesChanged()
         
         if not self.isPrivate():
-            # TODO: Cache settings
-            pass
+            profile = self.webProfile()
+            if Preferences.getWebBrowser("DiskCacheEnabled"):
+                profile.setHttpCacheType(QWebEngineProfile.DiskHttpCache)
+                profile.setHttpCacheMaximumSize(
+                    Preferences.getWebBrowser("DiskCacheSize") * 1024 * 1024)
+            else:
+                profile.setHttpCacheType(QWebEngineProfile.MemoryHttpCache)
+                profile.setHttpCacheMaximumSize(0)
             
         self.__virusTotal.preferencesChanged()
         if not Preferences.getWebBrowser("VirusTotalEnabled") or \
@@ -3250,6 +3256,7 @@
             if history:
                 self.historyManager().clear(historyPeriod)
                 self.__tabWidget.clearClosedTabsList()
+                self.webProfile().clearAllVisitedLinks()
             if searches:
                 self.searchEdit.clear()
             if downloads:
@@ -4069,7 +4076,28 @@
             cls._webProfile.downloadRequested.connect(
                 cls.downloadRequested)
             
-            # TODO: Cache settings
+            # add the default user agent string
+            userAgent = cls._webProfile.httpUserAgent()
+            cls._webProfile.defaultUserAgent = userAgent
+            
+            if not private:
+                if Preferences.getWebBrowser("DiskCacheEnabled"):
+                    cls._webProfile.setHttpCacheType(
+                        QWebEngineProfile.DiskHttpCache)
+                    cls._webProfile.setHttpCacheMaximumSize(
+                        Preferences.getWebBrowser("DiskCacheSize")
+                        * 1024 * 1024)
+                    cls._webProfile.setCachePath(os.path.join(
+                        Utilities.getConfigDir(), "web_browser"))
+                else:
+                    cls._webProfile.setHttpCacheType(
+                        QWebEngineProfile.MemoryHttpCache)
+                    cls._webProfile.setHttpCacheMaximumSize(0)
+                cls._webProfile.setPersistentStoragePath(os.path.join(
+                    Utilities.getConfigDir(), "web_browser",
+                    "persistentstorage"))
+                cls._webProfile.setPersistentCookiesPolicy(
+                    QWebEngineProfile.AllowPersistentCookies)
             
             # Setup QWebChannel user script
             script = QWebEngineScript()
--- a/eric6.e4p	Sat Mar 05 14:34:49 2016 +0100
+++ b/eric6.e4p	Sat Mar 05 16:44:41 2016 +0100
@@ -2012,6 +2012,7 @@
     <Other>eric6.appdata.xml</Other>
     <Other>eric6.desktop</Other>
     <Other>eric6.e4p</Other>
+    <Other>eric6_browser.desktop</Other>
     <Other>eric6_webbrowser.desktop</Other>
     <Other>eric6config.linux</Other>
     <Other>icons</Other>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6_browser.desktop	Sat Mar 05 16:44:41 2016 +0100
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Exec=eric6_browser@MARKER@
+MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;
+Icon=ericWeb@MARKER@
+Terminal=false
+Name=eric6 Web Browser@PY_MARKER@
+Name[de]=eric6 Web Browser@PY_MARKER@
+Comment=Web Browser for PyQt5
+Comment[de]=Web Browser für PyQt5
+GenericName=Web Browser
+GenericName[de]=Web Browser
+Categories=Qt;Python;Network;WebBrowser;QtWebEngine
+StartupNotify=true
--- a/eric6_configure.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/eric6_configure.py	Sat Mar 05 16:44:41 2016 +0100
@@ -37,10 +37,16 @@
                           settingsDir)
         sys.argv.remove(arg)
 
-try:
-    from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
-except ImportError:
-    pass
+# TODO: adjust this to 5.6.0 when done
+from PyQt5.QtCore import qVersion
+if qVersion() < "5.5.0":
+    WEBENGINE_AVAILABLE = False
+else:
+    try:
+        from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
+        WEBENGINE_AVAILABLE = True
+    except ImportError:
+        WEBENGINE_AVAILABLE = False
 
 # make ThirdParty package available as a packages repository
 sys.path.insert(2, os.path.join(os.path.dirname(__file__),
@@ -59,7 +65,7 @@
     @return reference to the main widget (QWidget)
     """
     from Preferences.ConfigurationDialog import ConfigurationWindow
-    w = ConfigurationWindow()
+    w = ConfigurationWindow(webEngine=WEBENGINE_AVAILABLE)
     w.show()
     w.showConfigurationPageByName("empty")
     return w
--- a/install.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/install.py	Sat Mar 05 16:44:41 2016 +0100
@@ -511,7 +511,9 @@
         for name in ["/usr/share/applications/eric6" + marker + ".desktop",
                      "/usr/share/appdata/eric6" + marker + ".appdata.xml",
                      "/usr/share/applications/eric6_webbrowser" + marker +
-                     ".desktop"]:
+                     ".desktop",
+                     "/usr/share/applications/eric6_browser" + marker +
+                     ".desktop",]:
             if os.path.exists(name):
                 os.remove(name)
     
@@ -527,7 +529,7 @@
         "eric6_plugininstall", "eric6_pluginuninstall",
         "eric6_pluginrepository", "eric6_sqlbrowser",
         "eric6_webbrowser", "eric6_iconeditor",
-        "eric6_snap", "eric6_hexeditor",
+        "eric6_snap", "eric6_hexeditor", "eric6_browser",
     ]
     if includePythonVariant:
         marker = PythonMarkers[sys.version_info.major]
@@ -637,7 +639,7 @@
                  "eric6_qregularexpression", "eric6_re", "eric6_snap",
                  "eric6_sqlbrowser", "eric6_tray", "eric6_trpreviewer",
                  "eric6_uipreviewer", "eric6_unittest", "eric6_webbrowser",
-                 "eric6"]:
+                 "eric6_browser", "eric6"]:
         wnames.append(createPyWrapper(cfg['ericDir'], name))
     
     # set install prefix, if not None
@@ -814,6 +816,10 @@
                 os.path.join(sourceDir, "eric6_webbrowser.desktop"),
                 os.path.join(dst, "eric6_webbrowser" + marker + ".desktop"),
                 marker)
+            copyDesktopFile(
+                os.path.join(sourceDir, "eric6_browser.desktop"),
+                os.path.join(dst, "eric6_browser" + marker + ".desktop"),
+                marker)
             dst = os.path.normpath(
                 os.path.join(distDir, "usr/share/appdata"))
             if not os.path.exists(dst):
@@ -843,6 +849,11 @@
                 "/usr/share/applications/eric6_webbrowser" + marker +
                 ".desktop",
                 marker)
+            copyDesktopFile(
+                os.path.join(sourceDir, "eric6_browser.desktop"),
+                "/usr/share/applications/eric6_browser" + marker +
+                ".desktop",
+                marker)
     
     # Create a Mac application bundle
     if sys.platform == "darwin":
--- a/uninstall.py	Sat Mar 05 14:34:49 2016 +0100
+++ b/uninstall.py	Sat Mar 05 16:44:41 2016 +0100
@@ -115,6 +115,8 @@
                      "/usr/share/appdata/eric6" + marker + ".appdata.xml",
                      "/usr/share/applications/eric6_webbrowser" + marker +
                      ".desktop",
+                     "/usr/share/applications/eric6_browser" + marker +
+                     ".desktop",
                      "/usr/share/pixmaps/eric" + marker + ".png",
                      "/usr/share/pixmaps/ericWeb" + marker + ".png"]:
             if os.path.exists(name):
@@ -132,7 +134,7 @@
         "eric6_plugininstall", "eric6_pluginuninstall",
         "eric6_pluginrepository", "eric6_sqlbrowser",
         "eric6_webbrowser", "eric6_iconeditor",
-        "eric6_snap", "eric6_hexeditor",
+        "eric6_snap", "eric6_hexeditor", "eric6_browser",
     ]
     if includePythonVariant:
         marker = PythonMarkers[sys.version_info.major]

eric ide

mercurial