diff --git a/ChangeLog b/ChangeLog index f2ded89..9591a22 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ qcma (0.3.0) unstable; urgency=low * Headless qcma version. - * Set the default video codec to h264 is metadata skip is enabled. + * Set the default video codec to h264 if metadata skip is enabled. * Delay the progress dialog by one second so it doesn't show on quick scans. * Do not show the disconnect message if no connection is established. * Show correct directory separators on Windows. diff --git a/org.qcma.HeadlessManager.xml b/org.qcma.HeadlessManager.xml new file mode 100644 index 0000000..73381aa --- /dev/null +++ b/org.qcma.HeadlessManager.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/cmaobject.cpp b/src/cmaobject.cpp index 6e0a3fc..0fe18a3 100644 --- a/src/cmaobject.cpp +++ b/src/cmaobject.cpp @@ -100,7 +100,7 @@ void CMAObject::loadSfoMetadata(const QString &path) title.chop(1); } metadata.data.saveData.savedataTitle = strdup(title.toStdString().c_str()); - metadata.data.saveData.dateTimeUpdated = QFileInfo(sfo).created().toTime_t(); + metadata.data.saveData.dateTimeUpdated = QFileInfo(sfo).created().toUTC().toTime_t(); } else { metadata.data.saveData.title = strdup(metadata.name); metadata.data.saveData.detail = strdup(""); @@ -116,7 +116,7 @@ void CMAObject::initObject(const QFileInfo &file, int file_type) metadata.ohfi = ohfi_count++; metadata.type = VITA_DIR_TYPE_MASK_REGULAR; // ignored for files - metadata.dateTimeCreated = file.created().toTime_t(); + metadata.dateTimeCreated = file.created().toUTC().toTime_t(); metadata.size = 0; DataType type = file.isFile() ? File : Folder; metadata.dataType = (DataType)(type | (parent->metadata.dataType & ~Folder)); @@ -143,7 +143,7 @@ void CMAObject::initObject(const QFileInfo &file, int file_type) Database::loadMusicMetadata(file.absoluteFilePath(), metadata); } else if(MASK_SET(metadata.dataType, Video | File)) { metadata.data.video.fileName = strdup(metadata.name); - metadata.data.video.dateTimeUpdated = file.created().toTime_t(); + metadata.data.video.dateTimeUpdated = file.created().toUTC().toTime_t(); metadata.data.video.statusType = 1; metadata.data.video.fileFormatType = FILE_FORMAT_MP4; metadata.data.video.parentalLevel = 0; @@ -161,7 +161,7 @@ void CMAObject::initObject(const QFileInfo &file, int file_type) metadata.data.photo.fileName = strdup(metadata.name); metadata.data.photo.fileFormatType = photo_list[file_type].file_format; metadata.data.photo.statusType = 1; - metadata.data.photo.dateTimeOriginal = file.created().toTime_t(); + metadata.data.photo.dateTimeOriginal = file.created().toUTC().toTime_t(); metadata.data.photo.numTracks = 1; metadata.data.photo.tracks = new media_track(); metadata.data.photo.tracks->type = VITA_TRACK_TYPE_PHOTO; diff --git a/src/forms/backupmanagerform.cpp b/src/forms/backupmanagerform.cpp index 230fd4d..6c0417a 100644 --- a/src/forms/backupmanagerform.cpp +++ b/src/forms/backupmanagerform.cpp @@ -188,7 +188,10 @@ void BackupManagerForm::loadBackupListing(int index) item->title = game_name; connect(item, SIGNAL(deleteEntry(BackupItem*)), this, SLOT(removeEntry(BackupItem*))); - QString size = readable_size(meta->size); + + // show better size info for multi GiB backups + bool use_gb = ohfi == VITA_OHFI_BACKUP && meta->size > 1024*1024*1024; + QString size = readable_size(meta->size, use_gb); QString info; diff --git a/src/qlistdb.cpp b/src/qlistdb.cpp index ed5f13a..538354a 100644 --- a/src/qlistdb.cpp +++ b/src/qlistdb.cpp @@ -383,12 +383,18 @@ bool QListDB::deleteEntry(int ohfi, int root_ohfi) int QListDB::getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index, int max_number) { QMutexLocker locker(&mutex); + CMARootObject *parent = static_cast(ohfiToObject(parent_ohfi)); if(parent == NULL) { return 0; } + if(parent->metadata.dataType & File) { + *metadata = &parent->metadata; + return 1; + } + int type = parent->metadata.type; if(parent->metadata.ohfi < OHFI_OFFSET && parent->filters) { // if we have filters diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index 56c2b34..6557717 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -527,13 +527,13 @@ bool SQLiteDB::insertSourceEntry(uint object_id, const QString &path, const QStr QFileInfo info(path, name); if(info.isFile()) { size = QVariant(info.size()); - date_created = QVariant(info.created().toTime_t()); + date_created = QVariant(info.created().toUTC().toTime_t()); } else { size = QVariant(QVariant::LongLong); date_created = QVariant(QVariant::UInt); } - date_modified = QVariant(info.lastModified().toTime_t()); + date_modified = QVariant(info.lastModified().toUTC().toTime_t()); QSqlQuery query; query.prepare("REPLACE INTO sources (object_id, path, size, date_created, date_modified)" @@ -756,7 +756,7 @@ uint SQLiteDB::insertPhotoEntry(const QString &path, const QString &name, int pa } QDateTime date = QFileInfo(path + "/" + name).created(); - date_created = date.toTime_t(); + date_created = date.toUTC().toTime_t(); QString month_created = date.toString("yyyy/MM"); width = img.width(); @@ -806,7 +806,7 @@ uint SQLiteDB::insertSavedataEntry(const QString &path, const QString &name, int title = reader.value("TITLE", utf8name.constData()); savedata_detail = reader.value("SAVEDATA_DETAIL", ""); savedata_directory = reader.value("SAVEDATA_DIRECTORY", utf8name.constData()); - date_updated = QFileInfo(path + "/" + name).lastModified().toTime_t(); + date_updated = QFileInfo(path + "/" + name).lastModified().toUTC().toTime_t(); } if((ohfi = insertDefaultEntry(path, name, title, parent, type)) == 0) {