소스 검색

- added a capability that now, on every click on a line_entry
(the elements from GuiElements.py that require text entry, less
FCTextArea for which it might be unwanted behaior) the content is selected.
This makes easier the edit of values.

Marius Stanciu 7 년 전
부모
커밋
8938ebf9d0
2개의 변경된 파일65개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 3
      FlatCAMDraw.py
  2. 60 0
      GUIElements.py

+ 5 - 3
FlatCAMDraw.py

@@ -28,6 +28,8 @@ from numpy.linalg import solve
 
 from rtree import index as rtindex
 
+from GUIElements import FCEntry
+
 
 class BufferSelectionTool(FlatCAMTool):
     """
@@ -710,17 +712,17 @@ class FlatCAMDraw(QtCore.QObject):
         ### Snap Toolbar ###
         self.snap_toolbar = QtGui.QToolBar()
         self.grid_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share:grid32.png'), 'Snap to grid')
-        self.grid_gap_x_entry = QtGui.QLineEdit()
+        self.grid_gap_x_entry = FCEntry()
         self.grid_gap_x_entry.setMaximumWidth(70)
         self.grid_gap_x_entry.setToolTip("Grid X distance")
         self.snap_toolbar.addWidget(self.grid_gap_x_entry)
-        self.grid_gap_y_entry = QtGui.QLineEdit()
+        self.grid_gap_y_entry = FCEntry()
         self.grid_gap_y_entry.setMaximumWidth(70)
         self.grid_gap_y_entry.setToolTip("Grid Y distante")
         self.snap_toolbar.addWidget(self.grid_gap_y_entry)
 
         self.corner_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share:corner32.png'), 'Snap to corner')
-        self.snap_max_dist_entry = QtGui.QLineEdit()
+        self.snap_max_dist_entry = FCEntry()
         self.snap_max_dist_entry.setMaximumWidth(70)
         self.snap_max_dist_entry.setToolTip("Max. magnet distance")
         self.snap_toolbar.addWidget(self.snap_max_dist_entry)

+ 60 - 0
GUIElements.py

@@ -77,6 +77,18 @@ class LengthEntry(QtGui.QLineEdit):
             'MM': {'IN': 25.4,
                    'MM': 1.0}
         }
+        self.readyToEdit = True
+
+    def mousePressEvent(self, e, Parent=None):
+        super(LengthEntry, self).mousePressEvent(e)  # required to deselect on 2e click
+        if self.readyToEdit:
+            self.selectAll()
+            self.readyToEdit = False
+
+    def focusOutEvent(self, e):
+        super(LengthEntry, self).focusOutEvent(e)  # required to remove cursor on focusOut
+        self.deselect()
+        self.readyToEdit = True
 
     def returnPressed(self, *args, **kwargs):
         val = self.get_value()
@@ -111,6 +123,18 @@ class LengthEntry(QtGui.QLineEdit):
 class FloatEntry(QtGui.QLineEdit):
     def __init__(self, parent=None):
         super(FloatEntry, self).__init__(parent)
+        self.readyToEdit = True
+
+    def mousePressEvent(self, e, Parent=None):
+        super(FloatEntry, self).mousePressEvent(e)  # required to deselect on 2e click
+        if self.readyToEdit:
+            self.selectAll()
+            self.readyToEdit = False
+
+    def focusOutEvent(self, e):
+        super(FloatEntry, self).focusOutEvent(e)  # required to remove cursor on focusOut
+        self.deselect()
+        self.readyToEdit = True
 
     def returnPressed(self, *args, **kwargs):
         val = self.get_value()
@@ -139,6 +163,18 @@ class IntEntry(QtGui.QLineEdit):
         super(IntEntry, self).__init__(parent)
         self.allow_empty = allow_empty
         self.empty_val = empty_val
+        self.readyToEdit = True
+
+    def mousePressEvent(self, e, Parent=None):
+        super(IntEntry, self).mousePressEvent(e)  # required to deselect on 2e click
+        if self.readyToEdit:
+            self.selectAll()
+            self.readyToEdit = False
+
+    def focusOutEvent(self, e):
+        super(IntEntry, self).focusOutEvent(e)  # required to remove cursor on focusOut
+        self.deselect()
+        self.readyToEdit = True
 
     def get_value(self):
 
@@ -160,6 +196,18 @@ class IntEntry(QtGui.QLineEdit):
 class FCEntry(QtGui.QLineEdit):
     def __init__(self, parent=None):
         super(FCEntry, self).__init__(parent)
+        self.readyToEdit = True
+
+    def mousePressEvent(self, e, Parent=None):
+        super(FCEntry, self).mousePressEvent(e)  # required to deselect on 2e click
+        if self.readyToEdit:
+            self.selectAll()
+            self.readyToEdit = False
+
+    def focusOutEvent(self, e):
+        super(FCEntry, self).focusOutEvent(e)  # required to remove cursor on focusOut
+        self.deselect()
+        self.readyToEdit = True
 
     def get_value(self):
         return str(self.text())
@@ -171,6 +219,18 @@ class FCEntry(QtGui.QLineEdit):
 class EvalEntry(QtGui.QLineEdit):
     def __init__(self, parent=None):
         super(EvalEntry, self).__init__(parent)
+        self.readyToEdit = True
+
+    def mousePressEvent(self, e, Parent=None):
+        super(EvalEntry, self).mousePressEvent(e)  # required to deselect on 2e click
+        if self.readyToEdit:
+            self.selectAll()
+            self.readyToEdit = False
+
+    def focusOutEvent(self, e):
+        super(EvalEntry, self).focusOutEvent(e)  # required to remove cursor on focusOut
+        self.deselect()
+        self.readyToEdit = True
 
     def returnPressed(self, *args, **kwargs):
         val = self.get_value()