IDE: package editor: fixed disconnect OnIdle

git-svn-id: trunk@45466 -
This commit is contained in:
mattias 2014-06-10 17:02:04 +00:00
parent 159e86a9b9
commit b6f04cc60c
2 changed files with 49 additions and 7 deletions

View File

@ -320,12 +320,15 @@ object PackageEditorForm: TPackageEditorForm
Align = alClient Align = alClient
BorderSpacing.Top = 1 BorderSpacing.Top = 1
DefaultItemHeight = 18 DefaultItemHeight = 18
DragMode = dmAutomatic
MultiSelect = True MultiSelect = True
PopupMenu = ItemsPopupMenu PopupMenu = ItemsPopupMenu
ReadOnly = True ReadOnly = True
RightClickSelect = True RightClickSelect = True
TabOrder = 2 TabOrder = 2
OnDblClick = ItemsTreeViewDblClick OnDblClick = ItemsTreeViewDblClick
OnDragDrop = ItemsTreeViewDragDrop
OnDragOver = ItemsTreeViewDragOver
OnKeyDown = ItemsTreeViewKeyDown OnKeyDown = ItemsTreeViewKeyDown
OnSelectionChanged = ItemsTreeViewSelectionChanged OnSelectionChanged = ItemsTreeViewSelectionChanged
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw] Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]

View File

@ -219,6 +219,9 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
procedure ItemsPopupMenuPopup(Sender: TObject); procedure ItemsPopupMenuPopup(Sender: TObject);
procedure ItemsTreeViewDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure ItemsTreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure ItemsTreeViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ItemsTreeViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure MorePopupMenuPopup(Sender: TObject); procedure MorePopupMenuPopup(Sender: TObject);
procedure ItemsTreeViewDblClick(Sender: TObject); procedure ItemsTreeViewDblClick(Sender: TObject);
@ -755,6 +758,39 @@ begin
//debugln(['TPackageEditorForm.FilesPopupMenuPopup END ',ItemsPopupMenu.Items.Count]); PackageEditorMenuRoot.WriteDebugReport(' ',true); //debugln(['TPackageEditorForm.FilesPopupMenuPopup END ',ItemsPopupMenu.Items.Count]); PackageEditorMenuRoot.WriteDebugReport(' ',true);
end; end;
procedure TPackageEditorForm.ItemsTreeViewDragDrop(Sender, Source: TObject; X,
Y: Integer);
begin
end;
procedure TPackageEditorForm.ItemsTreeViewDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
SrcTV: TTreeView;
aParent: TWinControl;
SrcPkgEdit: TPackageEditorForm;
begin
Accept:=false;
debugln(['TPackageEditorForm.ItemsTreeViewDragOver ',DbgSName(Source),' State=',ord(State),' FromSelf=',Source=ItemsTreeView]);
if Source=ItemsTreeView then begin
// move items within the package
end else if (Source is TTreeView) then begin
SrcTV:=TTreeView(Source);
if SrcTV.Name<>ItemsTreeView.Name then exit;
aParent:=SrcTV;
repeat
if aParent=nil then exit;
aParent:=aParent.Parent;
until aParent is TPackageEditorForm;
// move items to another package
SrcPkgEdit:=TPackageEditorForm(aParent);
debugln(['TPackageEditorForm.ItemsTreeViewDragOver from another package editor: ',SrcPkgEdit.LazPackage.Name]);
end;
end;
procedure TPackageEditorForm.MorePopupMenuPopup(Sender: TObject); procedure TPackageEditorForm.MorePopupMenuPopup(Sender: TObject);
var var
Writable: Boolean; Writable: Boolean;
@ -1718,7 +1754,7 @@ begin
if IdleConnected then if IdleConnected then
Application.AddOnIdleHandler(@OnIdle) Application.AddOnIdleHandler(@OnIdle)
else else
Application.AddOnIdleHandler(@OnIdle); Application.RemoveOnIdleHandler(@OnIdle);
end; end;
procedure TPackageEditorForm.SetShowDirectoryHierarchy(const AValue: boolean); procedure TPackageEditorForm.SetShowDirectoryHierarchy(const AValue: boolean);
@ -1745,12 +1781,15 @@ begin
if csDestroying in ComponentState then exit; if csDestroying in ComponentState then exit;
if LazPackage=nil then exit; if LazPackage=nil then exit;
Name:=PackageEditorWindowPrefix+LazPackage.Name; Name:=PackageEditorWindowPrefix+LazPackage.Name;
UpdateTitle(Immediately); fFlags:=fFlags+[
UpdateButtons(Immediately); pefNeedUpdateTitle,
UpdateFiles(Immediately); pefNeedUpdateButtons,
UpdateRequiredPkgs(Immediately); pefNeedUpdateFiles,
//UpdatePEProperties(Immediately); Already done in UpdateFiles and UpdateRequiredPkgs. pefNeedUpdateRequiredPkgs,
UpdateStatusBar(Immediately); pefNeedUpdateProperties,
pefNeedUpdateApplyDependencyButton,
pefNeedUpdateStatusBar];
UpdatePending;
end; end;
function TPackageEditorForm.ShowAddDialog(var DlgPage: TAddToPkgType): TModalResult; function TPackageEditorForm.ShowAddDialog(var DlgPage: TAddToPkgType): TModalResult;