From 8938ebf9d0d12a6120d56e1d6c7230b49a359d77 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 26 May 2018 23:11:45 +0300 Subject: [PATCH] - 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. --- FlatCAMDraw.py | 8 ++++--- GUIElements.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 3 deletions(-) diff --git a/FlatCAMDraw.py b/FlatCAMDraw.py index 57c1fdb6..099e624c 100644 --- a/FlatCAMDraw.py +++ b/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) diff --git a/GUIElements.py b/GUIElements.py index c2b728d6..bc969b85 100644 --- a/GUIElements.py +++ b/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()