QScintilla/Editor.py

changeset 564
b3d966393ba9
parent 559
ee695ebbd6e0
child 718
979d6e242404
equal deleted inserted replaced
563:e35d2cda9a74 564:b3d966393ba9
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)
4544 """ 4544 """
4545 qs = [] 4545 qs = []
4546 for s in list(self.macros.keys()): 4546 for s in list(self.macros.keys()):
4547 qs.append(s) 4547 qs.append(s)
4548 qs.sort() 4548 qs.sort()
4549 return QInputDialog.getItem(\ 4549 return QInputDialog.getItem(
4550 self, 4550 self,
4551 self.trUtf8("Macro Name"), 4551 self.trUtf8("Macro Name"),
4552 self.trUtf8("Select a macro name:"), 4552 self.trUtf8("Select a macro name:"),
4553 qs, 4553 qs,
4554 0, False) 4554 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)

eric ide

mercurial