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      by Valerio Fuoglio <valerio dot fuoglio at gmail dot com>
0010  * SPDX-FileCopyrightText: 2012-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0011  *
0012  * SPDX-License-Identifier: GPL-2.0-or-later
0013  *
0014  * ============================================================ */
0015 
0016 #include "presentation_advpage.h"
0017 
0018 // Local includes
0019 
0020 #include "digikam_config.h"
0021 #include "presentationcontainer.h"
0022 #include "presentationwidget.h"
0023 
0024 #ifdef HAVE_OPENGL
0025 #   include "presentationgl.h"
0026 #   include "presentationkb.h"
0027 #endif
0028 
0029 using namespace Digikam;
0030 
0031 namespace DigikamGenericPresentationPlugin
0032 {
0033 
0034 PresentationAdvPage::PresentationAdvPage(QWidget* const parent,
0035                                          PresentationContainer* const sharedData)
0036     : QWidget(parent)
0037 {
0038     setupUi(this);
0039 
0040     m_sharedData = sharedData;
0041 
0042     connect(m_useMillisecondsCheckBox, SIGNAL(toggled(bool)),
0043             this, SLOT(slotUseMillisecondsToggled()));
0044 
0045 #ifdef HAVE_OPENGL
0046 
0047     m_openGlFullScale->setEnabled(true);
0048 
0049 #else
0050 
0051     m_openGlFullScale->setEnabled(false);
0052 
0053 #endif
0054 
0055 }
0056 
0057 PresentationAdvPage::~PresentationAdvPage()
0058 {
0059 }
0060 
0061 void PresentationAdvPage::readSettings()
0062 {
0063     m_enableMouseWheelCheckBox->setChecked(m_sharedData->enableMouseWheel);
0064     m_useMillisecondsCheckBox->setChecked(m_sharedData->useMilliseconds);
0065     m_kbDisableFadeCheckBox->setChecked(m_sharedData->kbDisableFadeInOut);
0066     m_kbDisableCrossfadeCheckBox->setChecked(m_sharedData->kbDisableCrossFade);
0067     m_enableKenBurnsSameSpeed->setChecked(m_sharedData->kbEnableSameSpeed);
0068     m_openGlFullScale->setChecked(m_sharedData->openGlFullScale);
0069     m_openGlFullScale->setEnabled(m_sharedData->opengl);
0070     m_useMillisecondsCheckBox->setEnabled(!m_sharedData->offAutoDelay);         // MilliSeconds Checkbox in advanced page off when AutoDelay is On
0071 
0072     slotUseMillisecondsToggled();
0073 }
0074 
0075 void PresentationAdvPage::saveSettings()
0076 {
0077 
0078 #ifdef HAVE_OPENGL
0079 
0080     m_sharedData->openGlFullScale    = m_openGlFullScale->isChecked();
0081 
0082 #endif
0083 
0084     m_sharedData->useMilliseconds    = m_useMillisecondsCheckBox->isChecked();
0085     m_sharedData->enableMouseWheel   = m_enableMouseWheelCheckBox->isChecked();
0086     m_sharedData->kbDisableFadeInOut = m_kbDisableFadeCheckBox->isChecked();
0087     m_sharedData->kbDisableCrossFade = m_kbDisableCrossfadeCheckBox->isChecked();
0088     m_sharedData->kbEnableSameSpeed  = m_enableKenBurnsSameSpeed->isChecked();
0089 }
0090 
0091 void PresentationAdvPage::slotUseMillisecondsToggled()
0092 {
0093     m_sharedData->useMilliseconds = m_useMillisecondsCheckBox->isChecked();
0094 
0095     Q_EMIT useMillisecondsToggled();
0096 }
0097 
0098 } // namespace DigikamGenericPresentationPlugin
0099 
0100 #include "moc_presentation_advpage.cpp"