digiKam
Loading...
Searching...
No Matches
versionmanager.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2010-06-18
7 * Description : class for determining new file name in terms of version management
8 *
9 * SPDX-FileCopyrightText: 2010-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QFlags>
21#include <QMap>
22#include <QString>
23
24// Local includes
25
26#include "digikam_export.h"
27#include "dimagehistory.h"
30#include "versionnamingscheme.h"
31
32namespace Digikam
33{
34
35class DIGIKAM_EXPORT VersionManager
36{
37public:
38
40 {
42 NewVersionName
43 };
44
45public:
46
47 explicit VersionManager();
48 virtual ~VersionManager();
49
50 void setSettings(const VersionManagerSettings& settings);
51 VersionManagerSettings settings() const;
52
53 void setNamingScheme(VersionNamingScheme* scheme);
54 VersionNamingScheme* namingScheme() const;
55
56 VersionFileOperation operation(FileNameType request, const VersionFileInfo& loadedFile,
57 const DImageHistory& initialResolvedHistory,
58 const DImageHistory& currentHistory);
59
60 VersionFileOperation operationNewVersionInFormat(const VersionFileInfo& loadedFile,
61 const QString& format,
62 const DImageHistory& initialResolvedHistory,
63 const DImageHistory& currentHistory);
64
65 VersionFileOperation operationNewVersionAs(const VersionFileInfo& loadedFile,
66 const VersionFileInfo& saveLocation,
67 const DImageHistory& initialResolvedHistory,
68 const DImageHistory& currentHistory);
69
70 virtual QString toplevelDirectory(const QString& path);
71
72 virtual QStringList workspaceFileFormats() const;
73
74private:
75
76 // Disable
77 VersionManager(const VersionManager&) = delete;
78 VersionManager& operator=(const VersionManager&) = delete;
79
80private:
81
82 class Private;
83 Private* const d = nullptr;
84};
85
86} // namespace Digikam
Definition dimagehistory.h:39
Definition versionfileoperation.h:35
Definition versionfileoperation.h:60
Definition versionmanagersettings.h:33
Definition versionmanager.h:36
FileNameType
Definition versionmanager.h:40
@ CurrentVersionName
Definition versionmanager.h:41
Definition versionnamingscheme.h:31
Definition datefolderview.cpp:34