UPD: Refactor: remove Duplicate Code in uClipboard (#541)

This commit is contained in:
rich2014 2022-08-11 00:57:03 +08:00 committed by GitHub
commit f6ae8bc46b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 57 deletions

View file

@ -543,19 +543,6 @@ end;
// MacOs 10.5 compatibility
{$IFDEF DARWIN}
function ListToNSArray(const list:TStringList): NSArray;
var
i: Integer;
theArray: NSMutableArray;
begin
theArray := NSMutableArray.arrayWithCapacity(list.Count);
for i := 0 to list.Count - 1 do
begin
theArray.addObject( StringToNSString(list[i]) );
end;
Result := theArray;
end;
function FilenamesToString(const filenames:TStringList): String;
begin
Result := TrimRightLineEnding( filenames.Text, filenames.TextLineBreakStyle);
@ -790,19 +777,6 @@ end;
// MacOs 10.5 compatibility
{$IFDEF DARWIN}
function NSArrayToList(const theArray:NSArray): TStringList;
var
i: Integer;
list : TStringList;
begin
list := TStringList.Create;
for i := 0 to theArray.Count-1 do
begin
list.Add( NSStringToString( theArray.objectAtIndex(i) ) );
end;
Result := list;
end;
function getStringFromPasteboard( pbType : NSString ) : String;
var
pb : NSPasteboard;

View file

@ -30,21 +30,26 @@ interface
uses
Classes, SysUtils, MacOSAll, CocoaAll, CocoaUtils, CocoaInt, InterfaceBase, Menus, CocoaWSMenus;
function NSGetTempPath: String;
// Darwin Util Function
function StringToNSString(const S: String): NSString;
function StringToCFStringRef(const S: String): CFStringRef;
function NSArrayToList(const theArray:NSArray): TStringList;
function ListToNSArray(const list:TStrings): NSArray;
function NSGetTempPath: String;
function NSGetFolderPath(Folder: NSSearchPathDirectory): String;
function GetFileDescription(const FileName: String): String;
function MountNetworkDrive(const serverAddress: String): Boolean;
// MacOS Service Integration
type TNSServiceProviderCallBack = Procedure( filenames:TStringList ) of object;
type TNSServiceMenuIsReady = Function(): Boolean of object;
type TNSServiceMenuGetFilenames = Function(): TStringList of object;
type TDCCocoaApplication = objcclass(TCocoaApplication)
private
function validRequestorForSendType_returnType (sendType: NSString; returnType: NSString): id; override;
function writeSelectionToPasteboard_types (pboard: NSPasteboard; types: NSArray): ObjCBOOL; message 'writeSelectionToPasteboard:types:';
public
@ -53,13 +58,14 @@ public
end;
type TNSServiceProvider = objcclass(NSObject)
private
onOpenWithNewTab: TNSServiceProviderCallBack;
public
onOpenWithNewTab: TNSServiceProviderCallBack;
public
procedure openWithNewTab( pboard:NSPasteboard; userData:NSString; error:NSStringPtr ); message 'openWithNewTab:userData:error:';
procedure openWithNewTab( pboard:NSPasteboard; userData:NSString; error:NSStringPtr ); message 'openWithNewTab:userData:error:';
end;
type TMacosServiceMenuHelper = class
private
oldMenuPopupHandler: TNotifyEvent;
serviceSubMenuCaption: String;
procedure attachServicesMenu( Sender:TObject);
@ -141,32 +147,6 @@ begin
DCApp.registerServicesMenuSendTypes_returnTypes( sendTypes, returnTypes );
end;
function NSArrayToList(const theArray:NSArray): TStringList;
var
i: Integer;
list : TStringList;
begin
list := TStringList.Create;
for i := 0 to theArray.Count-1 do
begin
list.Add( NSStringToString( theArray.objectAtIndex(i) ) );
end;
Result := list;
end;
function ListToNSArray(const list:TStrings): NSArray;
var
i: Integer;
theArray: NSMutableArray;
begin
theArray := NSMutableArray.arrayWithCapacity(list.Count);
for i := 0 to list.Count - 1 do
begin
theArray.addObject( StringToNSString(list[i]) );
end;
Result := theArray;
end;
procedure TNSServiceProvider.openWithNewTab( pboard:NSPasteboard; userData:NSString; error:NSStringPtr );
var
filenameArray{, lClasses}: NSArray;
@ -212,6 +192,31 @@ begin
FreeAndNil( filenameList );
end;
function NSArrayToList(const theArray:NSArray): TStringList;
var
i: Integer;
list : TStringList;
begin
list := TStringList.Create;
for i := 0 to theArray.Count-1 do
begin
list.Add( NSStringToString( theArray.objectAtIndex(i) ) );
end;
Result := list;
end;
function ListToNSArray(const list:TStrings): NSArray;
var
i: Integer;
theArray: NSMutableArray;
begin
theArray := NSMutableArray.arrayWithCapacity(list.Count);
for i := 0 to list.Count - 1 do
begin
theArray.addObject( StringToNSString(list[i]) );
end;
Result := theArray;
end;
function NSGetTempPath: String;
begin