From 9b9a0afe9de46239e64fbf7738f1be9161fa5e00 Mon Sep 17 00:00:00 2001 From: Nikolay Tischenko Date: Mon, 6 Sep 2010 00:43:54 +0700 Subject: [PATCH] Implemented track count update and adding to favorites --- src/dbstorage.cpp | 19 +++++++++++++++++-- src/dbstorage.h | 6 ++++-- src/library.cpp | 4 ++-- src/library.h | 2 +- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/dbstorage.cpp b/src/dbstorage.cpp index 4921371..03db3fd 100644 --- a/src/dbstorage.cpp +++ b/src/dbstorage.cpp @@ -77,6 +77,12 @@ void DbStorage::_prepare_queries() { _insert_date_query = new QSqlQuery(db); _insert_date_query->prepare("INSERT INTO adding_date (track_id, date) values (:track_id, strftime('%s', 'now'))"); + + _insert_favorites_query = new QSqlQuery(db); + _insert_favorites_query->prepare("INSERT INTO favorites (track_id) values (:track_id)"); + + _update_track_count_query = new QSqlQuery(db); + _update_track_count_query->prepare("UPDATE tracks SET count = :count where id = :id"); } void DbStorage::_create_database_structure() { @@ -123,6 +129,8 @@ DbStorage::~DbStorage() { delete _insert_artist_query; delete _insert_date_query; delete _insert_track_query; + delete _insert_favorites_query; + delete _update_track_count_query; db.close(); } @@ -318,10 +326,17 @@ void DbStorage::addTrack(Track track) { } } -void DbStorage::addToFavorites(Track) { +void DbStorage::addToFavorites(Track track) { + QSqlQuery *query = _insert_favorites_query; + query->bindValue(":track_id", track.id()); + query->exec(); } -void DbStorage::updateTrack(Track) { +void DbStorage::updateTrackCount(Track track) { + QSqlQuery *query = _update_track_count_query; + query->bindValue(":count", track.count()); + query->bindValue(":id", track.id()); + query->exec(); } int DbStorage::_check_add_artist(QString artist) { diff --git a/src/dbstorage.h b/src/dbstorage.h index 7b771b0..34c4afe 100644 --- a/src/dbstorage.h +++ b/src/dbstorage.h @@ -35,7 +35,7 @@ namespace SomePlayer { void removeTrack(Track track); void addToFavorites(Track track); - void updateTrack(Track track); + void updateTrackCount(Track track); void addTrack(Track track); private: @@ -61,9 +61,11 @@ namespace SomePlayer { QSqlQuery *_insert_artist_query; QSqlQuery *_insert_album_query; - QSqlQuery *_insert_track_query; QSqlQuery *_insert_date_query; + QSqlQuery *_insert_favorites_query; + + QSqlQuery *_update_track_count_query; }; }; }; diff --git a/src/library.cpp b/src/library.cpp index 54dcf09..9a530e8 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -74,8 +74,8 @@ void Library::addToFavorites(Track track) { _library_storage->addToFavorites(track); } -void Library::updateTrack(Track track) { - _library_storage->updateTrack(track); +void Library::updateTrackCount(Track track) { + _library_storage->updateTrackCount(track); } diff --git a/src/library.h b/src/library.h index 36d3878..515f3d8 100644 --- a/src/library.h +++ b/src/library.h @@ -60,7 +60,7 @@ namespace SomePlayer { void removeTrack(Track); void addTrack(Track); void addToFavorites(Track); - void updateTrack(Track); + void updateTrackCount(Track); }; }; -- 1.7.9.5