diff -r 4488684d1b7d -r 66c11ab8fefd src/eric7/QScintilla/ShellWindow.py --- a/src/eric7/QScintilla/ShellWindow.py Mon Jul 24 11:56:29 2023 +0200 +++ b/src/eric7/QScintilla/ShellWindow.py Mon Jul 24 14:36:06 2023 +0200 @@ -207,6 +207,7 @@ self.__createViewActions() self.__createHelpActions() self.__createHistoryActions() + self.__createSettingsActions() # read the keyboard shortcuts and make them identical to the main # eric shortcuts @@ -1152,6 +1153,30 @@ ) self.selectHistoryAct.triggered.connect(self.__shell.selectHistory) + def __createSettingsActions(self): + """ + Private method to create the Settings actions. + """ + self.prefAct = EricAction( + self.tr("Preferences"), + EricPixmapCache.getIcon("configure"), + self.tr("&Preferences..."), + 0, + 0, + self, + "shell_settings_preferences", + ) + self.prefAct.setStatusTip(self.tr("Set the prefered configuration")) + self.prefAct.setWhatsThis( + self.tr( + """<b>Preferences</b>""" + """<p>Set the configuration items of the application""" + """ with your prefered values.</p>""" + ) + ) + self.prefAct.triggered.connect(self.__showPreferences) + self.prefAct.setMenuRole(QAction.MenuRole.PreferencesRole) + def __createHelpActions(self): """ Private method to create the Help actions. @@ -1411,6 +1436,10 @@ self.__startMenu.aboutToShow.connect(self.__showStartMenu) self.__startMenu.triggered.connect(self.__startShell) + self.__settingsMenu = self.menuBar().addMenu(self.tr("Se&ttings")) + self.__settingsMenu.setTearOffEnabled(True) + self.__settingsMenu.addAction(self.prefAct) + self.menuBar().addSeparator() self.__helpMenu = self.menuBar().addMenu(self.tr("&Help")) @@ -1518,3 +1547,28 @@ enabled = self.__shell.isHistoryEnabled() self.__historyMenu.setEnabled(enabled) self.__historyToolbar.setEnabled(enabled) + + @pyqtSlot() + def __showPreferences(self): + """ + Private slot to set the preferences. + """ + from eric7.Preferences.ConfigurationDialog import ( + ConfigurationDialog, + ConfigurationMode, + ) + + dlg = ConfigurationDialog( + None, + "Configuration", + True, + fromEric=False, + displayMode=ConfigurationMode.SHELLMODE, + ) + dlg.show() + dlg.showConfigurationPageByName("shellPage") + dlg.exec() + if dlg.result() == QDialog.DialogCode.Accepted: + dlg.setPreferences() + Preferences.syncPreferences() + self.__shell.handlePreferencesChanged()