File indexing completed on 2025-03-09 03:52:06

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2008-09-09
0007  * Description : a presentation tool.
0008  *
0009  * SPDX-FileCopyrightText: 2008-2009 by Valerio Fuoglio <valerio dot fuoglio at gmail dot com>
0010  * SPDX-FileCopyrightText:      2009 by Andi Clemens <andi dot clemens at googlemail dot com>
0011  * SPDX-FileCopyrightText: 2012-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0012  * SPDX-FileCopyrightText:      2021 by Phuoc Khanh Le <phuockhanhnk94 at gmail dot com>
0013  *
0014  * SPDX-License-Identifier: GPL-2.0-or-later
0015  *
0016  * ============================================================ */
0017 
0018 #ifndef DIGIKAM_PRESENTATION_MAIN_PAGE_H
0019 #define DIGIKAM_PRESENTATION_MAIN_PAGE_H
0020 
0021 // Qt includes
0022 
0023 #include <QPixmap>
0024 
0025 // Local includes
0026 
0027 #include "ui_presentation_mainpage.h"
0028 
0029 class QTreeWidgetItem;
0030 
0031 namespace DigikamGenericPresentationPlugin
0032 {
0033 
0034 class PresentationContainer;
0035 class LoadingDescription;
0036 
0037 class PresentationMainPage : public QWidget,
0038                              public Ui::PresentationMainPage
0039 {
0040     Q_OBJECT
0041 
0042 public:
0043 
0044     explicit PresentationMainPage(QWidget* const parent,
0045                                   PresentationContainer* const sharedData);
0046     ~PresentationMainPage() override;
0047 
0048     void readSettings();
0049     void saveSettings();
0050     bool updateUrlList();
0051 
0052     void removeImageFromList(const QUrl& url);
0053 
0054 Q_SIGNALS :
0055 
0056     void signalTotalTimeChanged(const QTime&);
0057 
0058 private Q_SLOTS:
0059 
0060     void slotOpenGLToggled();
0061     void slotEffectChanged();
0062     void slotDelayChanged(int);
0063     void slotOffAutoDelay();
0064     void slotPrintCommentsToggled();
0065     void slotUseMillisecondsToggled();
0066     void slotThumbnail(const LoadingDescription&, const QPixmap&);
0067     void slotImageListChanged();
0068 
0069     void slotPortfolioDurationChanged(int);
0070     void slotImagesFilesSelected(QTreeWidgetItem* item);
0071 
0072 private:
0073 
0074     void setupConnections();
0075     void loadEffectNames();
0076     void loadEffectNamesGL();
0077     void showNumberImages();
0078     void addItems(const QList<QUrl>& fileList);
0079 
0080 private:
0081 
0082     class Private;
0083     Private* const d;
0084 };
0085 
0086 } // namespace DigikamGenericPresentationPlugin
0087 
0088 #endif // DIGIKAM_PRESENTATION_MAIN_PAGE_H