digiKam
Loading...
Searching...
No Matches
dbsettingswidget.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 : 2009-11-14
7 * Description : database settings widget
8 *
9 * SPDX-FileCopyrightText: 2009-2010 by Holger Foerster <Hamsi2k at freenet dot de>
10 * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles 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 <QWidget>
21#include <QString>
22
23// Local includes
24
25#include "digikam_export.h"
26
27namespace Digikam
28{
29
30class ApplicationSettings;
31class DbEngineParameters;
32
33class DIGIKAM_GUI_EXPORT DatabaseSettingsWidget : public QWidget
34{
35 Q_OBJECT
36
37public:
38
40 {
41 SQlite = 0,
42 MysqlInternal = 1,
43 MysqlServer = 2
44 };
45
46public:
47
48 explicit DatabaseSettingsWidget(QWidget* const parent = nullptr);
49 ~DatabaseSettingsWidget() override;
50
51public:
52
53 void setParametersFromSettings(const ApplicationSettings* const settings,
54 const bool& migration = false);
55 DbEngineParameters getDbEngineParameters() const;
56
57 void setDatabaseType(int type);
58 int databaseType() const;
59
60 QString databaseBackend() const;
61
62 void setDatabasePath(const QString& path);
63 QString databasePath() const;
64
65 DbEngineParameters orgDatabasePrm() const;
66
71 bool checkDatabaseSettings();
72
73private:
74
75 void setupMainArea();
76 void handleInternalServer(int index);
77 void setDatabaseInputFields(int index);
78 bool isNotEqualToThumbName(const QString& name);
79 bool checkMysqlServerConnection(QString& error);
80 bool checkMysqlServerConnectionConfig(QString& error);
81 bool checkMysqlServerDbNamesConfig(QString& error);
82 bool checkDatabasePath();
83
84private Q_SLOTS:
85
86 void slotHandleDBTypeIndexChanged(int index);
87 void slotDatabasePathEditedDelayed();
88 void slotDatabasePathEdited();
89 void slotUpdateSqlInit();
90 void slotCheckMysqlServerConnection();
91 void slotResetMysqlServerDBNames();
92
93private:
94
95 class Private;
96 Private* const d = nullptr;
97};
98
99} // namespace Digikam
Definition applicationsettings.h:49
Definition dbsettingswidget_p.h:71
Definition dbsettingswidget.h:34
DatabaseType
Definition dbsettingswidget.h:40
Definition dbengineparameters.h:39
Definition datefolderview.cpp:34