628 self.menuActs["TypingAidsEnabled"] = \ |
628 self.menuActs["TypingAidsEnabled"] = \ |
629 self.menu.addAction(self.trUtf8("Typing aids enabled"), |
629 self.menu.addAction(self.trUtf8("Typing aids enabled"), |
630 self.__toggleTypingAids) |
630 self.__toggleTypingAids) |
631 self.menuActs["TypingAidsEnabled"].setCheckable(True) |
631 self.menuActs["TypingAidsEnabled"].setCheckable(True) |
632 self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None) |
632 self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None) |
633 self.menuActs["TypingAidsEnabled"].setChecked(\ |
633 self.menuActs["TypingAidsEnabled"].setChecked( |
634 self.completer is not None and self.completer.isEnabled()) |
634 self.completer is not None and self.completer.isEnabled()) |
635 self.menuActs["AutoCompletionEnable"] = \ |
635 self.menuActs["AutoCompletionEnable"] = \ |
636 self.menu.addAction(self.trUtf8("Autocompletion enabled"), |
636 self.menu.addAction(self.trUtf8("Autocompletion enabled"), |
637 self.__toggleAutoCompletionEnable) |
637 self.__toggleAutoCompletionEnable) |
638 self.menuActs["AutoCompletionEnable"].setCheckable(True) |
638 self.menuActs["AutoCompletionEnable"].setCheckable(True) |
639 self.menuActs["AutoCompletionEnable"].setChecked(\ |
639 self.menuActs["AutoCompletionEnable"].setChecked( |
640 self.autoCompletionThreshold() != -1) |
640 self.autoCompletionThreshold() != -1) |
641 if not self.isResourcesFile: |
641 if not self.isResourcesFile: |
642 self.menu.addMenu(self.autocompletionMenu) |
642 self.menu.addMenu(self.autocompletionMenu) |
643 self.menu.addSeparator() |
643 self.menu.addSeparator() |
644 if self.isResourcesFile: |
644 if self.isResourcesFile: |
1106 lexerList = sorted([l[0] for l in get_all_lexers()]) |
1106 lexerList = sorted([l[0] for l in get_all_lexers()]) |
1107 try: |
1107 try: |
1108 lexerSel = lexerList.index(self.getLanguage()) |
1108 lexerSel = lexerList.index(self.getLanguage()) |
1109 except ValueError: |
1109 except ValueError: |
1110 lexerSel = 0 |
1110 lexerSel = 0 |
1111 lexerName, ok = QInputDialog.getItem(\ |
1111 lexerName, ok = QInputDialog.getItem( |
1112 self, |
1112 self, |
1113 self.trUtf8("Pygments Lexer"), |
1113 self.trUtf8("Pygments Lexer"), |
1114 self.trUtf8("Select the Pygments lexer to apply."), |
1114 self.trUtf8("Select the Pygments lexer to apply."), |
1115 lexerList, |
1115 lexerList, |
1116 lexerSel, |
1116 lexerSel, |
3114 if Preferences.getEditor("MiniContextMenu") != self.miniMenu: |
3114 if Preferences.getEditor("MiniContextMenu") != self.miniMenu: |
3115 # regenerate context menu |
3115 # regenerate context menu |
3116 self.__initContextMenu() |
3116 self.__initContextMenu() |
3117 else: |
3117 else: |
3118 # set checked context menu items |
3118 # set checked context menu items |
3119 self.menuActs["AutoCompletionEnable"].setChecked(\ |
3119 self.menuActs["AutoCompletionEnable"].setChecked( |
3120 self.autoCompletionThreshold() != -1) |
3120 self.autoCompletionThreshold() != -1) |
3121 self.menuActs["MonospacedFont"].setChecked(\ |
3121 self.menuActs["MonospacedFont"].setChecked( |
3122 self.useMonospaced) |
3122 self.useMonospaced) |
3123 self.menuActs["AutosaveEnable"].setChecked(\ |
3123 self.menuActs["AutosaveEnable"].setChecked( |
3124 self.autosaveEnabled and not self.autosaveManuallyDisabled) |
3124 self.autosaveEnabled and not self.autosaveManuallyDisabled) |
3125 |
3125 |
3126 # regenerate the margins context menu(s) |
3126 # regenerate the margins context menu(s) |
3127 self.__initContextMenuMargins() |
3127 self.__initContextMenuMargins() |
3128 |
3128 |
3272 self.setUnmatchedBraceForegroundColor( |
3272 self.setUnmatchedBraceForegroundColor( |
3273 Preferences.getEditorColour("NonmatchingBrace")) |
3273 Preferences.getEditorColour("NonmatchingBrace")) |
3274 self.setUnmatchedBraceBackgroundColor( |
3274 self.setUnmatchedBraceBackgroundColor( |
3275 Preferences.getEditorColour("NonmatchingBraceBack")) |
3275 Preferences.getEditorColour("NonmatchingBraceBack")) |
3276 if Preferences.getEditor("CustomSelectionColours"): |
3276 if Preferences.getEditor("CustomSelectionColours"): |
3277 self.setSelectionBackgroundColor(\ |
3277 self.setSelectionBackgroundColor( |
3278 Preferences.getEditorColour("SelectionBackground")) |
3278 Preferences.getEditorColour("SelectionBackground")) |
3279 else: |
3279 else: |
3280 self.setSelectionBackgroundColor(\ |
3280 self.setSelectionBackgroundColor( |
3281 QApplication.palette().color(QPalette.Highlight)) |
3281 QApplication.palette().color(QPalette.Highlight)) |
3282 if Preferences.getEditor("ColourizeSelText"): |
3282 if Preferences.getEditor("ColourizeSelText"): |
3283 self.resetSelectionForegroundColor() |
3283 self.resetSelectionForegroundColor() |
3284 elif Preferences.getEditor("CustomSelectionColours"): |
3284 elif Preferences.getEditor("CustomSelectionColours"): |
3285 self.setSelectionForegroundColor(\ |
3285 self.setSelectionForegroundColor( |
3286 Preferences.getEditorColour("SelectionForeground")) |
3286 Preferences.getEditorColour("SelectionForeground")) |
3287 else: |
3287 else: |
3288 self.setSelectionForegroundColor(\ |
3288 self.setSelectionForegroundColor( |
3289 QApplication.palette().color(QPalette.HighlightedText)) |
3289 QApplication.palette().color(QPalette.HighlightedText)) |
3290 self.setSelectionToEol(Preferences.getEditor("ExtendSelectionToEol")) |
3290 self.setSelectionToEol(Preferences.getEditor("ExtendSelectionToEol")) |
3291 self.setCaretForegroundColor( |
3291 self.setCaretForegroundColor( |
3292 Preferences.getEditorColour("CaretForeground")) |
3292 Preferences.getEditorColour("CaretForeground")) |
3293 self.setCaretLineBackgroundColor( |
3293 self.setCaretLineBackgroundColor( |
3304 self.setEdgeColumn(Preferences.getEditor("EdgeColumn")) |
3304 self.setEdgeColumn(Preferences.getEditor("EdgeColumn")) |
3305 self.setEdgeColor(Preferences.getEditorColour("Edge")) |
3305 self.setEdgeColor(Preferences.getEditorColour("Edge")) |
3306 |
3306 |
3307 if Preferences.getEditor("WrapLongLines"): |
3307 if Preferences.getEditor("WrapLongLines"): |
3308 self.setWrapMode(QsciScintilla.WrapWord) |
3308 self.setWrapMode(QsciScintilla.WrapWord) |
3309 self.setWrapVisualFlags(\ |
3309 self.setWrapVisualFlags( |
3310 QsciScintilla.WrapFlagByBorder, QsciScintilla.WrapFlagByBorder) |
3310 QsciScintilla.WrapFlagByBorder, QsciScintilla.WrapFlagByBorder) |
3311 else: |
3311 else: |
3312 self.setWrapMode(QsciScintilla.WrapNone) |
3312 self.setWrapMode(QsciScintilla.WrapNone) |
3313 self.setWrapVisualFlags(\ |
3313 self.setWrapVisualFlags( |
3314 QsciScintilla.WrapFlagNone, QsciScintilla.WrapFlagNone) |
3314 QsciScintilla.WrapFlagNone, QsciScintilla.WrapFlagNone) |
3315 |
3315 |
3316 self.zoomTo(Preferences.getEditor("ZoomFactor")) |
3316 self.zoomTo(Preferences.getEditor("ZoomFactor")) |
3317 |
3317 |
3318 self.searchIndicator = QsciScintilla.INDIC_CONTAINER |
3318 self.searchIndicator = QsciScintilla.INDIC_CONTAINER |
3780 self.menuActs["Uncomment"].setEnabled(False) |
3780 self.menuActs["Uncomment"].setEnabled(False) |
3781 self.menuActs["StreamComment"].setEnabled(False) |
3781 self.menuActs["StreamComment"].setEnabled(False) |
3782 self.menuActs["BoxComment"].setEnabled(False) |
3782 self.menuActs["BoxComment"].setEnabled(False) |
3783 |
3783 |
3784 self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None) |
3784 self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None) |
3785 self.menuActs["TypingAidsEnabled"].setChecked(\ |
3785 self.menuActs["TypingAidsEnabled"].setChecked( |
3786 self.completer is not None and self.completer.isEnabled()) |
3786 self.completer is not None and self.completer.isEnabled()) |
3787 |
3787 |
3788 spellingAvailable = SpellChecker.isAvailable() |
3788 spellingAvailable = SpellChecker.isAvailable() |
3789 self.menuActs["SpellCheck"].setEnabled(spellingAvailable) |
3789 self.menuActs["SpellCheck"].setEnabled(spellingAvailable) |
3790 self.menuActs["SpellCheckSelection"].setEnabled( |
3790 self.menuActs["SpellCheckSelection"].setEnabled( |
3844 if self.hasSyntaxErrors(): |
3844 if self.hasSyntaxErrors(): |
3845 coEnable = False |
3845 coEnable = False |
3846 |
3846 |
3847 self.profileMenuAct.setEnabled(prEnable) |
3847 self.profileMenuAct.setEnabled(prEnable) |
3848 self.coverageMenuAct.setEnabled(coEnable) |
3848 self.coverageMenuAct.setEnabled(coEnable) |
3849 self.coverageShowAnnotationMenuAct.setEnabled(\ |
3849 self.coverageShowAnnotationMenuAct.setEnabled( |
3850 coEnable and not self.__coverageMarkersShown) |
3850 coEnable and not self.__coverageMarkersShown) |
3851 self.coverageHideAnnotationMenuAct.setEnabled(\ |
3851 self.coverageHideAnnotationMenuAct.setEnabled( |
3852 self.__coverageMarkersShown) |
3852 self.__coverageMarkersShown) |
3853 |
3853 |
3854 self.showMenu.emit("Show", self.menuShow, self) |
3854 self.showMenu.emit("Show", self.menuShow, self) |
3855 |
3855 |
3856 def __showContextMenuGraphics(self): |
3856 def __showContextMenuGraphics(self): |
3877 self.marginMenuActs["EnableBreakpoint"].setEnabled(True) |
3877 self.marginMenuActs["EnableBreakpoint"].setEnabled(True) |
3878 else: |
3878 else: |
3879 self.marginMenuActs["EditBreakpoint"].setEnabled(False) |
3879 self.marginMenuActs["EditBreakpoint"].setEnabled(False) |
3880 self.marginMenuActs["EnableBreakpoint"].setEnabled(False) |
3880 self.marginMenuActs["EnableBreakpoint"].setEnabled(False) |
3881 if self.markersAtLine(self.line) & (1 << self.dbreakpoint): |
3881 if self.markersAtLine(self.line) & (1 << self.dbreakpoint): |
3882 self.marginMenuActs["EnableBreakpoint"].setText(\ |
3882 self.marginMenuActs["EnableBreakpoint"].setText( |
3883 self.trUtf8('Enable breakpoint')) |
3883 self.trUtf8('Enable breakpoint')) |
3884 else: |
3884 else: |
3885 self.marginMenuActs["EnableBreakpoint"].setText(\ |
3885 self.marginMenuActs["EnableBreakpoint"].setText( |
3886 self.trUtf8('Disable breakpoint')) |
3886 self.trUtf8('Disable breakpoint')) |
3887 if self.breaks: |
3887 if self.breaks: |
3888 self.marginMenuActs["NextBreakpoint"].setEnabled(True) |
3888 self.marginMenuActs["NextBreakpoint"].setEnabled(True) |
3889 self.marginMenuActs["PreviousBreakpoint"].setEnabled(True) |
3889 self.marginMenuActs["PreviousBreakpoint"].setEnabled(True) |
3890 self.marginMenuActs["ClearBreakpoint"].setEnabled(True) |
3890 self.marginMenuActs["ClearBreakpoint"].setEnabled(True) |
4151 if os.path.isfile(tf) and not tf in files: |
4151 if os.path.isfile(tf) and not tf in files: |
4152 files.append(tf) |
4152 files.append(tf) |
4153 |
4153 |
4154 if files: |
4154 if files: |
4155 if len(files) > 1: |
4155 if len(files) > 1: |
4156 fn, ok = QInputDialog.getItem(\ |
4156 fn, ok = QInputDialog.getItem( |
4157 self, |
4157 self, |
4158 self.trUtf8("Code Coverage"), |
4158 self.trUtf8("Code Coverage"), |
4159 self.trUtf8("Please select a coverage file"), |
4159 self.trUtf8("Please select a coverage file"), |
4160 files, |
4160 files, |
4161 0, False) |
4161 0, False) |
4289 if os.path.isfile(tf) and not tf in files: |
4289 if os.path.isfile(tf) and not tf in files: |
4290 files.append(tf) |
4290 files.append(tf) |
4291 |
4291 |
4292 if files: |
4292 if files: |
4293 if len(files) > 1: |
4293 if len(files) > 1: |
4294 fn, ok = QInputDialog.getItem(\ |
4294 fn, ok = QInputDialog.getItem( |
4295 self, |
4295 self, |
4296 self.trUtf8("Profile Data"), |
4296 self.trUtf8("Profile Data"), |
4297 self.trUtf8("Please select a profile file"), |
4297 self.trUtf8("Please select a profile file"), |
4298 files, |
4298 files, |
4299 0, False) |
4299 0, False) |
4612 |
4612 |
4613 name, ok = self.__getMacroName() |
4613 name, ok = self.__getMacroName() |
4614 if not ok or not name: |
4614 if not ok or not name: |
4615 return # user abort |
4615 return # user abort |
4616 |
4616 |
4617 fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(\ |
4617 fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter( |
4618 self, |
4618 self, |
4619 self.trUtf8("Save macro file"), |
4619 self.trUtf8("Save macro file"), |
4620 configDir, |
4620 configDir, |
4621 self.trUtf8("Macro files (*.macro)"), |
4621 self.trUtf8("Macro files (*.macro)"), |
4622 "", |
4622 "", |
4680 return # we are not recording |
4680 return # we are not recording |
4681 |
4681 |
4682 self.curMacro.endRecording() |
4682 self.curMacro.endRecording() |
4683 self.recording = False |
4683 self.recording = False |
4684 |
4684 |
4685 name, ok = QInputDialog.getText(\ |
4685 name, ok = QInputDialog.getText( |
4686 self, |
4686 self, |
4687 self.trUtf8("Macro Recording"), |
4687 self.trUtf8("Macro Recording"), |
4688 self.trUtf8("Enter name of the macro:"), |
4688 self.trUtf8("Enter name of the macro:"), |
4689 QLineEdit.Normal) |
4689 QLineEdit.Normal) |
4690 |
4690 |
4793 self.lastModified.toString(): |
4793 self.lastModified.toString(): |
4794 if Preferences.getEditor("AutoReopen") and not self.isModified(): |
4794 if Preferences.getEditor("AutoReopen") and not self.isModified(): |
4795 self.refresh() |
4795 self.refresh() |
4796 else: |
4796 else: |
4797 self.inReopenPrompt = True |
4797 self.inReopenPrompt = True |
4798 msg = self.trUtf8(\ |
4798 msg = self.trUtf8( |
4799 """<p>The file <b>{0}</b> has been changed while it was opened in""" |
4799 """<p>The file <b>{0}</b> has been changed while it was opened in""" |
4800 """ eric5. Reread it?</p>""").format(self.fileName) |
4800 """ eric5. Reread it?</p>""").format(self.fileName) |
4801 yesDefault = True |
4801 yesDefault = True |
4802 if self.isModified(): |
4802 if self.isModified(): |
4803 msg += self.trUtf8(\ |
4803 msg += self.trUtf8( |
4804 """<br><b>Warning:</b> You will loose""" |
4804 """<br><b>Warning:</b> You will loose""" |
4805 """ your changes upon reopening it.""") |
4805 """ your changes upon reopening it.""") |
4806 yesDefault = False |
4806 yesDefault = False |
4807 res = E5MessageBox.yesNo(self, |
4807 res = E5MessageBox.yesNo(self, |
4808 self.trUtf8("File changed"), msg, |
4808 self.trUtf8("File changed"), msg, |
5045 def __addFileResource(self): |
5045 def __addFileResource(self): |
5046 """ |
5046 """ |
5047 Private method to handle the Add file context menu action. |
5047 Private method to handle the Add file context menu action. |
5048 """ |
5048 """ |
5049 dirStr = os.path.dirname(self.fileName) |
5049 dirStr = os.path.dirname(self.fileName) |
5050 file = QFileDialog.getOpenFileName(\ |
5050 file = QFileDialog.getOpenFileName( |
5051 self, |
5051 self, |
5052 self.trUtf8("Add file resource"), |
5052 self.trUtf8("Add file resource"), |
5053 dirStr, |
5053 dirStr, |
5054 "") |
5054 "") |
5055 if file: |
5055 if file: |
5061 def __addFileResources(self): |
5061 def __addFileResources(self): |
5062 """ |
5062 """ |
5063 Private method to handle the Add files context menu action. |
5063 Private method to handle the Add files context menu action. |
5064 """ |
5064 """ |
5065 dirStr = os.path.dirname(self.fileName) |
5065 dirStr = os.path.dirname(self.fileName) |
5066 files = QFileDialog.getOpenFileNames(\ |
5066 files = QFileDialog.getOpenFileNames( |
5067 self, |
5067 self, |
5068 self.trUtf8("Add file resources"), |
5068 self.trUtf8("Add file resources"), |
5069 dirStr, |
5069 dirStr, |
5070 "") |
5070 "") |
5071 if files: |
5071 if files: |
5081 def __addFileAliasResource(self): |
5081 def __addFileAliasResource(self): |
5082 """ |
5082 """ |
5083 Private method to handle the Add aliased file context menu action. |
5083 Private method to handle the Add aliased file context menu action. |
5084 """ |
5084 """ |
5085 dirStr = os.path.dirname(self.fileName) |
5085 dirStr = os.path.dirname(self.fileName) |
5086 file = QFileDialog.getOpenFileName(\ |
5086 file = QFileDialog.getOpenFileName( |
5087 self, |
5087 self, |
5088 self.trUtf8("Add aliased file resource"), |
5088 self.trUtf8("Add aliased file resource"), |
5089 dirStr, |
5089 dirStr, |
5090 "") |
5090 "") |
5091 if file: |
5091 if file: |
5092 relFile = QDir(dirStr).relativeFilePath(file) |
5092 relFile = QDir(dirStr).relativeFilePath(file) |
5093 alias, ok = QInputDialog.getText(\ |
5093 alias, ok = QInputDialog.getText( |
5094 self, |
5094 self, |
5095 self.trUtf8("Add aliased file resource"), |
5095 self.trUtf8("Add aliased file resource"), |
5096 self.trUtf8("Alias for file <b>{0}</b>:").format(relFile), |
5096 self.trUtf8("Alias for file <b>{0}</b>:").format(relFile), |
5097 QLineEdit.Normal, |
5097 QLineEdit.Normal, |
5098 relFile) |
5098 relFile) |