mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 16:39:15 +02:00
MG: fixed create project from program file
git-svn-id: trunk@346 -
This commit is contained in:
parent
54395a0848
commit
a8ba6a499f
46
ide/main.pp
46
ide/main.pp
@ -1808,7 +1808,7 @@ var ActiveSrcEdit:TSourceEditor;
|
|||||||
ResourceCode, LFMCode, NewSource: TCodeBuffer;
|
ResourceCode, LFMCode, NewSource: TCodeBuffer;
|
||||||
LinkIndex: integer;
|
LinkIndex: integer;
|
||||||
begin
|
begin
|
||||||
writeln('TMainIDE.DoSaveEditorUnit A PageIndex=',PageIndex);
|
writeln('TMainIDE.DoSaveEditorUnit A PageIndex=',PageIndex,' SaveAs=',SaveAs,' SaveToTestDir=',SaveToTestDir);
|
||||||
{$IFDEF IDE_MEM_CHECK}
|
{$IFDEF IDE_MEM_CHECK}
|
||||||
CheckHeap(IntToStr(GetMem_Cnt));
|
CheckHeap(IntToStr(GetMem_Cnt));
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -2176,9 +2176,10 @@ CheckHeap(IntToStr(GetMem_Cnt));
|
|||||||
NewProgramName:=CodeToolBoss.GetSourceName(PreReadBuf);
|
NewProgramName:=CodeToolBoss.GetSourceName(PreReadBuf);
|
||||||
if NewProgramName<>'' then begin
|
if NewProgramName<>'' then begin
|
||||||
if FileExists(ChangeFileExt(AFilename,'.lpi')) then begin
|
if FileExists(ChangeFileExt(AFilename,'.lpi')) then begin
|
||||||
AText:='The file "'+AFilename+'"'
|
AText:='The file "'+AFilename+'"'#13
|
||||||
+' seems to be the program file of an existing lazarus project.'
|
+'seems to be the program file of an existing lazarus project.'#13
|
||||||
+' Open project? Cancel will load the source.';
|
+'Open project?'#13
|
||||||
|
+'Cancel will load the source.';
|
||||||
ACaption:='Project info file detected';
|
ACaption:='Project info file detected';
|
||||||
if MessageDlg(ACaption, AText, mtconfirmation,
|
if MessageDlg(ACaption, AText, mtconfirmation,
|
||||||
[mbok, mbcancel], 0)=mrOk then
|
[mbok, mbcancel], 0)=mrOk then
|
||||||
@ -2187,10 +2188,10 @@ CheckHeap(IntToStr(GetMem_Cnt));
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
AText:='The file "'+AFilename+'"'
|
AText:='The file "'+AFilename+'"'#13
|
||||||
+' seems to be a program. Close current project'
|
+'seems to be a program. Close current project'
|
||||||
+' and create a new lazarus project for this program?'
|
+' and create a new lazarus project for this program?'#13
|
||||||
+' Cancel will load the source.';
|
+'Cancel will load the source.';
|
||||||
ACaption:='Program detected';
|
ACaption:='Program detected';
|
||||||
if MessageDlg(ACaption, AText, mtconfirmation,
|
if MessageDlg(ACaption, AText, mtconfirmation,
|
||||||
[mbok, mbcancel], 0)=mrOk then
|
[mbok, mbcancel], 0)=mrOk then
|
||||||
@ -2341,13 +2342,14 @@ end;
|
|||||||
|
|
||||||
function TMainIDE.DoOpenMainUnit(ProjectLoading: boolean): TModalResult;
|
function TMainIDE.DoOpenMainUnit(ProjectLoading: boolean): TModalResult;
|
||||||
var MainUnitInfo: TUnitInfo;
|
var MainUnitInfo: TUnitInfo;
|
||||||
NewPageName: string;
|
NewPageName, Ext: string;
|
||||||
NewSrcEdit: TSourceEditor;
|
NewSrcEdit: TSourceEditor;
|
||||||
begin
|
begin
|
||||||
//writeln('[TMainIDE.DoOpenMainUnit] A');
|
//writeln('[TMainIDE.DoOpenMainUnit] A');
|
||||||
Result:=mrCancel;
|
Result:=mrCancel;
|
||||||
if Project.MainUnit<0 then exit;
|
if Project.MainUnit<0 then exit;
|
||||||
MainUnitInfo:=Project.Units[Project.MainUnit];
|
MainUnitInfo:=Project.Units[Project.MainUnit];
|
||||||
|
//writeln('TMainIDE.DoOpenMainUnit B1 ',MainUnitInfo.Source.SourceLength);
|
||||||
if MainUnitInfo.Loaded then begin
|
if MainUnitInfo.Loaded then begin
|
||||||
// already loaded switch to source editor
|
// already loaded switch to source editor
|
||||||
SourceNotebook.NoteBook.PageIndex:=MainUnitInfo.EditorIndex;
|
SourceNotebook.NoteBook.PageIndex:=MainUnitInfo.EditorIndex;
|
||||||
@ -2355,18 +2357,16 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
// MainUnit not loaded -> create source editor
|
// MainUnit not loaded -> create source editor
|
||||||
NewPageName:=MainUnitInfo.Unitname;
|
NewPageName:=ExtractFileName(MainUnitInfo.Filename);
|
||||||
//writeln('TMainIDE.DoOpenMainUnit A ',NewPageName);
|
Ext:=uppercase(ExtractFileExt(MainUnitInfo.Filename));
|
||||||
|
if (Ext='.PAS') or (Ext='.PP') then
|
||||||
|
NewPageName:=copy(NewPageName,1,length(NewPageName)-length(Ext));
|
||||||
|
//writeln('TMainIDE.DoOpenMainUnit B ',NewPageName,' ',MainUnitInfo.Source.SourceLength);
|
||||||
if NewpageName='' then
|
if NewpageName='' then
|
||||||
NewPageName:=CodeToolBoss.GetSourceName(MainUnitInfo.Source);
|
NewPageName:=CodeToolBoss.GetSourceName(MainUnitInfo.Source);
|
||||||
if NewPageName='' then begin
|
|
||||||
NewPageName:=ExtractFileName(MainUnitInfo.Filename);
|
|
||||||
NewPageName:=copy(NewPageName,1,
|
|
||||||
length(NewPageName)-length(ExtractFileExt(NewPageName)));
|
|
||||||
end;
|
|
||||||
if NewPageName='' then
|
if NewPageName='' then
|
||||||
NewPageName:='mainunit';
|
NewPageName:='mainunit';
|
||||||
//writeln('TMainIDE.DoOpenMainUnit B ',NewPageName);
|
//writeln('TMainIDE.DoOpenMainUnit C ',NewPageName);
|
||||||
SourceNotebook.NewFile(NewPageName,MainUnitInfo.Source);
|
SourceNotebook.NewFile(NewPageName,MainUnitInfo.Source);
|
||||||
if not ProjectLoading then
|
if not ProjectLoading then
|
||||||
Project.InsertEditorIndex(SourceNotebook.NoteBook.PageIndex);
|
Project.InsertEditorIndex(SourceNotebook.NoteBook.PageIndex);
|
||||||
@ -2535,7 +2535,7 @@ begin
|
|||||||
Result:=mrAbort;
|
Result:=mrAbort;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
writeln('TMainIDE.DoSaveProject A');
|
writeln('TMainIDE.DoSaveProject A SaveAs=',SaveAs,' SaveToTestDir=',SaveToTestDir);
|
||||||
// check that all new units are saved first to get valid filenames
|
// check that all new units are saved first to get valid filenames
|
||||||
for i:=0 to Project.UnitCount-1 do begin
|
for i:=0 to Project.UnitCount-1 do begin
|
||||||
if (Project.Units[i].Loaded) and (Project.Units[i].IsVirtual)
|
if (Project.Units[i].Loaded) and (Project.Units[i].IsVirtual)
|
||||||
@ -2558,6 +2558,7 @@ writeln('TMainIDE.DoSaveProject A');
|
|||||||
MainUnitInfo.EditorIndex);
|
MainUnitInfo.EditorIndex);
|
||||||
if MainUnitSrcEdit.Modified then begin
|
if MainUnitSrcEdit.Modified then begin
|
||||||
MainUnitInfo.Source.Assign(MainUnitSrcEdit.Source);
|
MainUnitInfo.Source.Assign(MainUnitSrcEdit.Source);
|
||||||
|
writeln(' >>> ',MainUnitInfo.Source.SourceLength);
|
||||||
MainUnitInfo.Modified:=true;
|
MainUnitInfo.Modified:=true;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2584,6 +2585,7 @@ writeln('TMainIDE.DoSaveProject A');
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
writeln(' AAA ',Project.ProjectFile);
|
||||||
SaveAs:=SaveAs or (Project.ProjectFile='');
|
SaveAs:=SaveAs or (Project.ProjectFile='');
|
||||||
if SaveAs and (not SaveToTestDir) then begin
|
if SaveAs and (not SaveToTestDir) then begin
|
||||||
// let user choose a filename
|
// let user choose a filename
|
||||||
@ -2829,7 +2831,7 @@ var NewProjectType:TProjectType;
|
|||||||
ProgramTitle, Ext: string;
|
ProgramTitle, Ext: string;
|
||||||
MainUnitInfo: TUnitInfo;
|
MainUnitInfo: TUnitInfo;
|
||||||
begin
|
begin
|
||||||
writeln('[TMainIDE.DoCreateProjectForProgram] A');
|
//writeln('[TMainIDE.DoCreateProjectForProgram] A');
|
||||||
Result:=mrCancel;
|
Result:=mrCancel;
|
||||||
|
|
||||||
if SomethingOfProjectIsModified then begin
|
if SomethingOfProjectIsModified then begin
|
||||||
@ -2881,7 +2883,7 @@ writeln('[TMainIDE.DoCreateProjectForProgram] A');
|
|||||||
|
|
||||||
UpdateCaption;
|
UpdateCaption;
|
||||||
|
|
||||||
writeln('[TMainIDE.DoCreateProjectForProgram] END');
|
//writeln('[TMainIDE.DoCreateProjectForProgram] END');
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -3879,8 +3881,8 @@ end.
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.116 2001/10/10 17:55:01 lazarus
|
Revision 1.117 2001/10/10 22:13:13 lazarus
|
||||||
MG: fixed caret lost, gtk cleanup, bracket lvls, bookmark saving
|
MG: fixed create project from program file
|
||||||
|
|
||||||
Revision 1.115 2001/10/09 09:46:49 lazarus
|
Revision 1.115 2001/10/09 09:46:49 lazarus
|
||||||
MG: added codetools, fixed synedit unindent, fixed MCatureHandle
|
MG: added codetools, fixed synedit unindent, fixed MCatureHandle
|
||||||
|
@ -1388,30 +1388,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProject.SetProjectFile(const NewProjectFilename: string);
|
procedure TProject.SetProjectFile(const NewProjectFilename: string);
|
||||||
var ExpProjFilename,NewProgramName,Ext:string;
|
|
||||||
NewSource: TCodeBuffer;
|
|
||||||
begin
|
begin
|
||||||
ExpProjFilename:=NewProjectFilename;
|
fProjectFile:=NewProjectFilename;
|
||||||
DoDirSeparators(ExpProjFilename);
|
|
||||||
ExpProjFilename:=ExpandFilename(ExpProjFilename);
|
|
||||||
if ExpProjFilename=fProjectFile then exit;
|
|
||||||
Ext:=ExtractFileExt(ExpProjFilename);
|
|
||||||
if ProjectType in [ptProgram, ptApplication] then begin
|
|
||||||
// change programname in source
|
|
||||||
NewProgramName:=ExtractFilename(ExpProjFilename);
|
|
||||||
NewProgramName:=copy(NewProgramName,1,length(NewProgramName)-length(Ext));
|
|
||||||
if MainUnit>=0 then
|
|
||||||
CodeToolBoss.RenameSource(Units[MainUnit].Source,NewProgramName);
|
|
||||||
end;
|
|
||||||
if MainUnit>=0 then begin
|
|
||||||
NewSource:=CodeToolBoss.CreateFile(ChangeFileExt(ExpProjFilename
|
|
||||||
,ProjectDefaultExt[ProjectType]));
|
|
||||||
if Units[MainUnit].Source<>nil then
|
|
||||||
NewSource.Source:=Units[MainUnit].Source.Source;
|
|
||||||
Units[MainUnit].Source:=NewSource;
|
|
||||||
Units[MainUnit].Modified:=true;
|
|
||||||
end;
|
|
||||||
fProjectFile:=ExpProjFilename;
|
|
||||||
Modified:=true;
|
Modified:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1491,6 +1469,9 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.28 2001/10/10 22:13:13 lazarus
|
||||||
|
MG: fixed create project from program file
|
||||||
|
|
||||||
Revision 1.27 2001/10/09 09:46:50 lazarus
|
Revision 1.27 2001/10/09 09:46:50 lazarus
|
||||||
MG: added codetools, fixed synedit unindent, fixed MCatureHandle
|
MG: added codetools, fixed synedit unindent, fixed MCatureHandle
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user