[UI] play/pause icon switching + better looking

This commit is contained in:
emeric
2016-01-13 19:05:37 +01:00
parent 18a979a67a
commit b68fb38e6e
5 changed files with 52 additions and 23 deletions
+1 -1
View File
@@ -51,9 +51,9 @@
- Add a download button to get the current playlist in a streamed zip file - Add a download button to get the current playlist in a streamed zip file
- Add a upload button to upload media files in a dedicated directory - Add a upload button to upload media files in a dedicated directory
- Perform a search for each key pressed (using a timer, in JS) - Perform a search for each key pressed (using a timer, in JS)
- Save user prefs in local storage (volume, loop, shuffle, current playqueue, etc.)
[desktop] [desktop]
- Better style... - Better style...
- MediaPlayer: move the slider using js (http://redmine.webtoolkit.eu/boards/2/topics/7924?r=8478, http://redmine.emweb.be/boards/2/topics/10994)
- TrackView: Reselect the current selected item when displaying the updated search results - TrackView: Reselect the current selected item when displaying the updated search results
- Add keyboard shortcuts - Add keyboard shortcuts
[mobile] [mobile]
+5 -1
View File
@@ -529,7 +529,11 @@
</message> </message>
<message id="wa-audio-player"> <message id="wa-audio-player">
${audio}${prev}${play-pause}${next}${cover}${artist}${track}${release}${curtime}${seekbar}${duration}${volume}${shuffle}${repeat}${playlist} ${audio}${prev}${play-pause}${next}
<div class="mediaplayer-cover">
${cover}
</div>
${artist}${track}${release}${curtime}${seekbar}${duration}${volume}${shuffle}${repeat}${playlist}
</message> </message>
</messages> </messages>
+22 -9
View File
@@ -1,5 +1,6 @@
.main-nav { .main-nav {
margin-bottom: 0px; margin-bottom: 0px;
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
} }
.Wt-hrh2 { .Wt-hrh2 {
@@ -13,6 +14,7 @@
.playqueue { .playqueue {
background-color: #EEE; background-color: #EEE;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
} }
.playqueue-playing { .playqueue-playing {
@@ -35,14 +37,6 @@
height: 64px; height: 64px;
} }
.mediaplayer-current-cover {
width: 72px;
height: 72px;
border-radius: 8px;
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.5);
}
.mediaplayer-track { .mediaplayer-track {
font-weight: bold; font-weight: bold;
font-size: 120%; font-size: 120%;
@@ -59,14 +53,33 @@
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
height: 72px; height: 72px;
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
}
.mediaplayer-cover {
margin: 8px;
width: 64px;
min-width: 64px;
height: 64px;
min-height: 64px;
display: flex;
justify-content: space-between;
align-items: center;
}
.mediaplayer-cover img {
border-radius: 8px;
border-radius: 8px;
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
} }
.mediaplayer-btn { .mediaplayer-btn {
margin: 8px; margin: 8px;
} }
.mediaplayer-btn:before { .mediaplayer-btn i {
cursor: pointer; cursor: pointer;
text-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
} }
.mediaplayer-btn-active { .mediaplayer-btn-active {
+23 -9
View File
@@ -177,7 +177,7 @@ AudioPlayer::AudioPlayer(Wt::WContainerWidget *parent)
_playNext.emit(); _playNext.emit();
})); }));
Wt::WText *playPauseBtn = new Wt::WText("<i class=\"fa fa-play fa-3x\"></i>", Wt::XHTMLText); Wt::WText *playPauseBtn = new Wt::WText("<i class=\"fa fa-play fa-3x fa-fw\"></i>", Wt::XHTMLText);
playPauseBtn->addStyleClass("mediaplayer-btn"); playPauseBtn->addStyleClass("mediaplayer-btn");
bindWidget("play-pause", playPauseBtn); bindWidget("play-pause", playPauseBtn);
@@ -196,19 +196,29 @@ AudioPlayer::AudioPlayer(Wt::WContainerWidget *parent)
document.lms.audio.volumeSlider = " + volumeSlider->jsRef() + ";\ document.lms.audio.volumeSlider = " + volumeSlider->jsRef() + ";\
document.lms.audio.curTimeText = " + trackCurrentTime->jsRef() + ";\ document.lms.audio.curTimeText = " + trackCurrentTime->jsRef() + ";\
document.lms.audio.playPause = " + playPauseBtn->jsRef() + ";\ document.lms.audio.playPause = " + playPauseBtn->jsRef() + ";\
\ \
document.lms.audio.offset = 0;\ document.lms.audio.offset = 0;\
document.lms.audio.curTime = 0;\ document.lms.audio.curTime = 0;\
document.lms.audio.state = \"init\";\ document.lms.audio.state = \"init\";\
document.lms.audio.volume = 1;\ document.lms.audio.volume = 1;\
\ \
document.lms.audio.seekbar.value = 0;\ document.lms.audio.seekbar.value = 0;\
document.lms.audio.seekbar.disabled = true;\ document.lms.audio.seekbar.disabled = true;\
\ \
document.lms.audio.volumeSlider.min = 0;\ document.lms.audio.volumeSlider.min = 0;\
document.lms.audio.volumeSlider.max = 100;\ document.lms.audio.volumeSlider.max = 100;\
document.lms.audio.volumeSlider.value = 100;\ document.lms.audio.volumeSlider.value = 100;\
\ \
function updateUIPlaying() { \
var icon = document.lms.audio.playPause.getElementsByTagName(\"i\")[0]; \
icon.className = \"fa fa-pause fa-3x fa-fw\"; \
} \
\
function updateUIStopped() { \
var icon = document.lms.audio.playPause.getElementsByTagName(\"i\")[0]; \
icon.className = \"fa fa-play fa-3x fa-fw\"; \
} \
\
function updateUI() {\ function updateUI() {\
document.lms.audio.curTimeText.innerHTML = document.lms.audio.curTime;\ document.lms.audio.curTimeText.innerHTML = document.lms.audio.curTime;\
document.lms.audio.seekbar.value = document.lms.audio.curTime;\ document.lms.audio.seekbar.value = document.lms.audio.curTime;\
@@ -255,18 +265,22 @@ AudioPlayer::AudioPlayer(Wt::WContainerWidget *parent)
updateUI();\ updateUI();\
} \ } \
\ \
function playPause() {\ function playPause() { \
if (document.lms.audio.state == \"init\") \ if (document.lms.audio.state == \"init\") \
return;\ return;\
\ \
if (document.lms.audio.audio.paused)\ if (document.lms.audio.audio.paused) \
document.lms.audio.audio.play();\ document.lms.audio.audio.play(); \
else\ else \
document.lms.audio.audio.pause();\ document.lms.audio.audio.pause();\
\ \
}\ }\
\ \
document.lms.audio.audio.addEventListener('timeupdate', updateCurTime); \ document.lms.audio.audio.addEventListener('timeupdate', updateCurTime); \
document.lms.audio.audio.addEventListener('playing', updateUIPlaying); \
document.lms.audio.audio.addEventListener('play', updateUIPlaying); \
document.lms.audio.audio.addEventListener('pause', updateUIStopped); \
document.lms.audio.audio.addEventListener('ended', updateUIStopped); \
document.lms.audio.seekbar.addEventListener('change', seek);\ document.lms.audio.seekbar.addEventListener('change', seek);\
document.lms.audio.seekbar.addEventListener('input', seeking);\ document.lms.audio.seekbar.addEventListener('input', seeking);\
document.lms.audio.seekbar.addEventListener('mousedown', seekMouseDown);\ document.lms.audio.seekbar.addEventListener('mousedown', seekMouseDown);\
+1 -3
View File
@@ -278,10 +278,8 @@ _trackSelector(new TrackSelector())
_model = new Wt::WStandardItemModel(0, 3, this); _model = new Wt::WStandardItemModel(0, 3, this);
// 0 Column is hidden (track id) // 0 Column is hidden (track id)
_model->setHeaderData(COLUMN_ID_TRACK_ID, Wt::WString("#"));
_model->setHeaderData(COLUMN_ID_COVER, Wt::WString("Cover"));
_model->setHeaderData(COLUMN_ID_NAME, Wt::WString("Track"));
this->setHeaderHeight(0);
this->setModel(_model); this->setModel(_model);
this->setSelectionMode(Wt::ExtendedSelection); this->setSelectionMode(Wt::ExtendedSelection);
this->setSortingEnabled(false); this->setSortingEnabled(false);