LoginPanelController.xib #1

  • //
  • guest/
  • alan_petersen/
  • piper/
  • mac/
  • main/
  • Perforce/
  • Classes/
  • WindowControllers/
  • LoginPanelController.xib
  • View
  • Commits
  • Open Download .zip Download (27 KB)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="5056" systemVersion="12F45" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
    <dependencies>
        <deployment defaultVersion="1070" identifier="macosx"/>
        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="5056"/>
    </dependencies>
    <objects>
        <customObject id="-2" userLabel="File's Owner" customClass="LoginPanelController">
            <connections>
                <outlet property="connectionAddressField" destination="207" id="316"/>
                <outlet property="connectionCancelButton" destination="209" id="350"/>
                <outlet property="connectionComboBox" destination="227" id="315"/>
                <outlet property="connectionPasswordField" destination="210" id="314"/>
                <outlet property="connectionUsernameField" destination="211" id="313"/>
                <outlet property="connectionView" destination="203" id="269"/>
                <outlet property="loadingIndicator" destination="114" id="308"/>
                <outlet property="loadingLabel" destination="100" id="309"/>
                <outlet property="loadingView" destination="95" id="120"/>
                <outlet property="loginCancelButton" destination="251" id="RXd-OB-43d"/>
                <outlet property="loginView" destination="249" id="270"/>
                <outlet property="passwordTextField" destination="256" id="310"/>
                <outlet property="reloginPasswordField" destination="158" id="311"/>
                <outlet property="reloginView" destination="151" id="271"/>
                <outlet property="ssoCheckbox" destination="353" id="356"/>
                <outlet property="usernameTextField" destination="257" id="312"/>
                <outlet property="window" destination="5" id="47"/>
            </connections>
        </customObject>
        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
        <customObject id="-3" userLabel="Application"/>
        <view id="95" userLabel="Loading View">
            <rect key="frame" x="0.0" y="0.0" width="310" height="100"/>
            <autoresizingMask key="autoresizingMask"/>
            <subviews>
                <textField verticalHuggingPriority="750" id="100">
                    <rect key="frame" x="17" y="23" width="276" height="17"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="Logging in..." id="107">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
                <progressIndicator horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" displayedWhenStopped="NO" bezeled="NO" indeterminate="YES" style="spinning" id="114">
                    <rect key="frame" x="139" y="48" width="32" height="32"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                </progressIndicator>
            </subviews>
        </view>
        <view id="203" userLabel="Connection View">
            <rect key="frame" x="0.0" y="0.0" width="310" height="194"/>
            <autoresizingMask key="autoresizingMask"/>
            <subviews>
                <textField verticalHuggingPriority="750" id="204">
                    <rect key="frame" x="17" y="122" width="52" height="17"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Details:" id="219">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
                <textField verticalHuggingPriority="750" id="207">
                    <rect key="frame" x="100" y="119" width="190" height="22"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Address" drawsBackground="YES" id="216">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                    <connections>
                        <outlet property="nextKeyView" destination="211" id="zvR-sW-inr"/>
                    </connections>
                </textField>
                <textField verticalHuggingPriority="750" id="206">
                    <rect key="frame" x="17" y="90" width="88" height="17"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Username:" id="217">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
                <textField verticalHuggingPriority="750" id="211">
                    <rect key="frame" x="100" y="87" width="190" height="22"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Default" drawsBackground="YES" id="212">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                    <connections>
                        <outlet property="nextKeyView" destination="210" id="vSy-fc-Ykr"/>
                    </connections>
                </textField>
                <textField verticalHuggingPriority="750" id="205">
                    <rect key="frame" x="17" y="58" width="88" height="17"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Password:" id="218">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
                <secureTextField verticalHuggingPriority="750" id="210">
                    <rect key="frame" x="100" y="55" width="190" height="22"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <secureTextFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="Enter password" drawsBackground="YES" usesSingleLineMode="YES" id="213">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                        <allowedInputSourceLocales>
                            <string>NSAllRomanInputSourcesLocaleIdentifier</string>
                        </allowedInputSourceLocales>
                    </secureTextFieldCell>
                    <connections>
                        <outlet property="nextKeyView" destination="208" id="349"/>
                    </connections>
                </secureTextField>
                <button verticalHuggingPriority="750" id="209">
                    <rect key="frame" x="94" y="12" width="101" height="32"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" enabled="NO" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="214">
                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                        <font key="font" metaFont="system"/>
                        <string key="keyEquivalent" base64-UTF8="YES">
Gw
</string>
                    </buttonCell>
                    <connections>
                        <action selector="cancelPressed:" target="-2" id="344"/>
                    </connections>
                </button>
                <button verticalHuggingPriority="750" id="208">
                    <rect key="frame" x="195" y="12" width="101" height="32"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <buttonCell key="cell" type="push" title="Login" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="215">
                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                        <font key="font" metaFont="system"/>
                        <string key="keyEquivalent" base64-UTF8="YES">
