fix, dialogs, double separator after built-in shortcut solved, close #100

lead to same file opened twice: click in the message, debug break, etc
This commit is contained in:
Basile Burg 2016-11-11 14:25:13 +01:00
parent fb56207c35
commit 95efa5461a
No known key found for this signature in database
GPG Key ID: 1868039F415CB8CF
8 changed files with 27 additions and 18 deletions

View File

@ -81,6 +81,7 @@ type
function length: integer;
function toIntNoExcept(default: integer = -1): integer;
function toInt: integer;
function normalizePath: string;
end;
(**
@ -446,6 +447,11 @@ begin
exit(StrToIntDef(self, default));
end;
function TStringHelper.normalizePath: string;
begin
exit(TrimFilename(self));
end;
procedure TProcessEx.Assign(value: TPersistent);
var
src: TProcess;

View File

@ -857,7 +857,7 @@ begin
begin
fTokList.Clear;
lex(fDoc.Text, fTokList, nil);
fTokList.saveToFile(FileName);
fTokList.saveToFile(FileName.normalizePath);
fTokList.Clear;
end;
finally
@ -923,7 +923,7 @@ begin
fTokList.Clear;
lex(fDoc.Text, fTokList, nil, [lxoNoComments]);
getImports(fTOkList, str);
str.SaveToFile(filename);
str.SaveToFile(filename.normalizePath);
fTokList.Clear;
str.Free;
end;

View File

@ -188,7 +188,8 @@ begin
with TOpenDialog.create(nil) do try
InitialDir := GetValue.extractFileName;
FileName := GetValue;
if Execute then SetValue(FileName);
if Execute then
SetValue(FileName.normalizePath);
finally
free;
end;

View File

@ -721,7 +721,7 @@ begin
try
FileName := ini;
if Execute then
List.Selected.SubItems[2] := FileName;
List.Selected.SubItems[2] := FileName.normalizePath;
finally
free;
end;
@ -741,6 +741,7 @@ begin
filename := ini;
if Execute then
begin
filename := filename.normalizePath;
if not filename.fileExists then
List.Selected.SubItems[0] := filename.extractFilePath
else

View File

@ -2161,6 +2161,7 @@ begin
try
if Execute then
begin
filename := FileName.normalizePath;
exp.Highlighter := fDoc.Highlighter;
exp.Title := fDoc.fileName;
exp.ExportAsText:=true;
@ -2198,9 +2199,6 @@ begin
openFile(TMenuItem(Sender).Hint);
end;
//TODO-cbugfix: OpenDialogs, double path separator when shortcuts resolved
// i.e when ofNoDereferenceLinks is not set.
procedure TCEMainForm.actFileOpenExecute(Sender: TObject);
var
fname: string;
@ -2213,7 +2211,7 @@ begin
filter := DdiagFilter;
if execute then
for fname in files do
openFile(fname);
openFile(fname.normalizePath);
finally
free;
end;
@ -2266,7 +2264,7 @@ begin
if not fDoc.isTemporary and fDoc.fileName.fileExists then
InitialDir := fDoc.fileName.extractFileDir;
if execute then
fDoc.saveToFile(filename);
fDoc.saveToFile(filename.normalizePath);
finally
free;
end;
@ -2351,7 +2349,7 @@ begin
str := TStringList.create;
try
str.assign(fDoc.Lines);
str.saveToFile(FileName);
str.saveToFile(FileName.normalizePath);
finally
str.free;
end;
@ -3308,7 +3306,7 @@ begin
if fProject.filename.fileExists then
InitialDir := fproject.filename.extractFileDir;
if execute then
saveProjAs(filename);
saveProjAs(filename.normalizePath);
finally
Free;
end;
@ -3336,10 +3334,12 @@ begin
if checkProjectLock then
exit;
if assigned(fProject) and fProject.modified and
(dlgFileChangeClose(fProject.filename, UnsavedProj) = mrCancel) then exit;
(dlgFileChangeClose(fProject.filename, UnsavedProj) = mrCancel) then
exit;
with TOpenDialog.Create(nil) do
try
if execute then openProj(filename);
if execute then
openProj(filename.normalizePath);
finally
Free;
end;
@ -3398,6 +3398,7 @@ begin
try
if execute then
begin
filename := filename.normalizePath;
fProjectGroup.closeGroup;
fProjectGroup.openGroup(filename);
fPrjGrpMru.Insert(0, filename);
@ -3414,7 +3415,7 @@ begin
if fProjectGroup.groupFilename.fileExists then
InitialDir := fProjectGroup.groupFilename.extractFileDir;
if execute then
fProjectGroup.saveGroup(filename);
fProjectGroup.saveGroup(filename.normalizePath);
finally
free;
end;

View File

@ -633,7 +633,7 @@ begin
try
for itm in List.Items do
lst.Add(itm.Text);
lst.SaveToFile(filename);
lst.SaveToFile(filename.normalizePath);
finally
lst.Free;
end;

View File

@ -558,9 +558,9 @@ begin
exit;
for fname in Files do
begin
if projectGroup.findProject(fname) <> nil then
if projectGroup.findProject(fname.normalizePath) <> nil then
continue;
projectGroup.addItem(fname);
projectGroup.addItem(fname.normalizePath);
added := true;
end;
if added then

View File

@ -312,7 +312,7 @@ begin
begin
proj.beginUpdate;
for fname in Files do
proj.addSource(fname);
proj.addSource(fname.normalizePath);
proj.endUpdate;
end;
finally