mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-03 03:00:24 +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 }
|
||||
|
||||
{ IQtEdit }
|
||||
|
||||
IQtEdit = interface
|
||||
['{035CA259-4442-4E82-9E70-96A114DD3BC6}']
|
||||
['{035CA259-4442-4E82-9E70-96A114DD3BC6}']
|
||||
function getMaxLength: Integer;
|
||||
function getSelectionStart: Integer;
|
||||
function getSelectionLength: Integer;
|
||||
@ -80,6 +82,9 @@ type
|
||||
procedure setReadOnly(const AReadOnly: Boolean);
|
||||
procedure setSelection(const AStart, ALength: Integer);
|
||||
procedure setBorder(const ABorder: Boolean);
|
||||
procedure Cut;
|
||||
procedure Copy;
|
||||
procedure Paste;
|
||||
procedure Undo;
|
||||
end;
|
||||
|
||||
@ -652,6 +657,9 @@ type
|
||||
procedure setReadOnly(const AReadOnly: Boolean);
|
||||
procedure setSelection(const AStart, ALength: Integer);
|
||||
procedure setText(const AText: WideString); override;
|
||||
procedure Cut;
|
||||
procedure Copy;
|
||||
procedure Paste;
|
||||
procedure Undo;
|
||||
public
|
||||
procedure AttachEvents; override;
|
||||
@ -696,6 +704,9 @@ type
|
||||
procedure setReadOnly(const AReadOnly: Boolean);
|
||||
procedure setSelection(const AStart, ALength: Integer);
|
||||
procedure setTabChangesFocus(const AValue: Boolean);
|
||||
procedure Cut;
|
||||
procedure Copy;
|
||||
procedure Paste;
|
||||
procedure Undo;
|
||||
public
|
||||
procedure AttachEvents; override;
|
||||
@ -793,6 +804,9 @@ type
|
||||
procedure setMaxLength(const ALength: Integer);
|
||||
procedure setReadOnly(const AReadOnly: Boolean);
|
||||
procedure setSelection(const AStart, ALength: Integer);
|
||||
procedure Cut;
|
||||
procedure Copy;
|
||||
procedure Paste;
|
||||
procedure Undo;
|
||||
public
|
||||
FList: TStrings;
|
||||
@ -854,6 +868,9 @@ type
|
||||
procedure setEchoMode(const AMode: QLineEditEchoMode);
|
||||
procedure setMaxLength(const ALength: Integer);
|
||||
procedure setSelection(const AStart, ALength: Integer);
|
||||
procedure Cut;
|
||||
procedure Copy;
|
||||
procedure Paste;
|
||||
procedure Undo;
|
||||
public
|
||||
function getValue: Double; virtual; abstract;
|
||||
@ -6059,6 +6076,21 @@ begin
|
||||
QLineEdit_setText(QLineEditH(Widget), @AText);
|
||||
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;
|
||||
begin
|
||||
QLineEdit_undo(QLineEditH(Widget));
|
||||
@ -6328,6 +6360,21 @@ begin
|
||||
QTextEdit_setTabChangesFocus(QTextEditH(Widget), AValue);
|
||||
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;
|
||||
begin
|
||||
QTextEdit_undo(QTextEditH(Widget));
|
||||
@ -7062,6 +7109,24 @@ begin
|
||||
LineEdit.setSelection(AStart, ALength);
|
||||
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;
|
||||
begin
|
||||
if LineEdit <> nil then
|
||||
@ -7652,6 +7717,24 @@ begin
|
||||
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;
|
||||
begin
|
||||
if LineEdit <> nil then
|
||||
|
@ -151,6 +151,9 @@ type
|
||||
class procedure SetSelLength(const ACustomEdit: TCustomEdit; NewLength: integer); 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;
|
||||
end;
|
||||
|
||||
@ -898,6 +901,36 @@ begin
|
||||
QtEdit.setSelection(AStart, NewLength);
|
||||
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);
|
||||
var
|
||||
Widget: TQtWidget;
|
||||
|
Loading…
Reference in New Issue
Block a user