File indexing completed on 2025-04-27 03:58:36

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2009-06-15
0007  * Description : multi-languages string editor
0008  *
0009  * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0010  *
0011  * SPDX-License-Identifier: GPL-2.0-or-later
0012  *
0013  * ============================================================ */
0014 
0015 #ifndef DIGIKAM_ALT_LANG_STR_EDIT_P_H
0016 #define DIGIKAM_ALT_LANG_STR_EDIT_P_H
0017 
0018 #include "altlangstredit.h"
0019 
0020 // Qt includes
0021 
0022 #include <QEvent>
0023 #include <QIcon>
0024 #include <QLineEdit>
0025 #include <QFontMetrics>
0026 #include <QRect>
0027 #include <QMenu>
0028 #include <QListWidget>
0029 #include <QWidgetAction>
0030 #include <QStyle>
0031 #include <QLabel>
0032 #include <QToolButton>
0033 #include <QGridLayout>
0034 #include <QApplication>
0035 #include <QComboBox>
0036 #include <QScrollBar>
0037 #include <QListWidgetItem>
0038 #include <QMessageBox>
0039 
0040 // KDE includes
0041 
0042 #include <klazylocalizedstring.h>
0043 #include <klocalizedstring.h>
0044 
0045 // Local includes
0046 
0047 #include "digikam_debug.h"
0048 #include "donlinetranslator.h"
0049 #include "localizesettings.h"
0050 #include "localizeselector.h"
0051 #include "dexpanderbox.h"
0052 
0053 namespace Digikam
0054 {
0055 
0056 typedef QMap<QString, KLazyLocalizedString> LanguageCodeMap;
0057 
0058 extern const LanguageCodeMap s_rfc3066ForXMP;
0059 
0060 // ----------------------------------------------------------------------
0061 
0062 class Q_DECL_HIDDEN AltLangStrEdit::Private
0063 {
0064 public:
0065 
0066     explicit Private()
0067       : currentLanguage (QLatin1String("x-default")),
0068         linesVisible    (0),
0069         grid            (nullptr),
0070         titleWidget     (nullptr),
0071         delValueButton  (nullptr),
0072         localizeSelector(nullptr),
0073         valueEdit       (nullptr),
0074         languageCB      (nullptr),
0075         trengine        (nullptr)
0076     {
0077     }
0078 
0079     ~Private()
0080     {
0081     }
0082 
0083 public:
0084 
0085     QString                        currentLanguage;
0086 
0087     uint                           linesVisible;
0088 
0089     QGridLayout*                   grid;
0090 
0091     QWidget*                       titleWidget;
0092 
0093     QToolButton*                   delValueButton;
0094     LocalizeSelector*              localizeSelector;
0095 
0096     DTextEdit*                     valueEdit;
0097 
0098     QComboBox*                     languageCB;
0099     DOnlineTranslator*             trengine;
0100     QString                        trCode;
0101 
0102     MetaEngine::AltLangMap         values;
0103 };
0104 
0105 } // namespace Digikam
0106 
0107 #endif // DIGIKAM_ALT_LANG_STR_EDIT_P_H