DQ
</string>
                    </buttonCell>
                    <connections>
                        <action selector="connectPressed:" target="-2" id="318"/>
                        <outlet property="nextKeyView" destination="207" id="220"/>
                    </connections>
                </button>
                <textField verticalHuggingPriority="750" id="223">
                    <rect key="frame" x="17" y="154" width="103" height="17"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Location:" id="226">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
                <comboBox verticalHuggingPriority="750" id="227">
                    <rect key="frame" x="100" y="150" width="193" height="26"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="Select location" drawsBackground="YES" completes="NO" numberOfVisibleItems="5" id="228">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                    </comboBoxCell>
                    <connections>
                        <action selector="comboBoxSelected:" target="-2" id="321"/>
                    </connections>
                </comboBox>
                <button id="353">
                    <rect key="frame" x="17" y="21" width="47" height="18"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <buttonCell key="cell" type="check" title="SSO" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="354">
                        <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
                        <font key="font" metaFont="system"/>
                    </buttonCell>
                    <connections>
                        <action selector="ssoCheckboxPressed:" target="-2" id="355"/>
                    </connections>
                </button>
            </subviews>
        </view>
        <view id="249" userLabel="Login View">
            <rect key="frame" x="0.0" y="0.0" width="360" height="134"/>
            <autoresizingMask key="autoresizingMask"/>
            <subviews>
                <textField verticalHuggingPriority="750" id="254">
                    <rect key="frame" x="18" y="90" width="88" height="17"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Username:" id="261">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
                <textField verticalHuggingPriority="750" id="257">
                    <rect key="frame" x="102" y="87" width="238" height="22"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Default" drawsBackground="YES" id="258">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                    <connections>
                        <outlet property="nextKeyView" destination="256" id="yvL-n8-32k"/>
                    </connections>
                </textField>
                <textField verticalHuggingPriority="750" id="253">
                    <rect key="frame" x="18" y="58" width="88" height="17"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Password:" id="262">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
                <secureTextField verticalHuggingPriority="750" id="256">
                    <rect key="frame" x="102" y="55" width="238" height="22"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <secureTextFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="Enter password" drawsBackground="YES" usesSingleLineMode="YES" id="259">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                        <allowedInputSourceLocales>
                            <string>NSAllRomanInputSourcesLocaleIdentifier</string>
                        </allowedInputSourceLocales>
                    </secureTextFieldCell>
                    <connections>
                        <outlet property="nextKeyView" destination="250" id="348"/>
                    </connections>
                </secureTextField>
                <button verticalHuggingPriority="750" id="251">
                    <rect key="frame" x="189" y="12" width="82" height="32"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" enabled="NO" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="264">
                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                        <font key="font" metaFont="system"/>
                        <string key="keyEquivalent" base64-UTF8="YES">
Gw
</string>
                    </buttonCell>
                    <connections>
                        <action selector="cancelPressed:" target="-2" id="345"/>
                    </connections>
                </button>
                <button verticalHuggingPriority="750" id="250">
                    <rect key="frame" x="271" y="12" width="75" height="32"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <buttonCell key="cell" type="push" title="Login" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="265">
                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                        <font key="font" metaFont="system"/>
                        <string key="keyEquivalent" base64-UTF8="YES">
