digiKam
Loading...
Searching...
No Matches
dbengineparameters.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 : 2007-03-18
7 * Description : Database Engine storage container for connection parameters.
8 *
9 * SPDX-FileCopyrightText: 2007-2008 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2018 by Mario Frank <mario dot frank at uni minus potsdam dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QString>
22#include <QtGlobal>
23#include <QUrl>
24
25// Local includes
26
27#include "digikam_export.h"
28#include "dbengineconfig.h"
29
30namespace Digikam
31{
32
38class DIGIKAM_EXPORT DbEngineParameters
39{
40
41public:
42
43 DbEngineParameters(const QString& _type,
44 const QString& _databaseNameCore,
45 const QString& _connectOptions = QString(),
46 const QString& _hostName = QString(),
47 int _port = -1,
48 bool _walMode = false,
49 bool _internalServer = false,
50 const QString& _userName = QString(),
51 const QString& _password = QString(),
52 const QString& _databaseNameThumbnails = QString(),
53 const QString& _databaseNameFace = QString(),
54 const QString& _databaseNameSimilarity = QString(),
55 const QString& _internalServerDBPath = QString(),
56 const QString& _internalServerMysqlInitCmd = QString(),
57 const QString& _internalServerMysqlAdminCmd = QString(),
58 const QString& _internalServerMysqlServerCmd = QString(),
59 const QString& _internalServerMysqlUpgradeCmd = QString());
60
61 DbEngineParameters() = default;;
62
66 explicit DbEngineParameters(const QUrl& url);
67 void insertInUrl(QUrl& url) const;
68 static void removeFromUrl(QUrl& url);
69
70 bool operator==(const DbEngineParameters& other) const;
71 bool operator!=(const DbEngineParameters& other) const;
72
77 bool isValid() const;
78
79 bool isSQLite() const;
80 bool isMySQL() const;
81 QString SQLiteDatabaseFile() const;
82
88 static QString SQLiteDatabaseType();
89 static QString MySQLDatabaseType();
90
94 QByteArray hash() const;
95
99 static DbEngineParameters defaultParameters(const QString& databaseType);
100
101 static DbEngineParameters parametersFromConfig(const QString& configGroup = QString());
106 void readFromConfig(const QString& configGroup = QString());
107 void writeToConfig(const QString& configGroup = QString()) const;
108
113 QString getCoreDatabaseNameOrDir() const;
114 QString getThumbsDatabaseNameOrDir() const;
115 QString getFaceDatabaseNameOrDir() const;
116 QString getSimilarityDatabaseNameOrDir() const;
117
121 void setCoreDatabasePath(const QString& folderOrFileOrName);
122 void setThumbsDatabasePath(const QString& folderOrFileOrName);
123 void setFaceDatabasePath(const QString& folderOrFileOrName);
124 void setSimilarityDatabasePath(const QString& folderOrFileOrName);
125
126 static QString coreDatabaseFileSQLite(const QString& folderOrFile);
127 static QString thumbnailDatabaseFileSQLite(const QString& folderOrFile);
128 static QString faceDatabaseFileSQLite(const QString& folderOrFile);
129 static QString similarityDatabaseFileSQLite(const QString& folderOrFile);
130
131 static QString coreDatabaseDirectorySQLite(const QString& path);
132 static QString thumbnailDatabaseDirectorySQLite(const QString& path);
133 static QString faceDatabaseDirectorySQLite(const QString& path);
134 static QString similarityDatabaseDirectorySQLite(const QString& path);
135
139 void setInternalServerPath(const QString& path);
140 QString internalServerPath() const;
141
145 DbEngineParameters thumbnailParameters() const;
146
150 DbEngineParameters faceParameters() const;
151
155 DbEngineParameters similarityParameters() const;
156
157 void legacyAndDefaultChecks(const QString& suggestedPath = QString());
158 void removeLegacyConfig();
159
164 static DbEngineParameters parametersForSQLite(const QString& databaseFile);
165 static DbEngineParameters parametersForSQLiteDefaultFile(const QString& directory);
166
171 static QString serverPrivatePath();
172
176 static QString defaultMysqlInitCmd();
177
181 static QString defaultMysqlAdminCmd();
182
186 static QString defaultMysqlServerCmd();
187
191 static QString defaultMysqlUpgradeCmd();
192
193public:
194
198 QString hostName;
199 int port = -1;
200 bool walMode = false;
201 bool internalServer = false;
202 QString userName;
203 QString password;
204
209
218};
219
220DIGIKAM_EXPORT QDebug operator<<(QDebug dbg, const DbEngineParameters& t);
221
222} // namespace Digikam
Definition dbengineparameters.h:39
QString databaseType
Definition dbengineparameters.h:195
QString internalServerMysqlServerCmd
Definition dbengineparameters.h:216
QString userName
Definition dbengineparameters.h:202
QString databaseNameFace
Definition dbengineparameters.h:206
QString password
Definition dbengineparameters.h:203
QString databaseNameThumbnails
Definition dbengineparameters.h:205
QString internalServerMysqlAdminCmd
Definition dbengineparameters.h:215
QString internalServerDBPath
Definition dbengineparameters.h:208
QString hostName
Definition dbengineparameters.h:198
QString internalServerMysqlUpgradeCmd
Definition dbengineparameters.h:217
QString databaseNameCore
Definition dbengineparameters.h:196
QString internalServerMysqlInitCmd
Definition dbengineparameters.h:214
QString connectOptions
Definition dbengineparameters.h:197
QString databaseNameSimilarity
Definition dbengineparameters.h:207
Definition datefolderview.cpp:34
QDebug operator<<(QDebug dbg, const DbEngineParameters &p)
Definition dbengineparameters.cpp:930
bool operator==(const SearchTextSettings &a, const SearchTextSettings &b)
Definition searchtextbar.cpp:40