mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-28 10:02:14 +00:00
UPD: Show "Open with" submenu also for multiply files
This commit is contained in:
parent
1eb315e276
commit
5db85e7201
2 changed files with 41 additions and 39 deletions
|
|
@ -581,51 +581,53 @@ begin
|
|||
CM.Items.Add(miActions);
|
||||
end;
|
||||
{ /Actions submenu }
|
||||
{$IFDEF LINUX}
|
||||
// Open with ... (for now only for 1 selected file)
|
||||
FileNames := TStringList.Create;
|
||||
try
|
||||
for i := 0 to Files.Count - 1 do
|
||||
FileNames.Add(Files[i].Path + Files[i].Name);
|
||||
|
||||
DesktopEntries := GetDesktopEntries(FileNames);
|
||||
|
||||
if Assigned(DesktopEntries) and (DesktopEntries.Count > 0) then
|
||||
begin
|
||||
miOpenWith := TMenuItem.Create(CM);
|
||||
miOpenWith.Caption := rsMnuOpenWith;
|
||||
CM.Items.Add(miOpenWith);
|
||||
AddOpenWithMenu := True;
|
||||
|
||||
for i := 0 to DesktopEntries.Count - 1 do
|
||||
begin
|
||||
mi := TMenuItem.Create(miOpenWith);
|
||||
mi.Caption := PDesktopFileEntry(DesktopEntries[i])^.DisplayName;
|
||||
mi.Hint := PDesktopFileEntry(DesktopEntries[i])^.Exec;
|
||||
mi.OnClick := TContextMenu.OpenWithMenuItemSelect;
|
||||
miOpenWith.Add(mi);
|
||||
end;
|
||||
end;
|
||||
|
||||
finally
|
||||
FreeAndNil(FileNames);
|
||||
if Assigned(DesktopEntries) then
|
||||
begin
|
||||
for i := 0 to DesktopEntries.Count - 1 do
|
||||
Dispose(PDesktopFileEntry(DesktopEntries[i]));
|
||||
FreeAndNil(DesktopEntries);
|
||||
end;
|
||||
end;
|
||||
{$ENDIF}
|
||||
// Add separator after actions and openwith menu.
|
||||
if AddActionsMenu or AddOpenWithMenu then
|
||||
begin
|
||||
mi:=TMenuItem.Create(CM);
|
||||
mi.Caption:='-';
|
||||
CM.Items.Add(mi);
|
||||
end;
|
||||
end; // if count = 1
|
||||
|
||||
{$IFDEF LINUX}
|
||||
// Open with ...
|
||||
FileNames := TStringList.Create;
|
||||
try
|
||||
for i := 0 to Files.Count - 1 do
|
||||
FileNames.Add(Files[i].Path + Files[i].Name);
|
||||
|
||||
DesktopEntries := GetDesktopEntries(FileNames);
|
||||
|
||||
if Assigned(DesktopEntries) and (DesktopEntries.Count > 0) then
|
||||
begin
|
||||
miOpenWith := TMenuItem.Create(CM);
|
||||
miOpenWith.Caption := rsMnuOpenWith;
|
||||
CM.Items.Add(miOpenWith);
|
||||
AddOpenWithMenu := True;
|
||||
|
||||
for i := 0 to DesktopEntries.Count - 1 do
|
||||
begin
|
||||
mi := TMenuItem.Create(miOpenWith);
|
||||
mi.Caption := PDesktopFileEntry(DesktopEntries[i])^.DisplayName;
|
||||
mi.Hint := PDesktopFileEntry(DesktopEntries[i])^.Exec;
|
||||
mi.OnClick := TContextMenu.OpenWithMenuItemSelect;
|
||||
miOpenWith.Add(mi);
|
||||
end;
|
||||
end;
|
||||
|
||||
finally
|
||||
FreeAndNil(FileNames);
|
||||
if Assigned(DesktopEntries) then
|
||||
begin
|
||||
for i := 0 to DesktopEntries.Count - 1 do
|
||||
Dispose(PDesktopFileEntry(DesktopEntries[i]));
|
||||
FreeAndNil(DesktopEntries);
|
||||
end;
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
// Add separator after actions and openwith menu.
|
||||
if AddActionsMenu or AddOpenWithMenu then
|
||||
begin
|
||||
mi:=TMenuItem.Create(CM);
|
||||
mi.Caption:='-';
|
||||
CM.Items.Add(mi);
|
||||
end;
|
||||
|
||||
mi:=TMenuItem.Create(CM);
|
||||
mi.Action := frmMain.actRename;
|
||||
CM.Items.Add(mi);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ unit uMimeActions;
|
|||
interface
|
||||
|
||||
uses
|
||||
Classes,
|
||||
Classes, SysUtils, // for AnsiString version of StrPas function
|
||||
glib2;
|
||||
|
||||
type
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue