File indexing completed on 2025-04-27 03:57:27
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2003-03-09 0007 * Description : Captions, Tags, and Rating properties editor - private container 0008 * 0009 * SPDX-FileCopyrightText: 2003-2005 by Renchi Raju <renchi dot raju at gmail dot com> 0010 * SPDX-FileCopyrightText: 2003-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0011 * SPDX-FileCopyrightText: 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de> 0012 * SPDX-FileCopyrightText: 2009-2011 by Andi Clemens <andi dot clemens at gmail dot com> 0013 * SPDX-FileCopyrightText: 2009-2011 by Johannes Wienke <languitar at semipol dot de> 0014 * SPDX-FileCopyrightText: 2015 by Veaceslav Munteanu <veaceslav dot munteanu90 at gmail dot com> 0015 * 0016 * SPDX-License-Identifier: GPL-2.0-or-later 0017 * 0018 * ============================================================ */ 0019 0020 #ifndef DIGIKAM_ITEM_DESC_EDIT_TAB_P_H 0021 #define DIGIKAM_ITEM_DESC_EDIT_TAB_P_H 0022 0023 #include "itemdescedittab.h" 0024 0025 // Qt includes 0026 0027 #include <QStyle> 0028 #include <QGridLayout> 0029 #include <QScrollArea> 0030 #include <QTimer> 0031 #include <QToolButton> 0032 #include <QApplication> 0033 #include <QPushButton> 0034 #include <QMenu> 0035 #include <QIcon> 0036 #include <QCheckBox> 0037 #include <QMessageBox> 0038 #include <QPointer> 0039 0040 // KDE includes 0041 0042 #include <kconfiggroup.h> 0043 #include <klocalizedstring.h> 0044 0045 // Local includes 0046 0047 #include "digikam_debug.h" 0048 #include "addtagslineedit.h" 0049 #include "applicationsettings.h" 0050 #include "albumthumbnailloader.h" 0051 #include "captionedit.h" 0052 #include "collectionscanner.h" 0053 #include "coredbtransaction.h" 0054 #include "dnotificationwrapper.h" 0055 #include "ddatetimeedit.h" 0056 #include "digikamapp.h" 0057 #include "fileactionmngr.h" 0058 #include "ratingwidget.h" 0059 #include "scancontroller.h" 0060 #include "tagcheckview.h" 0061 #include "templateselector.h" 0062 #include "templateviewer.h" 0063 #include "itemattributeswatch.h" 0064 #include "statusprogressbar.h" 0065 #include "tagmodificationhelper.h" 0066 #include "template.h" 0067 #include "iteminfolist.h" 0068 #include "iteminfo.h" 0069 #include "colorlabelwidget.h" 0070 #include "picklabelwidget.h" 0071 #include "fileactionprogress.h" 0072 #include "tagsmanager.h" 0073 #include "tagtreeview.h" 0074 #include "searchtextbardb.h" 0075 #include "disjointmetadata.h" 0076 #include "altlangstredit.h" 0077 #include "albummodel.h" 0078 #include "metadatahub.h" 0079 0080 namespace Digikam 0081 { 0082 0083 class Q_DECL_HIDDEN ItemDescEditTab::Private 0084 { 0085 0086 public: 0087 0088 explicit Private(ItemDescEditTab* const tab); 0089 0090 public: 0091 0092 bool modified; 0093 bool ignoreItemAttributesWatch; 0094 0095 QToolButton* revertBtn; 0096 0097 QMenu* moreMenu; 0098 0099 QPushButton* applyBtn; 0100 QPushButton* moreButton; 0101 QPushButton* applyToAllVersionsButton; 0102 0103 QWidget* lastSelectedWidget; 0104 0105 AltLangStrEdit* titleEdit; 0106 0107 CaptionEdit* captionsEdit; 0108 0109 DDateTimeEdit* dateTimeEdit; 0110 0111 QTabWidget* tabWidget; 0112 0113 ItemInfoList currInfos; 0114 0115 TemplateSelector* templateSelector; 0116 TemplateViewer* templateViewer; 0117 0118 RatingWidget* ratingWidget; 0119 ColorLabelSelector* colorLabelSelector; 0120 PickLabelSelector* pickLabelSelector; 0121 0122 DisjointMetadata* hub; 0123 0124 QTimer* metadataChangeTimer; 0125 QList<int> metadataChangeIds; 0126 0127 int spacing; 0128 0129 // --- 0130 0131 bool togglingTagsSearchSettings; 0132 bool ignoreTagChanges; 0133 QToolButton* recentTagsBtn; 0134 QToolButton* assignedTagsBtn; 0135 QPushButton* openTagMngr; 0136 SearchTextBarDb* tagsSearchBar; 0137 AddTagsLineEdit* newTagEdit; 0138 TagCheckView* tagCheckView; 0139 TagModel* tagModel; 0140 0141 public: 0142 0143 void setupConnections(); 0144 void setupEventFilters(); 0145 void initProgressIndicator(); 0146 0147 void reset(); 0148 void resetMetadataChangeInfo(); 0149 0150 void setInfos(const ItemInfoList& infos); 0151 void setFocusToLastSelectedWidget(); 0152 void setMetadataWidgetStatus(int status, QWidget* const widget); 0153 void metadataChange(qlonglong imageId); 0154 bool singleSelection() const; 0155 0156 private: 0157 0158 ItemDescEditTab* q = nullptr; 0159 }; 0160 0161 } // namespace Digikam 0162 0163 #endif // DIGIKAM_ITEM_DESC_EDIT_TAB_P_H