mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: 'Open with default App' Modern ToolBar Item in ViewForm on macOS
This commit is contained in:
parent
7cf22b45ea
commit
0291126ba2
3 changed files with 51 additions and 21 deletions
|
|
@ -460,7 +460,6 @@ type
|
|||
{$ENDIF}
|
||||
|
||||
property Commands: TFormCommands read FCommands implements IFormCommands;
|
||||
property FileName: String write SetFileName;
|
||||
|
||||
protected
|
||||
procedure WMCommand(var Message: TLMCommand); message LM_COMMAND;
|
||||
|
|
@ -491,6 +490,8 @@ type
|
|||
procedure RotateImage(ADegree: Integer);
|
||||
procedure MirrorImage(AVertically: Boolean = False);
|
||||
|
||||
property FileName: String read FFileName write SetFileName;
|
||||
|
||||
published
|
||||
// Commands for hotkey manager
|
||||
procedure cm_About(const Params: array of string);
|
||||
|
|
|
|||
|
|
@ -159,6 +159,15 @@ begin
|
|||
form.cm_DeleteFile( [] );
|
||||
end;
|
||||
|
||||
procedure openWithAction( const Sender: id );
|
||||
var
|
||||
form: TfrmViewer;
|
||||
begin
|
||||
form:= getCurrentViewerForm;
|
||||
if Assigned(form) then
|
||||
TDarwinApplicationUtil.openWithDefaultApp( form.FileName );
|
||||
end;
|
||||
|
||||
procedure viewerZoomInAction( const Sender: id );
|
||||
var
|
||||
form: TfrmViewer;
|
||||
|
|
@ -389,6 +398,32 @@ const
|
|||
onAction: @viewerNextAction;
|
||||
);
|
||||
|
||||
viewerOpenWithItemConfig: TCocoaConfigToolBarItem = (
|
||||
identifier: 'ViewerForm.OpenWithPreview';
|
||||
priority: NSToolbarItemVisibilityPriorityStandard;
|
||||
navigational: True;
|
||||
iconName: 'square.and.arrow.up';
|
||||
title: 'Open with';
|
||||
tips: 'Open with default App';
|
||||
bordered: True;
|
||||
onAction: @openWithAction;
|
||||
);
|
||||
|
||||
viewerSlideItemConfig: TCocoaConfigToolBarItemMenu = (
|
||||
identifier: 'ViewerForm.Slide';
|
||||
priority: NSToolbarItemVisibilityPriorityStandard;
|
||||
navigational: True;
|
||||
iconName: 'play.fill';
|
||||
title: 'Slide Show';
|
||||
tips: 'Slide Show';
|
||||
bordered: True;
|
||||
alternateIconName: 'stop.fill';
|
||||
onAction: @viewerSlideAction;
|
||||
|
||||
showsIndicator: True;
|
||||
onGetMenu: @onViewerGetSlideMenu;
|
||||
);
|
||||
|
||||
viewerCopyFileItemConfig: TCocoaConfigToolBarItem = (
|
||||
identifier: 'ViewerForm.CopyFile';
|
||||
priority: NSToolbarItemVisibilityPriorityStandard;
|
||||
|
|
@ -422,21 +457,6 @@ const
|
|||
onAction: @viewerDeleteAction;
|
||||
);
|
||||
|
||||
viewerSlideItemConfig: TCocoaConfigToolBarItemMenu = (
|
||||
identifier: 'ViewerForm.Slide';
|
||||
priority: NSToolbarItemVisibilityPriorityStandard;
|
||||
navigational: True;
|
||||
iconName: 'play.fill';
|
||||
title: 'Slide Show';
|
||||
tips: 'Slide Show';
|
||||
bordered: True;
|
||||
alternateIconName: 'stop.fill';
|
||||
onAction: @viewerSlideAction;
|
||||
|
||||
showsIndicator: True;
|
||||
onGetMenu: @onViewerGetSlideMenu;
|
||||
);
|
||||
|
||||
|
||||
viewerZoomInItemConfig: TCocoaConfigToolBarItem = (
|
||||
identifier: 'ViewerForm.ZoomIn';
|
||||
|
|
@ -715,19 +735,21 @@ const
|
|||
'ViewerForm.Reload',
|
||||
'ViewerForm.Prev',
|
||||
'ViewerForm.Next',
|
||||
'ViewerForm.OpenWithPreview',
|
||||
'ViewerForm.Slide',
|
||||
'ViewerForm.CopyFile',
|
||||
'ViewerForm.MoveFile',
|
||||
'ViewerForm.DeleteFile',
|
||||
'ViewerForm.Slide'
|
||||
'ViewerForm.DeleteFile'
|
||||
);
|
||||
allowedItemsIdentifiers: (
|
||||
'ViewerForm.Reload',
|
||||
'ViewerForm.Prev',
|
||||
'ViewerForm.Next',
|
||||
'ViewerForm.OpenWithPreview',
|
||||
'ViewerForm.Slide',
|
||||
'ViewerForm.CopyFile',
|
||||
'ViewerForm.MoveFile',
|
||||
'ViewerForm.DeleteFile',
|
||||
'ViewerForm.Slide',
|
||||
|
||||
'ViewerForm.ZoomIn',
|
||||
'ViewerForm.ZoomOut',
|
||||
|
|
@ -764,10 +786,10 @@ begin
|
|||
translateItemConfig( poFile, 'tfrmviewer.actreload.hint', viewerReloadItemConfig );
|
||||
translateItemConfig( poFile, 'tfrmviewer.actloadprevfile.hint', viewerPrevItemConfig );
|
||||
translateItemConfig( poFile, 'tfrmviewer.actloadnextfile.hint', viewerNextItemConfig );
|
||||
translateItemConfig( poFile, 'tfrmviewer.btnslideshow.caption', viewerSlideItemConfig );
|
||||
translateItemConfig( poFile, 'tfrmviewer.actcopyfile.hint', viewerCopyFileItemConfig );
|
||||
translateItemConfig( poFile, 'tfrmviewer.actmovefile.hint', viewerMoveFileItemConfig );
|
||||
translateItemConfig( poFile, 'tfrmviewer.actdeletefile.hint', viewerDeleteFileItemConfig );
|
||||
translateItemConfig( poFile, 'tfrmviewer.btnslideshow.caption', viewerSlideItemConfig );
|
||||
|
||||
translateItemConfig( poFile, 'tfrmviewer.actzoomin.hint', viewerZoomInItemConfig );
|
||||
translateItemConfig( poFile, 'tfrmviewer.actzoomout.hint', viewerZoomOutItemConfig );
|
||||
|
|
@ -820,10 +842,11 @@ begin
|
|||
TCocoaToolBarUtils.toClass(viewerReloadItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerPrevItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerNextItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerOpenWithItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerSlideItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerCopyFileItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerMoveFileItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerDeleteFileItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerSlideItemConfig),
|
||||
|
||||
TCocoaToolBarUtils.toClass(viewerZoomInItemConfig),
|
||||
TCocoaToolBarUtils.toClass(viewerZoomOutItemConfig),
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ type
|
|||
const isReadyFunc: TDarwinServiceMenuIsReadyFunc;
|
||||
const getFilenamesFunc: TDarwinServiceMenuGetFilenamesFunc );
|
||||
class procedure popUpMenuWithServiceSubmenu( const menu: TPopupMenu; const caption: String; const paths: TStringArray );
|
||||
class procedure openWithDefaultApp( const filePath: String );
|
||||
class procedure performService( const serviceName: String );
|
||||
class procedure openSystemSecurityPreferences_PrivacyAllFiles;
|
||||
public
|
||||
|
|
@ -225,6 +226,11 @@ begin
|
|||
menuManager.Free;
|
||||
end;
|
||||
|
||||
class procedure TDarwinApplicationUtil.openWithDefaultApp( const filePath: String );
|
||||
begin
|
||||
NSWorkspace.sharedWorkspace.openFile( StringToNSString(filePath) );
|
||||
end;
|
||||
|
||||
class procedure TDarwinApplicationUtil.performService(const serviceName: String
|
||||
);
|
||||
var
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue