QAction *add_directory = ui->menuLibrary->addAction("Add directory");
QAction *save_playlist = ui->menuLibrary->addAction("Save playlist");
QAction *clear_playlist = ui->menuLibrary->addAction("Clear current playlist");
+ QAction *add_files = ui->menuLibrary->addAction("Add file to current playlist");
connect(_player_form, SIGNAL(library()), this, SLOT(library()));
connect(_library_form, SIGNAL(player()), this, SLOT(player()));
connect(add_directory, SIGNAL(triggered()), this, SLOT(_add_directory()));
connect(save_playlist, SIGNAL(triggered()), this, SLOT(_save_playlist()));
connect(clear_playlist, SIGNAL(triggered()), this, SLOT(_clear_current_playlist()));
+ connect(add_files, SIGNAL(triggered()), this, SLOT(_add_files()));
connect(_library, SIGNAL(done()), this, SLOT(library()));
connect(_library_form, SIGNAL(done()), this, SLOT(library()));
connect(_library_form, SIGNAL(busy(QString)), this, SLOT(showBusyWidget(QString)));
showFullScreen();
}
}
+
+void MainWindow::_add_files() {
+ QStringList files = QFileDialog::getOpenFileNames(this, "Add file");
+ if (!files.isEmpty()) _player_form->addFiles(files);
+}
void _add_directory();
void _save_playlist();
void _clear_current_playlist();
+ void _add_files();
void _toggle_search_line();
void _search(QString);
void _nextItem();
_track_renderer = new TrackRenderer(this);
ui->playlistView->setItemDelegateForColumn(0, _track_renderer);
+ _tag_resolver = new TagResolver(this);
+
connect(ui->libraryButton, SIGNAL(clicked()), this, SLOT(_library()));
connect(ui->viewButton, SIGNAL(clicked()), this, SLOT(_toggle_view()));
connect(ui->playlistView, SIGNAL(clicked(QModelIndex)), this, SLOT(_process_click(QModelIndex)));
connect(add_to_favorites, SIGNAL(triggered()), this, SLOT(_add_to_favorites()));
connect(_player, SIGNAL(stateChanged(PlayerState)), this, SLOT(_state_changed(PlayerState)));
connect(_player, SIGNAL(trackDone(Track)), _lib, SLOT(updateTrackCount(Track)));
+ connect(_tag_resolver, SIGNAL(decoded(Track)), this, SLOT(_track_decoded(Track)));
}
PlayerForm::~PlayerForm()
ui->playlistView->hide();
ui->playlistView->show();
}
+
+void PlayerForm::addFiles(QList<QString> files) {
+ _tag_resolver->decode(files);
+}
+
+void PlayerForm::_track_decoded(Track track) {
+ _current_playlist.addTrack(track);
+ __fill_list(_model, _current_playlist);
+ _lib->saveCurrentPlaylist(_current_playlist);
+ _player->setPlaylist(_current_playlist);
+}
#include <QMenu>
#include <QTime>
#include "trackrenderer.h"
+#include "tagresolver.h"
namespace Ui {
class PlayerForm;
using SomePlayer::DataObjects::Track;
using SomePlayer::Playback::Player;
using SomePlayer::Playback::PlayerState;
+using SomePlayer::DataObjects::TagResolver;
class PlayerForm : public QWidget
{
void nextItem();
void prevItem();
void cancelSearch();
+ void addFiles(QList<QString> files);
private slots:
void _library();
void _state_changed(PlayerState);
void _toggle_repeat();
void _toggle_random();
+ void _track_decoded(Track);
private:
Ui::PlayerForm *ui;
QString _search_pattern;
TrackRenderer *_track_renderer;
+ TagResolver *_tag_resolver;
void _display_track(Track);
int _search_current_id;
};
Track track(0, metadata, source.fileName());
int index = _sources.indexOf(source)+1;
emit decoded(track);
+ _metaObject->stop();
if (index != _sources.size()) {
Phonon::MediaSource newSource = _sources.at(index);
_metaObject->clear();
foo << source;
_resolver->decode(foo);
_count = 0;
- _id = 0;
+ _id = -1;
}
TrackMetadata Track::metadata() const {