File indexing completed on 2025-01-19 03:53:49

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2009-11-14
0007  * Description : database settings widget - private container
0008  *
0009  * SPDX-FileCopyrightText: 2009-2010 by Holger Foerster <Hamsi2k at freenet dot de>
0010  * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0011  *
0012  * SPDX-License-Identifier: GPL-2.0-or-later
0013  *
0014  * ============================================================ */
0015 
0016 #ifndef DIGIKAM_DB_SETTINGS_WIDGET_P_H
0017 #define DIGIKAM_DB_SETTINGS_WIDGET_P_H
0018 
0019 #include "dbsettingswidget.h"
0020 
0021 // Qt includes
0022 
0023 #include <QApplication>
0024 #include <QCheckBox>
0025 #include <QComboBox>
0026 #include <QDir>
0027 #include <QFileInfo>
0028 #include <QFormLayout>
0029 #include <QGridLayout>
0030 #include <QGroupBox>
0031 #include <QHeaderView>
0032 #include <QLabel>
0033 #include <QLineEdit>
0034 #include <QMessageBox>
0035 #include <QSpinBox>
0036 #include <QSqlDatabase>
0037 #include <QSqlError>
0038 #include <QStandardPaths>
0039 #include <QString>
0040 #include <QStyle>
0041 #include <QTabWidget>
0042 #include <QTemporaryFile>
0043 #include <QTextBrowser>
0044 #include <QTimer>
0045 #include <QVBoxLayout>
0046 
0047 // KDE includes
0048 
0049 #include <klocalizedstring.h>
0050 
0051 // Local includes
0052 
0053 #include "digikam_config.h"
0054 #include "digikam_debug.h"
0055 #include "digikam_globals.h"
0056 #include "applicationsettings.h"
0057 #include "dfileselector.h"
0058 #include "dbengineparameters.h"
0059 #include "dbinarysearch.h"
0060 #include "dexpanderbox.h"
0061 #include "dlayoutbox.h"
0062 #include "mysqlupgradebinary.h"
0063 #include "mysqlserverbinary.h"
0064 #include "mysqladminbinary.h"
0065 #include "mysqlinitbinary.h"
0066 #include "albummanager.h"
0067 
0068 namespace Digikam
0069 {
0070 
0071 class Q_DECL_HIDDEN DatabaseSettingsWidget::Private
0072 {
0073 
0074 public:
0075 
0076     explicit Private()
0077       : mysqlCmdBox             (nullptr),
0078         dbNameCore              (nullptr),
0079         dbNameFace              (nullptr),
0080         dbNameSimilarity        (nullptr),
0081         hostName                (nullptr),
0082         connectOpts             (nullptr),
0083         userName                (nullptr),
0084         password                (nullptr),
0085         hostPort                (nullptr),
0086         dbType                  (nullptr),
0087         dbPathLabel             (nullptr),
0088         dbThumbsLabel           (nullptr),
0089         walLabel                (nullptr),
0090         sqlInit                 (nullptr),
0091         expertSettings          (nullptr),
0092         dbNoticeBox             (nullptr),
0093         dbDetailsBox            (nullptr),
0094         tab                     (nullptr),
0095         dbPathEdit              (nullptr),
0096         dbNameThumbs            (nullptr),
0097         walModeCheck            (nullptr),
0098         dbBinariesWidget        (nullptr),
0099         ignoreDirectoriesBox    (nullptr),
0100         ignoreDirectoriesEdit   (nullptr),
0101         ignoreDirectoriesLabel  (nullptr)
0102     {
0103     }
0104 
0105     DVBox*             mysqlCmdBox;
0106 
0107     QLineEdit*         dbNameCore;
0108     QLineEdit*         dbNameFace;
0109     QLineEdit*         dbNameSimilarity;
0110     QLineEdit*         hostName;
0111     QLineEdit*         connectOpts;
0112     QLineEdit*         userName;
0113     QLineEdit*         password;
0114 
0115     QSpinBox*          hostPort;
0116 
0117     QComboBox*         dbType;
0118     QLabel*            dbPathLabel;
0119     QLabel*            dbThumbsLabel;
0120     QLabel*            walLabel;
0121     QTextBrowser*      sqlInit;
0122     QGroupBox*         expertSettings;
0123     QGroupBox*         dbNoticeBox;
0124     QGroupBox*         dbDetailsBox;
0125     QTabWidget*        tab;
0126 
0127     DFileSelector*     dbPathEdit;
0128     DFileSelector*     dbNameThumbs;
0129 
0130     QCheckBox*         walModeCheck;
0131 
0132     DBinarySearch*     dbBinariesWidget;
0133 
0134     MysqlUpgradeBinary mysqlUpgradeBin;
0135     MysqlServerBinary  mysqlServerBin;
0136     MysqlAdminBinary   mysqlAdminBin;
0137     MysqlInitBinary    mysqlInitBin;
0138 
0139     DbEngineParameters orgPrms;
0140 
0141     QMap<int, int>     dbTypeMap;
0142 
0143     QGroupBox*         ignoreDirectoriesBox;
0144     QLineEdit*         ignoreDirectoriesEdit;
0145     QLabel*            ignoreDirectoriesLabel;
0146 };
0147 
0148 } // namespace Digikam
0149 
0150 #endif // DIGIKAM_DB_SETTINGS_WIDGET_P_H