File indexing completed on 2025-03-09 03:58:50

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2008-11-21
0007  * Description : Batch Queue Manager GUI
0008  *
0009  * SPDX-FileCopyrightText: 2008-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_BQM_QUEUE_MGR_WINDOW_PRIVATE_H
0016 #define DIGIKAM_BQM_QUEUE_MGR_WINDOW_PRIVATE_H
0017 
0018 #include "queuemgrwindow.h"
0019 
0020 // Qt includes
0021 
0022 #include <QLabel>
0023 #include <QString>
0024 #include <QAction>
0025 #include <QDir>
0026 #include <QFile>
0027 #include <QFileInfo>
0028 #include <QGridLayout>
0029 #include <QGroupBox>
0030 #include <QVBoxLayout>
0031 #include <QKeySequence>
0032 #include <QMenuBar>
0033 #include <QStatusBar>
0034 #include <QMenu>
0035 #include <QMessageBox>
0036 #include <QApplication>
0037 
0038 // KDE includes
0039 
0040 #if !defined(Q_OS_DARWIN) && defined(Q_CC_GNU)
0041 #   pragma GCC diagnostic push
0042 #   pragma GCC diagnostic ignored "-Wdeprecated-declarations"
0043 #endif
0044 
0045 #if defined(Q_CC_CLANG)
0046 #   pragma clang diagnostic push
0047 #   pragma clang diagnostic ignored "-Wdeprecated-declarations"
0048 #endif
0049 
0050 #include <klocalizedstring.h>
0051 #include <kactioncollection.h>
0052 #include <kconfiggroup.h>
0053 #include <ksharedconfig.h>
0054 
0055 // Restore warnings
0056 #if !defined(Q_OS_DARWIN) && defined(Q_CC_GNU)
0057 #   pragma GCC diagnostic pop
0058 #endif
0059 
0060 #if defined(Q_CC_CLANG)
0061 #   pragma clang diagnostic pop
0062 #endif
0063 
0064 // Local includes
0065 
0066 #include "drawdecoder.h"
0067 #include "digikam_debug.h"
0068 #include "actions.h"
0069 #include "album.h"
0070 #include "batchtoolsfactory.h"
0071 #include "actionthread.h"
0072 #include "queuepool.h"
0073 #include "workflowmanager.h"
0074 #include "queuelist.h"
0075 #include "queuesettings.h"
0076 #include "queuesettingsview.h"
0077 #include "assignedlist.h"
0078 #include "toolsettingsview.h"
0079 #include "toolsview.h"
0080 #include "componentsinfodlg.h"
0081 #include "digikamapp.h"
0082 #include "thememanager.h"
0083 #include "dimg.h"
0084 #include "dlogoaction.h"
0085 #include "albummanager.h"
0086 #include "imagewindow.h"
0087 #include "thumbnailsize.h"
0088 #include "sidebar.h"
0089 #include "dnotificationwrapper.h"
0090 #include "statusprogressbar.h"
0091 
0092 namespace Digikam
0093 {
0094 
0095 class BatchToolsFactory;
0096 
0097 class Q_DECL_HIDDEN QueueMgrWindow::Private
0098 {
0099 
0100 public:
0101 
0102     explicit Private()
0103         : busy                          (false),
0104           processingAllQueues           (false),
0105           currentQueueToProcess         (0),
0106           statusLabel                   (nullptr),
0107           clearQueueAction              (nullptr),
0108           removeItemsSelAction          (nullptr),
0109           removeItemsDoneAction         (nullptr),
0110           moveUpToolAction              (nullptr),
0111           moveDownToolAction            (nullptr),
0112           removeToolAction              (nullptr),
0113           clearToolsAction              (nullptr),
0114           runAction                     (nullptr),
0115           runAllAction                  (nullptr),
0116           stopAction                    (nullptr),
0117           removeQueueAction             (nullptr),
0118           newQueueAction                (nullptr),
0119           saveQueueAction               (nullptr),
0120           donateMoneyAction             (nullptr),
0121           contributeAction              (nullptr),
0122           rawCameraListAction           (nullptr),
0123           topSplitter                   (nullptr),
0124           bottomSplitter                (nullptr),
0125           verticalSplitter              (nullptr),
0126           batchToolsMgr                 (nullptr),
0127           statusProgressBar             (nullptr),
0128           thread                        (nullptr),
0129           toolsView                     (nullptr),
0130           toolSettings                  (nullptr),
0131           assignedList                  (nullptr),
0132           queuePool                     (nullptr),
0133           queueSettingsView             (nullptr),
0134           TOP_SPLITTER_CONFIG_KEY       (QLatin1String("BqmTopSplitter")),
0135           BOTTOM_SPLITTER_CONFIG_KEY    (QLatin1String("BqmBottomSplitter")),
0136           VERTICAL_SPLITTER_CONFIG_KEY  (QLatin1String("BqmVerticalSplitter"))
0137     {
0138     }
0139 
0140     bool                     busy;
0141     bool                     processingAllQueues;
0142 
0143     int                      currentQueueToProcess;
0144 
0145     QLabel*                  statusLabel;
0146 
0147     QAction*                 clearQueueAction;
0148     QAction*                 removeItemsSelAction;
0149     QAction*                 removeItemsDoneAction;
0150     QAction*                 moveUpToolAction;
0151     QAction*                 moveDownToolAction;
0152     QAction*                 removeToolAction;
0153     QAction*                 clearToolsAction;
0154 
0155     QAction*                 runAction;
0156     QAction*                 runAllAction;
0157     QAction*                 stopAction;
0158     QAction*                 removeQueueAction;
0159     QAction*                 newQueueAction;
0160     QAction*                 saveQueueAction;
0161     QAction*                 donateMoneyAction;
0162     QAction*                 contributeAction;
0163     QAction*                 rawCameraListAction;
0164 
0165     SidebarSplitter*         topSplitter;
0166     SidebarSplitter*         bottomSplitter;
0167     SidebarSplitter*         verticalSplitter;
0168 
0169     BatchToolsFactory*       batchToolsMgr;
0170 
0171     StatusProgressBar*       statusProgressBar;
0172 
0173     ActionThread*            thread;
0174 
0175     ToolsView*               toolsView;
0176     ToolSettingsView*        toolSettings;
0177     AssignedListView*        assignedList;
0178     QueuePool*               queuePool;
0179     QueueSettingsView*       queueSettingsView;
0180 
0181     const QString            TOP_SPLITTER_CONFIG_KEY;
0182     const QString            BOTTOM_SPLITTER_CONFIG_KEY;
0183     const QString            VERTICAL_SPLITTER_CONFIG_KEY;
0184 };
0185 
0186 } // namespace Digikam
0187 
0188 #endif // DIGIKAM_BQM_QUEUE_MGR_WINDOW_PRIVATE_H