File indexing completed on 2024-04-28 04:18:52

0001 // vim: set tabstop=4 shiftwidth=4 expandtab
0002 /*
0003 Gwenview - A simple image viewer for KDE
0004 Copyright 2006 Aurelien Gateau <agateau@kde.org>
0005 
0006 This program is free software; you can redistribute it and/or
0007 modify it under the terms of the GNU General Public License
0008 as published by the Free Software Foundation; either version 2
0009 of the License, or (at your option) any later version.
0010 
0011 This program is distributed in the hope that it will be useful,
0012 but WITHOUT ANY WARRANTY; without even the implied warranty of
0013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014 GNU General Public License for more details.
0015 
0016 You should have received a copy of the GNU General Public License
0017 along with this program; if not, write to the Free Software
0018 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
0019 
0020 */
0021 #ifndef MIMETYPEUTILS_H
0022 #define MIMETYPEUTILS_H
0023 
0024 #include <QStringList>
0025 #include <lib/gwenviewlib_export.h>
0026 // Local
0027 class KFileItem;
0028 class KFileItemList;
0029 class QUrl;
0030 class QMimeData;
0031 
0032 namespace Gwenview
0033 {
0034 namespace MimeTypeUtils
0035 {
0036 GWENVIEWLIB_EXPORT const QStringList &rasterImageMimeTypes();
0037 GWENVIEWLIB_EXPORT const QStringList &svgImageMimeTypes();
0038 GWENVIEWLIB_EXPORT const QStringList &imageMimeTypes();
0039 
0040 GWENVIEWLIB_EXPORT QString urlMimeType(const QUrl &);
0041 
0042 enum Kind {
0043     KIND_UNKNOWN = 0,
0044     KIND_DIR = 1,
0045     KIND_ARCHIVE = 1 << 2,
0046     KIND_FILE = 1 << 3,
0047     KIND_RASTER_IMAGE = 1 << 4,
0048     KIND_SVG_IMAGE = 1 << 5,
0049     KIND_VIDEO = 1 << 6,
0050 };
0051 Q_DECLARE_FLAGS(Kinds, Kind)
0052 
0053 GWENVIEWLIB_EXPORT Kind fileItemKind(const KFileItem &);
0054 GWENVIEWLIB_EXPORT Kind urlKind(const QUrl &);
0055 GWENVIEWLIB_EXPORT Kind mimeTypeKind(const QString &mimeType);
0056 
0057 enum MimeTarget {
0058     ClipboardTarget,
0059     DropTarget,
0060 };
0061 
0062 /**
0063  * Returns the image data (and also the URL, unless the image
0064  * is edited/unsaved) if there is a single image selected.
0065  * Otherwise, returns a list of URLs for all selected images.
0066  */
0067 GWENVIEWLIB_EXPORT QMimeData *selectionMimeData(const KFileItemList &selectedFiles, MimeTarget mimeTarget);
0068 
0069 } // namespace MimeTypeUtils
0070 
0071 } // namespace Gwenview
0072 
0073 Q_DECLARE_OPERATORS_FOR_FLAGS(Gwenview::MimeTypeUtils::Kinds)
0074 
0075 #endif /* MIMETYPEUTILS_H */