eric6/Helpviewer/QtHelpDocumentationDialog.py

changeset 7220
5cf645f6daab
parent 7218
eaf2cf171f3a
parent 7211
1c97f3142fa8
child 7221
0485ccdf7877
diff -r eaf2cf171f3a -r 5cf645f6daab eric6/Helpviewer/QtHelpDocumentationDialog.py
--- a/eric6/Helpviewer/QtHelpDocumentationDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage the QtHelp documentation database.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QItemSelectionModel
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtHelp import QHelpEngineCore
-
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
-
-from .Ui_QtHelpDocumentationDialog import Ui_QtHelpDocumentationDialog
-
-
-class QtHelpDocumentationDialog(QDialog, Ui_QtHelpDocumentationDialog):
-    """
-    Class implementing a dialog to manage the QtHelp documentation database.
-    """
-    def __init__(self, engine, parent):
-        """
-        Constructor
-        
-        @param engine reference to the help engine (QHelpEngine)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(QtHelpDocumentationDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.removeButton.setEnabled(False)
-        
-        self.__engine = engine
-        self.__mw = parent
-        
-        docs = self.__engine.registeredDocumentations()
-        self.documentsList.addItems(docs)
-        
-        self.__registeredDocs = []
-        self.__unregisteredDocs = []
-        self.__tabsToClose = []
-        
-        try:
-            self.__pluginHelpDocuments = \
-                e5App().getObject("PluginManager").getPluginQtHelpFiles()
-        except KeyError:
-            from PluginManager.PluginManager import PluginManager
-            pluginManager = PluginManager(self, doLoadPlugins=False)
-            pluginManager.loadDocumentationSetPlugins()
-            pluginManager.activatePlugins()
-            self.__pluginHelpDocuments = pluginManager.getPluginQtHelpFiles()
-        self.addPluginButton.setEnabled(bool(self.__pluginHelpDocuments))
-    
-    @pyqtSlot()
-    def on_documentsList_itemSelectionChanged(self):
-        """
-        Private slot handling a change of the documents selection.
-        """
-        self.removeButton.setEnabled(
-            len(self.documentsList.selectedItems()) != 0)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add QtHelp documents to the help database.
-        """
-        fileNames = E5FileDialog.getOpenFileNames(
-            self,
-            self.tr("Add Documentation"),
-            "",
-            self.tr("Qt Compressed Help Files (*.qch)"))
-        if not fileNames:
-            return
-        
-        self.__registerDocumentations(fileNames)
-    
-    @pyqtSlot()
-    def on_addPluginButton_clicked(self):
-        """
-        Private slot to add QtHelp documents provided by plug-ins to
-        the help database.
-        """
-        from .QtHelpDocumentationSelectionDialog import \
-            QtHelpDocumentationSelectionDialog
-        dlg = QtHelpDocumentationSelectionDialog(
-            self.__pluginHelpDocuments,
-            QtHelpDocumentationSelectionDialog.AddMode,
-            self)
-        if dlg.exec_() == QDialog.Accepted:
-            documents = dlg.getData()
-            if not documents:
-                return
-            
-            self.__registerDocumentations(documents)
-    
-    @pyqtSlot()
-    def on_managePluginButton_clicked(self):
-        """
-        Private slot to manage the QtHelp documents provided by plug-ins.
-        """
-        from .QtHelpDocumentationSelectionDialog import \
-            QtHelpDocumentationSelectionDialog
-        dlg = QtHelpDocumentationSelectionDialog(
-            self.__pluginHelpDocuments,
-            QtHelpDocumentationSelectionDialog.ManageMode,
-            self)
-        dlg.exec_()
-    
-    def __registerDocumentations(self, fileNames):
-        """
-        Private method to register a given list of documentations.
-        
-        @param fileNames list of documentation files to be registered
-        @type list of str
-        """
-        for fileName in fileNames:
-            ns = QHelpEngineCore.namespaceName(fileName)
-            if not ns:
-                E5MessageBox.warning(
-                    self,
-                    self.tr("Add Documentation"),
-                    self.tr(
-                        """The file <b>{0}</b> is not a valid"""
-                        """ Qt Help File.""").format(fileName)
-                )
-                continue
-            
-            if len(self.documentsList.findItems(ns, Qt.MatchFixedString)):
-                E5MessageBox.warning(
-                    self,
-                    self.tr("Add Documentation"),
-                    self.tr(
-                        """The namespace <b>{0}</b> is already registered.""")
-                    .format(ns)
-                )
-                continue
-            
-            self.__engine.registerDocumentation(fileName)
-            self.documentsList.addItem(ns)
-            self.__registeredDocs.append(ns)
-            if ns in self.__unregisteredDocs:
-                self.__unregisteredDocs.remove(ns)
-
-    @pyqtSlot()
-    def on_removeButton_clicked(self):
-        """
-        Private slot to remove a document from the help database.
-        """
-        res = E5MessageBox.yesNo(
-            self,
-            self.tr("Remove Documentation"),
-            self.tr(
-                """Do you really want to remove the selected documentation """
-                """sets from the database?"""))
-        if not res:
-            return
-        
-        openedDocs = self.__mw.getSourceFileList()
-        
-        items = self.documentsList.selectedItems()
-        for item in items:
-            ns = item.text()
-            if ns in list(openedDocs.values()):
-                res = E5MessageBox.yesNo(
-                    self,
-                    self.tr("Remove Documentation"),
-                    self.tr(
-                        """Some documents currently opened reference the """
-                        """documentation you are attempting to remove. """
-                        """Removing the documentation will close those """
-                        """documents. Remove anyway?"""),
-                    icon=E5MessageBox.Warning)
-                if not res:
-                    return
-            self.__unregisteredDocs.append(ns)
-            for docId in openedDocs:
-                if openedDocs[docId] == ns and docId not in self.__tabsToClose:
-                    self.__tabsToClose.append(docId)
-            itm = self.documentsList.takeItem(self.documentsList.row(item))
-            del itm
-            
-            self.__engine.unregisterDocumentation(ns)
-        
-        if self.documentsList.count():
-            self.documentsList.setCurrentRow(
-                0, QItemSelectionModel.ClearAndSelect)
-    
-    def hasChanges(self):
-        """
-        Public slot to test the dialog for changes.
-        
-        @return flag indicating presence of changes
-        """
-        return len(self.__registeredDocs) > 0 or \
-            len(self.__unregisteredDocs) > 0
-    
-    def getTabsToClose(self):
-        """
-        Public method to get the list of tabs to close.
-        
-        @return list of tab ids to be closed (list of integers)
-        """
-        return self.__tabsToClose

eric ide

mercurial