X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fplayerform.cpp;h=24e3b8e020bb913b883e98f0d9eb9d31273a4c10;hb=2355fe229fba175c9cbf70dbecc0ebf6e239744d;hp=ecee53b4c62ed505118d03609eaee59629ac7fb0;hpb=b816b6113567502f34f08e0741dd5de18b9ee692;p=someplayer diff --git a/src/playerform.cpp b/src/playerform.cpp index ecee53b..24e3b8e 100644 --- a/src/playerform.cpp +++ b/src/playerform.cpp @@ -59,17 +59,21 @@ PlayerForm::PlayerForm(Library* lib, QWidget *parent) : _time = new QTime(); ui->setupUi(this); if (_player->random()) { - ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_active.png")); + ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_on.png")); } else { - ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_inactive.png")); + ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_off.png")); } - if (_player->repeat()) { - ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_active.png")); + if (_player->repeat() == REPEAT_ALL) { + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_all.png")); + } else if (_player->repeat() == REPEAT_NO){ + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_off.png")); } else { - ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_inactive.png")); + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_one.png")); } ui->volumeSlider->setMinimum(0); ui->volumeSlider->setMaximum(100); + ui->volumeSlider->setValue(config.getValue("playback/volume").toInt()); + _player->setVolume(ui->volumeSlider->value()); ui->volumeSlider->hide(); ui->seekSlider->setEnabled(false); ui->progressLayout->removeItem(ui->seekSpacer); @@ -213,6 +217,8 @@ void PlayerForm::_custom_context_menu_requested(const QPoint &pos) { void PlayerForm::_delete_track() { QList idx = ui->playlistView->selectionModel()->selectedIndexes(); + if (idx.isEmpty()) + return; int id = idx.first().row(); int aid = _track_renderer->activeRow(); if (aid > id) { @@ -227,12 +233,16 @@ void PlayerForm::_delete_track() { void PlayerForm::_enqueue_track() { QList idx = ui->playlistView->selectionModel()->selectedIndexes(); + if (idx.isEmpty()) + return; int id = idx.first().row(); _player->enqueue(id); } void PlayerForm::_add_to_favorites() { QList idx = ui->playlistView->selectionModel()->selectedIndexes(); + if (idx.isEmpty()) + return; int id = idx.first().row(); _lib->addToFavorites(_current_playlist.tracks().at(id)); } @@ -254,18 +264,20 @@ void PlayerForm::_state_changed(PlayerState state) { void PlayerForm::_toggle_random() { _player->toggleRandom(); if (_player->random()) { - ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_active.png")); + ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_on.png")); } else { - ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_inactive.png")); + ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_off.png")); } } void PlayerForm::_toggle_repeat() { _player->toggleRepeat(); - if (_player->repeat()) { - ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_active.png")); + if (_player->repeat() == REPEAT_ALL) { + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_all.png")); + } else if (_player->repeat() == REPEAT_NO){ + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_off.png")); } else { - ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_inactive.png")); + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_one.png")); } } @@ -328,6 +340,8 @@ void PlayerForm::_track_decoded(Track track) { void PlayerForm::_add_to_playlists() { QList idx = ui->playlistView->selectionModel()->selectedIndexes(); + if (idx.isEmpty()) + return; int id = idx.first().row(); QList names = _lib->getPlaylistsNames(); @@ -345,6 +359,8 @@ void PlayerForm::_add_to_playlists() { void PlayerForm::_edit_tags() { QList idx = ui->playlistView->selectionModel()->selectedIndexes(); + if (idx.isEmpty()) + return; Track track = _current_playlist.tracks().at(idx.first().row()); EditTagsDialog dialog(this); @@ -499,15 +515,17 @@ void PlayerForm::updateIcons() { } else { ui->viewButton->setIcon(QIcon(":/icons/"+_icons_theme+"/playback.png")); } - if (_player->repeat()) { - ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_active.png")); + if (_player->repeat() == REPEAT_ALL) { + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_all.png")); + } else if (_player->repeat() == REPEAT_NO){ + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_off.png")); } else { - ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_inactive.png")); + ui->repeatButton->setIcon(QIcon(":/icons/"+_icons_theme+"/repeat_one.png")); } if (_player->random()) { - ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_active.png")); + ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_on.png")); } else { - ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_inactive.png")); + ui->randomButton->setIcon(QIcon(":/icons/"+_icons_theme+"/random_off.png")); } } @@ -521,3 +539,12 @@ void PlayerForm::checkGradient() { ui->bottomWidget->setStyleSheet(""); } } + +void PlayerForm::play(Track track) { + reload(true); + int id = _current_playlist.tracks().indexOf(track); + if (id > 0) { + _player->setTrackId(id); + _player->play(); + } +}