File indexing completed on 2025-01-05 03:53:06

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2021-07-21
0007  * Description : MJPEG Stream Server configuration dialog - Private container
0008  *
0009  * SPDX-FileCopyrightText: 2021-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0010  * SPDX-FileCopyrightText: 2021      by Quoc Hưng Tran <quochungtran1999 at gmail dot com>
0011  *
0012  * SPDX-License-Identifier: GPL-2.0-or-later
0013  *
0014  * ============================================================ */
0015 
0016 #ifndef DIGIKAM_MJPEG_STREAM_DLG_P_H
0017 #define DIGIKAM_MJPEG_STREAM_DLG_P_H
0018 
0019 // Qt includes
0020 
0021 #include <QVBoxLayout>
0022 #include <QDialogButtonBox>
0023 #include <QApplication>
0024 #include <QMessageBox>
0025 #include <QPushButton>
0026 #include <QGridLayout>
0027 #include <QLabel>
0028 #include <QStyle>
0029 #include <QIcon>
0030 #include <QCheckBox>
0031 #include <QGroupBox>
0032 #include <QTabWidget>
0033 #include <QDesktopServices>
0034 
0035 // KDE includes
0036 
0037 #include <klocalizedstring.h>
0038 #include <ksharedconfig.h>
0039 #include <kconfiggroup.h>
0040 
0041 // Local includes
0042 
0043 #include "mjpegstreamdlg.h"
0044 #include "dinfointerface.h"
0045 #include "ditemslist.h"
0046 #include "dnuminput.h"
0047 #include "dlayoutbox.h"
0048 #include "dxmlguiwindow.h"
0049 #include "workingwidget.h"
0050 #include "mjpegservermngr.h"
0051 #include "vidslidesettings.h"
0052 #include "transitionpreview.h"
0053 #include "effectpreview.h"
0054 #include "dcombobox.h"
0055 #include "dfontselect.h"
0056 #include "frameosdwidget.h"
0057 
0058 namespace DigikamGenericMjpegStreamPlugin
0059 {
0060 
0061 class Q_DECL_HIDDEN MjpegStreamDlg::Private
0062 {
0063 
0064 public:
0065 
0066     enum TabView
0067     {
0068         Server = 0,
0069         Stream,
0070         Transition,
0071         Effect,
0072         OSD             ///< On Screen Display options
0073     };
0074 
0075 public:
0076 
0077     explicit Private();
0078     ~Private();
0079 
0080 public:
0081 
0082     bool                dirty;
0083     MjpegServerMngr*    mngr;
0084     QPushButton*        srvButton;
0085     QLabel*             srvStatus;
0086     QPushButton*        srvPreview;
0087     WorkingWidget*      progress;
0088     QLabel*             aStats;
0089     QLabel*             separator;
0090     QLabel*             iStats;
0091     QCheckBox*          startOnStartup;
0092     int                 spacing;
0093     bool                albumSupport;
0094     QWidget*            albumSelector;
0095     DItemsList*         listView;
0096     QDialogButtonBox*   buttons;
0097     QWidget*            streamSettings;
0098     DIntNumInput*       srvPort;
0099     DIntNumInput*       delay;
0100     DIntNumInput*       rate;
0101     DIntNumInput*       quality;
0102     QCheckBox*          streamLoop;
0103     DComboBox*          typeVal;
0104     DComboBox*          effVal;
0105     EffectPreview*      effPreview;
0106     DComboBox*          transVal;
0107     TransitionPreview*  transPreview;
0108     QTabWidget*         tabView;
0109 
0110     FrameOsdWidget*     frameOsdWidget;
0111 
0112     MjpegStreamSettings settings;
0113 };
0114 
0115 } // namespace DigikamGenericMjpegStreamPlugin
0116 
0117 #endif // DIGIKAM_MJPEG_STREAM_DLG_P_H