Modified some preferences default values to better reflect common user expectations. eric7

Wed, 25 Oct 2023 16:12:46 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 25 Oct 2023 16:12:46 +0200
branch
eric7
changeset 10257
904c71a0e37f
parent 10256
1b728f26d1ae
child 10258
e7764f992a01

Modified some preferences default values to better reflect common user expectations.

src/eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.QScintilla.QsciScintillaCompat.html file | annotate | diff | comparison | revisions
src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.py file | annotate | diff | comparison | revisions
src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.ui file | annotate | diff | comparison | revisions
src/eric7/Preferences/__init__.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Editor.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/QsciScintillaCompat.py file | annotate | diff | comparison | revisions
--- a/src/eric7/APIs/Python3/eric7.api	Wed Oct 25 14:30:33 2023 +0200
+++ b/src/eric7/APIs/Python3/eric7.api	Wed Oct 25 16:12:46 2023 +0200
@@ -9427,6 +9427,7 @@
 eric7.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setModified?4(m)
 eric7.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setPrintColorMode?4(colorMode)
 eric7.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setRectangularSelection?4(startLine, startIndex, endLine, endIndex)
+eric7.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setRectangularSelectionModifier?4(modifier)
 eric7.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setStyling?4(length, style)
 eric7.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setVirtualSpaceOptions?4(options)
 eric7.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setWrapStartIndent?4(indent)
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Wed Oct 25 14:30:33 2023 +0200
+++ b/src/eric7/Documentation/Help/source.qhp	Wed Oct 25 16:12:46 2023 +0200
@@ -13969,6 +13969,7 @@
       <keyword name="QsciScintillaCompat.setModified" id="QsciScintillaCompat.setModified" ref="eric7.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setModified" />
       <keyword name="QsciScintillaCompat.setPrintColorMode" id="QsciScintillaCompat.setPrintColorMode" ref="eric7.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setPrintColorMode" />
       <keyword name="QsciScintillaCompat.setRectangularSelection" id="QsciScintillaCompat.setRectangularSelection" ref="eric7.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setRectangularSelection" />
+      <keyword name="QsciScintillaCompat.setRectangularSelectionModifier" id="QsciScintillaCompat.setRectangularSelectionModifier" ref="eric7.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setRectangularSelectionModifier" />
       <keyword name="QsciScintillaCompat.setStyling" id="QsciScintillaCompat.setStyling" ref="eric7.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setStyling" />
       <keyword name="QsciScintillaCompat.setVirtualSpaceOptions" id="QsciScintillaCompat.setVirtualSpaceOptions" ref="eric7.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setVirtualSpaceOptions" />
       <keyword name="QsciScintillaCompat.setWrapStartIndent" id="QsciScintillaCompat.setWrapStartIndent" ref="eric7.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setWrapStartIndent" />
--- a/src/eric7/Documentation/Source/eric7.QScintilla.QsciScintillaCompat.html	Wed Oct 25 14:30:33 2023 +0200
+++ b/src/eric7/Documentation/Source/eric7.QScintilla.QsciScintillaCompat.html	Wed Oct 25 16:12:46 2023 +0200
@@ -496,6 +496,10 @@
 <td>Public method to set a rectangular selection.</td>
 </tr>
 <tr>
+<td><a href="#QsciScintillaCompat.setRectangularSelectionModifier">setRectangularSelectionModifier</a></td>
+<td>Public method to set the modifier key used to create a rectangular selection by doing a mouse drag.</td>
+</tr>
+<tr>
 <td><a href="#QsciScintillaCompat.setStyling">setStyling</a></td>
 <td>Public method to style some text.</td>
 </tr>
@@ -2323,6 +2327,21 @@
 index number of the end of the selection (int)
 </dd>
 </dl>
+<a NAME="QsciScintillaCompat.setRectangularSelectionModifier" ID="QsciScintillaCompat.setRectangularSelectionModifier"></a>
+<h4>QsciScintillaCompat.setRectangularSelectionModifier</h4>
+<b>setRectangularSelectionModifier</b>(<i>modifier</i>)
+
+<p>
+        Public method to set the modifier key used to create a rectangular selection by
+        doing a mouse drag.
+</p>
+<dl>
+
+<dt><i>modifier</i> (Qt.KeyboardModifier)</dt>
+<dd>
+modifier key to be used
+</dd>
+</dl>
 <a NAME="QsciScintillaCompat.setStyling" ID="QsciScintillaCompat.setStyling"></a>
 <h4>QsciScintillaCompat.setStyling</h4>
 <b>setStyling</b>(<i>length, style</i>)
