Qt: fixed TQtComboBox bug where lineedit text isn't preserved when adding it as item and itemindex=-1.

git-svn-id: trunk@26310 -
This commit is contained in:
zeljko 2010-06-28 14:41:27 +00:00
parent 7ddd34c18c
commit cb6146dfb8

View File

@ -439,26 +439,38 @@ end;
procedure TQtComboStrings.InsertItem(Index: Integer; const S: string);
var
FSavedIndex: Integer;
FSavedText: WideString;
begin
inherited InsertItem(Index, S);
FOwner.BeginUpdate;
FSavedText := FOwner.getText;
FSavedIndex := FOwner.currentIndex;
FOwner.insertItem(Index, S);
if FOwner.getEditable and (FSavedIndex <> FOwner.currentIndex) then
FOwner.setCurrentIndex(FSavedIndex);
if FOwner.getEditable then
begin
if (FSavedIndex <> FOwner.currentIndex) then
FOwner.setCurrentIndex(FSavedIndex);
FOwner.setText(FSavedText);
end;
FOwner.EndUpdate;
end;
procedure TQtComboStrings.InsertItem(Index: Integer; const S: string; O: TObject);
var
FSavedIndex: Integer;
FSavedText: WideString;
begin
inherited InsertItem(Index, S, O);
FOwner.BeginUpdate;
FSavedText := FOwner.getText;
FSavedIndex := FOwner.currentIndex;
FOwner.insertItem(Index, S);
if FOwner.getEditable and (FSavedIndex <> FOwner.currentIndex) then
FOwner.setCurrentIndex(FSavedIndex);
if FOwner.getEditable then
begin
if (FSavedIndex <> FOwner.currentIndex) then
FOwner.setCurrentIndex(FSavedIndex);
FOwner.setText(FSavedText);
end;
FOwner.EndUpdate;
end;