Преглед изворни кода

- 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 rtree import index as rtindex
 
 
+from GUIElements import FCEntry
+
 
 
 class BufferSelectionTool(FlatCAMTool):
 class BufferSelectionTool(FlatCAMTool):
     """
     """
@@ -710,17 +712,17 @@ class FlatCAMDraw(QtCore.QObject):
         ### Snap Toolbar ###
         ### Snap Toolbar ###
         self.snap_toolbar = QtGui.QToolBar()
         self.snap_toolbar = QtGui.QToolBar()
         self.grid_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share:grid32.png'), 'Snap to grid')
         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.setMaximumWidth(70)
         self.grid_gap_x_entry.setToolTip("Grid X distance")
         self.grid_gap_x_entry.setToolTip("Grid X distance")
         self.snap_toolbar.addWidget(self.grid_gap_x_entry)
         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.setMaximumWidth(70)
         self.grid_gap_y_entry.setToolTip("Grid Y distante")
         self.grid_gap_y_entry.setToolTip("Grid Y distante")
         self.snap_toolbar.addWidget(self.grid_gap_y_entry)
         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.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.setMaximumWidth(70)
         self.snap_max_dist_entry.setToolTip("Max. magnet distance")
         self.snap_max_dist_entry.setToolTip("Max. magnet distance")
         self.snap_toolbar.addWidget(self.snap_max_dist_entry)
         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': {'IN': 25.4,
                    'MM': 1.0}
                    '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):
     def returnPressed(self, *args, **kwargs):
         val = self.get_value()
         val = self.get_value()
@@ -111,6 +123,18 @@ class LengthEntry(QtGui.QLineEdit):
 class FloatEntry(QtGui.QLineEdit):
 class FloatEntry(QtGui.QLineEdit):
     def __init__(self, parent=None):
     def __init__(self, parent=None):
         super(FloatEntry, self).__init__(parent)
         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):
     def returnPressed(self, *args, **kwargs):
         val = self.get_value()
         val = self.get_value()
@@ -139,6 +163,18 @@ class IntEntry(QtGui.QLineEdit):
         super(IntEntry, self).__init__(parent)
         super(IntEntry, self).__init__(parent)
         self.allow_empty = allow_empty
         self.allow_empty = allow_empty
         self.empty_val = empty_val
         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):
     def get_value(self):
 
 
@@ -160,6 +196,18 @@ class IntEntry(QtGui.QLineEdit):
 class FCEntry(QtGui.QLineEdit):
 class FCEntry(QtGui.QLineEdit):
     def __init__(self, parent=None):
     def __init__(self, parent=None):
         super(FCEntry, self).__init__(parent)
         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):
     def get_value(self):
         return str(self.text())
         return str(self.text())
@@ -171,6 +219,18 @@ class FCEntry(QtGui.QLineEdit):
 class EvalEntry(QtGui.QLineEdit):
 class EvalEntry(QtGui.QLineEdit):
     def __init__(self, parent=None):
     def __init__(self, parent=None):
         super(EvalEntry, self).__init__(parent)
         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):
     def returnPressed(self, *args, **kwargs):
         val = self.get_value()
         val = self.get_value()