1 /* ============================================================ 2 * 3 * This file is a part of digiKam project 4 * https://www.digikam.org 5 * 6 * Date : 2007-03-05 7 * Description : digiKam light table GUI 8 * 9 * Copyright (C) 2007-2021 by Gilles Caulier <caulier dot gilles at gmail dot com> 10 * 11 * This program is free software; you can redistribute it 12 * and/or modify it under the terms of the GNU General 13 * Public License as published by the Free Software Foundation; 14 * either version 2, or (at your option) 15 * any later version. 16 * 17 * This program is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * GNU General Public License for more details. 21 * 22 * ============================================================ */ 23 24 #ifndef DIGIKAM_LIGHT_TABLE_WINDOW_PRIVATE_H 25 #define DIGIKAM_LIGHT_TABLE_WINDOW_PRIVATE_H 26 27 #include "lighttablewindow.h" 28 29 // Qt includes 30 31 #include <QApplication> 32 #include <QFrame> 33 #include <QHBoxLayout> 34 #include <QVBoxLayout> 35 #include <QAction> 36 #include <QMenuBar> 37 #include <QStatusBar> 38 #include <QMenu> 39 #include <QSplitter> 40 41 // KDE includes 42 43 #include <klocalizedstring.h> 44 #include <kactioncollection.h> 45 #include <kconfiggroup.h> 46 #include <ksharedconfig.h> 47 48 // Local includes 49 50 #include "digikam_globals.h" 51 #include "itempropertiessidebardb.h" 52 #include "statusprogressbar.h" 53 #include "dzoombar.h" 54 #include "lighttableview.h" 55 #include "lighttablethumbbar.h" 56 #include "thumbbardock.h" 57 #include "drawdecoder.h" 58 #include "digikam_debug.h" 59 #include "componentsinfodlg.h" 60 #include "digikamapp.h" 61 #include "thememanager.h" 62 #include "dimg.h" 63 #include "dio.h" 64 #include "dmetadata.h" 65 #include "dfileoperations.h" 66 #include "metaenginesettings.h" 67 #include "applicationsettings.h" 68 #include "albummanager.h" 69 #include "loadingcacheinterface.h" 70 #include "deletedialog.h" 71 #include "iccsettings.h" 72 #include "imagewindow.h" 73 #include "itemdescedittab.h" 74 #include "setup.h" 75 #include "syncjob.h" 76 #include "lighttablepreview.h" 77 #include "albummodel.h" 78 #include "albumfiltermodel.h" 79 #include "coredbchangesets.h" 80 #include "collectionscanner.h" 81 #include "scancontroller.h" 82 #include "tagsactionmngr.h" 83 #include "thumbnailsize.h" 84 #include "thumbnailloadthread.h" 85 #include "dexpanderbox.h" 86 #include "dbinfoiface.h" 87 88 namespace Digikam 89 { 90 91 class DAdjustableLabel; 92 93 class Q_DECL_HIDDEN LightTableWindow::Private 94 { 95 96 public: 97 Private()98 Private() 99 : autoLoadOnRightPanel (true), 100 autoSyncPreview (true), 101 fromLeftPreview (true), 102 setItemLeftAction (nullptr), 103 setItemRightAction (nullptr), 104 clearListAction (nullptr), 105 editItemAction (nullptr), 106 removeItemAction (nullptr), 107 fileDeleteAction (nullptr), 108 fileDeleteFinalAction (nullptr), 109 leftZoomPlusAction (nullptr), 110 leftZoomMinusAction (nullptr), 111 leftZoomTo100percents (nullptr), 112 leftZoomFitToWindowAction (nullptr), 113 rightZoomPlusAction (nullptr), 114 rightZoomMinusAction (nullptr), 115 rightZoomTo100percents (nullptr), 116 rightZoomFitToWindowAction (nullptr), 117 forwardAction (nullptr), 118 backwardAction (nullptr), 119 firstAction (nullptr), 120 lastAction (nullptr), 121 showBarAction (nullptr), 122 viewCMViewAction (nullptr), 123 syncPreviewAction (nullptr), 124 navigateByPairAction (nullptr), 125 clearOnCloseAction (nullptr), 126 leftFileName (nullptr), 127 rightFileName (nullptr), 128 hSplitter (nullptr), 129 barViewDock (nullptr), 130 thumbView (nullptr), 131 previewView (nullptr), 132 leftZoomBar (nullptr), 133 rightZoomBar (nullptr), 134 statusProgressBar (nullptr), 135 leftSideBar (nullptr), 136 rightSideBar (nullptr) 137 { 138 } 139 addPageUpDownActions(LightTableWindow * const q,QWidget * const w)140 void addPageUpDownActions(LightTableWindow* const q, QWidget* const w) 141 { 142 defineShortcut(w, Qt::Key_Down, q, SLOT(slotForward())); 143 defineShortcut(w, Qt::Key_Right, q, SLOT(slotForward())); 144 defineShortcut(w, Qt::Key_Up, q, SLOT(slotBackward())); 145 defineShortcut(w, Qt::Key_Left, q, SLOT(slotBackward())); 146 } 147 148 public: 149 150 bool autoLoadOnRightPanel; 151 bool autoSyncPreview; 152 bool fromLeftPreview; 153 154 QAction* setItemLeftAction; 155 QAction* setItemRightAction; 156 QAction* clearListAction; 157 QAction* editItemAction; 158 QAction* removeItemAction; 159 QAction* fileDeleteAction; 160 QAction* fileDeleteFinalAction; 161 QAction* leftZoomPlusAction; 162 QAction* leftZoomMinusAction; 163 QAction* leftZoomTo100percents; 164 QAction* leftZoomFitToWindowAction; 165 QAction* rightZoomPlusAction; 166 QAction* rightZoomMinusAction; 167 QAction* rightZoomTo100percents; 168 QAction* rightZoomFitToWindowAction; 169 170 QAction* forwardAction; 171 QAction* backwardAction; 172 QAction* firstAction; 173 QAction* lastAction; 174 175 QAction* showBarAction; 176 QAction* viewCMViewAction; 177 QAction* syncPreviewAction; 178 QAction* navigateByPairAction; 179 QAction* clearOnCloseAction; 180 181 DAdjustableLabel* leftFileName; 182 DAdjustableLabel* rightFileName; 183 184 SidebarSplitter* hSplitter; 185 ThumbBarDock* barViewDock; 186 187 LightTableThumbBar* thumbView; 188 189 LightTableView* previewView; 190 191 DZoomBar* leftZoomBar; 192 DZoomBar* rightZoomBar; 193 194 StatusProgressBar* statusProgressBar; 195 196 ItemPropertiesSideBarDB* leftSideBar; 197 ItemPropertiesSideBarDB* rightSideBar; 198 }; 199 200 } // namespace Digikam 201 202 #endif // DIGIKAM_LIGHT_TABLE_WINDOW_PRIVATE_H 203