--- a/src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.py	Wed Oct 25 14:30:33 2023 +0200
+++ b/src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.py	Wed Oct 25 16:12:46 2023 +0200
@@ -79,6 +79,18 @@
         self.mouseHoverHelpGroupBox.setChecked(Preferences.getEditor("MouseHoverHelp"))
         self.mouseDwellTimeSpinBox.setValue(Preferences.getEditor("MouseHoverTimeout"))
 
+        rectangularSelectionModifier = Preferences.getEditor(
+            "RectangularSelectionModifier"
+        )
+        if rectangularSelectionModifier == Qt.KeyboardModifier.ControlModifier:
+            self.rectangularSelectionCtrlButton.setChecked(True)
+        elif rectangularSelectionModifier == Qt.KeyboardModifier.AltModifier:
+            self.rectangularSelectionAltButton.setChecked(True)
+        elif rectangularSelectionModifier == Qt.KeyboardModifier.MetaModifier:
+            self.rectangularSelectionMetaButton.setChecked(True)
+        else:
+            self.rectangularSelectionCtrlButton.setChecked(True)  # default
+
         virtualSpaceOptions = Preferences.getEditor("VirtualSpaceOptions")
         self.vsSelectionCheckBox.setChecked(
             virtualSpaceOptions & QsciScintillaBase.SCVS_RECTANGULARSELECTION
@@ -145,6 +157,17 @@
         Preferences.setEditor("MouseHoverHelp", self.mouseHoverHelpGroupBox.isChecked())
         Preferences.setEditor("MouseHoverTimeout", self.mouseDwellTimeSpinBox.value())
 
+        rectangularSelectionModifier = Qt.KeyboardModifier.ControlModifier  # default
+        if self.rectangularSelectionCtrlButton.isChecked():
+            pass  # already set as default value
+        elif self.rectangularSelectionAltButton.isChecked():
+            rectangularSelectionModifier = Qt.KeyboardModifier.AltModifier
+        elif self.rectangularSelectionMetaButton.isChecked():
+            rectangularSelectionModifier = Qt.KeyboardModifier.MetaModifier
+        Preferences.setEditor(
+            "RectangularSelectionModifier", rectangularSelectionModifier
+        )
+
         virtualSpaceOptions = QsciScintillaBase.SCVS_NONE
         if self.vsSelectionCheckBox.isChecked():
             virtualSpaceOptions |= QsciScintillaBase.SCVS_RECTANGULARSELECTION
--- a/src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.ui	Wed Oct 25 14:30:33 2023 +0200
+++ b/src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.ui	Wed Oct 25 16:12:46 2023 +0200
@@ -7,10 +7,10 @@
     <x>0</x>
     <y>0</y>
     <width>550</width>
-    <height>1033</height>
+    <height>1119</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_5">
+  <layout class="QVBoxLayout" name="verticalLayout_6">
    <item>
     <widget class="QLabel" name="headerLabel">
      <property name="text">
@@ -509,6 +509,50 @@
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Rectangular Selection Modifier</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_5">
+      <item>
+       <widget class="QLabel" name="label_6">
+        <property name="text">
+         <string>Select the modifier key to indicate a rectangular selection while dragging the mouse.</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="QRadioButton" name="rectangularSelectionCtrlButton">
+          <property name="text">
+           <string>Ctrl</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QRadioButton" name="rectangularSelectionAltButton">
+          <property name="text">
+           <string>Alt</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QRadioButton" name="rectangularSelectionMetaButton">
+          <property name="text">
+           <string>Meta / Windows / Option</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <widget class="QGroupBox" name="virtualSpaceGroupBox">
      <property name="title">
       <string>Virtual Space</string>
@@ -583,6 +627,9 @@
   <tabstop>docstringCompletionCheckBox</tabstop>
   <tabstop>mouseHoverHelpGroupBox</tabstop>
   <tabstop>mouseDwellTimeSpinBox</tabstop>
+  <tabstop>rectangularSelectionCtrlButton</tabstop>
+  <tabstop>rectangularSelectionAltButton</tabstop>
+  <tabstop>rectangularSelectionMetaButton</tabstop>
   <tabstop>vsSelectionCheckBox</tabstop>
   <tabstop>vsUserCheckBox</tabstop>
  </tabstops>
--- a/src/eric7/Preferences/__init__.py	Wed Oct 25 14:30:33 2023 +0200
+++ b/src/eric7/Preferences/__init__.py	Wed Oct 25 16:12:46 2023 +0200
@@ -539,9 +539,10 @@
         "ColourizeSelText": False,
         "CustomSelectionColours": False,
         "ExtendSelectionToEol": False,
+        "RectangularSelectionModifier": Qt.KeyboardModifier.ControlModifier,
         "LineMarkersBackground": True,
         "AutoPrepareAPIs": False,
-        "AutoCompletionEnabled": False,
+        "AutoCompletionEnabled": True,
         "AutoCompletionCaseSensitivity": True,
         "AutoCompletionReplaceWord": False,
         "AutoCompletionShowSingle": False,
@@ -553,14 +554,14 @@
         # show QScintilla completions, if plug-in fails
         "AutoCompletionScintillaOnFail": False,
         "AutoCompletionReversedList": False,
-        "AutoCompletionCacheEnabled": True,
+        "AutoCompletionCacheEnabled": False,
         "AutoCompletionCacheSize": 100,
         "AutoCompletionCacheTime": 300,  # 5 minutes
         "AutoCompletionWatchdogTime": 3000,  # ms
-        "AutoCompletionMaxLines": 5,
-        "AutoCompletionMaxChars": 40,
-        "CallTipsEnabled": False,
-        "CallTipsVisible": 0,
+        "AutoCompletionMaxLines": 20,
+        "AutoCompletionMaxChars": 80,
+        "CallTipsEnabled": True,
+        "CallTipsVisible": 20,
         "CallTipsStyle": QsciScintilla.CallTipsStyle.CallTipsNoContext,
         "CallTipsPosition": QsciScintilla.CallTipsPosition.CallTipsBelowText,
         # show QScintilla calltips, if plug-in fails
@@ -1689,11 +1690,14 @@
         "JediFuzzyCompletionsEnabled": False,
         "JediCalltipsEnabled": True,
         "MouseClickEnabled": True,
-        "MouseClickGotoModifiers": (
-            Qt.KeyboardModifier.MetaModifier | Qt.KeyboardModifier.ControlModifier
-        ),
         "MouseClickGotoButton": Qt.MouseButton.LeftButton,
     }
