[vlc-commits] macosx: Improvement in Go-To Time Panel, added hh:mm:ss format
Daksh Shah
git at videolan.org
Tue Sep 4 17:26:58 CEST 2018
vlc | branch: master | Daksh Shah <daksh17336 at iiitd.ac.in> | Fri Jun 22 22:40:36 2018 +0530| [5b86f6d2008ffca4590163f0ba294f36fac3ef9c] | committer: Felix Paul Kühne
macosx: Improvement in Go-To Time Panel, added hh:mm:ss format
GitLab Issue #9
Signed-off-by: Felix Paul Kühne <felix at feepk.net>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5b86f6d2008ffca4590163f0ba294f36fac3ef9c
---
modules/gui/macosx/UI/TimeSelectionPanel.xib | 194 ++++++++++++++++-----
modules/gui/macosx/VLCMainMenu.m | 4 +-
.../gui/macosx/VLCTimeSelectionPanelController.h | 21 ++-
.../gui/macosx/VLCTimeSelectionPanelController.m | 74 +++++---
4 files changed, 213 insertions(+), 80 deletions(-)
diff --git a/modules/gui/macosx/UI/TimeSelectionPanel.xib b/modules/gui/macosx/UI/TimeSelectionPanel.xib
index 33397ec5e6..b80e70e18f 100644
--- a/modules/gui/macosx/UI/TimeSelectionPanel.xib
+++ b/modules/gui/macosx/UI/TimeSelectionPanel.xib
@@ -1,18 +1,22 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9531" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14109" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
- <development version="7000" identifier="xcode"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9531"/>
+ <deployment identifier="macosx"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14109"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="VLCTimeSelectionPanelController">
<connections>
<outlet property="cancelButton" destination="C7h-06-Udn" id="vms-H9-Fs6"/>
<outlet property="goToLabel" destination="bB6-Le-Ilg" id="Psy-fF-eTf"/>
+ <outlet property="hoursLabel" destination="nrO-yt-AnE" id="twB-pr-AtL"/>
+ <outlet property="hoursTextField" destination="KFt-K5-ogc" id="kqo-Bi-bkG"/>
+ <outlet property="minsLabel" destination="jTf-bH-u7w" id="e6b-gc-MHz"/>
+ <outlet property="minsTextField" destination="Smg-Kh-Pjv" id="W3E-YA-Glh"/>
<outlet property="okButton" destination="zrN-B3-Ede" id="TzS-HN-YE3"/>
<outlet property="secsLabel" destination="oMI-0n-rej" id="Heh-nH-7Dv"/>
- <outlet property="stepper" destination="zsp-zD-QHr" id="yab-Mp-27O"/>
- <outlet property="textField" destination="ovY-qj-fWV" id="NtQ-WV-2da"/>
+ <outlet property="secsTextField" destination="ovY-qj-fWV" id="hop-7A-B3h"/>
<outlet property="window" destination="Fqe-af-Tt9" id="u4H-rX-p0W"/>
</connections>
</customObject>
@@ -21,33 +25,124 @@
<window title="GoTo Specific Time" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="Fqe-af-Tt9" userLabel="GoToTime">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
- <rect key="contentRect" x="429" y="553" width="249" height="103"/>
- <rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
+ <rect key="contentRect" x="429" y="553" width="265" height="110"/>
+ <rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
<view key="contentView" id="NrR-3A-NOR">
- <rect key="frame" x="0.0" y="0.0" width="249" height="103"/>
- <autoresizingMask key="autoresizingMask"/>
+ <rect key="frame" x="0.0" y="0.0" width="265" height="110"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="bB6-Le-Ilg">
- <rect key="frame" x="48" y="79" width="153" height="17"/>
+ <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="bB6-Le-Ilg" userLabel="Testlabel">
+ <rect key="frame" x="56" y="87" width="153" height="17"/>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="center" title="Go to specific position" id="vXn-nw-Nrc">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ovY-qj-fWV">
- <rect key="frame" x="20" y="52" width="161" height="19"/>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ovY-qj-fWV" userLabel="Secs Text Field">
+ <rect key="frame" x="176" y="50" width="33" height="19"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" title="0" drawsBackground="YES" id="qZx-Li-5O2">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
- <binding destination="-2" name="value" keyPath="self.jumpTimeValue" id="xWJ-vG-f9H"/>
+ <binding destination="-2" name="value" keyPath="self.jumpSecsValue" id="Vrp-5K-RQW">
+ <dictionary key="options">
+ <bool key="NSContinuouslyUpdatesValue" value="YES"/>
+ </dictionary>
+ </binding>
+ <outlet property="delegate" destination="-2" id="154-Yg-Swi"/>
+ <outlet property="nextKeyView" destination="KFt-K5-ogc" id="Wnf-MK-lCP"/>
</connections>
</textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Smg-Kh-Pjv" userLabel="Mins Text Field">
+ <rect key="frame" x="94" y="50" width="33" height="19"/>
+ <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" title="0" drawsBackground="YES" id="2wj-p0-8uH">
+ <font key="font" metaFont="smallSystem"/>
+ <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.jumpMinsValue" id="ibz-B3-Qzq">
+ <dictionary key="options">
+ <bool key="NSContinuouslyUpdatesValue" value="YES"/>
+ </dictionary>
+ </binding>
+ <outlet property="delegate" destination="-2" id="8ni-yW-Hx8"/>
+ <outlet property="nextKeyView" destination="ovY-qj-fWV" id="CkK-ug-uuR"/>
+ </connections>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="KFt-K5-ogc" userLabel="Hours Text Field">
+ <rect key="frame" x="20" y="50" width="33" height="19"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="33" id="xwZ-sK-Qq8"/>
+ </constraints>
+ <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" title="0" drawsBackground="YES" id="UWz-WZ-unY">
+ <font key="font" metaFont="smallSystem"/>
+ <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.jumpHoursValue" id="hr4-TC-t7a">
+ <dictionary key="options">
+ <bool key="NSContinuouslyUpdatesValue" value="YES"/>
+ </dictionary>
+ </binding>
+ <outlet property="delegate" destination="-2" id="QgZ-hm-D9C"/>
+ <outlet property="nextKeyView" destination="Smg-Kh-Pjv" id="aPL-uL-qxZ"/>
+ </connections>
+ </textField>
+ <stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zsp-zD-QHr" userLabel="Secs Stepper">
+ <rect key="frame" x="209" y="48" width="15" height="22"/>
+ <stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" maxValue="30000" id="8Ok-J5-Vfx"/>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.jumpSecsValue" previousBinding="G0w-1a-j9i" id="Dbd-qx-86s"/>
+ <binding destination="-2" name="maxValue" keyPath="self.secsMax" id="G0w-1a-j9i"/>
+ </connections>
+ </stepper>
+ <stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xMh-Kx-bRX">
+ <rect key="frame" x="127" y="48" width="15" height="22"/>
+ <stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" maxValue="30000" id="WNB-18-kN2"/>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.jumpMinsValue" previousBinding="s1m-Vn-LGE" id="S3p-kD-BS5"/>
+ <binding destination="-2" name="maxValue" keyPath="self.minsMax" id="s1m-Vn-LGE"/>
+ </connections>
+ </stepper>
+ <stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Un1-2R-ijf">
+ <rect key="frame" x="53" y="48" width="15" height="22"/>
+ <stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" maxValue="30000" id="c5h-G9-LlU"/>
+ <connections>
+ <binding destination="-2" name="maxValue" keyPath="self.hoursMax" id="ubF-Xt-qiY"/>
+ <binding destination="-2" name="value" keyPath="self.jumpHoursValue" previousBinding="ubF-Xt-qiY" id="fTw-EH-qRY"/>
+ </connections>
+ </stepper>
+ <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="oMI-0n-rej">
+ <rect key="frame" x="222" y="53" width="25" height="16"/>
+ <textFieldCell key="cell" sendsActionOnEndEditing="YES" title="ss" id="74c-xI-3AS">
+ <font key="font" metaFont="cellTitle"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jTf-bH-u7w">
+ <rect key="frame" x="141" y="53" width="25" height="16"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="mm" id="8HU-gm-EEa">
+ <font key="font" metaFont="cellTitle"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nrO-yt-AnE">
+ <rect key="frame" x="66" y="53" width="19" height="16"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="hh" id="24d-8K-jxZ">
+ <font key="font" metaFont="cellTitle"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zrN-B3-Ede">
- <rect key="frame" x="192" y="13" width="42" height="28"/>
+ <rect key="frame" x="208" y="15" width="42" height="28"/>
<buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" inset="2" id="icy-jS-WFH">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@@ -59,16 +154,9 @@ DQ
<action selector="buttonPressed:" target="-2" id="0qF-5H-5Fz"/>
</connections>
</button>
- <stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zsp-zD-QHr">
- <rect key="frame" x="187" y="50" width="15" height="22"/>
- <stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" increment="10" maxValue="30000" valueWraps="YES" id="8Ok-J5-Vfx"/>
- <connections>
- <binding destination="-2" name="value" keyPath="self.jumpTimeValue" id="ade-2M-vOh"/>
- </connections>
- </stepper>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="C7h-06-Udn">
- <rect key="frame" x="132" y="13" width="62" height="28"/>
- <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" inset="2" id="fXt-nh-exA">
+ <rect key="frame" x="148" y="15" width="62" height="28"/>
+ <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" controlSize="small" lineBreakMode="truncatingTail" borderStyle="border" inset="2" id="fXt-nh-exA">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<string key="keyEquivalent" base64-UTF8="YES">
@@ -79,31 +167,45 @@ Gw
<action selector="buttonPressed:" target="-2" id="Ad9-7v-03L"/>
</connections>
</button>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="oMI-0n-rej">
- <rect key="frame" x="205" y="54" width="26" height="14"/>
- <textFieldCell key="cell" sendsActionOnEndEditing="YES" title="sec." id="74c-xI-3AS">
- <font key="font" metaFont="smallSystem"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
</subviews>
<constraints>
- <constraint firstItem="bB6-Le-Ilg" firstAttribute="centerX" secondItem="NrR-3A-NOR" secondAttribute="centerX" id="2ar-zr-OPH"/>
- <constraint firstItem="zsp-zD-QHr" firstAttribute="centerY" secondItem="oMI-0n-rej" secondAttribute="centerY" id="5Si-zM-Wbp"/>
- <constraint firstItem="oMI-0n-rej" firstAttribute="leading" secondItem="zsp-zD-QHr" secondAttribute="trailing" constant="7" id="Q0I-mS-G2Z"/>
- <constraint firstItem="zrN-B3-Ede" firstAttribute="centerY" secondItem="C7h-06-Udn" secondAttribute="centerY" id="RP9-dn-ebh"/>
- <constraint firstItem="ovY-qj-fWV" firstAttribute="centerY" secondItem="zsp-zD-QHr" secondAttribute="centerY" id="Tvb-su-gcK"/>
- <constraint firstItem="oMI-0n-rej" firstAttribute="trailing" secondItem="zrN-B3-Ede" secondAttribute="trailing" id="Utx-5l-wnC"/>
- <constraint firstItem="ovY-qj-fWV" firstAttribute="leading" secondItem="NrR-3A-NOR" secondAttribute="leading" constant="20" id="VRc-8A-Cl1"/>
- <constraint firstAttribute="bottom" secondItem="zrN-B3-Ede" secondAttribute="bottom" constant="19" id="ZK9-PI-9Nx"/>
- <constraint firstItem="ovY-qj-fWV" firstAttribute="top" secondItem="bB6-Le-Ilg" secondAttribute="bottom" constant="8" id="cyH-iI-1pU"/>
- <constraint firstItem="zrN-B3-Ede" firstAttribute="leading" secondItem="C7h-06-Udn" secondAttribute="trailing" constant="8" id="hZt-62-vqJ"/>
- <constraint firstItem="zsp-zD-QHr" firstAttribute="leading" secondItem="ovY-qj-fWV" secondAttribute="trailing" constant="8" id="hgu-JE-E5L"/>
- <constraint firstAttribute="trailing" secondItem="zrN-B3-Ede" secondAttribute="trailing" constant="20" id="pIs-W7-PnF"/>
- <constraint firstItem="bB6-Le-Ilg" firstAttribute="top" secondItem="NrR-3A-NOR" secondAttribute="top" constant="7" id="zoD-H1-ed3"/>
+ <constraint firstItem="nrO-yt-AnE" firstAttribute="baseline" secondItem="KFt-K5-ogc" secondAttribute="baseline" id="08O-Hq-yaf"/>
+ <constraint firstItem="ovY-qj-fWV" firstAttribute="leading" secondItem="jTf-bH-u7w" secondAttribute="trailing" constant="12" id="0WE-Bg-ZGS"/>
+ <constraint firstItem="KFt-K5-ogc" firstAttribute="width" secondItem="Smg-Kh-Pjv" secondAttribute="width" id="24N-1L-5Qx"/>
+ <constraint firstItem="C7h-06-Udn" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="NrR-3A-NOR" secondAttribute="leading" constant="20" symbolic="YES" id="8C2-n0-ddd"/>
+ <constraint firstItem="bB6-Le-Ilg" firstAttribute="top" secondItem="NrR-3A-NOR" secondAttribute="top" constant="6" id="AmG-Sh-CJP"/>
+ <constraint firstItem="xMh-Kx-bRX" firstAttribute="leading" secondItem="Smg-Kh-Pjv" secondAttribute="trailing" constant="2" id="CyX-lL-1I2"/>
+ <constraint firstItem="ovY-qj-fWV" firstAttribute="baseline" secondItem="KFt-K5-ogc" secondAttribute="baseline" id="Hee-6R-Kdn"/>
+ <constraint firstItem="jTf-bH-u7w" firstAttribute="leading" secondItem="xMh-Kx-bRX" secondAttribute="trailing" constant="3" id="Hm4-N4-hNM" userLabel="Mins Label.leading = Mins Stepper.trailing + 2"/>
+ <constraint firstAttribute="trailing" secondItem="oMI-0n-rej" secondAttribute="trailing" constant="20" symbolic="YES" id="JlG-tA-T1w"/>
+ <constraint firstItem="jTf-bH-u7w" firstAttribute="baseline" secondItem="KFt-K5-ogc" secondAttribute="baseline" id="JxE-ZG-eSY"/>
+ <constraint firstItem="C7h-06-Udn" firstAttribute="baseline" secondItem="zrN-B3-Ede" secondAttribute="baseline" id="PVu-B9-CmM"/>
+ <constraint firstItem="KFt-K5-ogc" firstAttribute="leading" secondItem="NrR-3A-NOR" secondAttribute="leading" constant="20" symbolic="YES" id="PfD-38-yip"/>
+ <constraint firstItem="Un1-2R-ijf" firstAttribute="leading" secondItem="KFt-K5-ogc" secondAttribute="trailing" constant="2" id="Rhe-9Q-woZ"/>
+ <constraint firstItem="zsp-zD-QHr" firstAttribute="leading" secondItem="ovY-qj-fWV" secondAttribute="trailing" constant="2" id="SZW-yH-BM4"/>
+ <constraint firstItem="zrN-B3-Ede" firstAttribute="top" secondItem="oMI-0n-rej" secondAttribute="bottom" constant="14" id="SiP-hv-2S0"/>
+ <constraint firstItem="KFt-K5-ogc" firstAttribute="centerY" secondItem="Un1-2R-ijf" secondAttribute="centerY" id="WUd-ZI-Bol"/>
+ <constraint firstItem="Smg-Kh-Pjv" firstAttribute="centerY" secondItem="xMh-Kx-bRX" secondAttribute="centerY" id="X15-o0-6ZP"/>
+ <constraint firstItem="zrN-B3-Ede" firstAttribute="leading" secondItem="C7h-06-Udn" secondAttribute="trailing" constant="8" id="XLd-j6-TX5"/>
+ <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="bB6-Le-Ilg" secondAttribute="trailing" constant="20" symbolic="YES" id="epj-mp-Lnm"/>
+ <constraint firstItem="oMI-0n-rej" firstAttribute="leading" secondItem="zsp-zD-QHr" secondAttribute="trailing" constant="2" id="g1Z-YD-UJw"/>
+ <constraint firstAttribute="trailing" secondItem="zrN-B3-Ede" secondAttribute="trailing" constant="20" id="gCl-V6-Bjt"/>
+ <constraint firstItem="ovY-qj-fWV" firstAttribute="centerY" secondItem="zsp-zD-QHr" secondAttribute="centerY" id="iXo-b7-Mh2"/>
+ <constraint firstItem="bB6-Le-Ilg" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="NrR-3A-NOR" secondAttribute="leading" constant="20" symbolic="YES" id="j6a-V4-oje"/>
+ <constraint firstItem="Smg-Kh-Pjv" firstAttribute="width" secondItem="ovY-qj-fWV" secondAttribute="width" id="jHZ-4g-K0X"/>
+ <constraint firstItem="nrO-yt-AnE" firstAttribute="leading" secondItem="Un1-2R-ijf" secondAttribute="trailing" constant="2" id="kjd-h3-aEZ"/>
+ <constraint firstItem="oMI-0n-rej" firstAttribute="baseline" secondItem="KFt-K5-ogc" secondAttribute="baseline" id="lyY-Ad-caz"/>
+ <constraint firstItem="Smg-Kh-Pjv" firstAttribute="baseline" secondItem="KFt-K5-ogc" secondAttribute="baseline" id="mOE-Qf-1wF"/>
+ <constraint firstAttribute="bottom" secondItem="zrN-B3-Ede" secondAttribute="bottom" constant="21" id="nIx-yc-atT"/>
+ <constraint firstItem="KFt-K5-ogc" firstAttribute="top" secondItem="bB6-Le-Ilg" secondAttribute="bottom" constant="18" id="oqx-8I-mgW"/>
+ <constraint firstItem="Smg-Kh-Pjv" firstAttribute="leading" secondItem="nrO-yt-AnE" secondAttribute="trailing" constant="11" id="rnE-ZZ-e08"/>
+ <constraint firstItem="bB6-Le-Ilg" firstAttribute="centerX" secondItem="NrR-3A-NOR" secondAttribute="centerX" id="uga-pS-4jS"/>
</constraints>
</view>
+ <connections>
+ <outlet property="initialFirstResponder" destination="KFt-K5-ogc" id="RUn-tc-Qvg"/>
+ </connections>
+ <point key="canvasLocation" x="146.5" y="157"/>
</window>
</objects>
</document>
diff --git a/modules/gui/macosx/VLCMainMenu.m b/modules/gui/macosx/VLCMainMenu.m
index d3bf3cb4ac..983492087d 100644
--- a/modules/gui/macosx/VLCMainMenu.m
+++ b/modules/gui/macosx/VLCMainMenu.m
@@ -836,9 +836,9 @@
if (p_input) {
/* we can obviously only do that if an input is available */
vlc_tick_t length = var_GetInteger(p_input, "length");
- [_timeSelectionPanel setMaxValue:(int)SEC_FROM_VLC_TICK(length)];
+ [_timeSelectionPanel setMaxTime:(int)SEC_FROM_VLC_TICK(length)];
vlc_tick_t pos = var_GetInteger(p_input, "time");
- [_timeSelectionPanel setJumpTimeValue: (int)SEC_FROM_VLC_TICK(pos)];
+ [_timeSelectionPanel setPosition: (int)SEC_FROM_VLC_TICK(pos)];
[_timeSelectionPanel runModalForWindow:[NSApp mainWindow]
completionHandler:^(NSInteger returnCode, int64_t returnTime) {
diff --git a/modules/gui/macosx/VLCTimeSelectionPanelController.h b/modules/gui/macosx/VLCTimeSelectionPanelController.h
index 68288956e6..dd6e15392d 100644
--- a/modules/gui/macosx/VLCTimeSelectionPanelController.h
+++ b/modules/gui/macosx/VLCTimeSelectionPanelController.h
@@ -1,7 +1,7 @@
/*****************************************************************************
* TimeSelectionPanelController.h: Controller for time selection panel
*****************************************************************************
- * Copyright (C) 2015 VideoLAN and authors
+ * Copyright (C) 2015-2018 VideoLAN and authors
* Author: David Fuhrmann <david dot fuhrmann at googlemail dot com>
*
* This program is free software; you can redistribute it and/or modify
@@ -24,17 +24,25 @@
@interface VLCTimeSelectionPanelController : NSWindowController
@property (readwrite, weak) IBOutlet NSButton *cancelButton;
- at property (readwrite, weak) IBOutlet NSTextField *textField;
@property (readwrite, weak) IBOutlet NSTextField *goToLabel;
@property (readwrite, weak) IBOutlet NSButton *okButton;
@property (readwrite, weak) IBOutlet NSTextField *secsLabel;
- at property (readwrite, weak) IBOutlet NSStepper *stepper;
+ at property (readwrite, weak) IBOutlet NSTextField *minsLabel;
+ at property (readwrite, weak) IBOutlet NSTextField *hoursLabel;
- at property (nonatomic) int jumpTimeValue;
- at property (nonatomic) int maxValue;
+ at property (nonatomic) int jumpSecsValue;
+ at property (nonatomic) int jumpMinsValue;
+ at property (nonatomic) int jumpHoursValue;
+ at property (nonatomic) int secsMax;
+ at property (nonatomic) int minsMax;
+ at property (nonatomic) int hoursMax;
- (IBAction)buttonPressed:(id)sender;
+- (int)getTimeInSecs;
+- (void)setMaxTime:(int)secsMax;
+- (void)setPosition:(int)secsPos;
+
/**
* Completion handler for textfield panel
* \param returnCode Result from panel. Can be NSModalResponseOK or NSModalResponseCancel.
@@ -49,5 +57,4 @@ typedef void(^TimeSelectionCompletionHandler)(NSInteger returnCode, int64_t retu
*/
- (void)runModalForWindow:(NSWindow *)window completionHandler:(TimeSelectionCompletionHandler)handler;
-
- at end
\ No newline at end of file
+ at end
diff --git a/modules/gui/macosx/VLCTimeSelectionPanelController.m b/modules/gui/macosx/VLCTimeSelectionPanelController.m
index 9fd6eb3de7..1589325320 100644
--- a/modules/gui/macosx/VLCTimeSelectionPanelController.m
+++ b/modules/gui/macosx/VLCTimeSelectionPanelController.m
@@ -1,7 +1,7 @@
/*****************************************************************************
* TimeSelectionPanelController.m: Controller for time selection panel
*****************************************************************************
- * Copyright (C) 2015 VideoLAN and authors
+ * Copyright (C) 2015-2018 VideoLAN and authors
* Author: David Fuhrmann <david dot fuhrmann at googlemail dot com>
*
* This program is free software; you can redistribute it and/or modify
@@ -28,7 +28,6 @@
{
TimeSelectionCompletionHandler _completionHandler;
}
-
@end
@implementation VLCTimeSelectionPanelController
@@ -49,35 +48,61 @@
{
[_cancelButton setTitle: _NS("Cancel")];
[_okButton setTitle: _NS("OK")];
- [_secsLabel setStringValue: _NS("sec.")];
+ [_secsLabel setStringValue: _NS("ss")];
+ [_minsLabel setStringValue: _NS("mm")];
+ [_hoursLabel setStringValue: _NS("hh")];
[_goToLabel setStringValue: _NS("Jump to Time")];
- [_textField setFormatter:[[PositionFormatter alloc] init]];
+}
+
+- (void)controlTextDidChange:(NSNotification *)notification
+{
+ [self setPosition:[self getTimeInSecs]];
+}
+
+- (void)setMaxTime:(int)secsMax
+{
+ [self setHoursMax:(int)secsMax / 3600];
+
+ if (secsMax >= 3600) {
+ [self setMinsMax:59];
+ [self setSecsMax:59];
+ }
+ else if (secsMax >= 60) {
+ [self setMinsMax:(int)secsMax / 60];
+ [self setSecsMax:59];
+ }
+ else {
+ [self setSecsMax:secsMax];
+ [self setMinsMax:0];
+ }
+}
+
+- (void)setPosition:(int)secsPos
+{
+ int minsPos = secsPos / 60;
+ secsPos = secsPos % 60;
+ int hoursPos = minsPos / 60;
+ minsPos = minsPos % 60;
+
+ [self setJumpSecsValue: secsPos];
+ [self setJumpMinsValue: minsPos];
+ [self setJumpHoursValue: hoursPos];
+}
+
+- (int)getTimeInSecs
+{
+ // calculate resulting time in secs:
+ int timeInSec = self.jumpSecsValue;
+ timeInSec += self.jumpMinsValue * 60;
+ timeInSec += self.jumpHoursValue * 3600;
+ return timeInSec;
}
- (IBAction)buttonPressed:(id)sender
{
[self.window orderOut:sender];
[NSApp endSheet: self.window];
-
- // calculate resulting time in secs:
- int64_t timeInSec = 0;
- NSString *string = [_textField stringValue];
- if ([[string componentsSeparatedByString: @":"] count] > 1 &&
- [[string componentsSeparatedByString: @":"] count] <= 3) {
- NSArray *ourTempArray = \
- [string componentsSeparatedByString: @":"];
-
- if ([[string componentsSeparatedByString: @":"] count] == 3) {
- timeInSec += ([[ourTempArray firstObject] intValue] *3600); //h
- timeInSec += ([[ourTempArray objectAtIndex:1] intValue] *60); //m
- timeInSec += [[ourTempArray objectAtIndex:2] intValue]; //s
- } else {
- timeInSec += ([[ourTempArray firstObject] intValue] *60); //m
- timeInSec += [[ourTempArray objectAtIndex:1] intValue]; //s
- }
- }
- else
- timeInSec = [string intValue];
+ int64_t timeInSec = [self getTimeInSecs];
if (_completionHandler)
_completionHandler(sender == _okButton ? NSModalResponseOK : NSModalResponseCancel, timeInSec);
@@ -86,7 +111,6 @@
- (void)runModalForWindow:(NSWindow *)window completionHandler:(TimeSelectionCompletionHandler)handler
{
[self window];
- [_stepper setMaxValue:self.maxValue];
_completionHandler = [handler copy];
More information about the vlc-commits
mailing list