mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-04 07:42:59 +02:00
qt: implement native cut, copy, paste for edit and descendants
git-svn-id: trunk@26481 -
This commit is contained in:
parent
321a2f3d30
commit
c371775065
@ -69,8 +69,10 @@ type
|
|||||||
|
|
||||||
{ IQtTextEdit }
|
{ IQtTextEdit }
|
||||||
|
|
||||||
|
{ IQtEdit }
|
||||||
|
|
||||||
IQtEdit = interface
|
IQtEdit = interface
|
||||||
['{035CA259-4442-4E82-9E70-96A114DD3BC6}']
|
['{035CA259-4442-4E82-9E70-96A114DD3BC6}']
|
||||||
function getMaxLength: Integer;
|
function getMaxLength: Integer;
|
||||||
function getSelectionStart: Integer;
|
function getSelectionStart: Integer;
|
||||||
function getSelectionLength: Integer;
|
function getSelectionLength: Integer;
|
||||||
@ -80,6 +82,9 @@ type
|
|||||||
procedure setReadOnly(const AReadOnly: Boolean);
|
procedure setReadOnly(const AReadOnly: Boolean);
|
||||||
procedure setSelection(const AStart, ALength: Integer);
|
procedure setSelection(const AStart, ALength: Integer);
|
||||||
procedure setBorder(const ABorder: Boolean);
|
procedure setBorder(const ABorder: Boolean);
|
||||||
|
procedure Cut;
|
||||||
|
procedure Copy;
|
||||||
|
procedure Paste;
|
||||||
procedure Undo;
|
procedure Undo;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -652,6 +657,9 @@ type
|
|||||||
procedure setReadOnly(const AReadOnly: Boolean);
|
procedure setReadOnly(const AReadOnly: Boolean);
|
||||||
procedure setSelection(const AStart, ALength: Integer);
|
procedure setSelection(const AStart, ALength: Integer);
|
||||||
procedure setText(const AText: WideString); override;
|
procedure setText(const AText: WideString); override;
|
||||||
|
procedure Cut;
|
||||||
|
procedure Copy;
|
||||||
|
procedure Paste;
|
||||||
procedure Undo;
|
procedure Undo;
|
||||||
public
|
public
|
||||||
procedure AttachEvents; override;
|
procedure AttachEvents; override;
|
||||||
@ -696,6 +704,9 @@ type
|
|||||||
procedure setReadOnly(const AReadOnly: Boolean);
|
procedure setReadOnly(const AReadOnly: Boolean);
|
||||||
procedure setSelection(const AStart, ALength: Integer);
|
procedure setSelection(const AStart, ALength: Integer);
|
||||||
procedure setTabChangesFocus(const AValue: Boolean);
|
procedure setTabChangesFocus(const AValue: Boolean);
|
||||||
|
procedure Cut;
|
||||||
|
procedure Copy;
|
||||||
|
procedure Paste;
|
||||||
procedure Undo;
|
procedure Undo;
|
||||||
public
|
public
|
||||||
procedure AttachEvents; override;
|
procedure AttachEvents; override;
|
||||||
@ -793,6 +804,9 @@ type
|
|||||||
procedure setMaxLength(const ALength: Integer);
|
procedure setMaxLength(const ALength: Integer);
|
||||||
procedure setReadOnly(const AReadOnly: Boolean);
|
procedure setReadOnly(const AReadOnly: Boolean);
|
||||||
procedure setSelection(const AStart, ALength: Integer);
|
procedure setSelection(const AStart, ALength: Integer);
|
||||||
|
procedure Cut;
|
||||||
|
procedure Copy;
|
||||||
|
procedure Paste;
|
||||||
procedure Undo;
|
procedure Undo;
|
||||||
public
|
public
|
||||||
FList: TStrings;
|
FList: TStrings;
|
||||||
@ -854,6 +868,9 @@ type
|
|||||||
procedure setEchoMode(const AMode: QLineEditEchoMode);
|
procedure setEchoMode(const AMode: QLineEditEchoMode);
|
||||||
procedure setMaxLength(const ALength: Integer);
|
procedure setMaxLength(const ALength: Integer);
|
||||||
procedure setSelection(const AStart, ALength: Integer);
|
procedure setSelection(const AStart, ALength: Integer);
|
||||||
|
procedure Cut;
|
||||||
|
procedure Copy;
|
||||||
|
procedure Paste;
|
||||||
procedure Undo;
|
procedure Undo;
|
||||||
public
|
public
|
||||||
function getValue: Double; virtual; abstract;
|
function getValue: Double; virtual; abstract;
|
||||||
@ -6059,6 +6076,21 @@ begin
|
|||||||
QLineEdit_setText(QLineEditH(Widget), @AText);
|
QLineEdit_setText(QLineEditH(Widget), @AText);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TQtLineEdit.Cut;
|
||||||
|
begin
|
||||||
|
QLineEdit_cut(QLineEditH(Widget));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQtLineEdit.Copy;
|
||||||
|
begin
|
||||||
|
QLineEdit_copy(QLineEditH(Widget));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQtLineEdit.Paste;
|
||||||
|
begin
|
||||||
|
QLineEdit_paste(QLineEditH(Widget));
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TQtLineEdit.Undo;
|
procedure TQtLineEdit.Undo;
|
||||||
begin
|
begin
|
||||||
QLineEdit_undo(QLineEditH(Widget));
|
QLineEdit_undo(QLineEditH(Widget));
|
||||||
@ -6328,6 +6360,21 @@ begin
|
|||||||
QTextEdit_setTabChangesFocus(QTextEditH(Widget), AValue);
|
QTextEdit_setTabChangesFocus(QTextEditH(Widget), AValue);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TQtTextEdit.Cut;
|
||||||
|
begin
|
||||||
|
QTextEdit_cut(QTextEditH(Widget));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQtTextEdit.Copy;
|
||||||
|
begin
|
||||||
|
QTextEdit_copy(QTextEditH(Widget));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQtTextEdit.Paste;
|
||||||
|
begin
|
||||||
|
QTextEdit_paste(QTextEditH(Widget));
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TQtTextEdit.Undo;
|
procedure TQtTextEdit.Undo;
|
||||||
begin
|
begin
|
||||||
QTextEdit_undo(QTextEditH(Widget));
|
QTextEdit_undo(QTextEditH(Widget));
|
||||||
@ -7062,6 +7109,24 @@ begin
|
|||||||
LineEdit.setSelection(AStart, ALength);
|
LineEdit.setSelection(AStart, ALength);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TQtComboBox.Cut;
|
||||||
|
begin
|
||||||
|
if LineEdit <> nil then
|
||||||
|
LineEdit.Cut;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQtComboBox.Copy;
|
||||||
|
begin
|
||||||
|
if LineEdit <> nil then
|
||||||
|
LineEdit.Copy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQtComboBox.Paste;
|
||||||
|
begin
|
||||||
|
if LineEdit <> nil then
|
||||||
|
LineEdit.Paste;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TQtComboBox.Undo;
|
procedure TQtComboBox.Undo;
|
||||||
begin
|
begin
|
||||||
if LineEdit <> nil then
|
if LineEdit <> nil then
|
||||||
@ -7652,6 +7717,24 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TQtAbstractSpinBox.Cut;
|
||||||
|
begin
|
||||||
|
if LineEdit <> nil then
|
||||||
|
QLineEdit_cut(LineEdit);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQtAbstractSpinBox.Copy;
|
||||||
|
begin
|
||||||
|
if LineEdit <> nil then
|
||||||
|
QLineEdit_copy(LineEdit);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TQtAbstractSpinBox.Paste;
|
||||||
|
begin
|
||||||
|
if LineEdit <> nil then
|
||||||
|
QLineEdit_paste(LineEdit);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TQtAbstractSpinBox.Undo;
|
procedure TQtAbstractSpinBox.Undo;
|
||||||
begin
|
begin
|
||||||
if LineEdit <> nil then
|
if LineEdit <> nil then
|
||||||
|
@ -151,6 +151,9 @@ type
|
|||||||
class procedure SetSelLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
|
class procedure SetSelLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
|
||||||
|
|
||||||
//class procedure SetPasswordChar(const ACustomEdit: TCustomEdit; NewChar: char); override;
|
//class procedure SetPasswordChar(const ACustomEdit: TCustomEdit; NewChar: char); override;
|
||||||
|
class procedure Cut(const ACustomEdit: TCustomEdit); override;
|
||||||
|
class procedure Copy(const ACustomEdit: TCustomEdit); override;
|
||||||
|
class procedure Paste(const ACustomEdit: TCustomEdit); override;
|
||||||
class procedure Undo(const ACustomEdit: TCustomEdit); override;
|
class procedure Undo(const ACustomEdit: TCustomEdit); override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -898,6 +901,36 @@ begin
|
|||||||
QtEdit.setSelection(AStart, NewLength);
|
QtEdit.setSelection(AStart, NewLength);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
class procedure TQtWSCustomEdit.Cut(const ACustomEdit: TCustomEdit);
|
||||||
|
var
|
||||||
|
Widget: TQtWidget;
|
||||||
|
QtEdit: IQtEdit;
|
||||||
|
begin
|
||||||
|
Widget := TQtWidget(ACustomEdit.Handle);
|
||||||
|
if Supports(Widget, IQtEdit, QtEdit) then
|
||||||
|
QtEdit.Cut;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure TQtWSCustomEdit.Copy(const ACustomEdit: TCustomEdit);
|
||||||
|
var
|
||||||
|
Widget: TQtWidget;
|
||||||
|
QtEdit: IQtEdit;
|
||||||
|
begin
|
||||||
|
Widget := TQtWidget(ACustomEdit.Handle);
|
||||||
|
if Supports(Widget, IQtEdit, QtEdit) then
|
||||||
|
QtEdit.Copy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure TQtWSCustomEdit.Paste(const ACustomEdit: TCustomEdit);
|
||||||
|
var
|
||||||
|
Widget: TQtWidget;
|
||||||
|
QtEdit: IQtEdit;
|
||||||
|
begin
|
||||||
|
Widget := TQtWidget(ACustomEdit.Handle);
|
||||||
|
if Supports(Widget, IQtEdit, QtEdit) then
|
||||||
|
QtEdit.Paste;
|
||||||
|
end;
|
||||||
|
|
||||||
class procedure TQtWSCustomEdit.Undo(const ACustomEdit: TCustomEdit);
|
class procedure TQtWSCustomEdit.Undo(const ACustomEdit: TCustomEdit);
|
||||||
var
|
var
|
||||||
Widget: TQtWidget;
|
Widget: TQtWidget;
|
||||||
|
Loading…
Reference in New Issue
Block a user