You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
4.0 KiB
136 lines
4.0 KiB
/* ============================================================
|
|
*
|
|
* This file is a part of digiKam project
|
|
* http://www.digikam.org
|
|
*
|
|
* Date : 2006-01-16
|
|
* Description : image file IO threaded interface.
|
|
*
|
|
* Copyright (C) 2006-2007 by Marcel Wiesweg <marcel.wiesweg@gmx.de>
|
|
*
|
|
* This program is free software; you can redistribute it
|
|
* and/or modify it under the terms of the GNU General
|
|
* Public License as published by the Free Software Foundation;
|
|
* either version 2, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* ============================================================ */
|
|
|
|
#ifndef LOADING_DESCRIPTION_H
|
|
#define LOADING_DESCRIPTION_H
|
|
|
|
// Digikam includes.
|
|
|
|
#include "dimg.h"
|
|
#include "digikam_export.h"
|
|
|
|
namespace Digikam
|
|
{
|
|
|
|
class DIGIKAM_EXPORT LoadingDescription
|
|
{
|
|
public:
|
|
|
|
class PreviewParameters
|
|
{
|
|
public:
|
|
PreviewParameters()
|
|
{
|
|
isPreview = false;
|
|
size = 0;
|
|
exifRotate = false;
|
|
}
|
|
|
|
bool isPreview;
|
|
int size;
|
|
bool exifRotate;
|
|
|
|
bool operator==(const PreviewParameters &other) const;
|
|
};
|
|
|
|
/**
|
|
* An invalid LoadingDescription
|
|
*/
|
|
LoadingDescription()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Use this for files that are not raw files.
|
|
* Stores only the filePath.
|
|
*/
|
|
LoadingDescription(const TQString &filePath);
|
|
|
|
/**
|
|
* For raw files:
|
|
* Stores filePath and RawDecodingSettings
|
|
*/
|
|
LoadingDescription(const TQString &filePath, DRawDecoding settings);
|
|
|
|
/**
|
|
* For preview jobs:
|
|
* Stores preview max size and exif rotation.
|
|
* Exif Rotation:
|
|
* The exif rotation is only a hint.
|
|
* Call LoadSaveThread::exifRotate to make sure that the image is really
|
|
* rotated. It is safe to call this method even if the image is rotated.
|
|
* Raw files:
|
|
* If size is not 0, the embedded preview will be loaded if available.
|
|
* If size is 0, DImg based loading will be used with default raw decoding settings.
|
|
*/
|
|
LoadingDescription(const TQString &filePath, int size, bool exifRotate);
|
|
|
|
TQString filePath;
|
|
DRawDecoding rawDecodingSettings;
|
|
PreviewParameters previewParameters;
|
|
|
|
/**
|
|
* Return the cache key this description shall be stored as
|
|
*/
|
|
TQString cacheKey() const;
|
|
/**
|
|
* Return all possible cache keys, starting with the best choice,
|
|
* for which a result may be found in the cache for this description.
|
|
* Included in the list are better quality versions, if this description is reduced.
|
|
*/
|
|
TQStringList lookupCacheKeys() const;
|
|
/**
|
|
* Returns whether this description describes a loading operation which
|
|
* loads the image in a reduced version (quality, size etc.)
|
|
*/
|
|
bool isReducedVersion() const;
|
|
|
|
/**
|
|
* Returns whether the other loading task equals this one
|
|
*/
|
|
bool operator==(const LoadingDescription &other) const;
|
|
bool operator!=(const LoadingDescription &other) const
|
|
{ return !operator==(other); }
|
|
/**
|
|
* Returns whether the other loading task equals this one
|
|
* ignoring parameters used to specify a reduced version.
|
|
*/
|
|
bool equalsIgnoreReducedVersion(const LoadingDescription &other) const;
|
|
|
|
/**
|
|
* Returns whether this loading task equals the other one
|
|
* or is superior to it, if the other one is a reduced version
|
|
*/
|
|
bool equalsOrBetterThan(const LoadingDescription &other) const;
|
|
|
|
/**
|
|
* Returns all possible cacheKeys for the given file path
|
|
* (all cache keys under which the given file could be stored in the cache).
|
|
*/
|
|
static TQStringList possibleCacheKeys(const TQString &filePath);
|
|
};
|
|
|
|
} // namespace Digikam
|
|
|
|
#endif // LOADING_DESCRIPTION_H
|