mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-07 03:20:38 +02:00
IDE: Set toolbutton's enabled-status correctly in Desktop Manager.
git-svn-id: trunk@50099 -
This commit is contained in:
parent
2dd8888cb6
commit
046db1ccaf
@ -341,7 +341,6 @@ begin
|
||||
SetActiveDesktopAction.ImageIndex := IDEImages.LoadImage(16, 'laz_tick');
|
||||
SetDebugDesktopAction.Hint := dlgToggleDebugDesktop;
|
||||
SetDebugDesktopAction.ImageIndex := IDEImages.LoadImage(16, 'debugger');
|
||||
ButtonPanel1.CloseButton.Caption := lisClose;
|
||||
AutoSaveActiveDesktopCheckBox.Caption := dlgAutoSaveActiveDesktop;
|
||||
AutoSaveActiveDesktopCheckBox.Hint := dlgAutoSaveActiveDesktopHint;
|
||||
LblGrayedInfo.Caption := dlgGrayedDesktopsUndocked;
|
||||
@ -351,7 +350,6 @@ begin
|
||||
ExportAction.Caption := lisExportSelected;
|
||||
ExportAllAction.Caption := lisExportAll;
|
||||
ImportAction.Hint := lisImport;
|
||||
//ImportAction.ImageIndex := IDEImages.LoadImage(16, 'laz_open');
|
||||
ExportBitBtn.LoadGlyphFromStock(idButtonSave);
|
||||
ExportBitBtn.Caption := lisExportSub;
|
||||
ImportBitBtn.LoadGlyphFromStock(idButtonOpen);
|
||||
@ -445,42 +443,26 @@ end;
|
||||
|
||||
procedure TDesktopForm.DeleteActionClick(Sender: TObject);
|
||||
var
|
||||
xDesktopName: String;
|
||||
dskName: String;
|
||||
dskIndex: Integer;
|
||||
begin
|
||||
if DesktopListBox.ItemIndex = -1 then
|
||||
Exit;
|
||||
|
||||
xDesktopName := DesktopListBox.Items[DesktopListBox.ItemIndex];
|
||||
if (xDesktopName = EnvironmentOptions.ActiveDesktopName) then
|
||||
begin
|
||||
MessageDlg(dlgCannotDeleteActiveDesktop, mtError, [mbOK], 0);
|
||||
dskName := DesktopListBox.Items[DesktopListBox.ItemIndex];
|
||||
if MessageDlg(Format(dlgReallyDeleteDesktop, [dskName]), mtConfirmation, mbYesNo, 0) <> mrYes then
|
||||
Exit;
|
||||
end else
|
||||
if (xDesktopName = EnvironmentOptions.DebugDesktopName) then
|
||||
dskIndex := EnvironmentOptions.Desktops.IndexOf(dskName);
|
||||
if dskIndex >= 0 then
|
||||
begin
|
||||
MessageDlg(dlgCannotDeleteDebugDesktop, mtError, [mbOK], 0);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if MessageDlg(Format(dlgReallyDeleteDesktop, [xDesktopName]), mtConfirmation, mbYesNo, 0) <> mrYes then
|
||||
Exit;
|
||||
|
||||
with EnvironmentOptions do
|
||||
begin
|
||||
dskIndex := Desktops.IndexOf(xDesktopName);
|
||||
if dskIndex >= 0 then
|
||||
begin
|
||||
debugln(['TDesktopForm.SaveBitBtnClick: Deleting ', xDesktopName]);
|
||||
Desktops.Delete(dskIndex);
|
||||
if DesktopListBox.ItemIndex+1 < DesktopListBox.Count then
|
||||
xDesktopName := DesktopListBox.Items[DesktopListBox.ItemIndex+1]
|
||||
else if DesktopListBox.ItemIndex > 0 then
|
||||
xDesktopName := DesktopListBox.Items[DesktopListBox.ItemIndex-1]
|
||||
else
|
||||
xDesktopName := '';
|
||||
RefreshList(xDesktopName);
|
||||
end;
|
||||
debugln(['TDesktopForm.SaveBitBtnClick: Deleting ', dskName]);
|
||||
EnvironmentOptions.Desktops.Delete(dskIndex);
|
||||
if DesktopListBox.ItemIndex+1 < DesktopListBox.Count then
|
||||
dskName := DesktopListBox.Items[DesktopListBox.ItemIndex+1]
|
||||
else if DesktopListBox.ItemIndex > 0 then
|
||||
dskName := DesktopListBox.Items[DesktopListBox.ItemIndex-1]
|
||||
else
|
||||
dskName := '';
|
||||
RefreshList(dskName);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -768,13 +750,28 @@ begin
|
||||
end;
|
||||
|
||||
procedure TDesktopForm.DesktopListBoxSelectionChange(Sender: TObject; User: boolean);
|
||||
var
|
||||
HasSel, IsActive, IsDebug: Boolean;
|
||||
CurName: String;
|
||||
begin
|
||||
DeleteAction.Enabled := DesktopListBox.ItemIndex>=0;
|
||||
RenameAction.Enabled := DeleteAction.Enabled;
|
||||
SetDebugDesktopAction.Enabled := DeleteAction.Enabled;
|
||||
MoveUpAction.Enabled := DeleteAction.Enabled;
|
||||
MoveDownAction.Enabled := DeleteAction.Enabled;
|
||||
ExportAction.Enabled := DeleteAction.Enabled;
|
||||
HasSel := DesktopListBox.ItemIndex>=0;
|
||||
if HasSel then
|
||||
begin
|
||||
CurName := DesktopListBox.Items[DesktopListBox.ItemIndex];
|
||||
IsActive := CurName = EnvironmentOptions.ActiveDesktopName;
|
||||
IsDebug := CurName = EnvironmentOptions.DebugDesktopName;
|
||||
end
|
||||
else begin
|
||||
IsActive := False;
|
||||
IsDebug := False;
|
||||
end;
|
||||
SetActiveDesktopAction.Enabled := HasSel and not IsActive;
|
||||
SetDebugDesktopAction.Enabled := HasSel and not IsDebug;
|
||||
RenameAction.Enabled := HasSel;
|
||||
DeleteAction.Enabled := HasSel and not (IsActive or IsDebug);
|
||||
MoveUpAction.Enabled := HasSel and (DesktopListBox.ItemIndex > 0);
|
||||
MoveDownAction.Enabled := HasSel and (DesktopListBox.ItemIndex < DesktopListBox.Items.Count-1);
|
||||
ExportAction.Enabled := HasSel;
|
||||
ExportAllAction.Enabled := DesktopListBox.Items.Count>0;
|
||||
ExportBitBtn.Enabled := ExportItem.Enabled or ExportAllItem.Enabled;
|
||||
end;
|
||||
|
@ -1277,8 +1277,6 @@ resourcestring
|
||||
dlgManageDesktops = 'Manage desktops';
|
||||
dlgSaveCurrentDesktopAs = 'Save current desktop as';
|
||||
dlgReallyDeleteDesktop = 'Really delete desktop "%s"?';
|
||||
dlgCannotDeleteActiveDesktop = 'You cannot delete the active desktop.';
|
||||
dlgCannotDeleteDebugDesktop = 'You cannot delete debug desktop.';
|
||||
dlgCannotUseDockedUndockedDesktop = 'You cannot use docked desktop in undocked environment and vice versa.';
|
||||
dlgRenameDesktop = 'Rename desktop';
|
||||
dlgNewDesktop = 'New desktop ...';
|
||||
|
Loading…
Reference in New Issue
Block a user