DQ
</string>
                    </buttonCell>
                    <connections>
                        <action selector="loginPressed:" target="-2" id="320"/>
                        <outlet property="nextKeyView" destination="257" id="346"/>
                    </connections>
                </button>
                <button id="277">
                    <rect key="frame" x="32" y="20" width="123" height="19"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                    <buttonCell key="cell" type="roundRect" title="Connection Details" bezelStyle="roundedRect" alignment="left" refusesFirstResponder="YES" imageScaling="proportionallyDown" inset="2" id="278">
                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                        <font key="font" metaFont="cellTitle"/>
                    </buttonCell>
                    <connections>
                        <action selector="connectionDetailsPressed:" target="-2" id="317"/>
                    </connections>
                </button>
                <button horizontalHuggingPriority="750" verticalHuggingPriority="750" id="300">
                    <rect key="frame" x="14" y="18" width="24" height="24"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                    <buttonCell key="cell" type="disclosureTriangle" bezelStyle="disclosure" imagePosition="above" alignment="left" refusesFirstResponder="YES" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="301">
                        <behavior key="behavior" pushIn="YES" changeBackground="YES" changeGray="YES" lightByContents="YES"/>
                        <font key="font" metaFont="system"/>
                    </buttonCell>
                    <connections>
                        <action selector="performClick:" target="277" id="306"/>
                    </connections>
                </button>
            </subviews>
        </view>
        <view id="151" userLabel="Relogin View">
            <rect key="frame" x="0.0" y="0.0" width="310" height="144"/>
            <autoresizingMask key="autoresizingMask"/>
            <subviews>
                <textField verticalHuggingPriority="750" id="153">
                    <rect key="frame" x="17" y="58" width="88" height="17"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Password:" id="166">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
                <secureTextField verticalHuggingPriority="750" id="158">
                    <rect key="frame" x="100" y="55" width="190" height="22"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <secureTextFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="Enter password" drawsBackground="YES" usesSingleLineMode="YES" id="161">
                        <font key="font" metaFont="system"/>
                        <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                        <allowedInputSourceLocales>
                            <string>NSAllRomanInputSourcesLocaleIdentifier</string>
                        </allowedInputSourceLocales>
                    </secureTextFieldCell>
                    <connections>
                        <outlet property="nextKeyView" destination="156" id="rhK-ZY-MMg"/>
                    </connections>
                </secureTextField>
                <button verticalHuggingPriority="750" id="157">
                    <rect key="frame" x="94" y="12" width="110" height="32"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <buttonCell key="cell" type="push" title="Disconnect" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="162">
                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                        <font key="font" metaFont="system"/>
                    </buttonCell>
                    <connections>
                        <action selector="disconnectPressed:" target="-2" id="319"/>
                    </connections>
                </button>
                <button verticalHuggingPriority="750" id="156">
                    <rect key="frame" x="204" y="12" width="92" height="32"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <buttonCell key="cell" type="push" title="Login" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="163">
                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                        <font key="font" metaFont="system"/>
                        <string key="keyEquivalent" base64-UTF8="YES">
DQ
</string>
                    </buttonCell>
                    <connections>
                        <action selector="reloginPressed:" target="-2" id="307"/>
                        <outlet property="nextKeyView" destination="158" id="347"/>
                    </connections>
                </button>
                <textField verticalHuggingPriority="750" id="171">
                    <rect key="frame" x="17" y="90" width="275" height="34"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" id="172">
                        <font key="font" metaFont="system"/>
                        <string key="title">Your session has expired.
Please enter your password to login again.</string>
                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                    </textFieldCell>
                </textField>
            </subviews>
        </view>
        <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" hidesOnDeactivate="YES" oneShot="NO" showsToolbarButton="NO" visibleAtLaunch="NO" animationBehavior="default" id="5" customClass="NSPanel">
            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" documentModal="YES"/>
            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
            <rect key="contentRect" x="120" y="65" width="310" height="163"/>
            <rect key="screenRect" x="0.0" y="0.0" width="1280" height="800"/>
            <value key="minSize" type="size" width="310" height="193"/>
            <value key="maxSize" type="size" width="700" height="400"/>
            <view key="contentView" id="6">
                <rect key="frame" x="0.0" y="0.0" width="310" height="163"/>
                <autoresizingMask key="autoresizingMask"/>
            </view>
            <connections>
                <outlet property="delegate" destination="-2" id="48"/>
            </connections>
        </window>
    </objects>
</document>
# Change User Description Committed
#1 15071 alan_petersen Populate -o //guest/perforce_software/piper/...
//guest/alan_petersen/piper/....
//guest/perforce_software/piper/mac/main/Perforce/Classes/WindowControllers/LoginPanelController.xib
#2 12961 alan_petersen Piper 2.0 Mega Update

