From eae27180fa7336347615d8f501ee1a3cac54e6e7 Mon Sep 17 00:00:00 2001 From: Patrick Robertson Date: Wed, 9 Apr 2025 13:16:07 +0200 Subject: [PATCH 1/3] Fix a deadlock --- Quicksilver/Code-QuickStepCore/QSGlobalSelectionProvider.m | 4 ++-- Quicksilver/PlugIns-Main/MiniInterface-qsplugin | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) create mode 160000 Quicksilver/PlugIns-Main/MiniInterface-qsplugin diff --git a/Quicksilver/Code-QuickStepCore/QSGlobalSelectionProvider.m b/Quicksilver/Code-QuickStepCore/QSGlobalSelectionProvider.m index e41e2ced5..1d84ccf01 100644 --- a/Quicksilver/Code-QuickStepCore/QSGlobalSelectionProvider.m +++ b/Quicksilver/Code-QuickStepCore/QSGlobalSelectionProvider.m @@ -48,7 +48,7 @@ - (void)performService:(NSPasteboard *)pboard - (NSPasteboard *)getSelectionFromFrontApp { id __block result = nil; - QSGCDMainSync(^{ + //NSLog(@"GET SEL"); id oldServicesProvider = [NSApp servicesProvider]; [NSApp setServicesProvider:self]; @@ -63,7 +63,7 @@ - (NSPasteboard *)getSelectionFromFrontApp { [NSApp setServicesProvider:oldServicesProvider]; result = self->resultPboard; self->resultPboard = nil; - }); + return result; } diff --git a/Quicksilver/PlugIns-Main/MiniInterface-qsplugin b/Quicksilver/PlugIns-Main/MiniInterface-qsplugin new file mode 160000 index 000000000..b4ebcc7d2 --- /dev/null +++ b/Quicksilver/PlugIns-Main/MiniInterface-qsplugin @@ -0,0 +1 @@ +Subproject commit b4ebcc7d2874a06df3934c86b1a7a4a700be40ea From 387506d1fb86862953f245a6d3da8c72940434fe Mon Sep 17 00:00:00 2001 From: Patrick Robertson Date: Wed, 9 Apr 2025 13:19:04 +0200 Subject: [PATCH 2/3] Add Mini Interface into QS Project --- .../PlugIns-Main/Mini Interface/Info.plist | 51 ++++ .../MiniInterface.nib/designable.nib | 76 ++++++ .../MiniInterface.nib/keyedobjects-101300.nib | Bin 0 -> 9175 bytes .../MiniInterface.nib/keyedobjects.nib | Bin 0 -> 11165 bytes .../QSMiniInterfaceController.h | 9 + .../QSMiniInterfaceController.m | 132 ++++++++++ .../en.lproj/Localizable.strings | 1 + .../PlugIns-Main/MiniInterface-qsplugin | 1 - .../Quicksilver.xcodeproj/project.pbxproj | 246 ++++++++++++++++++ .../xcschemes/Mini Interface.xcscheme | 67 +++++ 10 files changed, 582 insertions(+), 1 deletion(-) create mode 100644 Quicksilver/PlugIns-Main/Mini Interface/Info.plist create mode 100644 Quicksilver/PlugIns-Main/Mini Interface/MiniInterface.nib/designable.nib create mode 100644 Quicksilver/PlugIns-Main/Mini Interface/MiniInterface.nib/keyedobjects-101300.nib create mode 100644 Quicksilver/PlugIns-Main/Mini Interface/MiniInterface.nib/keyedobjects.nib create mode 100644 Quicksilver/PlugIns-Main/Mini Interface/QSMiniInterfaceController.h create mode 100644 Quicksilver/PlugIns-Main/Mini Interface/QSMiniInterfaceController.m create mode 100644 Quicksilver/PlugIns-Main/Mini Interface/en.lproj/Localizable.strings delete mode 160000 Quicksilver/PlugIns-Main/MiniInterface-qsplugin create mode 100644 Quicksilver/Quicksilver.xcodeproj/xcshareddata/xcschemes/Mini Interface.xcscheme diff --git a/Quicksilver/PlugIns-Main/Mini Interface/Info.plist b/Quicksilver/PlugIns-Main/Mini Interface/Info.plist new file mode 100644 index 000000000..947e95b50 --- /dev/null +++ b/Quicksilver/PlugIns-Main/Mini Interface/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + Mini Interface + CFBundleExecutable + Mini Interface + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Mini Interface + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.1.0 + CFBundleVersion + 100 + NSHumanReadableCopyright + Copyright © 2004, Blacktree, Inc. + QSModulePreview + BezelInterfacePreview + QSPlugIn + + author + Blacktree, Inc. + categories + + Interfaces + + description + Provides a miniature interface + icon + Interface + requiresFeature + 0 + + QSRegistration + + QSCommandInterfaceControllers + + QSMiniInterfaceController + QSMiniInterfaceController + + + + diff --git a/Quicksilver/PlugIns-Main/Mini Interface/MiniInterface.nib/designable.nib b/Quicksilver/PlugIns-Main/Mini Interface/MiniInterface.nib/designable.nib new file mode 100644 index 000000000..b11a4a949 --- /dev/null +++ b/Quicksilver/PlugIns-Main/Mini Interface/MiniInterface.nib/designable.nib @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Quicksilver/PlugIns-Main/Mini Interface/MiniInterface.nib/keyedobjects-101300.nib b/Quicksilver/PlugIns-Main/Mini Interface/MiniInterface.nib/keyedobjects-101300.nib new file mode 100644 index 0000000000000000000000000000000000000000..70651d64b35c3e7d32f3d8de77618dd9d6178f26 GIT binary patch literal 9175 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 + +@interface QSMiniInterfaceController : QSResizingInterfaceController{ + // NSRect standardRect; + } +@end \ No newline at end of file diff --git a/Quicksilver/PlugIns-Main/Mini Interface/QSMiniInterfaceController.m b/Quicksilver/PlugIns-Main/Mini Interface/QSMiniInterfaceController.m new file mode 100644 index 000000000..6ca92dc16 --- /dev/null +++ b/Quicksilver/PlugIns-Main/Mini Interface/QSMiniInterfaceController.m @@ -0,0 +1,132 @@ +#import "QSMiniInterfaceController.h" + +#import +#import + +//#import "QSMenuButton.h" + +#define DIFF 18 + +@implementation QSMiniInterfaceController + + +- (id)init { + self = [super initWithWindowNibName:@"MiniInterface"]; + if (self) { + + } + return self; +} + +- (void) windowDidLoad{ + [super windowDidLoad]; + QSWindow *window = (QSWindow *)[self window]; + [window setLevel:NSModalPanelWindowLevel]; + [window setFrameAutosaveName:@"MiniInterfaceWindow"]; + + [[self window] setCollectionBehavior:NSWindowCollectionBehaviorTransient]; + + [window setFrame:constrainRectToRect([[self window]frame],[[[self window]screen]visibleFrame]) display:NO]; + [window setHideOffset:NSMakePoint(150,0)]; + [window setShowOffset:NSMakePoint(-150,0)]; + + + [window setShowEffect:[NSDictionary dictionaryWithObjectsAndKeys:@"QSVExpandEffect",@"transformFn",@"show",@"type",[NSNumber numberWithDouble:0.15],@"duration",nil]]; + + [window setWindowProperty:[NSDictionary dictionaryWithObjectsAndKeys:@"QSExplodeEffect",@"transformFn",@"hide",@"type",[NSNumber numberWithDouble:0.2],@"duration",nil] + forKey:kQSWindowExecEffect]; + + [window setWindowProperty:[NSDictionary dictionaryWithObjectsAndKeys:@"hide",@"type",[NSNumber numberWithDouble:0.15],@"duration",nil] + forKey:kQSWindowFadeEffect]; + + [window setWindowProperty:[NSDictionary dictionaryWithObjectsAndKeys:@"QSVContractEffect",@"transformFn",@"hide",@"type",[NSNumber numberWithDouble:0.333],@"duration",nil,[NSNumber numberWithDouble:0.25],@"brightnessB",@"QSStandardBrightBlending",@"brightnessFn",nil] + forKey:kQSWindowCancelEffect]; + + + [[[self window] contentView] bind:@"color" toObject:[NSUserDefaultsController sharedUserDefaultsController] withKeyPath:@"values.QSAppearance1B" options:[NSDictionary dictionaryWithObject:NSUnarchiveFromDataTransformerName forKey:@"NSValueTransformerName"]]; + [[self window] bind:@"hasShadow" toObject:[NSUserDefaultsController sharedUserDefaultsController] withKeyPath:@"values.QSBezelHasShadow" options:nil]; + [commandView bind:@"textColor" toObject:[NSUserDefaultsController sharedUserDefaultsController] withKeyPath:@"values.QSAppearance1T" options:[NSDictionary dictionaryWithObject:NSUnarchiveFromDataTransformerName forKey:@"NSValueTransformerName"]]; + + + + + [(QSCollectingSearchObjectView *)dSelector setCollectionSpace:0.0f]; + [(QSCollectingSearchObjectView *)iSelector setCollectionSpace:0.0f]; + [(QSCollectingSearchObjectView *)dSelector setCollectionEdge:NSMinXEdge]; + [(QSCollectingSearchObjectView *)iSelector setCollectionEdge:NSMinXEdge]; + + + + [self contractWindow:self]; +} + +- (void)updateViewLocations{ + [super updateViewLocations]; + + // [[[self window]contentView]display]; +} + + +- (void)hideMainWindow:(id)sender{ + + [[self window] saveFrameUsingName:@"MiniInterfaceWindow"]; + + [super hideMainWindow:sender]; +} + +- (NSSize)maxIconSize{ + return NSMakeSize(32,32); +} +- (NSRect)window:(NSWindow *)window willPositionSheet:(NSWindow *)sheet usingRect:(NSRect)rect{ + // + return NSOffsetRect(NSInsetRect(rect,8,0),0,-21); + return NSMakeRect(0,[(NSView *)[window firstResponder]frame].origin.y,NSWidth(rect),0); +} + + +- (void)showIndirectSelector:(id)sender{ + if (![iSelector superview] && !expanded) + [iSelector setFrame:NSOffsetRect([aSelector frame],0,-NSHeight([aSelector frame]))]; + [super showIndirectSelector:sender]; +} + +- (void)expandWindow:(id)sender{ + if (![self expanded]) { + NSRect expandedRect=[[self window]frame]; + expandedRect.size.height+=DIFF; + expandedRect.origin.y-=DIFF; + [[self window]setFrame:expandedRect display:YES animate:YES]; + } + [super expandWindow:sender]; +} + +- (void)contractWindow:(id)sender{ + if ([self expanded]) { + NSRect contractedRect=[[self window]frame]; + + contractedRect.size.height-=DIFF; + contractedRect.origin.y+=DIFF; + + [[self window]setFrame:contractedRect display:YES animate:YES]; + } + [super contractWindow:sender]; +} + + +@end + + + + + + + + + + + + + + + + diff --git a/Quicksilver/PlugIns-Main/Mini Interface/en.lproj/Localizable.strings b/Quicksilver/PlugIns-Main/Mini Interface/en.lproj/Localizable.strings new file mode 100644 index 000000000..32164bd24 --- /dev/null +++ b/Quicksilver/PlugIns-Main/Mini Interface/en.lproj/Localizable.strings @@ -0,0 +1 @@ +"QSMiniInterfaceController" = "Mini Interface"; diff --git a/Quicksilver/PlugIns-Main/MiniInterface-qsplugin b/Quicksilver/PlugIns-Main/MiniInterface-qsplugin deleted file mode 160000 index b4ebcc7d2..000000000 --- a/Quicksilver/PlugIns-Main/MiniInterface-qsplugin +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b4ebcc7d2874a06df3934c86b1a7a4a700be40ea diff --git a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj index 7ccf0b244..e334b155b 100644 --- a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj +++ b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ ); dependencies = ( 7F039994080EE21A001A9FA3 /* PBXTargetDependency */, + CDEFE3D52DA68854008E25A3 /* PBXTargetDependency */, 4DAAEB7F0E0BBE1B0088C72D /* PBXTargetDependency */, 4D002DC013114A7C009040B7 /* PBXTargetDependency */, 4D002DBE13114A7C009040B7 /* PBXTargetDependency */, @@ -430,6 +431,10 @@ CDDB44E81518C78F00800B66 /* QSCrashReporterWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CDDB44E61518C78F00800B66 /* QSCrashReporterWindowController.m */; }; CDDB44EE1518ED3800800B66 /* CrashReporterText.html in Resources */ = {isa = PBXBuildFile; fileRef = CDDB44ED1518ED3800800B66 /* CrashReporterText.html */; }; CDE6C624157E39AE006E66BD /* QSFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE6C623157E39AE006E66BD /* QSFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CDEFE3CD2DA68829008E25A3 /* MiniInterface.nib in Resources */ = {isa = PBXBuildFile; fileRef = CDEFE3C92DA68829008E25A3 /* MiniInterface.nib */; }; + CDEFE3CF2DA68829008E25A3 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = CDEFE3C62DA68829008E25A3 /* Info.plist */; }; + CDEFE3D02DA68829008E25A3 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CDEFE3C82DA68829008E25A3 /* Localizable.strings */; }; + CDEFE3D12DA68829008E25A3 /* QSMiniInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = CDEFE3CB2DA68829008E25A3 /* QSMiniInterfaceController.m */; }; D413172F15DEE5D90021479B /* LaunchAtLoginController.h in Headers */ = {isa = PBXBuildFile; fileRef = D413172C15DEE5D90021479B /* LaunchAtLoginController.h */; }; D413173015DEE5D90021479B /* LaunchAtLoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = D413172D15DEE5D90021479B /* LaunchAtLoginController.m */; }; D42A065816E1381F00BFD9C8 /* TestQSObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D42A065716E1381F00BFD9C8 /* TestQSObject.m */; }; @@ -953,6 +958,13 @@ remoteGlobalIDString = D8FBCF4D123CF87800084E89; remoteInfo = NDHotKeyEvent; }; + CDEFE3D42DA68854008E25A3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = CDEFE3BF2DA687EA008E25A3; + remoteInfo = "Mini Interface"; + }; E179ACF206482A0300083F3E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -1956,6 +1968,12 @@ CDEA588616C557CD00B3897A /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = ko; path = ko.lproj/QSObjectSource.name.strings; sourceTree = ""; }; CDEA588716C557CD00B3897A /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = ko; path = ko.lproj/QSParser.name.strings; sourceTree = ""; }; CDEA588816C557CD00B3897A /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = ko; path = ko.lproj/QSAction.commandFormat.strings; sourceTree = ""; }; + CDEFE3C02DA687EA008E25A3 /* Mini Interface.qsplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Mini Interface.qsplugin"; sourceTree = BUILT_PRODUCTS_DIR; }; + CDEFE3C62DA68829008E25A3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + CDEFE3C72DA68829008E25A3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + CDEFE3C92DA68829008E25A3 /* MiniInterface.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = MiniInterface.nib; sourceTree = ""; }; + CDEFE3CA2DA68829008E25A3 /* QSMiniInterfaceController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QSMiniInterfaceController.h; sourceTree = ""; }; + CDEFE3CB2DA68829008E25A3 /* QSMiniInterfaceController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QSMiniInterfaceController.m; sourceTree = ""; }; CDFAC87C1652E220006A0C5B /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/QSActionsPrefPane.strings; sourceTree = ""; }; CDFAC87D1652E220006A0C5B /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/QSCatalog.strings; sourceTree = ""; }; CDFAC87E1652E220006A0C5B /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/QSHelpersPrefPane.strings; sourceTree = ""; }; @@ -2522,6 +2540,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CDEFE3BD2DA687EA008E25A3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; E103F15E0647200700447FE0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2627,6 +2652,7 @@ 4D002D61131148C2009040B7 /* Finder Plugin.qsplugin */, 4D002D88131149A3009040B7 /* Primer Interface.qsplugin */, 4D002DAD13114A2E009040B7 /* Keyboard Triggers.qsplugin */, + CDEFE3C02DA687EA008E25A3 /* Mini Interface.qsplugin */, 66448D9614F42790000FA2E2 /* QSFoundationTests.xctest */, 666E45EE150225EA0034E60A /* QSCoreTests.xctest */, CD61BBB8192B18FA00040609 /* Quicksilver Tests.xctest */, @@ -3138,6 +3164,18 @@ name = VDKQueue; sourceTree = ""; }; + CDEFE3CC2DA68829008E25A3 /* Mini Interface */ = { + isa = PBXGroup; + children = ( + CDEFE3C62DA68829008E25A3 /* Info.plist */, + CDEFE3C82DA68829008E25A3 /* Localizable.strings */, + CDEFE3C92DA68829008E25A3 /* MiniInterface.nib */, + CDEFE3CA2DA68829008E25A3 /* QSMiniInterfaceController.h */, + CDEFE3CB2DA68829008E25A3 /* QSMiniInterfaceController.m */, + ); + path = "Mini Interface"; + sourceTree = ""; + }; D413172B15DEE5D90021479B /* LaunchAtLoginController */ = { isa = PBXGroup; children = ( @@ -3464,6 +3502,7 @@ E1BF1D450657F6620074A05A /* PlugIns-Main */ = { isa = PBXGroup; children = ( + CDEFE3CC2DA68829008E25A3 /* Mini Interface */, 4D002C88131145DC009040B7 /* Bezel */, 4D002CA91311460B009040B7 /* Finder */, 4D002CD113114628009040B7 /* PrimerInterface */, @@ -4318,6 +4357,25 @@ productReference = CD61BBB8192B18FA00040609 /* Quicksilver Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + CDEFE3BF2DA687EA008E25A3 /* Mini Interface */ = { + isa = PBXNativeTarget; + buildConfigurationList = CDEFE3C12DA687EA008E25A3 /* Build configuration list for PBXNativeTarget "Mini Interface" */; + buildPhases = ( + CDEFE3BC2DA687EA008E25A3 /* Sources */, + CDEFE3BD2DA687EA008E25A3 /* Frameworks */, + CDEFE3BE2DA687EA008E25A3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Mini Interface"; + packageProductDependencies = ( + ); + productName = "Mini Interface"; + productReference = CDEFE3C02DA687EA008E25A3 /* Mini Interface.qsplugin */; + productType = "com.apple.product-type.bundle"; + }; E103F15F0647200700447FE0 /* QuickStep Core */ = { isa = PBXNativeTarget; buildConfigurationList = 7F6B3E4F085CE68E000735A8 /* Build configuration list for PBXNativeTarget "QuickStep Core" */; @@ -4430,6 +4488,9 @@ CD61BBB7192B18FA00040609 = { TestTargetID = 8D1107260486CEB800E47090; }; + CDEFE3BF2DA687EA008E25A3 = { + CreatedOnToolsVersion = 16.2; + }; E103F15F0647200700447FE0 = { LastSwiftMigration = 1610; }; @@ -4504,6 +4565,7 @@ 4D002D60131148C2009040B7 /* Finder Plugin */, 4D002D87131149A3009040B7 /* Primer Interface */, 4D002DAC13114A2E009040B7 /* Keyboard Triggers */, + CDEFE3BF2DA687EA008E25A3 /* Mini Interface */, 7F9703CF09AFEE8700E9EA77 /* QSDroplet */, E1A5676506FFDD8700BAD045 /* QSScriptingDictionary */, 66448D9514F42790000FA2E2 /* QSFoundationTests */, @@ -4799,6 +4861,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CDEFE3BE2DA687EA008E25A3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CDEFE3CD2DA68829008E25A3 /* MiniInterface.nib in Resources */, + CDEFE3CF2DA68829008E25A3 /* Info.plist in Resources */, + CDEFE3D02DA68829008E25A3 /* Localizable.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; E103F15C0647200700447FE0 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -5049,6 +5121,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CDEFE3BC2DA687EA008E25A3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CDEFE3D12DA68829008E25A3 /* QSMiniInterfaceController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; E103F15D0647200700447FE0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -5392,6 +5472,11 @@ target = E1E5F9C707B1FEC50044D6EF /* Core Support */; targetProxy = CDBA07DC27BCA5FD00D11AF1 /* PBXContainerItemProxy */; }; + CDEFE3D52DA68854008E25A3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CDEFE3BF2DA687EA008E25A3 /* Mini Interface */; + targetProxy = CDEFE3D42DA68854008E25A3 /* PBXContainerItemProxy */; + }; E179ACF306482A0300083F3E /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = E103F15F0647200700447FE0 /* QuickStep Core */; @@ -6224,6 +6309,14 @@ name = MainMenu.xib; sourceTree = ""; }; + CDEFE3C82DA68829008E25A3 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + CDEFE3C72DA68829008E25A3 /* en */, + ); + name = Localizable.strings; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -7328,6 +7421,149 @@ }; name = Release; }; + CDEFE3C22DA687EA008E25A3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4DC3DD110E0BB27B009902EF /* QSPlugIn.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "PlugIns-Main/Mini Interface/Info.plist"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSPrincipalClass = ""; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.qsapp.QSMiniInterfacePlugin; + SWIFT_EMIT_LOC_STRINGS = YES; + }; + name = Debug; + }; + CDEFE3C32DA687EA008E25A3 /* Testing */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4DC3DD110E0BB27B009902EF /* QSPlugIn.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "PlugIns-Main/Mini Interface/Info.plist"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSPrincipalClass = ""; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.qsapp.QSMiniInterfacePlugin; + SWIFT_EMIT_LOC_STRINGS = YES; + }; + name = Testing; + }; + CDEFE3C42DA687EA008E25A3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4DC3DD110E0BB27B009902EF /* QSPlugIn.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "PlugIns-Main/Mini Interface/Info.plist"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSPrincipalClass = ""; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.qsapp.QSMiniInterfacePlugin; + SWIFT_EMIT_LOC_STRINGS = YES; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -7521,6 +7757,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + CDEFE3C12DA687EA008E25A3 /* Build configuration list for PBXNativeTarget "Mini Interface" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CDEFE3C22DA687EA008E25A3 /* Debug */, + CDEFE3C32DA687EA008E25A3 /* Testing */, + CDEFE3C42DA687EA008E25A3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; /* End XCConfigurationList section */ }; rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; diff --git a/Quicksilver/Quicksilver.xcodeproj/xcshareddata/xcschemes/Mini Interface.xcscheme b/Quicksilver/Quicksilver.xcodeproj/xcshareddata/xcschemes/Mini Interface.xcscheme new file mode 100644 index 000000000..ed78636f2 --- /dev/null +++ b/Quicksilver/Quicksilver.xcodeproj/xcshareddata/xcschemes/Mini Interface.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + From 3dfef6c0dc280f80b9d816d1937bd571c15351a4 Mon Sep 17 00:00:00 2001 From: Patrick Robertson Date: Wed, 9 Apr 2025 19:19:19 +0200 Subject: [PATCH 3/3] Fix linking on release build --- Quicksilver/Quicksilver.xcodeproj/project.pbxproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj index e334b155b..a28c148dc 100644 --- a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj +++ b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj @@ -7427,6 +7427,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUNDLE_LOADER = ""; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -7463,7 +7464,6 @@ INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSPrincipalClass = ""; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; @@ -7478,6 +7478,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUNDLE_LOADER = ""; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -7509,7 +7510,6 @@ INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSPrincipalClass = ""; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; @@ -7524,6 +7524,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUNDLE_LOADER = ""; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -7555,7 +7556,6 @@ INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSPrincipalClass = ""; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES;