Bumping MACOSX_DEPLOYMENT_TARGET to 11.0 (#6911)
* Bumping MACOSX_DEPLOYMENT_TARGET to 11.0 * removing obsolete code and resources * Add a build action for Transmission.xcodeproj * removing obsolete code
22
.github/workflows/actions.yml
vendored
@@ -309,6 +309,28 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
if (Select-String -Path makelog -Pattern 'warning:') { exit 1 }
|
if (Select-String -Path makelog -Pattern 'warning:') { exit 1 }
|
||||||
|
|
||||||
|
macos-14-project:
|
||||||
|
runs-on: macos-14
|
||||||
|
needs: [ what-to-make ]
|
||||||
|
if: ${{ needs.what-to-make.outputs.make-cli == 'true' || needs.what-to-make.outputs.make-daemon == 'true' || needs.what-to-make.outputs.make-mac == 'true' || needs.what-to-make.outputs.make-utils == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Show Configuration
|
||||||
|
run: |
|
||||||
|
echo '${{ toJSON(needs) }}'
|
||||||
|
echo '${{ toJSON(runner) }}'
|
||||||
|
sw_vers
|
||||||
|
- name: Get Source
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: src
|
||||||
|
submodules: recursive
|
||||||
|
- name: Build
|
||||||
|
run: xcodebuild -project src/Transmission.xcodeproj
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: binaries-${{ github.job }}
|
||||||
|
path: pfx/**/*
|
||||||
|
|
||||||
macos-14-arm64:
|
macos-14-arm64:
|
||||||
runs-on: macos-14
|
runs-on: macos-14
|
||||||
needs: [ what-to-make ]
|
needs: [ what-to-make ]
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ if(POLICY CMP0114)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Value should follow latest stable Xcode's RECOMMENDED_MACOSX_DEPLOYMENT_TARGET
|
# Value should follow latest stable Xcode's RECOMMENDED_MACOSX_DEPLOYMENT_TARGET
|
||||||
set(MACOS_SUPPORT_MINIMUM 10.14.6)
|
set(MACOS_SUPPORT_MINIMUM 11.0)
|
||||||
|
|
||||||
# The value of this variable should be set prior to the first project() command invocation.
|
# The value of this variable should be set prior to the first project() command invocation.
|
||||||
# See: https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_DEPLOYMENT_TARGET.html
|
# See: https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_DEPLOYMENT_TARGET.html
|
||||||
|
|||||||
@@ -4170,7 +4170,7 @@
|
|||||||
INFOPLIST_OTHER_PREPROCESSOR_FLAGS = "-traditional";
|
INFOPLIST_OTHER_PREPROCESSOR_FLAGS = "-traditional";
|
||||||
INFOPLIST_PREFIX_HEADER = libtransmission/version.h;
|
INFOPLIST_PREFIX_HEADER = libtransmission/version.h;
|
||||||
INFOPLIST_PREPROCESS = YES;
|
INFOPLIST_PREPROCESS = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.14.6;
|
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
@@ -4374,7 +4374,7 @@
|
|||||||
INFOPLIST_OTHER_PREPROCESSOR_FLAGS = "-traditional";
|
INFOPLIST_OTHER_PREPROCESSOR_FLAGS = "-traditional";
|
||||||
INFOPLIST_PREFIX_HEADER = libtransmission/version.h;
|
INFOPLIST_PREFIX_HEADER = libtransmission/version.h;
|
||||||
INFOPLIST_PREPROCESS = YES;
|
INFOPLIST_PREPROCESS = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.14.6;
|
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"-DFMT_HEADER_ONLY",
|
"-DFMT_HEADER_ONLY",
|
||||||
@@ -4478,7 +4478,7 @@
|
|||||||
INFOPLIST_OTHER_PREPROCESSOR_FLAGS = "-traditional";
|
INFOPLIST_OTHER_PREPROCESSOR_FLAGS = "-traditional";
|
||||||
INFOPLIST_PREFIX_HEADER = libtransmission/version.h;
|
INFOPLIST_PREFIX_HEADER = libtransmission/version.h;
|
||||||
INFOPLIST_PREPROCESS = YES;
|
INFOPLIST_PREPROCESS = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.14.6;
|
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ The source code for both official and nightly releases can be found on our [down
|
|||||||
|
|
||||||
## On macOS ##
|
## On macOS ##
|
||||||
Software prerequisites:
|
Software prerequisites:
|
||||||
* macOS 10.14.4 or newer
|
* macOS 11.0 or newer
|
||||||
* Xcode 11.3.1 or newer
|
* Xcode 12.5.1 or newer
|
||||||
|
|
||||||
Building the project on Mac requires the source to be retrieved from GitHub. Pre-packaged source code will not compile.
|
Building the project on Mac requires the source to be retrieved from GitHub. Pre-packaged source code will not compile.
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -228,7 +228,6 @@ set_source_files_properties(
|
|||||||
|
|
||||||
set(IMAGESETS
|
set(IMAGESETS
|
||||||
ActionHover
|
ActionHover
|
||||||
Bandwidth
|
|
||||||
CleanupTemplate
|
CleanupTemplate
|
||||||
CompleteCheck
|
CompleteCheck
|
||||||
CreateLarge
|
CreateLarge
|
||||||
@@ -236,17 +235,7 @@ set(IMAGESETS
|
|||||||
DownArrowTemplate
|
DownArrowTemplate
|
||||||
DownloadBadge
|
DownloadBadge
|
||||||
EllipsisTemplate
|
EllipsisTemplate
|
||||||
FavIcon
|
|
||||||
GearshapeTemplate
|
|
||||||
Globe
|
Globe
|
||||||
Groups
|
|
||||||
InfoActivity
|
|
||||||
InfoFiles
|
|
||||||
InfoGeneral
|
|
||||||
InfoOptions
|
|
||||||
InfoPeers
|
|
||||||
InfoTracker
|
|
||||||
Lock
|
|
||||||
Magnet
|
Magnet
|
||||||
PauseHover
|
PauseHover
|
||||||
PauseOff
|
PauseOff
|
||||||
@@ -258,7 +247,6 @@ set(IMAGESETS
|
|||||||
PriorityHighTemplate
|
PriorityHighTemplate
|
||||||
PriorityLowTemplate
|
PriorityLowTemplate
|
||||||
PriorityNormalTemplate
|
PriorityNormalTemplate
|
||||||
Remote
|
|
||||||
ResumeHover
|
ResumeHover
|
||||||
ResumeNoWaitHover
|
ResumeNoWaitHover
|
||||||
ResumeNoWaitOff
|
ResumeNoWaitOff
|
||||||
@@ -268,18 +256,7 @@ set(IMAGESETS
|
|||||||
RevealHover
|
RevealHover
|
||||||
RevealOff
|
RevealOff
|
||||||
RevealOn
|
RevealOn
|
||||||
ToolbarCreateTemplate
|
|
||||||
ToolbarFilterTemplate
|
|
||||||
ToolbarInfoTemplate
|
|
||||||
ToolbarOpenTemplate
|
|
||||||
ToolbarOpenWebTemplate
|
|
||||||
ToolbarPauseAllTemplate
|
|
||||||
ToolbarPauseSelectedTemplate
|
|
||||||
ToolbarRemoveTemplate
|
|
||||||
ToolbarResumeAllTemplate
|
|
||||||
ToolbarResumeSelectedTemplate
|
|
||||||
TortoiseTemplate
|
TortoiseTemplate
|
||||||
Transfers
|
|
||||||
UpArrowGroupTemplate
|
UpArrowGroupTemplate
|
||||||
UpArrowTemplate
|
UpArrowTemplate
|
||||||
UploadBadge
|
UploadBadge
|
||||||
|
|||||||
@@ -6,38 +6,7 @@
|
|||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
// Compatibility declarations to build `@available(macOS 11.0, *)` code with older Xcode 11.3.1 (the last 32-bit OS compatible Xcode)
|
// Compatibility declarations to build `@available(macOS 13.0, *)` code with older Xcode 12.5.1 (the last macOS 11.0 compatible Xcode)
|
||||||
#ifndef __MAC_11_0
|
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, NSImageSymbolScale) {
|
|
||||||
NSImageSymbolScaleLarge = 3,
|
|
||||||
} API_AVAILABLE(macos(11.0));
|
|
||||||
|
|
||||||
@interface NSImage ()
|
|
||||||
+ (nullable instancetype)imageWithSystemSymbolName:(NSString*)symbolName
|
|
||||||
accessibilityDescription:(nullable NSString*)description API_AVAILABLE(macos(11.0));
|
|
||||||
@end
|
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, NSWindowToolbarStyle) {
|
|
||||||
NSWindowToolbarStylePreference = 2,
|
|
||||||
NSWindowToolbarStyleUnified = 3,
|
|
||||||
} API_AVAILABLE(macos(11.0));
|
|
||||||
|
|
||||||
@interface NSWindow ()
|
|
||||||
@property NSWindowToolbarStyle toolbarStyle API_AVAILABLE(macos(11.0));
|
|
||||||
@end
|
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, NSTableViewStyle) {
|
|
||||||
NSTableViewStyleFullWidth = 1,
|
|
||||||
} API_AVAILABLE(macos(11.0));
|
|
||||||
|
|
||||||
@interface NSTableView ()
|
|
||||||
@property NSTableViewStyle style API_AVAILABLE(macos(11.0));
|
|
||||||
@end
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Compatibility declarations to build `@available(macOS 13.0, *)` code with older Xcode 11.3.1 (the last 32-bit OS compatible Xcode)
|
|
||||||
#ifndef __MAC_13_0
|
#ifndef __MAC_13_0
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, NSColorWellStyle) {
|
typedef NS_ENUM(NSInteger, NSColorWellStyle) {
|
||||||
|
|||||||
@@ -632,11 +632,8 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
toolbar.displayMode = NSToolbarDisplayModeIconOnly;
|
toolbar.displayMode = NSToolbarDisplayModeIconOnly;
|
||||||
self.fWindow.toolbar = toolbar;
|
self.fWindow.toolbar = toolbar;
|
||||||
|
|
||||||
if (@available(macOS 11.0, *))
|
self.fWindow.toolbarStyle = NSWindowToolbarStyleUnified;
|
||||||
{
|
self.fWindow.titleVisibility = NSWindowTitleHidden;
|
||||||
self.fWindow.toolbarStyle = NSWindowToolbarStyleUnified;
|
|
||||||
self.fWindow.titleVisibility = NSWindowTitleHidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.fWindow.delegate = self; //do manually to avoid placement issue
|
self.fWindow.delegate = self; //do manually to avoid placement issue
|
||||||
|
|
||||||
@@ -4207,17 +4204,6 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
|
|
||||||
item.view = button;
|
item.view = button;
|
||||||
|
|
||||||
if (@available(macOS 11.0, *))
|
|
||||||
{
|
|
||||||
//standard button sizes
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NSSize const buttonSize = NSMakeSize(36.0, 25.0);
|
|
||||||
item.minSize = buttonSize;
|
|
||||||
item.maxSize = buttonSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4230,7 +4216,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
item.label = NSLocalizedString(@"Create", "Create toolbar item -> label");
|
item.label = NSLocalizedString(@"Create", "Create toolbar item -> label");
|
||||||
item.paletteLabel = NSLocalizedString(@"Create Torrent File", "Create toolbar item -> palette label");
|
item.paletteLabel = NSLocalizedString(@"Create Torrent File", "Create toolbar item -> palette label");
|
||||||
item.toolTip = NSLocalizedString(@"Create torrent file", "Create toolbar item -> tooltip");
|
item.toolTip = NSLocalizedString(@"Create torrent file", "Create toolbar item -> tooltip");
|
||||||
item.image = [NSImage systemSymbol:@"doc.badge.plus" withFallback:@"ToolbarCreateTemplate"];
|
item.image = [NSImage imageWithSystemSymbolName:@"doc.badge.plus" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(createFile:);
|
item.action = @selector(createFile:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -4244,7 +4230,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
item.label = NSLocalizedString(@"Open", "Open toolbar item -> label");
|
item.label = NSLocalizedString(@"Open", "Open toolbar item -> label");
|
||||||
item.paletteLabel = NSLocalizedString(@"Open Torrent Files", "Open toolbar item -> palette label");
|
item.paletteLabel = NSLocalizedString(@"Open Torrent Files", "Open toolbar item -> palette label");
|
||||||
item.toolTip = NSLocalizedString(@"Open torrent files", "Open toolbar item -> tooltip");
|
item.toolTip = NSLocalizedString(@"Open torrent files", "Open toolbar item -> tooltip");
|
||||||
item.image = [NSImage systemSymbol:@"folder" withFallback:@"ToolbarOpenTemplate"];
|
item.image = [NSImage imageWithSystemSymbolName:@"folder" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(openShowSheet:);
|
item.action = @selector(openShowSheet:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -4258,7 +4244,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
item.label = NSLocalizedString(@"Open Address", "Open address toolbar item -> label");
|
item.label = NSLocalizedString(@"Open Address", "Open address toolbar item -> label");
|
||||||
item.paletteLabel = NSLocalizedString(@"Open Torrent Address", "Open address toolbar item -> palette label");
|
item.paletteLabel = NSLocalizedString(@"Open Torrent Address", "Open address toolbar item -> palette label");
|
||||||
item.toolTip = NSLocalizedString(@"Open torrent web address", "Open address toolbar item -> tooltip");
|
item.toolTip = NSLocalizedString(@"Open torrent web address", "Open address toolbar item -> tooltip");
|
||||||
item.image = [NSImage systemSymbol:@"globe" withFallback:@"ToolbarOpenWebTemplate"];
|
item.image = [NSImage imageWithSystemSymbolName:@"globe" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(openURLShowSheet:);
|
item.action = @selector(openURLShowSheet:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -4272,7 +4258,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
item.label = NSLocalizedString(@"Remove", "Remove toolbar item -> label");
|
item.label = NSLocalizedString(@"Remove", "Remove toolbar item -> label");
|
||||||
item.paletteLabel = NSLocalizedString(@"Remove Selected", "Remove toolbar item -> palette label");
|
item.paletteLabel = NSLocalizedString(@"Remove Selected", "Remove toolbar item -> palette label");
|
||||||
item.toolTip = NSLocalizedString(@"Remove selected transfers", "Remove toolbar item -> tooltip");
|
item.toolTip = NSLocalizedString(@"Remove selected transfers", "Remove toolbar item -> tooltip");
|
||||||
item.image = [NSImage systemSymbol:@"nosign" withFallback:@"ToolbarRemoveTemplate"];
|
item.image = [NSImage imageWithSystemSymbolName:@"nosign" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(removeNoDelete:);
|
item.action = @selector(removeNoDelete:);
|
||||||
item.visibilityPriority = NSToolbarItemVisibilityPriorityHigh;
|
item.visibilityPriority = NSToolbarItemVisibilityPriorityHigh;
|
||||||
@@ -4287,7 +4273,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
item.label = NSLocalizedString(@"Inspector", "Inspector toolbar item -> label");
|
item.label = NSLocalizedString(@"Inspector", "Inspector toolbar item -> label");
|
||||||
item.paletteLabel = NSLocalizedString(@"Toggle Inspector", "Inspector toolbar item -> palette label");
|
item.paletteLabel = NSLocalizedString(@"Toggle Inspector", "Inspector toolbar item -> palette label");
|
||||||
item.toolTip = NSLocalizedString(@"Toggle the torrent inspector", "Inspector toolbar item -> tooltip");
|
item.toolTip = NSLocalizedString(@"Toggle the torrent inspector", "Inspector toolbar item -> tooltip");
|
||||||
item.image = [NSImage systemSymbol:@"info.circle" withFallback:@"ToolbarInfoTemplate"];
|
item.image = [NSImage imageWithSystemSymbolName:@"info.circle" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(showInfo:);
|
item.action = @selector(showInfo:);
|
||||||
|
|
||||||
@@ -4306,13 +4292,13 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
segmentedControl.segmentCount = 2;
|
segmentedControl.segmentCount = 2;
|
||||||
|
|
||||||
[segmentedControl setTag:ToolbarGroupTagPause forSegment:ToolbarGroupTagPause];
|
[segmentedControl setTag:ToolbarGroupTagPause forSegment:ToolbarGroupTagPause];
|
||||||
[segmentedControl setImage:[NSImage systemSymbol:@"pause.circle.fill" withFallback:@"ToolbarPauseAllTemplate"]
|
[segmentedControl setImage:[NSImage imageWithSystemSymbolName:@"pause.circle.fill" accessibilityDescription:nil]
|
||||||
forSegment:ToolbarGroupTagPause];
|
forSegment:ToolbarGroupTagPause];
|
||||||
[segmentedControl setToolTip:NSLocalizedString(@"Pause all transfers", "All toolbar item -> tooltip")
|
[segmentedControl setToolTip:NSLocalizedString(@"Pause all transfers", "All toolbar item -> tooltip")
|
||||||
forSegment:ToolbarGroupTagPause];
|
forSegment:ToolbarGroupTagPause];
|
||||||
|
|
||||||
[segmentedControl setTag:ToolbarGroupTagResume forSegment:ToolbarGroupTagResume];
|
[segmentedControl setTag:ToolbarGroupTagResume forSegment:ToolbarGroupTagResume];
|
||||||
[segmentedControl setImage:[NSImage systemSymbol:@"arrow.clockwise.circle.fill" withFallback:@"ToolbarResumeAllTemplate"]
|
[segmentedControl setImage:[NSImage imageWithSystemSymbolName:@"arrow.clockwise.circle.fill" accessibilityDescription:nil]
|
||||||
forSegment:ToolbarGroupTagResume];
|
forSegment:ToolbarGroupTagResume];
|
||||||
[segmentedControl setToolTip:NSLocalizedString(@"Resume all transfers", "All toolbar item -> tooltip")
|
[segmentedControl setToolTip:NSLocalizedString(@"Resume all transfers", "All toolbar item -> tooltip")
|
||||||
forSegment:ToolbarGroupTagResume];
|
forSegment:ToolbarGroupTagResume];
|
||||||
@@ -4331,17 +4317,6 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
groupItem.target = self;
|
groupItem.target = self;
|
||||||
groupItem.action = @selector(allToolbarClicked:);
|
groupItem.action = @selector(allToolbarClicked:);
|
||||||
|
|
||||||
if (@available(macOS 11.0, *))
|
|
||||||
{
|
|
||||||
//standard segment size
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NSSize const groupSize = NSMakeSize(72.0, 25.0);
|
|
||||||
groupItem.minSize = groupSize;
|
|
||||||
groupItem.maxSize = groupSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
[groupItem createMenu:@[
|
[groupItem createMenu:@[
|
||||||
NSLocalizedString(@"Pause All", "All toolbar item -> label"),
|
NSLocalizedString(@"Pause All", "All toolbar item -> label"),
|
||||||
NSLocalizedString(@"Resume All", "All toolbar item -> label")
|
NSLocalizedString(@"Resume All", "All toolbar item -> label")
|
||||||
@@ -4362,13 +4337,13 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
segmentedControl.segmentCount = 2;
|
segmentedControl.segmentCount = 2;
|
||||||
|
|
||||||
[segmentedControl setTag:ToolbarGroupTagPause forSegment:ToolbarGroupTagPause];
|
[segmentedControl setTag:ToolbarGroupTagPause forSegment:ToolbarGroupTagPause];
|
||||||
[segmentedControl setImage:[NSImage systemSymbol:@"pause" withFallback:@"ToolbarPauseSelectedTemplate"]
|
[segmentedControl setImage:[NSImage imageWithSystemSymbolName:@"pause" accessibilityDescription:nil]
|
||||||
forSegment:ToolbarGroupTagPause];
|
forSegment:ToolbarGroupTagPause];
|
||||||
[segmentedControl setToolTip:NSLocalizedString(@"Pause selected transfers", "Selected toolbar item -> tooltip")
|
[segmentedControl setToolTip:NSLocalizedString(@"Pause selected transfers", "Selected toolbar item -> tooltip")
|
||||||
forSegment:ToolbarGroupTagPause];
|
forSegment:ToolbarGroupTagPause];
|
||||||
|
|
||||||
[segmentedControl setTag:ToolbarGroupTagResume forSegment:ToolbarGroupTagResume];
|
[segmentedControl setTag:ToolbarGroupTagResume forSegment:ToolbarGroupTagResume];
|
||||||
[segmentedControl setImage:[NSImage systemSymbol:@"arrow.clockwise" withFallback:@"ToolbarResumeSelectedTemplate"]
|
[segmentedControl setImage:[NSImage imageWithSystemSymbolName:@"arrow.clockwise" accessibilityDescription:nil]
|
||||||
forSegment:ToolbarGroupTagResume];
|
forSegment:ToolbarGroupTagResume];
|
||||||
[segmentedControl setToolTip:NSLocalizedString(@"Resume selected transfers", "Selected toolbar item -> tooltip")
|
[segmentedControl setToolTip:NSLocalizedString(@"Resume selected transfers", "Selected toolbar item -> tooltip")
|
||||||
forSegment:ToolbarGroupTagResume];
|
forSegment:ToolbarGroupTagResume];
|
||||||
@@ -4387,17 +4362,6 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
groupItem.target = self;
|
groupItem.target = self;
|
||||||
groupItem.action = @selector(selectedToolbarClicked:);
|
groupItem.action = @selector(selectedToolbarClicked:);
|
||||||
|
|
||||||
if (@available(macOS 11.0, *))
|
|
||||||
{
|
|
||||||
//standard segment size
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NSSize const groupSize = NSMakeSize(72.0, 25.0);
|
|
||||||
groupItem.minSize = groupSize;
|
|
||||||
groupItem.maxSize = groupSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
[groupItem createMenu:@[
|
[groupItem createMenu:@[
|
||||||
NSLocalizedString(@"Pause Selected", "Selected toolbar item -> label"),
|
NSLocalizedString(@"Pause Selected", "Selected toolbar item -> label"),
|
||||||
NSLocalizedString(@"Resume Selected", "Selected toolbar item -> label")
|
NSLocalizedString(@"Resume Selected", "Selected toolbar item -> label")
|
||||||
@@ -4413,7 +4377,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
item.label = NSLocalizedString(@"Filter", "Filter toolbar item -> label");
|
item.label = NSLocalizedString(@"Filter", "Filter toolbar item -> label");
|
||||||
item.paletteLabel = NSLocalizedString(@"Toggle Filter", "Filter toolbar item -> palette label");
|
item.paletteLabel = NSLocalizedString(@"Toggle Filter", "Filter toolbar item -> palette label");
|
||||||
item.toolTip = NSLocalizedString(@"Toggle the filter bar", "Filter toolbar item -> tooltip");
|
item.toolTip = NSLocalizedString(@"Toggle the filter bar", "Filter toolbar item -> tooltip");
|
||||||
item.image = [NSImage systemSymbol:@"magnifyingglass" withFallback:@"ToolbarFilterTemplate"];
|
item.image = [NSImage imageWithSystemSymbolName:@"magnifyingglass" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(toggleFilterBar:);
|
item.action = @selector(toggleFilterBar:);
|
||||||
|
|
||||||
@@ -5263,16 +5227,9 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
//Hacky way of fixing an issue with showing the Toolbar
|
//Hacky way of fixing an issue with showing the Toolbar
|
||||||
if (!self.isFullScreen)
|
if (!self.isFullScreen)
|
||||||
{
|
{
|
||||||
//macOS Big Sur shows the unified toolbar by default
|
//macOS shows the unified toolbar by default
|
||||||
//and we only need to "fix" the layout when showing the toolbar
|
//and we only need to "fix" the layout when showing the toolbar
|
||||||
if (@available(macOS 11.0, *))
|
if (!self.fWindow.toolbar.isVisible)
|
||||||
{
|
|
||||||
if (!self.fWindow.toolbar.isVisible)
|
|
||||||
{
|
|
||||||
[self removeStackViewHeightConstraints];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
[self removeStackViewHeightConstraints];
|
[self removeStackViewHeightConstraints];
|
||||||
}
|
}
|
||||||
@@ -5289,12 +5246,9 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
|
|
||||||
- (void)hideToolBarBezels:(BOOL)hide
|
- (void)hideToolBarBezels:(BOOL)hide
|
||||||
{
|
{
|
||||||
if (@available(macOS 11.0, *))
|
for (NSToolbarItem* item in self.fWindow.toolbar.items)
|
||||||
{
|
{
|
||||||
for (NSToolbarItem* item in self.fWindow.toolbar.items)
|
item.view.hidden = hide;
|
||||||
{
|
|
||||||
item.view.hidden = hide;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -120,34 +120,18 @@ UTType* GetTorrentFileType(void) API_AVAILABLE(macos(11.0))
|
|||||||
|
|
||||||
- (BOOL)isDefaultForMagnetURLs
|
- (BOOL)isDefaultForMagnetURLs
|
||||||
{
|
{
|
||||||
if (@available(macOS 12, *))
|
NSURL* schemeUrl = [NSURL URLWithString:[kMagnetURLScheme stringByAppendingString:@":"]];
|
||||||
|
NSURL* appUrl = [NSWorkspace.sharedWorkspace URLForApplicationToOpenURL:schemeUrl];
|
||||||
|
if (!appUrl)
|
||||||
{
|
{
|
||||||
NSURL* schemeUrl = [NSURL URLWithString:[kMagnetURLScheme stringByAppendingString:@":"]];
|
return NO;
|
||||||
NSURL* appUrl = [NSWorkspace.sharedWorkspace URLForApplicationToOpenURL:schemeUrl];
|
|
||||||
if (!appUrl)
|
|
||||||
{
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
NSString* bundleId = [NSBundle bundleWithURL:appUrl].bundleIdentifier;
|
|
||||||
|
|
||||||
if ([self.bundleIdentifier isEqualToString:bundleId])
|
|
||||||
{
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
NSString* bundleId = (__bridge_transfer NSString*)LSCopyDefaultHandlerForURLScheme((__bridge CFStringRef)kMagnetURLScheme);
|
|
||||||
if (!bundleId)
|
|
||||||
{
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ([self.bundleIdentifier isEqualToString:bundleId])
|
NSString* bundleId = [NSBundle bundleWithURL:appUrl].bundleIdentifier;
|
||||||
{
|
|
||||||
return YES;
|
if ([self.bundleIdentifier isEqualToString:bundleId])
|
||||||
}
|
{
|
||||||
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NO;
|
return NO;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Bandwidth.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Bandwidth@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "FavIcon.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "FavIcon@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"filename" : "GearshapeTemplate.png",
|
|
||||||
"idiom" : "mac",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "GearshapeTemplate@2x.png",
|
|
||||||
"idiom" : "mac",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 349 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Groups.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Groups@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoActivity.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoActivity@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 537 B |
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoFiles.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoFiles@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 346 B |
|
Before Width: | Height: | Size: 549 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoGeneral.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoGeneral@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 879 B |
|
Before Width: | Height: | Size: 2.4 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoOptions.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoOptions@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 853 B |
|
Before Width: | Height: | Size: 2.4 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoPeers.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoPeers@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 334 B |
|
Before Width: | Height: | Size: 755 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoTracker.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "InfoTracker@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 429 B |
|
Before Width: | Height: | Size: 970 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Lock.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Lock@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
BIN
macosx/Images/Images.xcassets/Lock.imageset/Lock.png
vendored
|
Before Width: | Height: | Size: 514 B |
|
Before Width: | Height: | Size: 811 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Remote.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Remote@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarCreateTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarCreateTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 138 B |
|
Before Width: | Height: | Size: 184 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarFilterTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarFilterTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 191 B |
|
Before Width: | Height: | Size: 318 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarInfoTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarInfoTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 169 B |
|
Before Width: | Height: | Size: 257 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarOpenTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarOpenTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 163 B |
|
Before Width: | Height: | Size: 250 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarOpenWebTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarOpenWebTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 278 B |
|
Before Width: | Height: | Size: 543 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarPauseAllTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarPauseAllTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 191 B |
|
Before Width: | Height: | Size: 302 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarPauseSelectedTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarPauseSelectedTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 76 B |
|
Before Width: | Height: | Size: 87 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarRemoveTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarRemoveTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 454 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarResumeAllTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarResumeAllTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 276 B |
|
Before Width: | Height: | Size: 534 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarResumeSelectedTemplate.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "ToolbarResumeSelectedTemplate@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 391 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Transfers.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "mac",
|
|
||||||
"filename" : "Transfers@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"properties" : {
|
|
||||||
"template-rendering-intent" : "original"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 427 B |
|
Before Width: | Height: | Size: 761 B |
@@ -353,7 +353,7 @@ static NSString* const kWebSeedAnimationId = @"webSeed";
|
|||||||
|
|
||||||
if ([ident isEqualToString:@"Encryption"])
|
if ([ident isEqualToString:@"Encryption"])
|
||||||
{
|
{
|
||||||
return [peer[@"Encryption"] boolValue] ? [NSImage systemSymbol:@"lock.fill" withFallback:@"Lock"] : nil;
|
return [peer[@"Encryption"] boolValue] ? [NSImage imageWithSystemSymbolName:@"lock.fill" accessibilityDescription:nil] : nil;
|
||||||
}
|
}
|
||||||
else if ([ident isEqualToString:@"Client"])
|
else if ([ident isEqualToString:@"Client"])
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -102,21 +102,27 @@ typedef NS_ENUM(NSUInteger, TabTag) {
|
|||||||
[self.fTabs.cell setToolTip:toolTip forSegment:segment];
|
[self.fTabs.cell setToolTip:toolTip forSegment:segment];
|
||||||
};
|
};
|
||||||
setImageAndToolTipForSegment(
|
setImageAndToolTipForSegment(
|
||||||
[NSImage systemSymbol:@"info.circle" withFallback:@"InfoGeneral"],
|
[NSImage imageWithSystemSymbolName:@"info.circle" accessibilityDescription:nil],
|
||||||
NSLocalizedString(@"General Info", "Inspector -> tab"),
|
NSLocalizedString(@"General Info", "Inspector -> tab"),
|
||||||
TabTagGeneral);
|
TabTagGeneral);
|
||||||
setImageAndToolTipForSegment(
|
setImageAndToolTipForSegment(
|
||||||
[NSImage systemSymbol:@"square.grid.3x3.fill.square" withFallback:@"InfoActivity"],
|
[NSImage imageWithSystemSymbolName:@"square.grid.3x3.fill.square" accessibilityDescription:nil],
|
||||||
NSLocalizedString(@"Activity", "Inspector -> tab"),
|
NSLocalizedString(@"Activity", "Inspector -> tab"),
|
||||||
TabTagActivity);
|
TabTagActivity);
|
||||||
setImageAndToolTipForSegment(
|
setImageAndToolTipForSegment(
|
||||||
[NSImage systemSymbol:@"antenna.radiowaves.left.and.right" withFallback:@"InfoTracker"],
|
[NSImage imageWithSystemSymbolName:@"antenna.radiowaves.left.and.right" accessibilityDescription:nil],
|
||||||
NSLocalizedString(@"Trackers", "Inspector -> tab"),
|
NSLocalizedString(@"Trackers", "Inspector -> tab"),
|
||||||
TabTagTrackers);
|
TabTagTrackers);
|
||||||
setImageAndToolTipForSegment([NSImage systemSymbol:@"person.2" withFallback:@"InfoPeers"], NSLocalizedString(@"Peers", "Inspector -> tab"), TabTagPeers);
|
|
||||||
setImageAndToolTipForSegment([NSImage systemSymbol:@"doc.on.doc" withFallback:@"InfoFiles"], NSLocalizedString(@"Files", "Inspector -> tab"), TabTagFile);
|
|
||||||
setImageAndToolTipForSegment(
|
setImageAndToolTipForSegment(
|
||||||
[NSImage systemSymbol:@"gearshape" withFallback:@"InfoOptions"],
|
[NSImage imageWithSystemSymbolName:@"person.2" accessibilityDescription:nil],
|
||||||
|
NSLocalizedString(@"Peers", "Inspector -> tab"),
|
||||||
|
TabTagPeers);
|
||||||
|
setImageAndToolTipForSegment(
|
||||||
|
[NSImage imageWithSystemSymbolName:@"doc.on.doc" accessibilityDescription:nil],
|
||||||
|
NSLocalizedString(@"Files", "Inspector -> tab"),
|
||||||
|
TabTagFile);
|
||||||
|
setImageAndToolTipForSegment(
|
||||||
|
[NSImage imageWithSystemSymbolName:@"gearshape" accessibilityDescription:nil],
|
||||||
NSLocalizedString(@"Options", "Inspector -> tab"),
|
NSLocalizedString(@"Options", "Inspector -> tab"),
|
||||||
TabTagOptions);
|
TabTagOptions);
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,4 @@
|
|||||||
+ (NSImage*)discIconWithColor:(NSColor*)color insetFactor:(CGFloat)insetFactor;
|
+ (NSImage*)discIconWithColor:(NSColor*)color insetFactor:(CGFloat)insetFactor;
|
||||||
- (NSImage*)imageWithColor:(NSColor*)color;
|
- (NSImage*)imageWithColor:(NSColor*)color;
|
||||||
|
|
||||||
/* macOS < 11 compatibility */
|
|
||||||
+ (NSImage*)systemSymbol:(NSString*)symbolName withFallback:(NSString*)fallbackName;
|
|
||||||
+ (NSImage*)largeSystemSymbol:(NSString*)symbolName withFallback:(NSString*)fallbackName;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -50,27 +50,4 @@ static CGFloat const kBorderWidth = 1.25;
|
|||||||
return coloredImage;
|
return coloredImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (NSImage*)systemSymbol:(NSString*)symbolName withFallback:(NSString*)fallbackName
|
|
||||||
{
|
|
||||||
if (@available(macOS 11.0, *))
|
|
||||||
{
|
|
||||||
return [NSImage imageWithSystemSymbolName:symbolName accessibilityDescription:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
return [NSImage imageNamed:fallbackName];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (NSImage*)largeSystemSymbol:(NSString*)symbolName withFallback:(NSString*)fallbackName
|
|
||||||
{
|
|
||||||
#ifdef __MAC_11_0
|
|
||||||
if (@available(macOS 11.0, *))
|
|
||||||
{
|
|
||||||
return [[NSImage imageWithSystemSymbolName:symbolName accessibilityDescription:nil]
|
|
||||||
imageWithSymbolConfiguration:[NSImageSymbolConfiguration configurationWithScale:NSImageSymbolScaleLarge]];
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return [NSImage imageNamed:fallbackName];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ static NSString* const kWebUIURLFormat = @"http://localhost:%ld/";
|
|||||||
if ([ident isEqualToString:ToolbarTabGeneral])
|
if ([ident isEqualToString:ToolbarTabGeneral])
|
||||||
{
|
{
|
||||||
item.label = NSLocalizedString(@"General", "Preferences -> toolbar item title");
|
item.label = NSLocalizedString(@"General", "Preferences -> toolbar item title");
|
||||||
item.image = [NSImage systemSymbol:@"gearshape" withFallback:NSImageNamePreferencesGeneral];
|
item.image = [NSImage imageWithSystemSymbolName:@"gearshape" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(setPrefView:);
|
item.action = @selector(setPrefView:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -310,7 +310,7 @@ static NSString* const kWebUIURLFormat = @"http://localhost:%ld/";
|
|||||||
else if ([ident isEqualToString:ToolbarTabTransfers])
|
else if ([ident isEqualToString:ToolbarTabTransfers])
|
||||||
{
|
{
|
||||||
item.label = NSLocalizedString(@"Transfers", "Preferences -> toolbar item title");
|
item.label = NSLocalizedString(@"Transfers", "Preferences -> toolbar item title");
|
||||||
item.image = [NSImage systemSymbol:@"arrow.up.arrow.down" withFallback:@"Transfers"];
|
item.image = [NSImage imageWithSystemSymbolName:@"arrow.up.arrow.down" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(setPrefView:);
|
item.action = @selector(setPrefView:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -318,7 +318,7 @@ static NSString* const kWebUIURLFormat = @"http://localhost:%ld/";
|
|||||||
else if ([ident isEqualToString:ToolbarTabGroups])
|
else if ([ident isEqualToString:ToolbarTabGroups])
|
||||||
{
|
{
|
||||||
item.label = NSLocalizedString(@"Groups", "Preferences -> toolbar item title");
|
item.label = NSLocalizedString(@"Groups", "Preferences -> toolbar item title");
|
||||||
item.image = [NSImage systemSymbol:@"pin" withFallback:@"Groups"];
|
item.image = [NSImage imageWithSystemSymbolName:@"pin" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(setPrefView:);
|
item.action = @selector(setPrefView:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -326,7 +326,7 @@ static NSString* const kWebUIURLFormat = @"http://localhost:%ld/";
|
|||||||
else if ([ident isEqualToString:ToolbarTabBandwidth])
|
else if ([ident isEqualToString:ToolbarTabBandwidth])
|
||||||
{
|
{
|
||||||
item.label = NSLocalizedString(@"Bandwidth", "Preferences -> toolbar item title");
|
item.label = NSLocalizedString(@"Bandwidth", "Preferences -> toolbar item title");
|
||||||
item.image = [NSImage systemSymbol:@"speedometer" withFallback:@"Bandwidth"];
|
item.image = [NSImage imageWithSystemSymbolName:@"speedometer" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(setPrefView:);
|
item.action = @selector(setPrefView:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -334,7 +334,7 @@ static NSString* const kWebUIURLFormat = @"http://localhost:%ld/";
|
|||||||
else if ([ident isEqualToString:ToolbarTabPeers])
|
else if ([ident isEqualToString:ToolbarTabPeers])
|
||||||
{
|
{
|
||||||
item.label = NSLocalizedString(@"Peers", "Preferences -> toolbar item title");
|
item.label = NSLocalizedString(@"Peers", "Preferences -> toolbar item title");
|
||||||
item.image = [NSImage systemSymbol:@"person.2" withFallback:NSImageNameUserGroup];
|
item.image = [NSImage imageWithSystemSymbolName:@"person.2" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(setPrefView:);
|
item.action = @selector(setPrefView:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -342,7 +342,7 @@ static NSString* const kWebUIURLFormat = @"http://localhost:%ld/";
|
|||||||
else if ([ident isEqualToString:ToolbarTabNetwork])
|
else if ([ident isEqualToString:ToolbarTabNetwork])
|
||||||
{
|
{
|
||||||
item.label = NSLocalizedString(@"Network", "Preferences -> toolbar item title");
|
item.label = NSLocalizedString(@"Network", "Preferences -> toolbar item title");
|
||||||
item.image = [NSImage systemSymbol:@"network" withFallback:NSImageNameNetwork];
|
item.image = [NSImage imageWithSystemSymbolName:@"network" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(setPrefView:);
|
item.action = @selector(setPrefView:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
@@ -350,7 +350,7 @@ static NSString* const kWebUIURLFormat = @"http://localhost:%ld/";
|
|||||||
else if ([ident isEqualToString:ToolbarTabRemote])
|
else if ([ident isEqualToString:ToolbarTabRemote])
|
||||||
{
|
{
|
||||||
item.label = NSLocalizedString(@"Remote", "Preferences -> toolbar item title");
|
item.label = NSLocalizedString(@"Remote", "Preferences -> toolbar item title");
|
||||||
item.image = [NSImage systemSymbol:@"antenna.radiowaves.left.and.right" withFallback:@"Remote"];
|
item.image = [NSImage imageWithSystemSymbolName:@"antenna.radiowaves.left.and.right" accessibilityDescription:nil];
|
||||||
item.target = self;
|
item.target = self;
|
||||||
item.action = @selector(setPrefView:);
|
item.action = @selector(setPrefView:);
|
||||||
item.autovalidates = NO;
|
item.autovalidates = NO;
|
||||||
|
|||||||
@@ -12,10 +12,7 @@
|
|||||||
{
|
{
|
||||||
[super awakeFromNib];
|
[super awakeFromNib];
|
||||||
|
|
||||||
if (@available(macOS 11.0, *))
|
self.toolbarStyle = NSWindowToolbarStylePreference;
|
||||||
{
|
|
||||||
self.toolbarStyle = NSWindowToolbarStylePreference;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)keyDown:(NSEvent*)event
|
- (void)keyDown:(NSEvent*)event
|
||||||
|
|||||||
@@ -82,10 +82,7 @@ static NSTimeInterval const kToggleProgressSeconds = 0.175;
|
|||||||
|
|
||||||
_piecesBarPercent = [_fDefaults boolForKey:@"PiecesBar"] ? 1.0 : 0.0;
|
_piecesBarPercent = [_fDefaults boolForKey:@"PiecesBar"] ? 1.0 : 0.0;
|
||||||
|
|
||||||
if (@available(macOS 11.0, *))
|
self.style = NSTableViewStyleFullWidth;
|
||||||
{
|
|
||||||
self.style = NSTableViewStyleFullWidth;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
|
|||||||
@@ -183,18 +183,13 @@ static NSMutableSet* fTrackerIconLoading;
|
|||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (@available(macOS 11.0, *))
|
NSImage* result = [NSImage imageWithSystemSymbolName:@"globe" accessibilityDescription:nil];
|
||||||
{
|
[result lockFocus];
|
||||||
NSImage* result = [NSImage imageWithSystemSymbolName:@"globe" accessibilityDescription:nil];
|
[NSColor.textColor set];
|
||||||
[result lockFocus];
|
NSRect imageRect = { NSZeroPoint, result.size };
|
||||||
[NSColor.textColor set];
|
NSRectFillUsingOperation(imageRect, NSCompositingOperationSourceIn);
|
||||||
NSRect imageRect = { NSZeroPoint, result.size };
|
[result unlockFocus];
|
||||||
NSRectFillUsingOperation(imageRect, NSCompositingOperationSourceIn);
|
return result;
|
||||||
[result unlockFocus];
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
return [NSImage imageNamed:@"FavIcon"];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)loadTrackerIcon:(NSString*)baseAddress
|
- (void)loadTrackerIcon:(NSString*)baseAddress
|
||||||
|
|||||||