From 25b7531b75fe4b1d2db222bd3e860a0754b1733d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <felix@feepk.net> Date: Sun, 5 May 2019 17:16:10 +0200 Subject: [PATCH] macosx/library: add 'NEW' indicator for media that was never played before --- .../UI/VLCLibraryCollectionViewItem.xib | 21 ++++++++++++++----- .../library/VLCLibraryCollectionViewItem.h | 1 + .../library/VLCLibraryCollectionViewItem.m | 5 +++++ .../gui/macosx/library/VLCLibraryController.m | 3 +++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/modules/gui/macosx/UI/VLCLibraryCollectionViewItem.xib b/modules/gui/macosx/UI/VLCLibraryCollectionViewItem.xib index 021f5b4cb8c8..4639a95f6fcb 100644 --- a/modules/gui/macosx/UI/VLCLibraryCollectionViewItem.xib +++ b/modules/gui/macosx/UI/VLCLibraryCollectionViewItem.xib @@ -14,6 +14,7 @@ <outlet property="mediaTitleTextField" destination="OBS-Eh-1mT" id="h1n-PU-IAx"/> <outlet property="playInstantlyButton" destination="S3I-5Z-qgS" id="JlC-bE-i5Y"/> <outlet property="progressIndicator" destination="dFt-oZ-h9P" id="JC6-gk-Mid"/> + <outlet property="unplayedIndicatorTextField" destination="u2r-zy-XEW" id="56s-K4-Kxr"/> <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/> </connections> </customObject> @@ -68,10 +69,10 @@ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="VAn-gF-QiZ"> - <rect key="frame" x="-2" y="0.0" width="42" height="19"/> - <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="LSS-jh-llZ"> - <font key="font" size="15" name=".AppleSystemUIFont"/> + <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="u2r-zy-XEW"> + <rect key="frame" x="224" y="1" width="34" height="17"/> + <textFieldCell key="cell" lineBreakMode="clipping" title="NEW" id="NeT-5U-eZn"> + <font key="font" metaFont="system"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> </textFieldCell> @@ -90,12 +91,22 @@ <action selector="addToPlaylist:" target="-2" id="2C9-Rn-VAb"/> </connections> </button> + <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="VAn-gF-QiZ"> + <rect key="frame" x="-2" y="0.0" width="42" height="19"/> + <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="LSS-jh-llZ"> + <font key="font" size="15" name=".AppleSystemUIFont"/> + <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + </textField> </subviews> <constraints> - <constraint firstItem="VAn-gF-QiZ" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="0TA-ug-pKW"/> <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="OBS-Eh-1mT" secondAttribute="trailing" id="457-oy-EbD"/> <constraint firstItem="Ubz-8I-W2F" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="7" id="8Qf-Un-Gdl"/> + <constraint firstAttribute="trailing" secondItem="u2r-zy-XEW" secondAttribute="trailing" id="Dd7-va-0UJ"/> + <constraint firstItem="u2r-zy-XEW" firstAttribute="centerY" secondItem="VAn-gF-QiZ" secondAttribute="centerY" id="H5N-j9-THf"/> <constraint firstAttribute="bottom" secondItem="VAn-gF-QiZ" secondAttribute="bottom" id="Kp0-Hx-3Ek"/> + <constraint firstItem="VAn-gF-QiZ" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="QUW-dn-Fbc"/> <constraint firstItem="2aB-sB-hfY" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="YP6-lv-ECe"/> <constraint firstAttribute="trailing" secondItem="Ubz-8I-W2F" secondAttribute="trailing" constant="20" id="ZVz-SL-rxZ"/> <constraint firstItem="tm2-NW-WsZ" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="7" id="cvk-A5-enS"/> diff --git a/modules/gui/macosx/library/VLCLibraryCollectionViewItem.h b/modules/gui/macosx/library/VLCLibraryCollectionViewItem.h index 2880a0a5a85f..d482b64fa1ca 100644 --- a/modules/gui/macosx/library/VLCLibraryCollectionViewItem.h +++ b/modules/gui/macosx/library/VLCLibraryCollectionViewItem.h @@ -34,6 +34,7 @@ extern NSString *VLCLibraryCellIdentifier; @property (readwrite, assign) IBOutlet NSTextField *mediaTitleTextField; @property (readwrite, assign) IBOutlet NSTextField *annotationTextField; +@property (readwrite, assign) IBOutlet NSTextField *unplayedIndicatorTextField; @property (readwrite, assign) IBOutlet NSTextField *durationTextField; @property (readwrite, assign) IBOutlet VLCImageView *mediaImageView; @property (readwrite, assign) IBOutlet NSButton *playInstantlyButton; diff --git a/modules/gui/macosx/library/VLCLibraryCollectionViewItem.m b/modules/gui/macosx/library/VLCLibraryCollectionViewItem.m index ddf1b654b887..508fdd96c8e4 100644 --- a/modules/gui/macosx/library/VLCLibraryCollectionViewItem.m +++ b/modules/gui/macosx/library/VLCLibraryCollectionViewItem.m @@ -70,6 +70,9 @@ NSString *VLCLibraryCellIdentifier = @"VLCLibraryCellIdentifier"; self.annotationTextField.font = [NSFont VLClibraryCellAnnotationFont]; self.annotationTextField.textColor = [NSColor VLClibraryAnnotationColor]; self.annotationTextField.backgroundColor = [NSColor VLClibraryAnnotationBackgroundColor]; + self.unplayedIndicatorTextField.stringValue = _NS("NEW"); + self.unplayedIndicatorTextField.font = [NSFont VLClibraryHighlightCellHighlightLabelFont]; + self.unplayedIndicatorTextField.textColor = [NSColor VLClibraryHighlightColor]; if (@available(macOS 10_14, *)) { [[NSApplication sharedApplication] addObserver:self @@ -168,6 +171,8 @@ NSString *VLCLibraryCellIdentifier = @"VLCLibraryCellIdentifier"; } else { _progressIndicator.hidden = YES; } + + _unplayedIndicatorTextField.hidden = _representedMediaItem.playCount > 0 ? YES : NO; } #pragma mark - actions diff --git a/modules/gui/macosx/library/VLCLibraryController.m b/modules/gui/macosx/library/VLCLibraryController.m index 225bd72d10ee..d8e785150722 100644 --- a/modules/gui/macosx/library/VLCLibraryController.m +++ b/modules/gui/macosx/library/VLCLibraryController.m @@ -102,6 +102,9 @@ input_item_t *p_inputItem = vlc_ml_get_input_item(_p_libraryInstance, mediaItem.libraryID); int ret = [[[VLCMain sharedInstance] playlistController] addInputItem:p_inputItem atPosition:-1 startPlayback:playImmediately]; input_item_Release(p_inputItem); + if (ret == VLC_SUCCESS) { + [mediaItem increasePlayCount]; + } return ret; } -- GitLab