mirror of https://gitlab.com/basile.b/dexed.git
fix proj group incorrectly set as modified
This commit is contained in:
parent
4611fc1a4d
commit
ace7888242
|
@ -51,6 +51,7 @@ type
|
||||||
fProjectIndex: integer;
|
fProjectIndex: integer;
|
||||||
fItems: TCollection;
|
fItems: TCollection;
|
||||||
fModified: boolean;
|
fModified: boolean;
|
||||||
|
fSavedModified: boolean;
|
||||||
fOnChanged: TNotifyEvent;
|
fOnChanged: TNotifyEvent;
|
||||||
fBasePath: string;
|
fBasePath: string;
|
||||||
fSavedIndex: integer;
|
fSavedIndex: integer;
|
||||||
|
@ -79,6 +80,8 @@ type
|
||||||
procedure openGroup(const fname: string);
|
procedure openGroup(const fname: string);
|
||||||
procedure saveGroup(const fname: string);
|
procedure saveGroup(const fname: string);
|
||||||
procedure closeGroup;
|
procedure closeGroup;
|
||||||
|
procedure saveModified;
|
||||||
|
procedure restoreModified;
|
||||||
function groupModified: boolean;
|
function groupModified: boolean;
|
||||||
function groupFilename: string;
|
function groupFilename: string;
|
||||||
function projectCount: integer;
|
function projectCount: integer;
|
||||||
|
@ -101,9 +104,6 @@ type
|
||||||
(**
|
(**
|
||||||
* GUI for a project group
|
* GUI for a project group
|
||||||
*)
|
*)
|
||||||
|
|
||||||
{ TCEProjectGroupWidget }
|
|
||||||
|
|
||||||
TCEProjectGroupWidget = class(TCEWidget, ICEProjectObserver)
|
TCEProjectGroupWidget = class(TCEWidget, ICEProjectObserver)
|
||||||
BtnAddProj: TCEToolButton;
|
BtnAddProj: TCEToolButton;
|
||||||
btnAddUnfocused: TSpeedButton;
|
btnAddUnfocused: TSpeedButton;
|
||||||
|
@ -258,12 +258,12 @@ function TProjectGroup.addItem(const fname: string): TProjectGroupItem;
|
||||||
var
|
var
|
||||||
it: TCollectionItem;
|
it: TCollectionItem;
|
||||||
begin
|
begin
|
||||||
fModified := true;
|
|
||||||
for it in fItems do
|
for it in fItems do
|
||||||
begin
|
begin
|
||||||
if SameFileName(TProjectGroupItem(it).absoluteFilename, fname) then
|
if SameFileName(TProjectGroupItem(it).absoluteFilename, fname) then
|
||||||
exit(TProjectGroupItem(it));
|
exit(TProjectGroupItem(it));
|
||||||
end;
|
end;
|
||||||
|
fModified := true;
|
||||||
result := TProjectGroupItem(fItems.Add);
|
result := TProjectGroupItem(fItems.Add);
|
||||||
result.fGroup := self;
|
result.fGroup := self;
|
||||||
if fBasePath = '' then
|
if fBasePath = '' then
|
||||||
|
@ -363,10 +363,10 @@ procedure TProjectGroup.addProject(project: ICECommonProject);
|
||||||
var
|
var
|
||||||
it: TCollectionItem;
|
it: TCollectionItem;
|
||||||
begin
|
begin
|
||||||
fModified := true;
|
|
||||||
for it in fItems do
|
for it in fItems do
|
||||||
if SameFileName(TProjectGroupItem(it).absoluteFilename, project.filename) then
|
if SameFileName(TProjectGroupItem(it).absoluteFilename, project.filename) then
|
||||||
exit;
|
exit;
|
||||||
|
fModified := true;
|
||||||
it := fItems.Add;
|
it := fItems.Add;
|
||||||
if fBasePath = '' then
|
if fBasePath = '' then
|
||||||
TProjectGroupItem(it).fFilename := project.filename
|
TProjectGroupItem(it).fFilename := project.filename
|
||||||
|
@ -425,6 +425,16 @@ begin
|
||||||
doChanged;
|
doChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TProjectGroup.saveModified;
|
||||||
|
begin
|
||||||
|
fSavedModified := fModified;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TProjectGroup.restoreModified;
|
||||||
|
begin
|
||||||
|
fModified := fSavedModified;
|
||||||
|
end;
|
||||||
|
|
||||||
function TProjectGroup.groupModified: boolean;
|
function TProjectGroup.groupModified: boolean;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
|
@ -463,10 +473,17 @@ procedure TProjectGroupItem.lazyLoad;
|
||||||
begin
|
begin
|
||||||
if fProj = nil then
|
if fProj = nil then
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
//setActiveConfigurationIndex changes the project
|
||||||
|
//modified flag
|
||||||
|
projectGroup.saveModified;
|
||||||
|
|
||||||
fProj := loadProject(absoluteFilename, true);
|
fProj := loadProject(absoluteFilename, true);
|
||||||
fProj.inGroup(true);
|
fProj.inGroup(true);
|
||||||
if fProj.getFormat = pfDUB then
|
if fProj.getFormat = pfDUB then
|
||||||
fProj.setActiveConfigurationIndex(fConfigIndex);
|
fProj.setActiveConfigurationIndex(fConfigIndex);
|
||||||
|
|
||||||
|
projectGroup.restoreModified;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue