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) {