mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-31 01:30:02 +02:00
some look and feel improvements
This commit is contained in:
@@ -84,21 +84,14 @@ Rectangle {
|
||||
}
|
||||
|
||||
}
|
||||
Image {
|
||||
BusyIndicator {
|
||||
id: busyIndicator
|
||||
source: "../images/loading-animation.svg"
|
||||
anchors.centerIn: parent
|
||||
height: defaultFontHeight * 4
|
||||
width: height
|
||||
|
||||
visible: mainView.loading
|
||||
RotationAnimation {
|
||||
target: busyIndicator
|
||||
from: 0
|
||||
to: 360
|
||||
duration: 1500
|
||||
running: true
|
||||
loops: Animation.Infinite
|
||||
}
|
||||
running: mainView.loading
|
||||
}
|
||||
|
||||
}
|
||||
|
48
data/qml/tomahawkimports/BusyIndicator.qml
Normal file
48
data/qml/tomahawkimports/BusyIndicator.qml
Normal file
@@ -0,0 +1,48 @@
|
||||
import QtQuick 1.1
|
||||
|
||||
Item {
|
||||
id: busyIndicator
|
||||
width: 100
|
||||
height: width
|
||||
property int barWidth: width / 10
|
||||
property int barHeight: height / 4
|
||||
property int count: 12
|
||||
property color color: "white"
|
||||
property int currentHighlight: 0
|
||||
property bool running: true
|
||||
property int interval: 200
|
||||
|
||||
Repeater {
|
||||
model: busyIndicator.count
|
||||
|
||||
|
||||
Item {
|
||||
height: parent.height
|
||||
width: busyIndicator.barWidth
|
||||
anchors.centerIn: parent
|
||||
Rectangle {
|
||||
anchors {
|
||||
top: parent.top
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
height: busyIndicator.barHeight
|
||||
radius: width / 2
|
||||
|
||||
color: busyIndicator.color
|
||||
}
|
||||
rotation: 360 / busyIndicator.count * index
|
||||
opacity: 1 - ((index > busyIndicator.currentHighlight ? busyIndicator.currentHighlight + busyIndicator.count : busyIndicator.currentHighlight) - index) / busyIndicator.count
|
||||
Behavior on opacity {
|
||||
NumberAnimation { duration: busyIndicator.interval }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: busyIndicator.interval
|
||||
running: busyIndicator.running
|
||||
repeat: true
|
||||
onTriggered: parent.currentHighlight = (parent.currentHighlight + 1) % busyIndicator.count
|
||||
}
|
||||
}
|
@@ -27,7 +27,7 @@ Item {
|
||||
width: delegateText.width * 1.1
|
||||
height: delegateText.height
|
||||
property double itemScale: Math.random() + .3
|
||||
scale: 1//itemScale
|
||||
scale: itemScale
|
||||
Text {
|
||||
id: delegateText
|
||||
color: "gray"
|
||||
|
@@ -150,6 +150,7 @@
|
||||
<file>data/qml/tomahawkimports/RoundedButton.qml</file>
|
||||
<file>data/qml/tomahawkimports/PushButton.qml</file>
|
||||
<file>data/qml/tomahawkimports/CoverFlip.qml</file>
|
||||
<file>data/qml/tomahawkimports/BusyIndicator.qml</file>
|
||||
<file>data/qml/StationView.qml</file>
|
||||
<file>data/qml/stations/StationCreatorPage1.qml</file>
|
||||
<file>data/qml/stations/StationCreatorPage2.qml</file>
|
||||
|
@@ -28,6 +28,7 @@ DynamicQmlWidget::DynamicQmlWidget( const dynplaylist_ptr& playlist, QWidget* pa
|
||||
, m_playlist( playlist )
|
||||
, m_runningOnDemand( false )
|
||||
, m_activePlaylist( false )
|
||||
, m_playNextResolved( false )
|
||||
{
|
||||
m_model = new DynamicModel( this );
|
||||
|
||||
@@ -112,7 +113,9 @@ playlist_ptr DynamicQmlWidget::playlist() const
|
||||
|
||||
bool DynamicQmlWidget::loading()
|
||||
{
|
||||
return m_model->isLoading();
|
||||
// Why does isLoading() not reset to true when cleared and station started again?
|
||||
// return m_model->isLoading();
|
||||
return m_playNextResolved && m_proxyModel->rowCount() == 0;
|
||||
}
|
||||
|
||||
bool DynamicQmlWidget::configured()
|
||||
@@ -134,7 +137,9 @@ void DynamicQmlWidget::pause()
|
||||
void DynamicQmlWidget::startStationFromArtist(const QString &artist)
|
||||
{
|
||||
m_model->clear();
|
||||
m_playNextResolved = true;
|
||||
m_playlist->generator()->startFromArtist(Artist::get(artist));
|
||||
emit loadingChanged();
|
||||
emit configuredChanged();
|
||||
}
|
||||
|
||||
@@ -142,7 +147,9 @@ void DynamicQmlWidget::startStationFromGenre(const QString &genre)
|
||||
{
|
||||
tDebug() << "should start startion from genre" << genre;
|
||||
m_model->clear();
|
||||
m_playNextResolved = true;
|
||||
m_playlist->generator()->startFromGenre( genre );
|
||||
emit loadingChanged();
|
||||
emit configuredChanged();
|
||||
}
|
||||
|
||||
@@ -189,6 +196,11 @@ void DynamicQmlWidget::resolvingFinished(bool hasResults)
|
||||
qDebug() << "fetching next one";
|
||||
m_playlist->generator()->fetchNext();
|
||||
}
|
||||
|
||||
if( m_playNextResolved && m_proxyModel->rowCount() > 0 ) {
|
||||
playItem( 0 );
|
||||
m_playNextResolved = false;
|
||||
}
|
||||
}
|
||||
|
||||
void DynamicQmlWidget::trackStarted()
|
||||
|
@@ -101,6 +101,7 @@ private:
|
||||
|
||||
bool m_runningOnDemand;
|
||||
bool m_activePlaylist;
|
||||
bool m_playNextResolved;
|
||||
};
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user