Skip to content

Commit ebbef75

Browse files
Add menu item to choose project from open panel. Resolves #14.
1 parent 9e610e3 commit ebbef75

File tree

2 files changed

+69
-37
lines changed

2 files changed

+69
-37
lines changed

BuildSettingExtractor/AppDelegate.m

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,33 @@ - (void)awakeFromNib {
3232
}
3333

3434

35+
- (IBAction)chooseXcodeProject:(id)sender {
36+
37+
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
38+
openPanel.canCreateDirectories = NO;
39+
openPanel.allowsMultipleSelection = NO;
40+
openPanel.canChooseDirectories = NO;
41+
openPanel.canChooseFiles = YES;
42+
openPanel.allowedFileTypes = @[[NSString tps_projectBundleTypeIdentifier]];
43+
openPanel.message = @"Choose an Xcode project to extract its build settings.";
44+
openPanel.prompt = @"Choose";
45+
46+
[openPanel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result) {
47+
if (result == NSModalResponseOK) {
48+
NSURL *projectURL = openPanel.URL;
49+
dispatch_async(dispatch_get_main_queue(), ^{
50+
[self processXcodeProjectAtURL:projectURL];
51+
});
52+
}
53+
}];
54+
}
55+
3556
- (IBAction)handleDroppedFile:(DragFileView *)sender {
3657
NSURL *fileURL = sender.fileURL;
58+
[self processXcodeProjectAtURL:fileURL];
59+
}
60+
61+
- (void)processXcodeProjectAtURL:(NSURL *)fileURL {
3762
NSString *typeIdentifier = nil;
3863
NSString *fileName = nil;
3964
NSError *error = nil;

BuildSettingExtractor/Base.lproj/MainMenu.xib

Lines changed: 44 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2-
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
33
<dependencies>
44
<deployment identifier="macosx"/>
5-
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7702"/>
5+
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12121"/>
6+
<capability name="box content view" minToolsVersion="7.0"/>
7+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
68
</dependencies>
79
<objects>
810
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
@@ -119,6 +121,13 @@
119121
<action selector="revertDocumentToSaved:" target="-1" id="iJ3-Pv-kwq"/>
120122
</connections>
121123
</menuItem>
124+
<menuItem isSeparatorItem="YES" id="IbZ-Xl-XAA"/>
125+
<menuItem title="Choose Xcode Project…" id="UCV-C0-m5Y">
126+
<modifierMask key="keyEquivalentModifierMask"/>
127+
<connections>
128+
<action selector="chooseXcodeProject:" target="-1" id="P8t-ft-58a"/>
129+
</connections>
130+
</menuItem>
122131
<menuItem isSeparatorItem="YES" id="aJh-i4-bef"/>
123132
<menuItem title="Page Setup…" keyEquivalent="P" id="qIS-W8-SiK">
124133
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
@@ -677,16 +686,16 @@
677686
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
678687
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
679688
<rect key="contentRect" x="335" y="390" width="436" height="210"/>
680-
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1177"/>
689+
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
681690
<view key="contentView" id="EiT-Mj-1SZ">
682691
<rect key="frame" x="0.0" y="0.0" width="436" height="210"/>
683692
<autoresizingMask key="autoresizingMask"/>
684693
<subviews>
685694
<customView translatesAutoresizingMaskIntoConstraints="NO" id="THh-eD-rRa" customClass="DragFileView">
686695
<rect key="frame" x="20" y="20" width="396" height="170"/>
687696
<subviews>
688-
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BCV-eh-b7F">
689-
<rect key="frame" x="84" y="73" width="228" height="25"/>
697+
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" setsMaxLayoutWidthAtFirstLayout="YES" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BCV-eh-b7F">
698+
<rect key="frame" x="85" y="73" width="226" height="25"/>
690699
<textFieldCell key="cell" refusesFirstResponder="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="center" title="Drag Project File Here" id="BCh-la-6iA">
691700
<font key="font" metaFont="systemBold" size="21"/>
692701
<color key="textColor" red="0.13149642944335938" green="0.26071125268936157" blue="0.42410662770271301" alpha="1" colorSpace="calibratedRGB"/>
@@ -716,15 +725,15 @@
716725
<window title="Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" frameAutosaveName="Preferences" animationBehavior="default" id="fKt-mn-0WB">
717726
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
718727
<rect key="contentRect" x="985" y="795" width="320" height="265"/>
719-
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1177"/>
728+
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
720729
<value key="minSize" type="size" width="320" height="265"/>
721730
<value key="maxSize" type="size" width="320" height="265"/>
722731
<view key="contentView" id="1kK-jA-VrG">
723732
<rect key="frame" x="0.0" y="0.0" width="320" height="265"/>
724733
<autoresizingMask key="autoresizingMask"/>
725734
<subviews>
726735
<button translatesAutoresizingMaskIntoConstraints="NO" id="jJF-zo-xje">
727-
<rect key="frame" x="18" y="229" width="260" height="18"/>
736+
<rect key="frame" x="18" y="229" width="256" height="18"/>
728737
<buttonCell key="cell" type="check" title="Open destination folder when finished " bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="bOl-XK-mYp">
729738
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
730739
<font key="font" metaFont="system"/>
@@ -734,7 +743,7 @@
734743
</connections>
735744
</button>
736745
<button translatesAutoresizingMaskIntoConstraints="NO" id="PO3-kF-2C5">
737-
<rect key="frame" x="18" y="202" width="242" height="18"/>
746+
<rect key="frame" x="18" y="202" width="238" height="18"/>
738747
<buttonCell key="cell" type="check" title="Include build setting info comments" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="Miy-u0-wrI">
739748
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
740749
<font key="font" metaFont="system"/>
@@ -743,21 +752,21 @@
743752
<binding destination="Czo-a1-luY" name="value" keyPath="values.TPSIncludeBuildSettingInfoComments" id="UHb-Q1-xEE"/>
744753
</connections>
745754
</button>
746-
<box autoresizesSubviews="NO" title="Output Filenames" borderType="line" translatesAutoresizingMaskIntoConstraints="NO" id="D53-ZA-yMZ">
755+
<box autoresizesSubviews="NO" borderType="line" title="Output Filenames" translatesAutoresizingMaskIntoConstraints="NO" id="D53-ZA-yMZ">
747756
<rect key="frame" x="17" y="58" width="286" height="132"/>
748-
<view key="contentView">
757+
<view key="contentView" id="Cm7-26-zuQ">
749758
<rect key="frame" x="1" y="1" width="284" height="116"/>
750759
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
751760
<subviews>
752-
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pgR-Eo-bSj">
753-
<rect key="frame" x="30" y="86" width="90" height="17"/>
761+
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pgR-Eo-bSj">
762+
<rect key="frame" x="32" y="87" width="88" height="17"/>
754763
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Project name:" id="55p-LX-tEF">
755764
<font key="font" metaFont="system"/>
756765
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
757766
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
758767
</textFieldCell>
759768
</textField>
760-
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TQC-44-oLj">
769+
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TQC-44-oLj">
761770
<rect key="frame" x="126" y="84" width="141" height="22"/>
762771
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="dJU-oN-41s">
763772
<font key="font" metaFont="system"/>
@@ -771,15 +780,15 @@
771780
<binding destination="Czo-a1-luY" name="value" keyPath="values.TPSOutputFileNameProject" id="XH0-ns-RBF"/>
772781
</connections>
773782
</textField>
774-
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="c24-WP-E9A">
775-
<rect key="frame" x="29" y="54" width="90" height="17"/>
783+
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c24-WP-E9A">
784+
<rect key="frame" x="31" y="55" width="88" height="17"/>
776785
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Shared name:" id="3PN-eT-YAf">
777786
<font key="font" metaFont="system"/>
778787
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
779788
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
780789
</textFieldCell>
781790
</textField>
782-
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="YO9-cX-mlT">
791+
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YO9-cX-mlT">
783792
<rect key="frame" x="125" y="52" width="141" height="22"/>
784793
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="d9j-HG-UH4">
785794
<font key="font" metaFont="system"/>
@@ -790,15 +799,15 @@
790799
<binding destination="Czo-a1-luY" name="value" keyPath="values.TPSOutputFileNameShared" id="Fbq-Gw-ZPD"/>
791800
</connections>
792801
</textField>
793-
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="e1H-r8-PZJ">
794-
<rect key="frame" x="16" y="20" width="103" height="17"/>
802+
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="e1H-r8-PZJ">
803+
<rect key="frame" x="17" y="21" width="102" height="17"/>
795804
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Word separator:" id="Ioq-vO-Qxk">
796805
<font key="font" metaFont="system"/>
797806
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
798807
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
799808
</textFieldCell>
800809
</textField>
801-
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="YBk-cU-i8C">
810+
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YBk-cU-i8C">
802811
<rect key="frame" x="126" y="20" width="141" height="22"/>
803812
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="kDQ-0L-kg5">
804813
<font key="font" metaFont="system"/>
@@ -812,25 +821,23 @@
812821
</subviews>
813822
</view>
814823
<constraints>
815-
<constraint firstItem="c24-WP-E9A" firstAttribute="baseline" secondItem="YO9-cX-mlT" secondAttribute="baseline" id="0Qd-MA-H0j"/>
816-
<constraint firstItem="e1H-r8-PZJ" firstAttribute="baseline" secondItem="YBk-cU-i8C" secondAttribute="baseline" constant="2" id="0Qj-zm-fY4"/>
817-
<constraint firstItem="YO9-cX-mlT" firstAttribute="trailing" secondItem="TQC-44-oLj" secondAttribute="trailing" constant="-1" id="0SR-I5-7WK"/>
818-
<constraint firstItem="TQC-44-oLj" firstAttribute="baseline" secondItem="pgR-Eo-bSj" secondAttribute="baseline" id="3c7-zm-QP7"/>
819-
<constraint firstItem="YBk-cU-i8C" firstAttribute="width" secondItem="YO9-cX-mlT" secondAttribute="width" id="5Dx-zY-jIo"/>
824+
<constraint firstItem="YO9-cX-mlT" firstAttribute="top" secondItem="TQC-44-oLj" secondAttribute="bottom" constant="10" id="5Gz-e6-EvS"/>
820825
<constraint firstAttribute="height" constant="128" id="5al-5J-sc7"/>
821-
<constraint firstItem="YO9-cX-mlT" firstAttribute="width" secondItem="TQC-44-oLj" secondAttribute="width" id="6Hd-ey-NCe"/>
822-
<constraint firstItem="TQC-44-oLj" firstAttribute="top" secondItem="D53-ZA-yMZ" secondAttribute="top" constant="25" id="7El-hr-JRE"/>
823-
<constraint firstAttribute="trailing" secondItem="TQC-44-oLj" secondAttribute="trailing" constant="15" id="KhQ-ac-M2K"/>
824-
<constraint firstItem="TQC-44-oLj" firstAttribute="leading" secondItem="pgR-Eo-bSj" secondAttribute="trailing" constant="8" id="LgO-tt-PBC"/>
825-
<constraint firstItem="TQC-44-oLj" firstAttribute="leading" secondItem="D53-ZA-yMZ" secondAttribute="leading" constant="124" id="TBL-Ak-gZJ"/>
826-
<constraint firstItem="c24-WP-E9A" firstAttribute="trailing" secondItem="pgR-Eo-bSj" secondAttribute="trailing" constant="-1" id="VOB-ZI-2YJ"/>
827-
<constraint firstItem="YBk-cU-i8C" firstAttribute="top" secondItem="YO9-cX-mlT" secondAttribute="bottom" constant="10" id="cH3-4L-VJa"/>
828-
<constraint firstItem="YBk-cU-i8C" firstAttribute="trailing" secondItem="YO9-cX-mlT" secondAttribute="trailing" constant="1" id="n0A-Fk-ZGN"/>
829-
<constraint firstItem="e1H-r8-PZJ" firstAttribute="trailing" secondItem="c24-WP-E9A" secondAttribute="trailing" id="nGW-Og-7Ey"/>
830-
<constraint firstItem="YO9-cX-mlT" firstAttribute="top" secondItem="TQC-44-oLj" secondAttribute="bottom" constant="10" id="nOF-Ce-kQB"/>
826+
<constraint firstItem="TQC-44-oLj" firstAttribute="top" secondItem="D53-ZA-yMZ" secondAttribute="top" constant="25" id="7Da-cO-eKZ"/>
827+
<constraint firstItem="e1H-r8-PZJ" firstAttribute="baseline" secondItem="YBk-cU-i8C" secondAttribute="baseline" constant="2" id="Bde-DC-eiC"/>
828+
<constraint firstItem="YBk-cU-i8C" firstAttribute="width" secondItem="YO9-cX-mlT" secondAttribute="width" id="G0O-rI-eSW"/>
829+
<constraint firstItem="c24-WP-E9A" firstAttribute="trailing" secondItem="pgR-Eo-bSj" secondAttribute="trailing" constant="-1" id="KpG-xu-weY"/>
830+
<constraint firstItem="YBk-cU-i8C" firstAttribute="trailing" secondItem="YO9-cX-mlT" secondAttribute="trailing" constant="1" id="NRt-Zx-lwX"/>
831+
<constraint firstItem="TQC-44-oLj" firstAttribute="baseline" secondItem="pgR-Eo-bSj" secondAttribute="baseline" id="Qcq-CG-cdA"/>
832+
<constraint firstItem="TQC-44-oLj" firstAttribute="leading" secondItem="D53-ZA-yMZ" secondAttribute="leading" constant="124" id="Wg9-fJ-8hN"/>
833+
<constraint firstItem="YO9-cX-mlT" firstAttribute="width" secondItem="TQC-44-oLj" secondAttribute="width" id="Xps-7f-DDV"/>
834+
<constraint firstItem="e1H-r8-PZJ" firstAttribute="trailing" secondItem="c24-WP-E9A" secondAttribute="trailing" id="c8b-xU-BbW"/>
835+
<constraint firstItem="YO9-cX-mlT" firstAttribute="trailing" secondItem="TQC-44-oLj" secondAttribute="trailing" constant="-1" id="iAd-iW-n7y"/>
836+
<constraint firstItem="TQC-44-oLj" firstAttribute="leading" secondItem="pgR-Eo-bSj" secondAttribute="trailing" constant="8" id="lDI-hw-Pkt"/>
837+
<constraint firstItem="c24-WP-E9A" firstAttribute="baseline" secondItem="YO9-cX-mlT" secondAttribute="baseline" id="quE-ef-K3i"/>
838+
<constraint firstItem="YBk-cU-i8C" firstAttribute="top" secondItem="YO9-cX-mlT" secondAttribute="bottom" constant="10" id="umC-ca-0od"/>
839+
<constraint firstAttribute="trailing" secondItem="TQC-44-oLj" secondAttribute="trailing" constant="15" id="zW1-hw-Bfp"/>
831840
</constraints>
832-
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
833-
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
834841
</box>
835842
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Hfn-iA-xua">
836843
<rect key="frame" x="224" y="13" width="82" height="32"/>

0 commit comments

Comments
 (0)