New Features/Functionality
- Added help menu redirecting to URL.
- Added readonly property for creating new workspaces.
- Added html hyperlinks for Copy link functionality.
- Added functionality for managing Finder Favorite items in sidebar.
- Redesigned the way mapping is stored in Piper.
- First version of syncing finder sidebar items with workspace mapping.
- Small sorting improvements.
- Creating Projects directory inside users home folder.
- Adding Projects folder to finder sidebar item.
- Creating and removing symbolic links accordingly to mapped folders.
- Preventing duplicate names in symbolic links.
- Refreshing symbolic links on mapping change inside application.
- Storing workspace and server details in p4 configuration for other applications to use.
- Added contextual menu items for Finder integration.
- Added services menu for Adobe Illustrator integration.
- Keyboard shortcuts for Illustrator integration.
- Code refactoring and fixes for mapping issues.
- Added Finder functionality to edit all files in folder.
- Added user friendly message when editing a file using Finder outside the workspace.
- Implemented hidden automatic login when opening application using Finder integration.
- Logging to file in ~/Library/Logs
- Unified workspace and all files views to show both local and depot files and folders.
- Removed my workspace view references and logic.
- Editing unmapped files on server.
- First version of adding file to unmapped folders.
- Showing opened by and edit actions in column details for all depot files.
- Improved mappings functionality.
- Enabled same feature options for mapped and unmapped folders and files.
- Redesigned from scratch mapping and unmapping procedures for adding and removing files.
- Implemented cleaning workspace using new mapping functionality. Removed debug overlay coloring.
- Automated workspace creation
- Improvements in editing files already mapped to workspace.
- Implemented deleting remote files.
- Implemented first version of move operation for remote files.
- Removing last workspace information when disconnecting from workspace using app menu.
- Implemented editing and submitting using symbolic links in project folder. New finder menu service for symbolic links Show in Piper which acts like share link functionality.
- New icons for files and folders not tracked in the filesystem.
- Improvements in showing file using share link.
- Switched to new way of retrieving files in order to show user changes.
- Redesigned and implemented new functionality for chaining operations with mapping.
- Improvements and redesign of Edit/add actions to use new chaining logic . Fixed issue with file edit.
- Improvements in window showing when using services.
- Simplified file loading so the local files appears only when remote are also loaded.
- Improved deleting of untracked files to avoid mapping and marking for delete.
- Enabling simple copy paste and moving of remote and local files.
- Added abort for exception handling in order to force crashing application on critical failures
- Added custom exception handling for catching runtime errors to log and crash instead of continuing in unstable state.
- Changed file copying to use mark for add .
- Simplified and fixed responding file representations to mapping changes.

Bug Fixes
- Fixed crash when synchronizing.
- Fixed sync issue when downloading directory without file size information.
- Fixed issue with unread list crashing when file is not existing on disk.
- Fixed incorrect sync progress calculation.
- Removed relative path issues.
- Fixed many of case-sensitivity problems.
- Fixed deprecated methods and related issues in OS X 10.10.
- Fixed folder rename not updating in column view. Revised and fixed many potential problems from implicit casting.
- Fixed missing sync button on fast sync completion.
- Refreshing mapping on synchronization. Fixed symbolic links not appearing until app is restarted.
- Fixed latest crashing of autosync.
- Fixed loading indicator issues.
- Fixed and redesigned submit dialog to work correctly with Submit All Files option in Finder.
- Fixed multiple error messages on network outage. Redesigned showing errors in main window.
- Fixed opening random locations when using Finder integration.
- Fixed issue when panel was detached from parent window.
- Fixed bug when creating new workspace wouldn't store default settings.
- Fixed memory issues with network operations.
- Fixes in relogging mappings and file listing.
- Improvements in editing unmapped files.
- Fixed crash when adding file outside workspace.
- Fixed breadcrumbs control issue.
- Fixed issue with double parent folders when opening unmapped files.
- Fixed crashes on sync after mapping new files.
- Fixed issue with editing file using Finder
-- Merging code and additional fixes in add button functionality.
- Fixed unsync not working
- Fixed submit panel issue not selecting files with different name case.
- Fixed missing revert and sync to workspace actions in some cases.
- Fixed issue with Submit and Edit finder actions. Improvements in stability of finder integration.
- Fixed issue with unsubmitted folders breaking status of files inside.
- Fixed issue with added files not showing correct icon and status.
- Fixed bug with file edit resulting in a new directory named exactly like a file.
- Fixed issue with reloading of subpath resulting in untracked folders.
- Fixed mapping issue when result was always view mapping not relative.
- Fixed submit panel showing more than once.
- Fixed illustrator services not working.
- Fixed userdefaults preferences problem with workspace name being null.
- Fixed userdefaults keypath problem of dot-containing workspace names.
- Forcing recreating of browser to possibly prevent pre-10.10 errors with automatic workspace selection.
- Fixed adding file to depot not presenting correct icon.
- Fixed issues with reverting a file that was marked for add.
- Presenting error when trying to submit untracked files.
- Fixed issue when submit files service crashed when using unmapped files.
- Fixed file representation disappearing when removing file.
- Fixed issue with symlinks resolving working on 10.10 only. Issue related to workspace selection not showing.
- Fixed error panel method calls unavailable in Mac OS versions before 10.10. Issue related to hanging error panels.
- Fixed removing a local file resulting in action progress freezing.
- Fixed open file not working after edit.
- Fixing crash when mapping changed. Issue related to moving local file to unmapped folder and other similar cases.
#1 11252 alan_petersen Rename/move file(s)
//guest/perforce_software/piper/mac/Perforce/Classes/WindowControllers/LoginPanelController.xib
#1 10744 alan_petersen Rename/move file(s)
//guest/perforce_software/piper/Perforce/Classes/WindowControllers/LoginPanelController.xib
#1 8919 Matt Attaway Initial add of Piper, a lightweight Perforce client for artists and designers.