digiKam
Loading...
Searching...
No Matches
versionnamingscheme.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-12-20
7 * Description : Interface for version file naming
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 <QString>
21#include <QVariant>
22
23// Local includes
24
25#include "digikam_export.h"
26
27namespace Digikam
28{
29
30class DIGIKAM_EXPORT VersionNamingScheme
31{
32public:
33
38 virtual ~VersionNamingScheme() = default;
39
50 virtual QString baseName(const QString& path,
51 const QString& filename,
52 QVariant* counter = nullptr,
53 QVariant* intermediateCounter = nullptr) = 0;
54
61 virtual QString versionFileName(const QString& path,
62 const QString& baseName,
63 const QVariant& counter) = 0;
64
72 virtual QString intermediateFileName(const QString& path,
73 const QString& filename,
74 const QVariant& version,
75 const QVariant& counter) = 0;
76
81 virtual QString directory(const QString& path,
82 const QString& filename) = 0;
83 virtual QString intermediateDirectory(const QString& currentPath,
84 const QString& fileName) = 0;
85
93 virtual QVariant initialCounter() = 0;
94
99 virtual QVariant incrementedCounter(const QVariant& counter) = 0;
100
101private:
102
103 Q_DISABLE_COPY(VersionNamingScheme)
104};
105
106// -----------------------------------------------------------------------------------------------------
107
109{
110public:
111
113 virtual ~DefaultVersionNamingScheme() = default;
114
115 virtual QString baseName(const QString& currentPath, const QString& filename,
116 QVariant* counter, QVariant* intermediateCounter) override;
117 virtual QString versionFileName(const QString& currentPath, const QString& filename,
118 const QVariant& counter) override;
119 virtual QString intermediateFileName(const QString& currentPath, const QString& filename,
120 const QVariant& version, const QVariant& counter) override;
121 virtual QString directory(const QString& currentPath, const QString& filename) override;
122 virtual QString intermediateDirectory(const QString& currentPath, const QString& fileName) override;
123 virtual QVariant initialCounter() override;
124 virtual QVariant incrementedCounter(const QVariant& counter) override;
125
126private:
127
128 Q_DISABLE_COPY(DefaultVersionNamingScheme)
129};
130
131} // namespace Digikam
Definition versionnamingscheme.h:109
virtual ~DefaultVersionNamingScheme()=default
Definition versionnamingscheme.h:31
virtual QString intermediateFileName(const QString &path, const QString &filename, const QVariant &version, const QVariant &counter)=0
virtual ~VersionNamingScheme()=default
virtual QString baseName(const QString &path, const QString &filename, QVariant *counter=nullptr, QVariant *intermediateCounter=nullptr)=0
virtual QString versionFileName(const QString &path, const QString &baseName, const QVariant &counter)=0
virtual QString directory(const QString &path, const QString &filename)=0
virtual QVariant initialCounter()=0
virtual QVariant incrementedCounter(const QVariant &counter)=0
virtual QString intermediateDirectory(const QString &currentPath, const QString &fileName)=0
Definition datefolderview.cpp:34