UI/UserInterface.py

changeset 5108
f5cb9cb98e6a
parent 5100
2c193da9b94f
child 5248
7675ecd58263
--- a/UI/UserInterface.py	Tue Aug 23 19:02:43 2016 +0200
+++ b/UI/UserInterface.py	Wed Aug 24 20:00:29 2016 +0200
@@ -2174,6 +2174,23 @@
             E5ErrorMessage.editMessageFilters)
         self.actions.append(self.editMessageFilterAct)
 
+        self.clearPrivateDataAct = E5Action(
+            self.tr('Clear private data'),
+            UI.PixmapCache.getIcon("clearPrivateData.png"),
+            self.tr('Clear private data'),
+            0, 0,
+            self, 'clear_private_data')
+        self.clearPrivateDataAct.setStatusTip(self.tr(
+            'Clear private data'))
+        self.clearPrivateDataAct.setWhatsThis(self.tr(
+            """<b>Clear private data</b>"""
+            """<p>Clears the private data like the various list of"""
+            """ recently opened files, projects or multi projects.</p>"""
+        ))
+        self.clearPrivateDataAct.triggered.connect(
+            self.__clearPrivateData)
+        self.actions.append(self.clearPrivateDataAct)
+        
         self.viewmanagerActivateAct = E5Action(
             self.tr('Activate current editor'),
             self.tr('Activate current editor'),
@@ -2523,6 +2540,8 @@
             self.__menus["settings"].addAction(self.certificatesAct)
         self.__menus["settings"].addSeparator()
         self.__menus["settings"].addAction(self.editMessageFilterAct)
+        self.__menus["settings"].addSeparator()
+        self.__menus["settings"].addAction(self.clearPrivateDataAct)
         
         self.__menus["window"] = QMenu(self.tr('&Window'), self)
         mb.addMenu(self.__menus["window"])
@@ -2700,10 +2719,18 @@
         settingstb.addAction(self.shortcutsAct)
         settingstb.addAction(self.showExternalToolsAct)
         self.toolbarManager.addToolBar(settingstb, settingstb.windowTitle())
-        self.toolbarManager.addAction(
-            self.exportShortcutsAct, settingstb.windowTitle())
-        self.toolbarManager.addAction(
-            self.importShortcutsAct, settingstb.windowTitle())
+        self.toolbarManager.addActions([
+            self.exportShortcutsAct,
+            self.importShortcutsAct,
+            self.prefExportAct,
+            self.prefImportAct,
+            self.showExternalToolsAct,
+            self.editMessageFilterAct,
+            self.clearPrivateDataAct,
+        ], settingstb.windowTitle())
+        if SSL_AVAILABLE:
+            self.toolbarManager.addAction(
+                self.certificatesAct, settingstb.windowTitle())
         
         # setup the help toolbar
         helptb.addAction(self.whatsThisAct)
@@ -5575,6 +5602,32 @@
         dlg = E5SslCertificatesDialog(self)
         dlg.exec_()
         
+    def __clearPrivateData(self):
+        """
+        Private slot to clear the private data lists.
+        """
+        from .ClearPrivateDataDialog import ClearPrivateDataDialog
+        dlg = ClearPrivateDataDialog(self)
+        if dlg.exec_() == QDialog.Accepted:
+            # recent files, recent projects, recent multi  projects,
+            # debug histories, shell histories
+            (files, projects, multiProjects, debug, shell) = dlg.getData()
+            if files:
+                # clear list of recently opened files
+                self.viewmanager.clearRecent()
+            if projects:
+                # clear list of recently opened projects
+                self.project.clearRecent()
+            if multiProjects:
+                # clear list of recently opened multi projects
+                self.multiProject.clearRecent()
+            if debug:
+                # clear the various debug histories
+                self.debuggerUI.clearHistories()
+            if shell:
+                # clear the shell histories
+                self.shell.clearAllHistories()
+        
     def __newProject(self):
         """
         Private slot to handle the NewProject signal.

eric ide

mercurial