+    if OSUtilities.isWindowsPlatform():
+        jediDefaults["MouseClickGotoModifiers"] = (
+            Qt.KeyboardModifier.MetaModifier | Qt.KeyboardModifier.ControlModifier
+        )
+    else:
+        jediDefaults["MouseClickGotoModifiers"] = Qt.KeyboardModifier.ControlModifier
 
     # defaults for Hex Editor
     pdfViewerDefaults = {
@@ -2395,6 +2399,7 @@
         "EdgeMode",
         "EOLMode",
         "PythonBadIndentation",
+        "RectangularSelectionModifier",
     ]:
         # no special treatment for str and PyQt6 Enum
         return Prefs.settings.value("Editor/" + key, Prefs.editorDefaults[key])
--- a/src/eric7/QScintilla/Editor.py	Wed Oct 25 14:30:33 2023 +0200
+++ b/src/eric7/QScintilla/Editor.py	Wed Oct 25 16:12:46 2023 +0200
@@ -4976,6 +4976,10 @@
                 QsciScintilla.SCI_SETMOUSEDWELLTIME, QsciScintilla.SC_TIME_FOREVER
             )
 
+        self.setRectangularSelectionModifier(
+            Preferences.getEditor("RectangularSelectionModifier")
+        )
+
         # to avoid errors due to line endings by pasting
         self.SendScintilla(QsciScintilla.SCI_SETPASTECONVERTENDINGS, True)
 
--- a/src/eric7/QScintilla/QsciScintillaCompat.py	Wed Oct 25 14:30:33 2023 +0200
+++ b/src/eric7/QScintilla/QsciScintillaCompat.py	Wed Oct 25 16:12:46 2023 +0200
@@ -615,6 +615,23 @@
         self.SendScintilla(QsciScintilla.SCI_SETRECTANGULARSELECTIONANCHOR, startPos)
         self.SendScintilla(QsciScintilla.SCI_SETRECTANGULARSELECTIONCARET, endPos)
 
+    def setRectangularSelectionModifier(self, modifier):
+        """
+        Public method to set the modifier key used to create a rectangular selection by
+        doing a mouse drag.
+
+        @param modifier modifier key to be used
+        @type Qt.KeyboardModifier
+        """
+        sciModifier = {
+            Qt.KeyboardModifier.ControlModifier: QsciScintilla.SCMOD_CTRL,
+            Qt.KeyboardModifier.AltModifier: QsciScintilla.SCMOD_ALT,
+            Qt.KeyboardModifier.MetaModifier: QsciScintilla.SCMOD_SUPER,
+        }.get(modifier, QsciScintilla.SCMOD_CTRL)
+        self.SendScintilla(
+            QsciScintilla.SCI_SETRECTANGULARSELECTIONMODIFIER, sciModifier
+        )
+
     def getSelectionCount(self):
         """
         Public method to get the number of active selections.

eric ide

mercurial