X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=src%2Fplatformsettings.cpp;h=18e5a64f66e986d300cd41c63239fcfe152c4335;hb=9e2fef3185dcb1ffe1622e226f0064bef5f547c9;hp=9122bedf0f283410aed52952d62aca4c2bbdd6fb;hpb=b2f99e69cb4012bb167d6be909c113a1b0f5dc9f;p=harmattan%2Fcameraplus diff --git a/src/platformsettings.cpp b/src/platformsettings.cpp index 9122bed..18e5a64 100644 --- a/src/platformsettings.cpp +++ b/src/platformsettings.cpp @@ -1,7 +1,7 @@ /*! * This file is part of CameraPlus. * - * Copyright (C) 2012 Mohammed Sameer + * Copyright (C) 2012-2013 Mohammed Sameer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,7 +20,11 @@ #include "platformsettings.h" #include -#include +#include +#ifdef HARMATTAN +#include +#include "quillitem.h" +#endif #define PATH "/usr/share/cameraplus/config/cameraplus.ini" @@ -32,38 +36,138 @@ #define DBUS_THUMBNAILING_ENABLED true #define BACKGROUND_RENDERING_COLOR QColor(Qt::black) -PlatformSettings::PlatformSettings() : - QSettings(PATH, QSettings::IniFormat) { +#ifdef HARMATTAN +#define IMAGE_PATH QString("%1%2MyDocs%2DCIM%2").arg(QDir::homePath()).arg(QDir::separator()) +#define VIDEO_PATH IMAGE_PATH +#define TEMP_VIDEO QString("%1%2MyDocs%2.cameraplus%2").arg(QDir::homePath()).arg(QDir::separator()) +#endif + +#ifdef SAILFISH +#define IMAGE_PATH QString("%1%2Pictures%2Camera%2").arg(QDir::homePath()).arg(QDir::separator()) +#define VIDEO_PATH QString("%1%2Videos%2Camera%2").arg(QDir::homePath()).arg(QDir::separator()) +#define TEMP_VIDEO VIDEO_PATH +#endif + +PlatformSettings::PlatformSettings(QObject *parent) : + QObject(parent), m_settings(new QSettings(PATH, QSettings::IniFormat)) { } PlatformSettings::~PlatformSettings() { + delete m_settings; +} +QSize PlatformSettings::previewSize() { + return m_settings->value("quill/previewSize", PREVIEW_SIZE).toSize(); } -QList > PlatformSettings::previewLevels() { - return QList >() << - qMakePair(value("quill/thumbnailFlavorName", THUMBNAIL_FLAVOR_NAME).toString(), - value("quill/previewSize", PREVIEW_SIZE).toSize()); +QString PlatformSettings::thumbnailFlavorName() { + return m_settings->value("quill/thumbnailFlavorName", THUMBNAIL_FLAVOR_NAME).toString(); } QString PlatformSettings::thumbnailExtension() { - return value("quill/thumbnailExtension", THUMBNAIL_EXTENSION).toString(); + return m_settings->value("quill/thumbnailExtension", THUMBNAIL_EXTENSION).toString(); } QColor PlatformSettings::backgroundRenderingColor() { - return value("quill/backgroundRenderingColor", BACKGROUND_RENDERING_COLOR).value(); + return m_settings->value("quill/backgroundRenderingColor", + BACKGROUND_RENDERING_COLOR).value(); } bool PlatformSettings::isDBusThumbnailingEnabled() { - return value("quill/dbusThumbnailingEnabled", DBUS_THUMBNAILING_ENABLED).toBool(); + return m_settings->value("quill/dbusThumbnailingEnabled", DBUS_THUMBNAILING_ENABLED).toBool(); } bool PlatformSettings::isThumbnailCreationEnabled() { - return value("quill/thumbnailCreationEnabled", THUMBNAIL_CREATION_ENABLED).toBool(); + return m_settings->value("quill/thumbnailCreationEnabled", THUMBNAIL_CREATION_ENABLED).toBool(); } QString PlatformSettings::temporaryFilePath() { QString defaultPath = QString(TEMPORARY_FILE_PATH).arg(QDir::homePath()).arg(QDir::separator()); - return value("quill/temporaryFilePath", defaultPath).toString(); + return m_settings->value("quill/temporaryFilePath", defaultPath).toString(); +} + +QSize PlatformSettings::portraitSize(const QSize& size) { + return size.width() > size.height() ? QSize(size.height(), size.width()) : size; +} + +QSize PlatformSettings::landscapeSize(const QSize& size) { + return size.width() > size.height() ? size : QSize(size.height(), size.width()); +} + +void PlatformSettings::init() { +#ifdef HARMATTAN + // How we create thumbnails for portrait is really messy. + // I am sure there is a better way to tell Quill to generate proper + // portrait thumbnails without having 2 display levels but I don't know how. + // The issue is we generate screen sized thumbnails for landscape + // but we generate half screen sized thumbnails for portrait + Quill::setPreviewLevelCount(2); + QSize size = previewSize(); + + // Landscape: + Quill::setThumbnailFlavorName(LANDSCAPE_PREVIEW_LEVEL, thumbnailFlavorName()); + Quill::setPreviewSize(LANDSCAPE_PREVIEW_LEVEL, landscapeSize(size)); + + // Portrait: + Quill::setThumbnailFlavorName(PORTRAIT_PREVIEW_LEVEL, thumbnailFlavorName()); + Quill::setPreviewSize(PORTRAIT_PREVIEW_LEVEL, portraitSize(size)); + + Quill::setThumbnailExtension(thumbnailExtension()); + Quill::setBackgroundRenderingColor(backgroundRenderingColor()); + Quill::setDBusThumbnailingEnabled(isDBusThumbnailingEnabled()); + Quill::setThumbnailCreationEnabled(isThumbnailCreationEnabled()); + + QString tempPath = temporaryFilePath(); + QDir().mkpath(tempPath); + Quill::setTemporaryFilePath(tempPath); +#endif +} + +PlatformSettings::Service PlatformSettings::service(const QString& id) { + PlatformSettings::Service service; + m_settings->beginGroup(id); + + service.m_enabled = m_settings->value("enabled", false).toBool(); + service.m_type = m_settings->value("type").toString(); + service.m_path = m_settings->value("path").toString(); + service.m_interface = m_settings->value("interface").toString(); + service.m_dest = m_settings->value("dest").toString(); + service.m_method = m_settings->value("method").toString(); + + m_settings->endGroup(); + + return service; +} + +QString PlatformSettings::imageCaptureStartedSound() const { + return m_settings->value("sounds/imageCaptureStarted").toString(); +} + +QString PlatformSettings::imageCaptureEndedSound() const { + return m_settings->value("sounds/imageCaptureEnded").toString(); +} + +QString PlatformSettings::videoRecordingStartedSound() const { + return m_settings->value("sounds/videoRecordingStarted").toString(); +} + +QString PlatformSettings::videoRecordingEndedSound() const { + return m_settings->value("sounds/videoRecordingEnded").toString(); +} + +QString PlatformSettings::autoFocusAcquiredSound() const { + return m_settings->value("sounds/autoFocusAcquired").toString(); +} + +QString PlatformSettings::imagePath() const { + return IMAGE_PATH; +} + +QString PlatformSettings::videoPath() const { + return VIDEO_PATH; +} + +QString PlatformSettings::temporaryVideoPath() const { + return TEMP_VIDEO; }