diff --git a/CHANGELOG.md b/CHANGELOG.md index e05beb6c..cd336d7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Next version * Marquee now displays one additional character: https://github.com/captbaritone/webamp/issues/543 +* Track numbers in playlist are now padded to the length of the longest track number. ## 1.0.0 diff --git a/css/playlist-window.css b/css/playlist-window.css index 9139e9df..504327fb 100644 --- a/css/playlist-window.css +++ b/css/playlist-window.css @@ -79,15 +79,10 @@ user-select: none; } -#webamp .playlist-track-numbers > div, #webamp .playlist-track-durations > div { padding-right: 3px; text-align: right; } -#webamp .playlist-track-numbers > div { - text-align: center; - padding-left: 1px; -} #webamp .playlist-track-titles { flex: 1 1 auto; diff --git a/js/components/PlaylistWindow/TrackList.js b/js/components/PlaylistWindow/TrackList.js index 25051058..42609cb4 100644 --- a/js/components/PlaylistWindow/TrackList.js +++ b/js/components/PlaylistWindow/TrackList.js @@ -2,13 +2,21 @@ import React from "react"; import { connect } from "react-redux"; import { getTimeStr } from "../../utils"; -import { getVisibleTrackIds, getScrollOffset } from "../../selectors"; +import { + getVisibleTrackIds, + getScrollOffset, + getNumberOfTracks +} from "../../selectors"; import { TRACK_HEIGHT } from "../../constants"; import { SELECT_ZERO } from "../../actionTypes"; import { dragSelected, scrollPlaylistByDelta } from "../../actionCreators"; import TrackCell from "./TrackCell"; import TrackTitle from "./TrackTitle"; +function getNumberLength(number) { + return number.toString().length; +} + class TrackList extends React.Component { constructor(props) { super(props); @@ -57,6 +65,9 @@ class TrackList extends React.Component { render() { const { tracks, offset } = this.props; + const maxTrackNumberLength = getNumberLength(this.props.numberOfTracks); + const paddedTrackNumForIndex = i => + (i + 1 + offset).toString().padStart(maxTrackNumberLength, "\u00A0"); return (