return activityLink;
}
-OCC::Activity Activity::fromActivityJson(const QJsonObject json, const AccountPtr account)
+OCC::Activity Activity::fromActivityJson(const QJsonObject &json, const AccountPtr account)
{
const auto activityUser = json.value(QStringLiteral("user")).toString();
}
const auto previewsData = json.value(QStringLiteral("previews")).toArray();
+ const QMimeDatabase mimeDb;
- for(const auto preview : previewsData) {
+ for(const auto &preview : previewsData) {
const auto jsonPreviewData = preview.toObject();
PreviewData data;
data._view = jsonPreviewData.value(QStringLiteral("view")).toString();
data._filename = jsonPreviewData.value(QStringLiteral("filename")).toString();
- if(data._mimeType.contains(QStringLiteral("text/"))) {
- data._source = account->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/text.svg");
- data._isMimeTypeIcon = true;
- } else if (data._mimeType.contains(QStringLiteral("/pdf"))) {
- data._source = account->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/application-pdf.svg");
+ const auto mimeType = mimeDb.mimeTypeForName(data._mimeType);
+
+ if(data._mimeType.contains(QStringLiteral("text/")) || data._mimeType.contains(QStringLiteral("/pdf"))) {
+ data._source = account->url().toString() + relativeServerFileTypeIconPath(mimeType);
data._isMimeTypeIcon = true;
} else {
data._source = jsonPreviewData.value(QStringLiteral("source")).toString();
return activity;
}
+QString Activity::relativeServerFileTypeIconPath(const QMimeType &mimeType)
+{
+ if(mimeType.isValid() && mimeType.inherits("text/plain")) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/text.svg");
+ } else if (mimeType.isValid() && mimeType.name().startsWith("image")) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/image.svg");
+ } else if (mimeType.isValid() && mimeType.name().startsWith("audio")) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/audio.svg");
+ } else if (mimeType.isValid() && mimeType.name().startsWith("video")) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/video.svg");
+ } else if (mimeType.isValid() && (mimeType.inherits("application/vnd.oasis.opendocument.text") ||
+ mimeType.inherits("application/msword") ||
+ mimeType.inherits("application/vnd.openxmlformats-officedocument.wordprocessingml.document") ||
+ mimeType.inherits("application/vnd.openxmlformats-officedocument.wordprocessingml.template")||
+ mimeType.inherits("application/vnd.ms-word.document.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.ms-word.template.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.apple.pages"))) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/x-office-document.svg");
+ } else if (mimeType.isValid() && mimeType.inherits("application/vnd.oasis.opendocument.graphics")) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/x-office-drawing.svg");
+ } else if (mimeType.isValid() && (mimeType.inherits("application/vnd.oasis.opendocument.presentation") ||
+ mimeType.inherits("application/vnd.ms-powerpoint") ||
+ mimeType.inherits("application/vnd.openxmlformats-officedocument.presentationml.presentation") ||
+ mimeType.inherits("application/vnd.openxmlformats-officedocument.presentationml.template") ||
+ mimeType.inherits("application/vnd.openxmlformats-officedocument.presentationml.slideshow") ||
+ mimeType.inherits("application/vnd.ms-powerpoint.addin.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.ms-powerpoint.presentation.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.ms-powerpoint.template.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.ms-powerpoint.slideshow.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.apple.keynote"))) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/x-office-presentation.svg");
+ } else if (mimeType.isValid() && (mimeType.inherits("application/vnd.oasis.opendocument.spreadsheet") ||
+ mimeType.inherits("application/vnd.ms-excel") ||
+ mimeType.inherits("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") ||
+ mimeType.inherits("application/vnd.openxmlformats-officedocument.spreadsheetml.template") ||
+ mimeType.inherits("application/vnd.ms-excel.sheet.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.ms-excel.template.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.ms-excel.addin.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.ms-excel.sheet.binary.macroEnabled.12") ||
+ mimeType.inherits("application/vnd.apple.numbers"))) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/x-office-document.svg");
+ } else if (mimeType.isValid() && mimeType.inherits("application/pdf")) {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/application-pdf.svg");
+ } else {
+ return QStringLiteral("/index.php/apps/theming/img/core/filetypes/file.svg");
+ }
+}
+
}
PreviewData preview;
preview._mimeType = mimeType.name();
preview._filename = fileName;
+ preview._isMimeTypeIcon = true;
if(item->isDirectory()) {
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/folder.svg");
- preview._isMimeTypeIcon = true;
- } else if(mimeType.isValid() && mimeType.inherits("text/plain")) {
- preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/text.svg");
- preview._isMimeTypeIcon = true;
- } else if (mimeType.isValid() && mimeType.inherits("application/pdf")) {
- preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/application-pdf.svg");
- preview._isMimeTypeIcon = true;
} else {
- preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/files/api/v1/thumbnail/150/150/") + remotePath;
- preview._isMimeTypeIcon = false;
+ preview._source = account()->url().toString() + Activity::relativeServerFileTypeIconPath(mimeType);
}
activity._previews.append(preview);
}