diff --git a/mopidy_iris/__init__.py b/mopidy_iris/__init__.py
index 2e400f87..b37ee8ef 100755
--- a/mopidy_iris/__init__.py
+++ b/mopidy_iris/__init__.py
@@ -12,7 +12,7 @@ from handlers import WebsocketHandler, HttpHandler
from core import IrisCore
logger = logging.getLogger(__name__)
-__version__ = '3.1.3'
+__version__ = '3.2.0'
##
# Core extension class
diff --git a/src/assets/radio-overlay.png b/src/assets/radio-overlay.png
index be8b6b49..935af603 100755
Binary files a/src/assets/radio-overlay.png and b/src/assets/radio-overlay.png differ
diff --git a/src/js/App.js b/src/js/App.js
index 9901bb0d..bbc9dd08 100755
--- a/src/js/App.js
+++ b/src/js/App.js
@@ -147,7 +147,7 @@ class App extends React.Component{
} else if (e.ctrlKey){
var volume = this.props.volume
if (volume !== 'false'){
- volume -= 10
+ volume -= 5
if (volume < 0) volume = 0
this.props.mopidyActions.setVolume(volume)
if (this.props.mute) this.props.mopidyActions.setMute(false)
@@ -164,7 +164,7 @@ class App extends React.Component{
} else if (e.ctrlKey){
var volume = this.props.volume
if (volume !== 'false'){
- volume += 10
+ volume += 5
if (volume > 100) volume = 100
this.props.mopidyActions.setVolume(volume)
if (this.props.mute) this.props.mopidyActions.setMute(false)
@@ -283,4 +283,4 @@ const mapDispatchToProps = (dispatch) => {
}
}
-export default connect(mapStateToProps, mapDispatchToProps)(App)
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(App)
diff --git a/src/js/components/Modal/Modal.js b/src/js/components/Modal/Modal.js
index 53750096..02da993e 100755
--- a/src/js/components/Modal/Modal.js
+++ b/src/js/components/Modal/Modal.js
@@ -67,16 +67,16 @@ class Modal extends React.Component{
const mapStateToProps = (state, ownProps) => {
return {
- current_track: (typeof(state.core.current_track) !== 'undefined' && typeof(state.core.tracks) !== 'undefined' && typeof(state.core.tracks[state.core.current_track.uri]) !== 'undefined' ? state.core.tracks[state.core.current_track.uri] : null),
+ current_track: (state.core.current_track !== undefined && state.core.tracks !== undefined && state.core.tracks[state.core.current_track.uri] !== undefined ? state.core.tracks[state.core.current_track.uri] : null),
uri_schemes: (state.mopidy.uri_schemes ? state.mopidy.uri_schemes : null),
search_settings: (state.ui.search_settings ? state.ui.search_settings : null),
volume: state.mopidy.volume,
mute: state.mopidy.mute,
modal: state.ui.modal,
- radio: state.ui.radio,
+ radio: state.core.radio,
tracks: state.core.tracks,
- artists: state.ui.artists,
- playlists: state.ui.playlists,
+ artists: state.core.artists,
+ playlists: state.core.playlists,
context_menu: state.ui.context_menu,
mopidy_connected: state.mopidy.connected,
spotify_authorized: state.spotify.authorization
diff --git a/src/js/components/TrackList.js b/src/js/components/TrackList.js
index 0f8def6d..2bc6518f 100755
--- a/src/js/components/TrackList.js
+++ b/src/js/components/TrackList.js
@@ -36,10 +36,19 @@ class TrackList extends React.Component{
}
handleKeyUp(e){
- if (!this.digestTracksKeys()) return
- switch(e.keyCode){
-
+ // When we're focussed on certian elements (like form input fields), don't fire any shortcuts
+ var ignoreNodes = ['INPUT', 'TEXTAREA']
+ if (ignoreNodes.indexOf(e.target.nodeName) > -1){
+ return false
+ }
+
+ // No tracks selected - no action required
+ if (!this.digestTracksKeys() || this.digestTracksKeys().length <= 0){
+ return
+ }
+
+ switch(e.keyCode){
case 13: // enter
this.playTracks();
break;
diff --git a/src/js/views/Queue.js b/src/js/views/Queue.js
index 0dbab57d..fa05cf45 100755
--- a/src/js/views/Queue.js
+++ b/src/js/views/Queue.js
@@ -74,7 +74,7 @@ class Queue extends React.Component{
return (
{this.props.radio_enabled ?
: null}
-
+
)
}
@@ -151,8 +151,8 @@ class Queue extends React.Component{
const mapStateToProps = (state, ownProps) => {
return {
- radio: state.ui.radio,
- radio_enabled: (state.ui.radio && state.ui.radio.enabled ? true : false),
+ radio: state.core.radio,
+ radio_enabled: (state.core.radio && state.core.radio.enabled ? true : false),
current_tracklist: state.core.current_tracklist,
current_track: (state.core.current_track !== undefined && state.core.tracks !== undefined && state.core.tracks[state.core.current_track.uri] !== undefined ? state.core.tracks[state.core.current_track.uri] : null)
}
diff --git a/src/scss/global/_forms.scss b/src/scss/global/_forms.scss
index 6699bc06..1027b2d9 100755
--- a/src/scss/global/_forms.scss
+++ b/src/scss/global/_forms.scss
@@ -172,11 +172,11 @@ input[type="submit"] {
.flag {
font-size: 10px;
- margin-left: 3px;
+ margin-left: 5px;
padding: 1px 4px;
line-height: 1.2em;
vertical-align: top;
- margin-top: 6px;
+ margin-top: 1px;
}
@include responsive( $bp_medium ){
diff --git a/src/scss/views/_queue.scss b/src/scss/views/_queue.scss
index d29baab2..fea76f86 100755
--- a/src/scss/views/_queue.scss
+++ b/src/scss/views/_queue.scss
@@ -26,14 +26,14 @@
&.radio-enabled {
.thumbnail {
box-sizing: border-box;
- padding: 10%;
}
.radio-overlay {
position: absolute;
- top: 0;
- left: 0;
- width: 100%;
+ top: -15%;
+ left: -15%;
+ width: 130%;
+ height: 130%;
z-index: 2;
}
}