From: Nikolay Tischenko Date: Sun, 21 Nov 2010 14:17:43 +0000 (+0600) Subject: Restoring eq after start, checkable fav button X-Git-Tag: 1.4.3-1~33 X-Git-Url: http://git.maemo.org/git/?p=someplayer;a=commitdiff_plain;h=3a11ef7a36432b543d66a1d55324dd2d4ba52401 Restoring eq after start, checkable fav button --- diff --git a/src/dbstorage.cpp b/src/dbstorage.cpp index 2b9d03f..71f1a36 100644 --- a/src/dbstorage.cpp +++ b/src/dbstorage.cpp @@ -118,6 +118,9 @@ void DbStorage::_prepare_queries() { _check_directory_query = new QSqlQuery(db); _check_directory_query->prepare("SELECT id from directories WHERE path = :path"); + _check_favorite_query = new QSqlQuery(db); + _check_favorite_query->prepare("SELECT 'yes' from favorites WHERE track_id in (SELECT id from tracks WHERE source = :source)"); + _insert_artist_query = new QSqlQuery(db); _insert_artist_query->prepare("INSERT INTO artist (name, uname) values (:name, :uname)"); @@ -663,3 +666,14 @@ void DbStorage::removeFromFavorites(Track track) { query->bindValue(":source", track.source()); query->exec(); } + +bool DbStorage::isFavorite(Track track) { + QSqlQuery *query = _check_favorite_query; + query->bindValue(":source", track.source()); + query->exec(); + if (query->next()) { + QString ans = query->value(0).toString(); + return ans == "yes"; + } + return false; +} diff --git a/src/dbstorage.h b/src/dbstorage.h index 7e7e8e8..60b63ee 100644 --- a/src/dbstorage.h +++ b/src/dbstorage.h @@ -69,6 +69,8 @@ namespace SomePlayer { void deleteTracksFrom(QString path); void checkTracksFrom(QString path); + bool isFavorite(Track); + private: QSqlDatabase db; void _create_database_structure(); @@ -101,6 +103,7 @@ namespace SomePlayer { QSqlQuery *_check_artist_query; QSqlQuery *_check_album_query; QSqlQuery *_check_directory_query; + QSqlQuery *_check_favorite_query; QSqlQuery *_insert_artist_query; QSqlQuery *_insert_album_query; diff --git a/src/dbusadaptor.cpp b/src/dbusadaptor.cpp index 64a9d91..945ced5 100644 --- a/src/dbusadaptor.cpp +++ b/src/dbusadaptor.cpp @@ -103,14 +103,13 @@ void DBusAdaptop::processBTSignal(QString event, QString state) { if (msec > _DBUS_ACTION_TIMEOUT_) { if (event == "ButtonPressed") { if (state == "next-song") { - QMetaObject::invokeMethod(parent(), "next"); + next(); } else if (state == "previous-song") { - QMetaObject::invokeMethod(parent(), "prev"); + prev(); } else if (state == "play-cd" || state == "pause-cd") { - QMetaObject::invokeMethod(parent(), "toggle"); + toggle(); } } } _time = t; } - diff --git a/src/equalizerdialog.cpp b/src/equalizerdialog.cpp index dd0a8e5..c828550 100644 --- a/src/equalizerdialog.cpp +++ b/src/equalizerdialog.cpp @@ -78,6 +78,12 @@ EqualizerDialog::EqualizerDialog(QWidget *parent) : connect(ui->enableToggleButton, SIGNAL(clicked()), this, SLOT(_state_changed())); connect(ui->saveButton, SIGNAL(clicked()), this, SLOT(_save_preset())); connect(ui->presetComboBox, SIGNAL(activated(QString)), this, SLOT(_load_preset(QString))); + + Config config; + if (config.equalizerEnabled()) { + setEqualizerEnabled(true); + _load_preset(""); + } } EqualizerDialog::~EqualizerDialog() diff --git a/src/library.cpp b/src/library.cpp index 0aeddad..ee94569 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -232,3 +232,7 @@ void Library::updatePlaylists() { void Library::removeFromFavorites(Track track) { _library_storage->removeFromFavorites(track); } + +bool Library::isFavorite(Track track) { + return _library_storage->isFavorite(track); +} diff --git a/src/library.h b/src/library.h index ed9b2be..9fc9a1a 100644 --- a/src/library.h +++ b/src/library.h @@ -81,6 +81,8 @@ namespace SomePlayer { void updateAll(); void deleteDirectories(QList directories); + bool isFavorite(Track); + signals: void started(); void done(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 5f85bdd..ab982f4 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -250,7 +250,7 @@ void MainWindow::_timeout() { QString hp = h < 10 ? QString("0%1").arg(h) : QString("%1").arg(h); QString mp = m < 10 ? QString("0%1").arg(m) : QString("%1").arg(m); QString sp = s < 10 ? QString("0%1").arg(s) : QString("%1").arg(s); - _player_form->showCountdown(hp+":"+mp+":"+sp); + _player_form->showCountdown(tr("Music off: ")+hp+":"+mp+":"+sp); } } @@ -275,17 +275,6 @@ void MainWindow::_equalizer_value_changed(int band, int val) { void MainWindow::settings() { _settings_form->show(); - -// Config config; -// _library_form->refresh(); -// _player_form->updateIcons(); -// _library_form->updateIcons(); -// _manage_library_form->updateIcons(); -// _player_form->checkGradient(); -// _library_form->checkGradient(); -// _directory_form->updateIcons(); -// _directory_form->updateGradient(); -// updateTranslations(); } void MainWindow::_change_orientation() { diff --git a/src/player/player.cpp b/src/player/player.cpp index 1a83844..758b09e 100644 --- a/src/player/player.cpp +++ b/src/player/player.cpp @@ -326,3 +326,11 @@ QString Player::title() { return ""; return _playlist.tracks().at(_current).metadata().title(); } + +Track Player::current() { + if (_current >= 0) { + return _playlist.tracks().at(_current); + } else { + return Track(); + } +} diff --git a/src/player/player.h b/src/player/player.h index f756ac1..2ecc032 100644 --- a/src/player/player.h +++ b/src/player/player.h @@ -69,6 +69,7 @@ namespace SomePlayer { bool equalizerEnabled() {return _equalizer_enabled;} bool equalizerAvailable() {return _equalizer != NULL;} PlayerState state() {return _state;} + Track current(); signals: void stateChanged (PlayerState); diff --git a/src/playerform.cpp b/src/playerform.cpp index 4be237f..5f9c089 100644 --- a/src/playerform.cpp +++ b/src/playerform.cpp @@ -241,6 +241,7 @@ void PlayerForm::_display_track(Track track) { ui->seekSlider->setMaximum(track.metadata().length()); _tick(0, track.metadata().length()); _coverfinder->find(track); + ui->cfavButton->setChecked(_lib->isFavorite(track)); } void PlayerForm::_tick(int done, int all) { @@ -288,7 +289,12 @@ void PlayerForm::_add_to_favorites() { if (idx.isEmpty()) return; int id = idx.first().row(); - _lib->addToFavorites(_current_playlist.tracks().at(id)); + if (ui->cfavButton->isChecked()) { + _lib->addToFavorites(_current_playlist.tracks().at(id)); + } else { + _lib->removeFromFavorites(_current_playlist.tracks().at(id)); + } + ui->cfavButton->setChecked(_lib->isFavorite(_current_playlist.tracks().at(id))); } void PlayerForm::_state_changed(PlayerState state) { @@ -705,6 +711,7 @@ void PlayerForm::_toggle_extra_buttons() { ui->caddButton->setEnabled(true); ui->cdeleteButton->setEnabled(true); ui->cfavButton->setEnabled(true); + ui->cfavButton->setChecked(_lib->isFavorite(_player->current())); ui->ctagButton->setEnabled(true); ui->caddButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png")); ui->cdeleteButton->setIcon(QIcon(":/icons/"+_icons_theme+"/delete.png")); diff --git a/src/ui/playerform.ui b/src/ui/playerform.ui index 9a1b111..cef87fe 100644 --- a/src/ui/playerform.ui +++ b/src/ui/playerform.ui @@ -119,19 +119,12 @@ 0 - + - Music off: + Music off: 00:00:00 - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 00:00:00 + Qt::AlignCenter @@ -310,6 +303,9 @@ :/icons/white/fav.png:/icons/white/fav.png + + true + true