diff --git a/Localization/Localizations/Localizable.xcstrings b/Localization/Localizations/Localizable.xcstrings index b20306b..d6d20c4 100644 --- a/Localization/Localizations/Localizable.xcstrings +++ b/Localization/Localizations/Localizable.xcstrings @@ -1328,6 +1328,9 @@ } } } + }, + "Are you sure you want to resume current tasks?" : { + }, "Availability" : { "localizations" : { @@ -1932,6 +1935,9 @@ } } } + }, + "Confirm Resume Current" : { + }, "Connected Leeches" : { "localizations" : { @@ -6145,6 +6151,9 @@ } } } + }, + "Resume Current Tasks" : { + }, "Resume Task" : { "localizations" : { diff --git a/qBitControl.xcodeproj/project.pbxproj b/qBitControl.xcodeproj/project.pbxproj index 44af08a..f0866e3 100644 --- a/qBitControl.xcodeproj/project.pbxproj +++ b/qBitControl.xcodeproj/project.pbxproj @@ -875,6 +875,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = qBitControl/qBitControl.entitlements; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 18; DEVELOPMENT_ASSET_PATHS = ""; diff --git a/qBitControl.xcworkspace/contents.xcworkspacedata b/qBitControl.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 0b6c81c..0000000 --- a/qBitControl.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/qBitControl.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/qBitControl.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/qBitControl.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/qBitControl/Models/AlertIdentifier.swift b/qBitControl/Models/AlertIdentifier.swift index b2acc6f..0f391f3 100644 --- a/qBitControl/Models/AlertIdentifier.swift +++ b/qBitControl/Models/AlertIdentifier.swift @@ -5,8 +5,8 @@ import Foundation struct AlertIdentifier: Identifiable { enum Choice { - case resumeAll, pauseAll + case resumeCurrent, resumeAll, pauseAll } var id: Choice -} \ No newline at end of file +} diff --git a/qBitControl/Toolbars/TorrentListToolbar/TorrentListDefaultToolbar.swift b/qBitControl/Toolbars/TorrentListToolbar/TorrentListDefaultToolbar.swift index 24e23c1..7a98c39 100644 --- a/qBitControl/Toolbars/TorrentListToolbar/TorrentListDefaultToolbar.swift +++ b/qBitControl/Toolbars/TorrentListToolbar/TorrentListDefaultToolbar.swift @@ -38,6 +38,14 @@ struct TorrentListDefaultToolbar: ToolbarContent { } Section { + Button { + viewModel.alertIdentifier = AlertIdentifier(id: .resumeCurrent) + } label: { + Image(systemName: "play") + .rotationEffect(.degrees(180)) + Text("Resume Current Tasks") + } + Button { viewModel.alertIdentifier = AlertIdentifier(id: .resumeAll) } label: { @@ -77,6 +85,10 @@ struct TorrentListDefaultToolbar: ToolbarContent { Image(systemName: "ellipsis.circle") }.alert(item: $viewModel.alertIdentifier) { alert in switch(alert.id) { + case .resumeCurrent: + return Alert(title: Text("Confirm Resume Current"), message: Text("Are you sure you want to resume current tasks?"), primaryButton: .default(Text("Resume")) { + qBittorrent.resumeTorrents(hashes: viewModel.filteredTorrents.map { $0.hash }) + }, secondaryButton: .cancel()) case .resumeAll: return Alert(title: Text("Confirm Resume All"), message: Text("Are you sure you want to resume all tasks?"), primaryButton: .default(Text("Resume")) { qBittorrent.resumeAllTorrents()