Made the clear button work in the play queue, added a track number infox
This commit is contained in:
@@ -55,6 +55,7 @@
|
|||||||
|
|
||||||
<!--Playque-->
|
<!--Playque-->
|
||||||
<message id="Lms.PlayQueue.playqueue">Play Queue</message>
|
<message id="Lms.PlayQueue.playqueue">Play Queue</message>
|
||||||
|
<message id="Lms.PlayQueue.nb-tracks">{1} tracks</message>
|
||||||
|
|
||||||
<!--Settings-->
|
<!--Settings-->
|
||||||
<message id="Lms.Settings.account">Account</message>
|
<message id="Lms.Settings.account">Account</message>
|
||||||
|
|||||||
@@ -17,7 +17,8 @@
|
|||||||
<message id="Lms.PlayQueue.template">
|
<message id="Lms.PlayQueue.template">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h2>${tr:Lms.PlayQueue.playqueue}</h2>
|
<h2>${tr:Lms.PlayQueue.playqueue}</h2>
|
||||||
${save-btn} ${load-btn} ${clear-btn}
|
<small>${nb-tracks}</small>
|
||||||
|
${save-btn} ${load-btn} ${clear-btn}
|
||||||
</div>
|
</div>
|
||||||
${entries}
|
${entries}
|
||||||
${show-more}
|
${show-more}
|
||||||
|
|||||||
+30
-10
@@ -44,6 +44,19 @@ PlayQueue::PlayQueue(Wt::WContainerWidget* parent)
|
|||||||
|
|
||||||
auto clearBtn = new Wt::WText(Wt::WString::tr("Lms.PlayQueue.clear"), Wt::XHTMLText);
|
auto clearBtn = new Wt::WText(Wt::WString::tr("Lms.PlayQueue.clear"), Wt::XHTMLText);
|
||||||
container->bindWidget("clear-btn", clearBtn);
|
container->bindWidget("clear-btn", clearBtn);
|
||||||
|
clearBtn->clicked().connect(std::bind([=]
|
||||||
|
{
|
||||||
|
{
|
||||||
|
Wt::Dbo::Transaction transaction(DboSession());
|
||||||
|
|
||||||
|
auto playlist = Database::Playlist::get(DboSession(), currentPlayQueueName, CurrentUser());
|
||||||
|
playlist.modify()->clear();
|
||||||
|
_showMore->setHidden(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
_entriesContainer->clear();
|
||||||
|
updateInfo();
|
||||||
|
}));
|
||||||
|
|
||||||
_entriesContainer = new Wt::WContainerWidget();
|
_entriesContainer = new Wt::WContainerWidget();
|
||||||
container->bindWidget("entries", _entriesContainer);
|
container->bindWidget("entries", _entriesContainer);
|
||||||
@@ -53,6 +66,9 @@ PlayQueue::PlayQueue(Wt::WContainerWidget* parent)
|
|||||||
_showMore->setHidden(true);
|
_showMore->setHidden(true);
|
||||||
container->bindWidget("show-more", _showMore);
|
container->bindWidget("show-more", _showMore);
|
||||||
|
|
||||||
|
_nbTracks = new Wt::WText();
|
||||||
|
container->bindWidget("nb-tracks", _nbTracks);
|
||||||
|
|
||||||
{
|
{
|
||||||
Wt::Dbo::Transaction transaction (DboSession());
|
Wt::Dbo::Transaction transaction (DboSession());
|
||||||
|
|
||||||
@@ -66,8 +82,17 @@ PlayQueue::PlayQueue(Wt::WContainerWidget* parent)
|
|||||||
addSome();
|
addSome();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
refresh();
|
updateInfo();
|
||||||
|
addSome();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PlayQueue::updateInfo()
|
||||||
|
{
|
||||||
|
Wt::Dbo::Transaction transaction(DboSession());
|
||||||
|
|
||||||
|
auto playlist = Database::Playlist::get(DboSession(), currentPlayQueueName, CurrentUser());
|
||||||
|
_nbTracks->setText(Wt::WString::tr("Lms.PlayQueue.nb-tracks").arg(playlist->getCount()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -83,6 +108,7 @@ PlayQueue::addTracks(const std::vector<Database::Track::pointer>& tracks)
|
|||||||
for (auto track : tracks)
|
for (auto track : tracks)
|
||||||
Database::PlaylistEntry::create(DboSession(), track, playlist);
|
Database::PlaylistEntry::create(DboSession(), track, playlist);
|
||||||
|
|
||||||
|
updateInfo();
|
||||||
addSome();
|
addSome();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,8 +120,7 @@ PlayQueue::playTracks(const std::vector<Database::Track::pointer>& tracks)
|
|||||||
Wt::Dbo::Transaction transaction(DboSession());
|
Wt::Dbo::Transaction transaction(DboSession());
|
||||||
|
|
||||||
auto playqueue = Database::Playlist::get(DboSession(), currentPlayQueueName, CurrentUser());
|
auto playqueue = Database::Playlist::get(DboSession(), currentPlayQueueName, CurrentUser());
|
||||||
if (playqueue)
|
playqueue.modify()->clear();
|
||||||
playqueue.modify()->clear();
|
|
||||||
|
|
||||||
_entriesContainer->clear();
|
_entriesContainer->clear();
|
||||||
|
|
||||||
@@ -105,13 +130,6 @@ PlayQueue::playTracks(const std::vector<Database::Track::pointer>& tracks)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
PlayQueue::refresh()
|
|
||||||
{
|
|
||||||
_entriesContainer->clear();
|
|
||||||
addSome();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PlayQueue::addSome()
|
PlayQueue::addSome()
|
||||||
{
|
{
|
||||||
@@ -166,6 +184,8 @@ PlayQueue::addSome()
|
|||||||
}
|
}
|
||||||
|
|
||||||
_entriesContainer->removeWidget(entry);
|
_entriesContainer->removeWidget(entry);
|
||||||
|
|
||||||
|
updateInfo();
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include <Wt/WContainerWidget>
|
#include <Wt/WContainerWidget>
|
||||||
#include <Wt/WTemplate>
|
#include <Wt/WTemplate>
|
||||||
|
#include <Wt/WText>
|
||||||
|
|
||||||
#include "database/Types.hpp"
|
#include "database/Types.hpp"
|
||||||
|
|
||||||
@@ -35,11 +36,12 @@ class PlayQueue : public Wt::WContainerWidget
|
|||||||
void playTracks(const std::vector<Database::Track::pointer>& tracks);
|
void playTracks(const std::vector<Database::Track::pointer>& tracks);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void refresh();
|
|
||||||
void addSome();
|
void addSome();
|
||||||
|
void updateInfo();
|
||||||
|
|
||||||
Wt::WContainerWidget* _entriesContainer;
|
Wt::WContainerWidget* _entriesContainer;
|
||||||
Wt::WTemplate* _showMore;
|
Wt::WTemplate* _showMore;
|
||||||
|
Wt::WText* _nbTracks;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace UserInterface
|
} // namespace UserInterface
|
||||||
|
|||||||
Reference in New Issue
Block a user