diff --git a/src/database.cpp b/src/database.cpp index 2d415c9..ec6a33a 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -37,7 +37,7 @@ void Database::process() cancel_operation = false; int count = create(); cancel_operation = false; - qDebug("Added %i entries to the database", count); + qDebug("Total entries added to the database: %i", count); if(count < 0) { clear(); } diff --git a/src/forms/configwidget.ui b/src/forms/configwidget.ui index 08e504f..3e3d5fd 100644 --- a/src/forms/configwidget.ui +++ b/src/forms/configwidget.ui @@ -283,6 +283,9 @@ + + false + In Memory diff --git a/src/qlistdb.cpp b/src/qlistdb.cpp index b698551..ed5f13a 100644 --- a/src/qlistdb.cpp +++ b/src/qlistdb.cpp @@ -135,7 +135,7 @@ int QListDB::create() return -1; } - qDebug("Added %i objects for OHFI %#02X", dir_count, ohfi_array[i]); + qDebug("Added objects for OHFI 0x%02X: %i", ohfi_array[i], dir_count); total_objects += dir_count; object_list[ohfi_array[i]] = list; diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index 31fe34a..039c248 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -78,7 +78,6 @@ static const char create_apps[] = "CREATE TABLE IF NOT EXISTS application (" static const char create_virtual[] = "CREATE TABLE IF NOT EXISTS virtual_nodes (" "object_id INTEGER PRIMARY KEY REFERENCES object_node(object_id) ON DELETE CASCADE," - "title TEXT NOT NULL CHECK (LENGTH(title) > 0)," "app_type INTEGER)"; static const char create_photos[] = "CREATE TABLE IF NOT EXISTS photos (" @@ -265,6 +264,12 @@ int SQLiteDB::create() int total_objects = 0; db.transaction(); + + if(!insertVirtualEntries()) { + db.rollback(); + return -1; + } + for(int i = 0, max = sizeof(ohfi_array) / sizeof(int); i < max; i++) { QString base_path = getBasePath(ohfi_array[i]); int dir_count = recursiveScanRootDirectory(base_path, NULL, ohfi_array[i], ohfi_array[i]); @@ -1223,3 +1228,73 @@ int SQLiteDB::getRootItems(int root_ohfi, metadata_t **metadata) return count; } + +bool SQLiteDB::insertVirtualEntry(int ohfi) +{ + QSqlQuery query; + query.prepare("REPLACE INTO virtual_nodes (object_id)" + "VALUES (:object_id)"); + query.bindValue(0, ohfi); + bool ret = query.exec(); + if(!ret) { + qDebug() << query.lastError(); + } + return ret; +} + +bool SQLiteDB::insertVirtualEntries() +{ + int ohfi; + + if((ohfi = insertNodeEntry("Folders", VITA_DIR_TYPE_MASK_REGULAR, Video)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("All", VITA_DIR_TYPE_MASK_ALL, Video)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("Folders", VITA_DIR_TYPE_MASK_REGULAR, Photo)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("Month", VITA_DIR_TYPE_MASK_MONTH, Photo)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("All", VITA_DIR_TYPE_MASK_ALL, Photo)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("Artists", VITA_DIR_TYPE_MASK_ARTISTS, Music)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("Albums", VITA_DIR_TYPE_MASK_ALBUMS, Music)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("Songs", VITA_DIR_TYPE_MASK_SONGS, Music)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("Genres", VITA_DIR_TYPE_MASK_GENRES, Music)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + if((ohfi = insertNodeEntry("Playlists", VITA_DIR_TYPE_MASK_PLAYLISTS, Music)) > 0) + insertVirtualEntry(ohfi); + else + return false; + + return true; +} diff --git a/src/sqlitedb.h b/src/sqlitedb.h index 8841a60..669d820 100644 --- a/src/sqlitedb.h +++ b/src/sqlitedb.h @@ -88,6 +88,8 @@ private: qint64 getChildenTotalSize(int ohfi); bool updateObjectPath(int ohfi, const QString &name); int getRootItems(int root_ohfi, metadata_t **metadata); + bool insertVirtualEntries(); + bool insertVirtualEntry(int ohfi); QTimer *timer; QThread *thread;