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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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