Skip to content

Commit ea4abc2

Browse files
committed
Added a specific window for QEMU launch failures.
1 parent e9e4dfc commit ea4abc2

File tree

6 files changed

+262
-11
lines changed

6 files changed

+262
-11
lines changed

QEMU-Manager.xcodeproj/project.pbxproj

+36
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@
2626
05BEEA0D2638145D00EECF3A /* ConfigHardwareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05BEEA0C2638145D00EECF3A /* ConfigHardwareViewController.swift */; };
2727
05BEEA102638146E00EECF3A /* ConfigHardwareViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 05BEEA0E2638146E00EECF3A /* ConfigHardwareViewController.xib */; };
2828
05BFBD2C264880B3007C4688 /* qemu in Resources */ = {isa = PBXBuildFile; fileRef = 05BFBD2B264880B3007C4688 /* qemu */; };
29+
05C4F68F264C40F000F03D11 /* SharedFolderAccessoryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05C4F68E264C40F000F03D11 /* SharedFolderAccessoryViewController.swift */; };
30+
05C4F694264C412900F03D11 /* SharedFolderAccessoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 05C4F692264C412900F03D11 /* SharedFolderAccessoryViewController.xib */; };
31+
05C4F696264C4EA500F03D11 /* QEMUErrorWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05C4F695264C4EA500F03D11 /* QEMUErrorWindowController.swift */; };
32+
05C4F699264C509500F03D11 /* QEMUErrorWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 05C4F69B264C509500F03D11 /* QEMUErrorWindowController.xib */; };
33+
05C4F69D264C599200F03D11 /* Alert.icns in Resources */ = {isa = PBXBuildFile; fileRef = 05C4F69C264C599200F03D11 /* Alert.icns */; };
2934
05CCEFD82643EAEE00A3A9F8 /* ConfigDisksViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05CCEFD72643EAEE00A3A9F8 /* ConfigDisksViewController.swift */; };
3035
05CCEFDB2643EB0100A3A9F8 /* ConfigDisksViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 05CCEFD92643EB0100A3A9F8 /* ConfigDisksViewController.xib */; };
3136
05CCEFDD2643EDA600A3A9F8 /* Disk.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05CCEFDC2643EDA600A3A9F8 /* Disk.swift */; };
@@ -137,6 +142,11 @@
137142
05BFBD28264880A1007C4688 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
138143
05BFBD2A264880A1007C4688 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = "<group>"; };
139144
05BFBD2B264880B3007C4688 /* qemu */ = {isa = PBXFileReference; lastKnownFileType = folder; path = qemu; sourceTree = "<group>"; };
145+
05C4F68E264C40F000F03D11 /* SharedFolderAccessoryViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedFolderAccessoryViewController.swift; sourceTree = "<group>"; };
146+
05C4F693264C412900F03D11 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SharedFolderAccessoryViewController.xib; sourceTree = "<group>"; };
147+
05C4F695264C4EA500F03D11 /* QEMUErrorWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QEMUErrorWindowController.swift; sourceTree = "<group>"; };
148+
05C4F69A264C509500F03D11 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/QEMUErrorWindowController.xib; sourceTree = "<group>"; };
149+
05C4F69C264C599200F03D11 /* Alert.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Alert.icns; sourceTree = "<group>"; };
140150
05CCEFD72643EAEE00A3A9F8 /* ConfigDisksViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigDisksViewController.swift; sourceTree = "<group>"; };
141151
05CCEFDA2643EB0100A3A9F8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ConfigDisksViewController.xib; sourceTree = "<group>"; };
142152
05CCEFDC2643EDA600A3A9F8 /* Disk.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Disk.swift; sourceTree = "<group>"; };
@@ -308,6 +318,8 @@
308318
05B698002634250300506106 /* ConfigWindowController.xib */,
309319
05CCF0162645C74700A3A9F8 /* NewDiskWindowController.swift */,
310320
05CCF0182645C75700A3A9F8 /* NewDiskWindowController.xib */,
321+
05C4F68E264C40F000F03D11 /* SharedFolderAccessoryViewController.swift */,
322+
05C4F692264C412900F03D11 /* SharedFolderAccessoryViewController.xib */,
311323
);
312324
path = Config;
313325
sourceTree = "<group>";
@@ -362,6 +374,8 @@
362374
05CCF01F2645EF5900A3A9F8 /* QEMU.Img.swift */,
363375
05CCF01B2645ECF600A3A9F8 /* QEMU.swift */,
364376
05CCF0252646076300A3A9F8 /* QEMU.System.swift */,
377+
05C4F695264C4EA500F03D11 /* QEMUErrorWindowController.swift */,
378+
05C4F69B264C509500F03D11 /* QEMUErrorWindowController.xib */,
365379
);
366380
path = QEMU;
367381
sourceTree = "<group>";
@@ -608,6 +622,7 @@
608622
05DFDD86261F9E7900BBE4E3 /* Images */ = {
609623
isa = PBXGroup;
610624
children = (
625+
05C4F69C264C599200F03D11 /* Alert.icns */,
611626
05E4FCFB264731A8007D1254 /* AppleLegacy.icns */,
612627
05F547A0263C56C4003F1B92 /* AppleTemplate.pdf */,
613628
05CCF0402646DABD00A3A9F8 /* DiskTemplate.pdf */,
@@ -748,10 +763,13 @@
748763
05F5479C263C3C56003F1B92 /* Generic.icns in Resources */,
749764
05E4FD03264731A8007D1254 /* Linux.icns in Resources */,
750765
05CCF0452646DABD00A3A9F8 /* InfoTemplate.pdf in Resources */,
766+
05C4F694264C412900F03D11 /* SharedFolderAccessoryViewController.xib in Resources */,
767+
05C4F699264C509500F03D11 /* QEMUErrorWindowController.xib in Resources */,
751768
05F547A2263C56C4003F1B92 /* WindowsTemplate.pdf in Resources */,
752769
05F547A3263C56C4003F1B92 /* AppleTemplate.pdf in Resources */,
753770
058C98BB26332FAA0086E57E /* Defaults.plist in Resources */,
754771
05CCF0472646DABD00A3A9F8 /* HardwareTemplate.pdf in Resources */,
772+
05C4F69D264C599200F03D11 /* Alert.icns in Resources */,
755773
05DFDD89261F9E7900BBE4E3 /* Icon.icns in Resources */,
756774
05BFBD2C264880B3007C4688 /* qemu in Resources */,
757775
05CCF01A2645C75700A3A9F8 /* NewDiskWindowController.xib in Resources */,
@@ -818,6 +836,7 @@
818836
05CCF03D2646A6DC00A3A9F8 /* LowercaseString.swift in Sources */,
819837
058C98BF263332050086E57E /* Synchronizable.swift in Sources */,
820838
05BEEA062638120A00EECF3A /* ConfigViewController.swift in Sources */,
839+
05C4F696264C4EA500F03D11 /* QEMUErrorWindowController.swift in Sources */,
821840
05CCF01C2645ECF600A3A9F8 /* QEMU.swift in Sources */,
822841
058C989526323AB10086E57E /* VirtualMachine.swift in Sources */,
823842
05CCF02E2646082400A3A9F8 /* ObjC.m in Sources */,
@@ -839,6 +858,7 @@
839858
05BEEA0D2638145D00EECF3A /* ConfigHardwareViewController.swift in Sources */,
840859
05CCF03F2646BD2300A3A9F8 /* Boot.swift in Sources */,
841860
05CCF01E2645EE7000A3A9F8 /* Error.swift in Sources */,
861+
05C4F68F264C40F000F03D11 /* SharedFolderAccessoryViewController.swift in Sources */,
842862
05B697FE263424CB00506106 /* ConfigWindowController.swift in Sources */,
843863
);
844864
runOnlyForDeploymentPostprocessing = 0;
@@ -878,6 +898,22 @@
878898
name = ConfigHardwareViewController.xib;
879899
sourceTree = "<group>";
880900
};
901+
05C4F692264C412900F03D11 /* SharedFolderAccessoryViewController.xib */ = {
902+
isa = PBXVariantGroup;
903+
children = (
904+
05C4F693264C412900F03D11 /* Base */,
905+
);
906+
name = SharedFolderAccessoryViewController.xib;
907+
sourceTree = "<group>";
908+
};
909+
05C4F69B264C509500F03D11 /* QEMUErrorWindowController.xib */ = {
910+
isa = PBXVariantGroup;
911+
children = (
912+
05C4F69A264C509500F03D11 /* Base */,
913+
);
914+
name = QEMUErrorWindowController.xib;
915+
sourceTree = "<group>";
916+
};
881917
05CCEFD92643EB0100A3A9F8 /* ConfigDisksViewController.xib */ = {
882918
isa = PBXVariantGroup;
883919
children = (
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="18122" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
3+
<dependencies>
4+
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="18122"/>
5+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
6+
</dependencies>
7+
<objects>
8+
<customObject id="-2" userLabel="File's Owner" customClass="QEMUErrorWindowController" customModule="QEMU_Manager" customModuleProvider="target">
9+
<connections>
10+
<outlet property="window" destination="QvC-M9-y7g" id="Isk-I1-Pum"/>
11+
</connections>
12+
</customObject>
13+
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
14+
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
15+
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" titlebarAppearsTransparent="YES" titleVisibility="hidden" id="QvC-M9-y7g">
16+
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" fullSizeContentView="YES"/>
17+
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
18+
<rect key="contentRect" x="196" y="240" width="500" height="348"/>
19+
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1025"/>
20+
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
21+
<rect key="frame" x="0.0" y="0.0" width="500" height="266"/>
22+
<autoresizingMask key="autoresizingMask"/>
23+
<subviews>
24+
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="F27-QZ-yJf">
25+
<rect key="frame" x="20" y="126" width="100" height="100"/>
26+
<constraints>
27+
<constraint firstAttribute="width" constant="100" id="Ili-Uj-aTf"/>
28+
<constraint firstAttribute="height" constant="100" id="ZlF-lG-J13"/>
29+
</constraints>
30+
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="Alert" id="KQm-Ak-Vn2"/>
31+
</imageView>
32+
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jU8-O7-6pY">
33+
<rect key="frame" x="138" y="181" width="66" height="31"/>
34+
<textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="03C-RM-Rwn">
35+
<font key="font" textStyle="largeTitle" name=".SFNS-Regular"/>
36+
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
37+
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
38+
</textFieldCell>
39+
<connections>
40+
<binding destination="-2" name="value" keyPath="self.window.title" id="DX3-Wr-Flh"/>
41+
</connections>
42+
</textField>
43+
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TS9-Zq-7e5">
44+
<rect key="frame" x="138" y="157" width="37" height="16"/>
45+
<textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="dF5-ZM-LjT">
46+
<font key="font" metaFont="system"/>
47+
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
48+
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
49+
</textFieldCell>
50+
<connections>
51+
<binding destination="-2" name="value" keyPath="self.statusText" id="yJL-oq-pTN"/>
52+
</connections>
53+
</textField>
54+
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="PpM-OR-BRl">
55+
<rect key="frame" x="12" y="115" width="476" height="5"/>
56+
</box>
57+
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vHg-md-YdS">
58+
<rect key="frame" x="18" y="93" width="50" height="16"/>
59+
<textFieldCell key="cell" lineBreakMode="clipping" title="Details:" id="G9k-1H-48i">
60+
<font key="font" metaFont="system"/>
61+
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
62+
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
63+
</textFieldCell>
64+
</textField>
65+
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Hpw-Lu-2Ff">
66+
<rect key="frame" x="18" y="69" width="464" height="16"/>
67+
<textFieldCell key="cell" selectable="YES" title="Multiline Label" id="O7L-h4-l0p">
68+
<font key="font" metaFont="system"/>
69+
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
70+
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
71+
</textFieldCell>
72+
<connections>
73+
<binding destination="-2" name="font" keyPath="self.detailsFont" id="H7Z-e0-KGv"/>
74+
<binding destination="-2" name="value" keyPath="self.details" id="1cN-NY-nI4"/>
75+
</connections>
76+
</textField>
77+
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="sWy-EF-5Q5">
78+
<rect key="frame" x="12" y="58" width="476" height="5"/>
79+
</box>
80+
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="FRW-Uw-TkY">
81+
<rect key="frame" x="398" y="13" width="89" height="32"/>
82+
<constraints>
83+
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="75" id="dWD-VB-Oy4"/>
84+
</constraints>
85+
<buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="x4A-5g-H6n">
86+
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
87+
<font key="font" metaFont="system"/>
88+
<string key="keyEquivalent" base64-UTF8="YES">
89+
DQ
90+
</string>
91+
</buttonCell>
92+
<connections>
93+
<action selector="ok:" target="-2" id="gUO-VC-wIJ"/>
94+
</connections>
95+
</button>
96+
</subviews>
97+
<constraints>
98+
<constraint firstItem="FRW-Uw-TkY" firstAttribute="top" secondItem="sWy-EF-5Q5" secondAttribute="bottom" constant="20" symbolic="YES" id="0yW-rA-da3"/>
99+
<constraint firstItem="jU8-O7-6pY" firstAttribute="centerY" secondItem="F27-QZ-yJf" secondAttribute="centerY" constant="-20" id="1mF-vt-vD9"/>
100+
<constraint firstItem="F27-QZ-yJf" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="20" symbolic="YES" id="7ve-rh-I9W"/>
101+
<constraint firstItem="F27-QZ-yJf" firstAttribute="top" secondItem="EiT-Mj-1SZ" secondAttribute="top" constant="40" id="803-Dd-m6R"/>
102+
<constraint firstAttribute="trailing" secondItem="Hpw-Lu-2Ff" secondAttribute="trailing" constant="20" symbolic="YES" id="9Hh-Pd-0y5"/>
103+
<constraint firstItem="TS9-Zq-7e5" firstAttribute="top" secondItem="jU8-O7-6pY" secondAttribute="bottom" constant="8" symbolic="YES" id="9nu-lW-Hl4"/>
104+
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="TS9-Zq-7e5" secondAttribute="trailing" constant="20" symbolic="YES" id="B2c-Vg-L7S"/>
105+
<constraint firstItem="FRW-Uw-TkY" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="20" symbolic="YES" id="FZF-cZ-BeK"/>
106+
<constraint firstItem="sWy-EF-5Q5" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="12" symbolic="YES" id="Jll-sC-DzM"/>
107+
<constraint firstAttribute="bottom" secondItem="FRW-Uw-TkY" secondAttribute="bottom" constant="20" symbolic="YES" id="RYE-rp-7k3"/>
108+
<constraint firstAttribute="trailing" secondItem="sWy-EF-5Q5" secondAttribute="trailing" constant="12" symbolic="YES" id="X0P-hQ-dXZ"/>
109+
<constraint firstItem="TS9-Zq-7e5" firstAttribute="leading" secondItem="jU8-O7-6pY" secondAttribute="leading" id="Ych-d0-SIY"/>
110+
<constraint firstAttribute="trailing" secondItem="PpM-OR-BRl" secondAttribute="trailing" constant="12" symbolic="YES" id="Ytp-bj-ki1"/>
111+
<constraint firstItem="jU8-O7-6pY" firstAttribute="leading" secondItem="F27-QZ-yJf" secondAttribute="trailing" constant="20" id="Z9h-M0-LEd"/>
112+
<constraint firstItem="Hpw-Lu-2Ff" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="20" symbolic="YES" id="ZME-bQ-qha"/>
113+
<constraint firstItem="PpM-OR-BRl" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="12" symbolic="YES" id="amn-Nx-suZ"/>
114+
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="vHg-md-YdS" secondAttribute="trailing" constant="20" symbolic="YES" id="dXU-KZ-ORt"/>
115+
<constraint firstAttribute="trailing" secondItem="FRW-Uw-TkY" secondAttribute="trailing" constant="20" symbolic="YES" id="eBz-oV-igU"/>
116+
<constraint firstItem="vHg-md-YdS" firstAttribute="top" secondItem="PpM-OR-BRl" secondAttribute="bottom" constant="8" symbolic="YES" id="jD2-wf-LcZ"/>
117+
<constraint firstItem="vHg-md-YdS" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="20" symbolic="YES" id="oaO-fT-Imb"/>
118+
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="jU8-O7-6pY" secondAttribute="trailing" constant="20" symbolic="YES" id="oka-r6-T0l"/>
119+
<constraint firstItem="PpM-OR-BRl" firstAttribute="top" secondItem="F27-QZ-yJf" secondAttribute="bottom" constant="8" symbolic="YES" id="qbG-nh-saI"/>
120+
<constraint firstItem="sWy-EF-5Q5" firstAttribute="top" secondItem="Hpw-Lu-2Ff" secondAttribute="bottom" constant="8" symbolic="YES" id="slM-EG-RXP"/>
121+
<constraint firstItem="Hpw-Lu-2Ff" firstAttribute="top" secondItem="vHg-md-YdS" secondAttribute="bottom" constant="8" symbolic="YES" id="xpo-bC-jel"/>
122+
</constraints>
123+
</view>
124+
<point key="canvasLocation" x="76" y="149"/>
125+
</window>
126+
</objects>
127+
<resources>
128+
<image name="Alert" width="512" height="512"/>
129+
</resources>
130+
</document>

0 commit comments

Comments
 (0)