Load playlist button works

This commit is contained in:
David Sansome 2010-05-22 20:28:11 +00:00
parent c9c44ca592
commit 1f8b0de49c
30 changed files with 379 additions and 4 deletions

View File

@ -17,6 +17,7 @@
#include "playlistcontainer.h"
#include "playlistmanager.h"
#include "ui_playlistcontainer.h"
#include "playlistparsers/playlistparser.h"
#include "ui/iconloader.h"
#include <QUndoStack>
@ -25,12 +26,16 @@
#include <QTimeLine>
#include <QSortFilterProxyModel>
#include <QLabel>
#include <QFileDialog>
#include <QMessageBox>
const char* PlaylistContainer::kSettingsGroup = "Playlist";
PlaylistContainer::PlaylistContainer(QWidget *parent)
: QWidget(parent),
ui_(new Ui_PlaylistContainer),
parser_(new PlaylistParser(this)),
manager_(NULL),
undo_(NULL),
redo_(NULL),
starting_up_(true),
@ -228,7 +233,27 @@ void PlaylistContainer::NewPlaylist() {
}
void PlaylistContainer::LoadPlaylist() {
QString filename = settings_.value("last_load_playlist").toString();
filename = QFileDialog::getOpenFileName(
this, tr("Load playlist"), filename,
tr("Playlists (%1)").arg(parser_->filter_text()));
if (filename.isNull())
return;
settings_.setValue("last_load_playlist", filename);
SongList songs = parser_->Load(filename);
QFileInfo info(filename);
if (songs.isEmpty()) {
QMessageBox::information(this, tr("Error"),
tr("The playlist '%1' was empty or could not be loaded.").arg(
info.completeBaseName()));
return;
}
manager_->New(info.baseName(), songs);
}
void PlaylistContainer::SavePlaylist() {

View File

@ -24,6 +24,7 @@ class Ui_PlaylistContainer;
class Playlist;
class PlaylistManager;
class PlaylistParser;
class PlaylistView;
class QTimeLine;
@ -84,6 +85,7 @@ private:
private:
Ui_PlaylistContainer* ui_;
PlaylistParser* parser_;
PlaylistManager* manager_;
QAction* undo_;
QAction* redo_;

View File

@ -72,13 +72,15 @@ Playlist* PlaylistManager::AddPlaylist(int id, const QString& name) {
return ret;
}
void PlaylistManager::New(const QString& name) {
void PlaylistManager::New(const QString& name, const SongList& songs) {
int id = playlist_backend_->CreatePlaylist(name);
if (id == -1)
qFatal("Couldn't create playlist");
AddPlaylist(id, name);
Playlist* playlist = AddPlaylist(id, name);
playlist->InsertSongs(songs);
SetCurrentPlaylist(id);
}

View File

@ -20,11 +20,12 @@
#include <QObject>
#include <QMap>
#include "core/song.h"
class LibraryBackend;
class Playlist;
class PlaylistBackend;
class PlaylistSequence;
class Song;
class QModelIndex;
class QUrl;
@ -53,7 +54,7 @@ public:
PlaylistSequence* sequence() const { return sequence_; }
public slots:
void New(const QString& name);
void New(const QString& name, const SongList& songs = SongList());
void Load(const QString& filename);
void Save(int id, const QString& filename);
void Rename(int id, const QString& new_name);

View File

@ -38,6 +38,13 @@ QStringList PlaylistParser::file_extensions() const {
return ret;
}
QString PlaylistParser::filter_text() const {
QStringList extensions;
foreach (const QString& extension, file_extensions())
extensions << "*." + extension;
return extensions.join(" ");
}
bool PlaylistParser::can_load(const QString &filename) const {
return file_extensions().contains(QFileInfo(filename).suffix());
}

View File

@ -30,6 +30,8 @@ public:
PlaylistParser(QObject *parent = 0);
QStringList file_extensions() const;
QString filter_text() const;
bool can_load(const QString& filename) const;
SongList Load(const QString& filename) const;

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr ""
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr ""

View File

@ -341,6 +341,20 @@ msgstr ""
msgid "Playlist"
msgstr "Seznam skladeb"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -343,6 +343,20 @@ msgstr ""
msgid "Playlist"
msgstr "Spilleliste"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr "Wiedergabeliste"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -343,6 +343,20 @@ msgstr ""
msgid "Playlist"
msgstr "Λίστα"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr "Playlist"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -346,6 +346,20 @@ msgstr ""
msgid "Playlist"
msgstr "Lista de reproducción"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr ""
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr ""

View File

@ -345,6 +345,20 @@ msgstr ""
msgid "Playlist"
msgstr "Liste de lecture"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr ""
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -343,6 +343,20 @@ msgstr ""
msgid "Playlist"
msgstr "Scaletta"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr ""
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -341,6 +341,20 @@ msgstr ""
msgid "Playlist"
msgstr "Spilleliste"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr "Lista de lectura"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -341,6 +341,20 @@ msgstr ""
msgid "Playlist"
msgstr "Playlista"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr ""

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr "Lista de Reprodução"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr ""
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr ""

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr "Listă de redare"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr "Плейлист"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -341,6 +341,20 @@ msgstr ""
msgid "Playlist"
msgstr "Playlist"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -342,6 +342,20 @@ msgstr ""
msgid "Playlist"
msgstr "Spellista"
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr "ASF"

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr ""
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr ""

View File

@ -331,6 +331,20 @@ msgstr ""
msgid "Playlist"
msgstr ""
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr ""

View File

@ -340,6 +340,20 @@ msgstr ""
msgid "Playlist"
msgstr ""
msgid "Load playlist"
msgstr ""
#, qt-format
msgid "Playlists (%1)"
msgstr ""
msgid "Error"
msgstr ""
#, qt-format
msgid "The playlist '%1' was empty or could not be loaded."
msgstr ""
msgid "ASF"
msgstr ""